HTTPS原理

Posted juanzhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS原理相关的知识,希望对你有一定的参考价值。

引言

  大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议有关的概念如SSL 、非对称加密、CA证书等。但是对于以下灵魂三拷问可

  能就答不上了:

  为什么用了HTTPS就是安全的?

  HTTPS底层原理是如何实现的?

  用了 HTTPS就一定安全吗?

用一个故事讲HTTPS

  对称加密 

  A和B在网上聊天,因为通信是明文,怕被偷窥,所以采用了对称加密的算法,将消息加密。

  对称加密:加密和解密用的是同一个秘钥。

  但是如果这个秘钥被中间人劫持了呢?

  非对称加密

   有一种叫RSA的非对称加密算法,有两把钥匙,一把公钥,一把私钥。

   用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的数据只有对应的私钥才

   解密。

  例如:下图中我想给胡歌发消息,那么我用胡歌的公钥(这个是公开的)将消息加密,

  胡歌拿到密文后,用他的私钥(他自己保管)解密,就得到密文了。

技术图片

 

 

   非对称加密 + 对称加密

   版本2采用非对称加密,性能大大降低。不妨回到版本1,那个时候对称加密也是极好的,速度快,也加密处理了,但是最大的问题是

   担心中间人劫持秘钥?

     那么我们何不把二者结合一下呢?(1)用RSA的方式发送对称加密算法的秘钥 (2)传输内容的时候用对称算法

    CA证书

   1. 新的问题又出现了:假如胡歌给我发他的公钥的时候,有一个中间人劫持了胡歌的公钥,把他的公钥发给我了,然后我和胡歌发消

   息的时候每次都会被中间人劫持

      此时的问题变成了:如何证明胡歌的钥匙是胡歌的?而不是胡唱的?

   2.  现实中有公证中心,他提供的公证材料大家都信任,那么在网络世界中也可以建立一个具备公信力的认证中心,这个中心给大家颁发

    发一个证书,用来证明这个人的身份。

   3.但是证书在传递过程中也会被篡改?用数字签名。 

技术图片

 

 

总结

  Q: HTTPS 为什么安全?

  A:因为HTTPS传输过程中用了加密算法,为了提升效率,用的是对称算法;但是为了防止公钥被中间人劫持,首先用非对称算法传输

  秘钥;又担心非对称算法的公钥被中间人劫持,又采用了CA证书,CA证书本身也有证书来证明自己的身份,一层一层,但是最上面那层

  相当于我们自动信任了他们,相对而言,HTTPS比较安全的。

  Q: HTTPS 的传输过程?

  客户端发起https请求,服务端返回证书(证书中包含公钥),客户端验证证书,如果有问题,则提示风险;如果没有没问题或者用户

  继续,客户端发送传输内容阶段的对称算法的秘钥,用服务端发送证书里的公钥加密;服务端接收后,用自己的私钥解密,然后就拿到

  了传输内容阶段的对称算法的秘钥;然后就用 愉快的加密了。

  

 

 

 

    

  

    

以上是关于HTTPS原理的主要内容,如果未能解决你的问题,请参考以下文章

翻译: 漫画HTTPS原理五 证书和证书颁发机构

翻译: 漫画HTTPS原理二 了解对称和非对称加密

https工作原理

Android之网络—第二篇(Https原理)

翻译: 漫画HTTPS原理三 浏览器和互联网之间的秘密握手

HTTPS 原理分析