如何安全的通信

如何安全的通信

HTTP是一个文本协议容易被中间人攻击。对信息进行加密,从http到https。


对称加密

服务器端与浏览器端均用一个协商好的同一个秘钥进行加/解密,此种加密速度快,适用于发送消息双方需要大量加解密的场景。可能会出现中间人攻击,截获用户的秘钥泄露用户消息,如何将秘钥安全的传送到解密方非常重要,经典的对称加密有AES。


非对称加密

非对称加密是通过一对秘钥对public_key、private_key进行加解密的,用public_key加密就必须用private_key解密反之亦然,经典的非对称加密算法有RSA算法,其基于大素数的分解

服务器与浏览器之间的加密过程如下:

(1)服务器公开自己的公钥public_key

(2)浏览器用此公钥对自己的消息进行加密

(3)服务器用自己的私钥进行解密

非对称加密可能被人伪造服务器,向浏览器发送来自黑客的public_key消息,黑客就和浏览器之间建立了联系,用户的消息就会泄露。基于此,将产生CA证书来证明服务器的是否可信。


数字证书

CA是签发证书、认证证书、管理已颁发证书的第三方机构。数字证书包含两部分:一部分是网站信息(网站的公钥,网站组织名、证书有效期、证书的颁发机构 );另一部分是数字签名。

网站信息-----(Hash算法)------消息摘要----(CA私钥)-----数字签名

浏览器得到网站的数字证书后将会通过:

(1)用CA的公钥对数字签名进行解密得到消息摘要

(2)用hash算法对网站信息进行计算获得消息摘要

(3)对比(1)、(2)得到的消息摘要是否相同

如何安全的通信

下图为浏览器端与服务器之间建立的通信链接,可以看到这个过程中用到了数字证书、非对称加密以及对称加密的技术。


(1)浏览器想网站服务器发起安全请求https://xxx.com

(2)服务器向浏览器发送数字证书(其中包含服务器的public_key)

(3)浏览器用预置的CA列表验证服务器的安全性

(4)浏览器用服务器的public_key对对称秘钥key进行加密

(5)服务器用自己的private_key进行解密获得对称秘钥key

(6)浏览器与服务器之间通过对称秘钥key进行加密通信

加密通信的探讨

对于CA的伪造,我们可以继续用上级CA机构的数字签名进行验证,最终将追溯到浏览器中的根证书。

就目前的12306网站的查询网页的根证书需要在站点下载,但是支付的页面用的是CA证书。可能的威胁是黑客可以伪造为12306网站,而用户下载的根证书就是一个假的证书,无法验证站点的安全性。如果用了CA机构颁发的证书,证书的试用期受制于国外CA 机构。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容