作用
HTTPS 建立于SSL/TLS之上,用于保证通信数据的加密
握手过程
-
Client Hello
客户端发送,包含
random1
以及客户端支持的加密套件1组合等信息 -
Server Hello
服务端发送,包含后续使用的加密套件及
random2
-
Certificate
服务器发送,包含证书信息
-
Certificate Verify
客户端使用内置CA公钥解密证书指纹信息及指纹算法,验证通过后,发送
PreMaster Key
2,同时客户端与服务端生成会话密钥
-
Change Cipher Spec
客户端/服务端发送,通知后续使用密钥加密
-
Encrypted Handshake Message
客户端/服务端发送,将握手消息生成摘要进行加密,供服务端/客户端验证
会话复用
服务端可以在握手过程中给客户端发送Session ID
,后续握手时可直接复用
分类加密算法
- 摘要算法
- 对称加密算法
- 非对称加密算法
摘要算法
-
MD5
将给定任意长度字符串哈希,生成128bit,常用十六进制表示为32个字符
-
SHA[1,256,512]
安全性比MD5更强,生成对应比特位数,其中SHA1生成160bit
对称加密算法
-
AES
可设置密钥长度128、192、256位,安全,高效
-
DES
密钥长度56位
非对称加密算法
-
RSA
私钥与公钥对应,安全
数字签名
将数据进行哈希后,使用加密算法进行加密,与数据一起发送,接收方可通过公钥进行解密后,对数据进行哈希对比,若相同,可保证数据未改动过
数字证书
客户端接收到数字证书后,通过颁发者公钥使用数字签名中的算法进行解密,并对证书内容使用对应的指纹算法,保证与指纹相同后再继续与服务器端通信。SSL/TLS过程中,客户端和服务器确定加密组合之后,后续通信数据通过哈希算法生成摘要与数据进行加密,接收方解密后通过哈希算法进行摘要对比即可保证通信数据安全。