https://www.wosign.com/faq/faq2016-0309-03.htm
原因:
中间人攻击here:
解决办法确保Public key is valid!
使用过程:
一开始还是先建立TCP。 然后客户端随机生成256 bit的Rb, 服务器随机选一个Rs.
服务器send 给 客户端 certificate. 客户端验证certificate 看看是不是真的是CA 授权的。
RSA加密很不好在这里。如果有人知道了RSA Private Key,它可以把之前所有的通信信息全部解密。
RSA方式加密:
SSL整个过程大概就是client 和 Server say hello,然后说一下自己支持哪种加密channel。 然后server 也say hello 然后发回来Certificate,包含server的public key。
certificate = signed statement about someone's public key. 证书上包含明文部分和签名部分。
明文部分里有server的域名和public key信息,签名部分是拿certificate的private key签了一个hash的信息。
然后Client先验证一下certificate,确认是这个网站发来的。验证过程:compare 正书上的名字和server域名。 然后用Issuer's public key to verify Signature S, obtain the hash of the issuer signed. Compare with its own SHA-1 Hash of website's certificate[这个hash似乎是server做的?]. 然后产生一个Pre-master key, 然后拿public key加密 给server。 server解密,这个时候大家就都有pre-master key了。
然后Generate Symmetric key MACS. Browser和server exchange MACS,如果good,显示一个lock。
然后两个人就可以开始以对称加密的方式传输数据了
注意一开始是非对称加密,最终目的双方有对称加密钥匙。
Diffie-Hellman
网友评论