TLS一般流程
TLS(Transport Layer Security)的前身是SSL(Security Socket Layer)
SSL3.1版本就是TLS1.0,TLS后来又出现TLS1.2和TLS1.3版本,其中TLS1.3废弃了RSA加密
TLS协议是在TCP/UDP传输层和HTTP应用层之间,建立TLS连接需要先建立TCP三次握手的连接
TLS连接过程
1,client向server发送client hello请求,携带random1
2,server向client发送server hello回包,携带random2
3,server继续向client发送server的证书
4,client验证server证书的合法性
5,client生成一个预主密钥,将预主密钥用server的公钥进行加密,发给server
6,server用自己的私钥解出client的预主密钥,此时client和server都用random1,random2,预主密钥生成加密通话用的key
7,client和server互相给对方发送finished消息,此时连接建立成功
Diffie-Hellman密钥交换
中间人攻击
此时,Alice和Bob认为他们共享一个密钥,但实际上,Bob和Darth共享密钥K1,Alice和Darth共享密钥k2
防御方法是数字签名和证书来解决
数字信封
先对传送数据用对称密钥加密;将对称密钥用对方的公钥加密就称为数字信封;
这样对方可以用自己的私钥解密出对称密钥,然后对传送的数据进行解密