为什么 https 比 http 更安全?

假如想象 提交于 2020-12-17 06:52:00

点击关注上方“杰哥的IT之旅”,

后台回复“Python自动化”获取精心整理的PDF。

作者:站在书脊之上 

整理:strongerHuang

来源:https://juejin.im/post/5ebe6870f265da7bce2696b9

一、为什么要有HTTPS


在HTTPS出现之前,所有请求都是以明文方式送出的,那么如果有人在传输途中偷听或者抓包的话,你的所有通信内容都会泄漏。比较安全的方法是将通信内容加密在发送给对方。加密方法有两种,对称加密和非对称加密。


二、对称加密


对称加密指的是加密和解密用同一个密钥。但是在通信之前,客户端和服务端是不会有这样同一把密钥的。需要其中一方将密钥发送给对方。在整个传输过程没有任何验证操作,所以黑客也可以截取到这把密钥从而破译出加密的内容。所以纯对称加密是不安全的。


三、非对称加密


非对称加密指的是加密和解密用不同的密钥。可以是用私钥加密,公钥解密,也可以是用公钥加密,私钥解密。但是会有这种情况。服务端拥有私钥和公钥,将公钥发给客户端。既然客户端可以获得公钥,黑客也可以获得公钥。那么服务端发送给客户端的所有内容黑客也是可以解读的。客户端用公钥加密发送给服务端不受影响,因为黑客手上没有服务器的私钥。所以纯非对称加密也是不安全的。


传输密钥的过程




四、图解传输密钥的过程


HTTPS采用对称加密来加密通信内容,所用的密钥称为A。用非对称加密来加密密钥A再发送给对方(有点绕)。只要密钥A不落入他人手中,那传输的数据就不会被别人破译。


那么问题来了,要如何安全的将这把密钥送到对方手上呢?


我们来看密钥的传输过程:



五、为什么HTTPS是可靠的?


HTTPS是可靠的,因为它解决了三个问题。


加密通信,即使别人获取到了信息也没法复原成原来的信息。


防止中间人攻击。黑客没法冒充服务端。因为在第2步,服务端给了客户端一个CA证书。


如果客户端验证了这个证书,说明这个证书和公钥是由服务端发来的且真实可靠。


如果客户端验证不了这个证书,就说明这个证书不可靠,有可能是假的。


CA证书的公信力。CA证书需要由公司或者个人发出申请,再通过邮箱验证等方法验证域名存在。避免了黑客冒充网站获取证书的可能。


在技术层面上,CA机构的公钥是写在操作系统或者浏览器里的。只有用CA机构的私钥加密的内容才能完成解密。确保了证书的确是CA机构发行的。


六、密钥的作用


最后让我们再来回顾一下每一把密钥的作用:



免责声明: 本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

- End -

  
    
  
  
本公众号全部博文已整理成一个目录,请在公众号后台回复「 m 」获取!

    
    
推荐阅读:
1、 GitHub 热榜:轻量级无 Agent 的自动化运维平台!
2、 推荐几款基于 Markdown 在线制作简历的网站
3、 假如有人把支付宝存储服务器炸了,那你的钱还会在吗?
4、 牛逼!用 12 万行代码堆出来个 "蔡徐坤",编译还能通过!
5、 写简历没模板?别怕,这些开源项目帮你搞定!
6、 重磅!《命令与征服》和《红色警戒》源代码竟然在 GitHub 公布了!
关注微信公众号『 杰哥的IT之旅』,后台回复“ 1024”查看更多内容,回复“ 微信”添加我微信。

好文和朋友一起看~

本文分享自微信公众号 - 杰哥的IT之旅(Jake_Internet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!