SSL、数字签名、CA 工做原理通俗描述

SSL(Secure Socket Layer) 是一种加密技术,能够提供对称加密和非对称加密。因为它在协议层里正好是在传输层与应用层之间,这就决定了上层应用必须通过它,这就是它普遍流行和易于实现的缘由。


对称加密有md5,sha1。因为md5已被学者证实能够计算出加密冲突,即它有必定的不安全性,因此建议用sha1加密。


非对称性加密有RSA,即密码有一对,一个私钥,一个公钥,公钥可让全部人知道,私钥只有本身知道。


这样理解,服务器产生一对密钥,公钥给别人即客户端,客户端用它来加密,加密后发给服务端,服务端用本身的私钥解密后获得数据。


数字签名就和上面的过程相反,即数据由服务端用私钥加密,客户端用服务端的公钥解密,解得出来就说明这数据包的确是出服务端发过来的。


数字签名是由服务端本身签的,但没人去验证这个服务端是否是你所要访问的真实的,因此须要第三方来帮忙检验,就和支付宝处于第三方来协调的位置同样。这个第三方就叫CA。


因此服务器产生的公钥就交给CA,CA用CA本身的私钥加密,即数字签名,加密生会生成证书,证书仍是要交给服务端,放在服务端那边。当客户端访问服务端时,服务端就会把这个证书安装到客户端上。


客户端就会用CA提供的CA本身的公钥来解密这个证书,(固然这个CA是浏览器预装时嵌入的可信的CA,若是不是预装时嵌入的CA,此时就没有CA的公钥,就解不了,就会弹出告警。)解得开就说明这个证书是某个CA认证过了的,是可信的,解开后就会获得数据,而这个数据就是服务端的公钥,此时用这个公钥与服务端进行数据传输。


数据传输过程当中,因为RSA方式加解密速度很是慢,因此会把对称与非对称二者结合起来用,即用RSA把对称加密的密码进行加密传输,再用对称密码进行加解密,这样就能够提升效率,且是安全的。浏览器

相关文章
相关标签/搜索