HTTP 与 HTTPS:网络通信幽径上的安全秘钥
咱平常上网冲浪的时候,不管是随便点一下,还是从一个页面跳到另一个页面,其实背后都靠着俩特别重要的通信协议在撑着,就是 HTTP 和 HTTPS。别看就差一个字母,它们在安全程度和咱上网的感受上,那可是天差地别。接下来,我就给大家好好唠唠这俩协议有啥不一样,顺便讲讲为啥 HTTPS 成了现在互联网的顶梁柱。
一、先认识认识它们:是啥来头
HTTP(超文本传输协议)
这可是互联网上用得最多的网络协议了。它就像是个“通信规则制定者”,规定了咱们用的浏览器这些客户端和服务器之间咋交流,这样文字、图片、视频啥的超文本数据才能顺顺当当传过来,咱们也能正常看到。
HTTP 设计得简单又好用,不过有个大毛病,它传数据的时候是直接明文传的。这就好比你寄信的时候,信封都不封口,路上不管是经过路由器,还是网络服务商这些“中转站”,人家都能随便看,甚至还能改里面的内容,一点安全保障都没有。它默认用的是 80 端口。
HTTPS(超文本传输安全协议)
它其实不是个全新的协议,就是 HTTP 的“安全加强版”。你可以把它当成是 HTTP 加上了 SSL/TLS。它在原来 HTTP 协议和 TCP 协议中间加了一层加密的东西(SSL/TLS),靠着加密传输、身份认证和数据完整性校验这三个办法,给数据传输弄了一条安全的“加密通道”。它默认用的是 443 端口。
二、主要区别:对比看看
特性 | HTTP | HTTPS |
安全性 | 明文传数据,特别容易被别人偷听、修改,还可能被冒充 | 数据加密传,能防止偷听、修改,还能验证服务器是不是真的 |
协议与加密 | 在 TCP 上面工作,不加密 | 先在 SSL/TLS 上面工作,然后 SSL/TLS 再在 TCP 上面工作 |
端口号 | 80 | 443 |
证书 | 不需要 | 得向权威机构(CA)申请数字证书 |
连接过程 | TCP 三次握手 | TCP 三次握手加上 SSL/TLS 多次握手(特别费时间) |
性能消耗 | 低 | 高(因为有加密解密的计算,不过现在硬件厉害,这个影响小多了) |
SEO 排名 | 没啥好处 | 谷歌这些搜索引擎会优先排它,做 SEO 必须得有它 |
三、HTTPS 为啥安全?—— 原理简单说说
为啥用了 HTTPS 就安全了呢?这得靠一套很厉害的“握手”和加密办法。
1、SSL/TLS 握手(关键步骤)
- 客户端发起请求(ClientHello):浏览器会给服务器发消息,说自己支持哪些加密协议版本、加密算法,还会发一个随机数过去。
- 服务器回应(ServerHello):服务器会选一套加密算法,再把自己的数字证书和另一个随机数发给浏览器。这个证书就相当于服务器的“身份证”,是由受信任的第三方机构(CA)发的,里面有服务器的公钥啥的。
- 验证证书:浏览器检查证书合不合法(有没有过期、是不是可信的 CA 发的、域名对不对啥的)。要是验证不过,就会发出警告;验证过了,就进入下一步。
- 生成会话密钥:浏览器用证书里的公钥把一个新的随机数(Pre - Master Secret)加密了,发给服务器。
- 生成会话密钥:服务器用自己的私钥解密,拿到第三个随机数。
- 达成共识:这时候,客户端和服务器利用之前交换的三个随机数,各自独立算出一个一样的对称加密密钥(Session Key)。
2、加密通信:
握手阶段完了之后,双方就用刚生成的、只有他俩知道的“会话密钥”,按照对称加密算法对所有要传输的数据进行加密和解密。后面用对称加密,是因为它算起来比握手时用的非对称加密快多了,能保证通信高效。
简单来说,HTTPS 靠非对称加密的安全特点来交换密钥,再用对称加密的高效特点来加密实际传的数据,安全和性能都兼顾到了。
四、关于 HTTPS 的三个关键问题
问:用了 HTTPS 就肯定安全吗?
答:不一定绝对安全,但能挡住绝大多数网络攻击。它的安全是“传输过程”的安全。要是你的电脑中了木马,或者你主动相信了不安全的证书(比如说在公司网络环境下点了“继续前往”),风险还是有的。另外,HTTPS 没办法防止网站服务器本身被黑,导致数据泄露。
问:为啥需要 CA 发的证书呢?
答:为了防止“中间人攻击”(MITM)。要是没有权威的第三方 CA,攻击者就能自己造一对公私钥和证书,在你和真正的服务器之间当“中间人”,把你的所有通信都截获、解密。CA 机构的存在,能保证浏览器收到的公钥确实是你想访问的网站的,不是攻击者的。
问:HTTPS 能不能被抓包呀?
答:能是能,不过情况不太一样。要是用 Fiddler、Charles 这些抓包工具,配置好证书之后,确实可以把 HTTPS 流量解密出来。但这一般得用户自己手动在设备上安装并且信任抓包工具给的根证书才行。这就好比你主动给“中间人”发了一张通行证。HTTPS 设计出来就是为了防止用户在自己不知道、没授权的情况下被监听。可要是用户自己主动配合去做调试或者监控,那 HTTPS 就防不住了。
五、总结与趋势
HTTP 就好像在人来人往、闹哄哄的广场上大声说话,谁都能听见;而 HTTPS 就像是在有隔音效果的私密会议室里交流,比较隐蔽。现在计算性能越来越强,SSL 证书也有免费的了(像 Let‘s Encrypt),用 HTTPS 的成本和性能方面的门槛差不多都没了。
如今,HTTPS 早就不只是银行、电商这些网站才能用了,它已经成了所有网站的标配。主流的浏览器(像 Chrome、Firefox、Edge)会把 HTTP 网站标记成“不安全”,搜索引擎也会优先展示 HTTPS 网站。HTTPS 不光是保护用户隐私和数据安全的重要技术,也是搭建可信的互联网环境的基础。所以,不管你是做网站开发的,还是普通用户,都得接受 HTTPS,这是走向安全网络生活必须要走的一步。