美文网首页
如何安全的通信

如何安全的通信

作者: 昵称还要不同吗 | 来源:发表于2017-04-20 11:04 被阅读0次

    如何安全的通信

    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 机构。

    相关文章

      网友评论

          本文标题:如何安全的通信

          本文链接:https://www.haomeiwen.com/subject/nzvkzttx.html