对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。
常见的对称加密算法:DES,AES,3DES等等。
优点:加密解密速度快
缺点:密钥在网络上传输不安全 密钥维护困难 对于n个用户,会生成n(n-1)/2个密钥
非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。
常见的非对称加密算法:RSA,ECC
对极大整数做因数分解的难度决定了RSA算法的可靠性。
公钥加密,密钥解密, 公钥解不开
密钥加密,公钥解密, 密钥解不开
公钥不可推导密钥, 密钥不可推导公钥
优点:密码维护简单 对于n个用户,会生成2n个密钥
缺点:加密解密效率低
在互联网中通常结合两种方法进行使用,例如可用非对称加密方法加密对称加密密钥,利用对称加密密钥加密数据。
参考: https://blog.csdn.net/u014079662/article/details/61169607
参考: https://blog.csdn.net/cnbird2008/article/details/8038926
Ac - 客户端公钥
Bc - 客户端密钥
As - 服务器公钥
Bs - 服务器密钥
认证过程分为两个步骤。
客户端请求连接服务器,服务器将 As 发送给客户端。
服务器生成会话ID(session id),设为 p,发送给客户端。
客户端生成会话密钥(session key),设为 q,并计算 r = p xor q。
户端将 r 用 As 进行加密,结果发送给服务器。
服务器用 Bs 进行解密,获得 r。
服务器进行 r xor p 的运算,获得 q。
至此服务器和客户端都知道了会话密钥q,以后的传输都将被 q 加密。
服务器生成随机数 x,并用 Ac 加密后生成结果 S(x),发送给客户端
客户端使用 Bc 解密 S(x) 得到 x
客户端计算 q + x 的 md5 值 n(q+x),q为上一步得到的会话密钥
服务器计算 q + x 的 md5 值 m(q+x)
客户端将 n(q+x) 发送给服务器
服务器比较 m(q+x) 和 n(q+x),两者相同则认证成功
数字签名作用:
(1) 确保信息的来源的真实性。
(2) 谁签过名,无法抵赖
(3) 无法更改内容
用公钥加密的文件的单项散列函数的数据就是数字签名。 另外的人拿公钥解密数据得到单项散列函数和文件的单项散列函数进行对比即可判断文件是否改过。
DES算法公开, 56位密钥,需要21分钟左右破解。128位密钥,需要5.4x10的18次方年。 因此安全级别不是由算法决定,而是由密钥长度决定的。
安全标准: 破解成本高于信息本身的价值, 或者破解的时间超过了信息的有效期。
数字证书颁发机构(CA):
简单来说:数字证书的作用是为了让公钥具有可信度。公钥和私钥都是由证书进行保护存储的, 申请证书方的证书中拥有公钥和私钥,其他人下载证书时只有公钥。
CA - 证书颁发机构 CA公钥/私钥
A - 需要让B确认自己的身份
B - 需要检查A的信息, 且信任CA
CA颁发给A的证书包括:带有CA数字签名的A的私钥和公钥
A发给B的东西包括:A需要给B的信息, 信息的数字签名, A的公钥
B需要检查的信息 : 检查A的公钥的数字签名是否正确,然后检查信息的数字签名是否正确.
-
根CA(公用根证书库, webtrust标准)
-
子CA
根CA向子CA发证,子CA向用户发证。
-
企业CA 域环境 在线的 不需要办法 输入域用户账户就自动获得数字证书.
-
独立CA 工作组环境和域环境 给外单位的企业和用户发证 需要管理员办法数字证书
Windows 证书管理工具: certlm.msc和certmgr.msc, 或者利用mmc进行证书管理.(用户证书/计算机证书)
配置:
添加删除windows组件 - 邮件服务器
管理工具 - POP3服务 - 新建域 - 新建邮箱 - 创建用户
使用:
outlook express
先装一个IIS - 添加删除windows组件 - 证书服务 - 独立根CA 配置一下
管理工具 - 证书颁发机构
申请证书 - 电子邮件保护证书
然后就可以利用证书进行加密和签名了
https利用SSL安全套接字进行通信。
https:// 的优点:
-
网站和证书绑定 无法冒充网站
-
客户端和服务器之间通信加密
-
实现客户端身份验证