查看原文
其他

一张图告诉你为什么HTTPS是安全的

为什么要有HTTPS

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

对称加密

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

非对称加密

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

传输密钥的过程

登场人物介绍

图解传输密钥的过程

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

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

我们来看密钥的传输过程

为什么HTTPS是可靠的?

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

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

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

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

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

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

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

密钥的作用

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

作者:站在书脊之上

链接:https://juejin.im/post/5ebe6870f265da7bce2696b9


end


最新整理的 2TB 技术干货:包括架构师实战教程、大数据、Docker容器、系统运维、数据库、redis、MongoDB、电子书、Java基础课程、Java实战项目、ELK Stack、机器学习、BAT面试精讲视频等。只需在「 民工哥技术之路」微信公众号对话框回复关键字:1024 即可获取全部资料。 

精彩文章推荐:


民工哥熬夜一周撸完!1000+页学习资料免费分享给大家,提供下载!

服务端 TCP 连接的 TIME_WAIT 问题分析与解决

基于 Nginx+lua+Memcache 实现灰度发布

10 大白帽黑客专用的 Linux 操作系统

请别盲目追一个技术,迟早要吃亏!

刷题2个月,终于进了梦寐以求的大厂,数据结构和算法太TM重要了!

好文章,朕在看❤️↓↓↓

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存