■面试官求你了,别再问我HTTPS


Coding 应当是一生的事业 , 而不仅仅是 30 岁的青春 。 网上很多文章对 HTTPS 的讲解云里雾里 , 看完这篇 , 如果还不理解 , 骂我渣男好了!
■面试官求你了,别再问我HTTPS
本文插图
【■面试官求你了,别再问我HTTPS】

图片来自 Pexels
整个 HTTPS 的演变跟流程细思极恐 , 有很多思想可以借鉴学习 。 我以后要离搞安全的朋友远一点 。
这篇将带你深入 HTTPS 加解密原理 , 希望看完能够有这些收获:

  • 明白 HTTPS 到底解决了什么问题
  • 理解对称加密与非对称加密的原理和使用场景
  • 明白 CA 机构和根证书到底起了什么作用
Why HTTPS
近几年来 , 各大公司都在大力推进 HTTPS 的建设:
  • Google Chrome 将非 HTTPS 的网站标注为不安全 。
  • 苹果要求 APP 中需要使用 HTTPS 进行通信 。
  • 微信小程序也要求使用 HTTPS 协议 。
那么 , 我们为什么非要做这么一件事呢?我们先来看看 HTTP 。
HTTP(Hypertext Transfer Protocol)超文本传输协议 , 是一种用于分布式、协作式和超媒体信息系统的应用层协议 , 可以说 HTTP 是当代互联网通信的基础 。
但是 , HTTP 有着一个致命的缺陷 , 那就是内容是明文传输的 , 没有经过任何加密 。
而这些明文数据会经过 WiFi、路由器、运营商、机房等多个物理设备节点 , 如果在这中间任意一个节点被监听 , 传输的内容就会完全暴露 。
这一攻击手法叫做 MITM(Man In The Middle)中间人攻击 。
■面试官求你了,别再问我HTTPS
本文插图

举个例子 , 稍微有点长 , 但这个例子透露出了怪怪我对安全如此痴迷的原因 。
可以拿小时候上课传纸条来类比 , 你坐在教室靠墙的一边 , 想要传一句「晚上放学操场我等你」给坐在窗边的小红 , 中间要经过六七个人的传递 。
虽然你把纸条对折了一下 , 但是防君子不防小人 , 中间的所有人都可以很轻易地打开纸条看到你想要说什么 。
只是看还好 , 如果有小刚也喜欢小红 , 看到你俩马上就要甜甜蜜蜜地回家了 , 心有不甘 , 换了一张纸条 , 改成了「晚上放学你自己回家吧 , 我要去网吧玩游戏」 。
小红看到你要抛弃她自己去玩游戏 , 非常伤心 , 开始在纸条上质问「说好的一起回家呢 , 为什么要去打游戏 , 哼」 。
在小红的纸条传回来的路上 , 小刚又改了纸条「你玩你的游戏去吧 , 我要和小刚回家」 。
于是 , 你和小红都倍感伤心 , 小刚横刀夺爱 , 而你一头雾水 。
回忆一下几年前遍地都是的运营商劫持 , 当你访问一个本来很正常的网页 , 但页面上却莫名其妙出现了一些广告标签、跳转脚本、欺骗性的红包按钮 。
甚至有时候本来要下载一个文件 , 最后下下来却变成了另外一个完全不同的东西 , 这些都是被运营商劫持了 HTTP 明文数据的现象 。
■面试官求你了,别再问我HTTPS
本文插图

运营商劫持
还有各大公司的员工安全培训里都有一条「不要连陌生的 WiFi」 , 也是类似的原因 , 恶意 WiFi 的控制者可以看到和篡改 HTTP 明文传输的信息 。
为了解决 HTTP 明文传输数据可能导致的安全问题 , 1994 年网景公司提出了 HTTPS(HyperText Transfer Protocol Secure)超文本传输安全协议 , 数据通信仍然是 HTTP , 但利用 SSL/TLS 加密数据包 。
HTTPS 实现原理
前面说到 , HTTPS 其实就是将 HTTP 的数据包再通过 SSL/TLS 加密后传输 , 那么 SSL/TLS 又是什么呢?


推荐阅读