不可逆:
单向散列函数:MD5,SHA等
散列值的长度固定,计算速度快,具备单向性
可逆:
对称加密:DES,3DES,AES等
非对称加密:RSA等
其它:
混合密码系统
数字签名
证书
常用加密:
MD5:生成128bit的散列值,目前不安全
SHA-1:生成160bit的散列值,目前不安全
SHA-2:SHA-256,SHA-384,SHA-512
DES:将64bit明文加密成64bit密文的对称加密算法,秘钥长度是58bit,目前不安全
3DES:使用DES加密-解密-加密(3把秘钥)
AES:AES-128,AES-192,AES-256
RSA:非对称加密,公钥加密私钥解密,私钥加密公钥解密,速度慢
混合密码系统:网络上的密码通信所用的SSL、TLS都运用了混合密码系统
加密步骤:
1.消息发送者要拥有消息接收者的公钥
2.生成会话秘钥,作为对称加密的秘钥,加密消息
3.用消息接收者的公钥,加密会话秘钥
4.将2,3生成的加密结果,一并发给消息接收者
发送出去的内容包括:
用会话秘钥加密的消息(加密方法:对称加密)
用公钥加密的会话秘钥(加密方法:非对称加密)
解密步骤:
1.消息接收者用自己的私钥解密出会话秘钥
2.再用第一步解密出来的会话秘钥,解密消息
数字签名:防止有人篡改
1.消息发送者生成公钥私钥,把公钥给接收者
2.消息发送者把消息通过单向散列函数生成散列加密消息
3.消息发送者用自己的私钥对散列加密消息进行加密,生成签名
4.消息发送者把明文和用签名发给接收者
5.接收者通过发送者的公钥对签名进行解密,得到散列加密信息
6.接收者用散列函数对明文进行加密
7.把6的加密数据和5的加密数据进行对比
证书:
公钥证书:包含姓名,邮箱等个人信息,以及此人的公钥
并由认证机构CA施加数字签名
HTTPS:超文本传输安全协议
HTTP默认占用80断口,HTTPS默认占用443断口
HTTPS在HTTP基础上使用SSL/TLS来加密报文
TLS:传输层安全协议,前身是SSL(安全套接层)
HTTPS的成文:
1.证书费用,2.降低了访问速度
有些企业的做法是:包含敏感数据的使用HTTPS,其它的用HTTP
HTTPS的通信过程
1.TCP的3次握手
2.TLS的连接
3.HTTP请求和响应
TLS1.2连接的步骤,交换秘钥算法为ECDHE:
1.ClientHello,客户端发送,包含TLS版本,支持的加密组件(秘钥加密算法,对称加密算法,摘要算法),随机数
2.Server Hello,服务端发送,包含TLS版本,选择的加密组件,随机数
3.Certificate,服务器发送,服务器的公钥证书(CA认证)
4.Server Key Exchange,服务端发送,用以实现ECDHE(秘钥交换)算法的其中一个参数(Server params),为了防止伪造,Server Params经过了服务器私钥签名
5.Server Hello Done,服务端发送,告知客户端协商部分结束
客户端验证公钥签名
6.Client Key Exchange,客户端发送,用以实现ECDHE算法的另一个参数
客户端,服务器都可以使用ECDHE算法
根据Server Params,Client Params计算出一个新的随机秘钥串Pre-master secret
然后结合Client Random,Server Random,Pre-master secret生成用以加密会话的会话秘钥(主密钥),还会分别派生出客户端发送消息的秘钥和服务器端发送消息的秘钥
7.Change Cipher Spec,客户端发送,告诉服务器之后的通信会采用计算出的会话秘钥进行加密
8.Finished,客户端发送,包含连接至今全部报文的整体校验值(摘要),加密之后发送给服务器
9.Change Cipher Spec,服务端发送
10.Fished
到此为止,客户端服务器都验证加密解密没问题,握手正式结束