HTTPS 入门:浏览器地址栏里的小锁在保护什么
打开一个网站时,你可能注意过地址栏左边有一把小锁,点击它会显示“连接是安全的”。这把小锁来自 HTTPS,它是给网站和浏览器之间的对话加了一层保护。理解 HTTPS,就是理解你在网上的每一次输入,是怎样不被半路偷看和篡改的。
先从没有保护的对话说起。普通的 HTTP 是明文传输,浏览器发出去的请求和服务器返回的内容,在路上经过的每一个节点都能直接读到。这就像寄一张没有信封的明信片:路过的人都能看到上面写了什么,还能顺手改几个字。登录密码、银行卡号、聊天记录,用明文传出去都等于公开广播。
HTTPS 的做法,是在 HTTP 外面再套一层加密。浏览器和服务器先商量出一把只有它们两个知道的钥匙,之后所有的对话都用这把钥匙加密,路上的人就算截获了,也只能看到一堆看不懂的乱码。这把钥匙的商量过程叫握手,握手本身也需要保护,否则钥匙在商量的时候就被偷走了。
握手用到的是一对非对称钥匙。服务器有一把公开的公钥和一把自己藏好的私钥,公钥可以随便发给任何人,私钥绝不离开服务器。浏览器用公钥把钥匙材料锁起来发过去,只有服务器的私钥能打开。这个过程解决了“钥匙怎么安全送到”的问题:即使有人全程旁听,也拿不到真正的钥匙。
但这里还有一个漏洞:如果有个冒充者,拿着自己的公钥自称是你要访问的网站,浏览器又怎么分辨?答案是证书。服务器的公钥不是自己随便贴出来的,而是写在一张由权威机构签发的证书里,证书上写明了这个网站的域名和有效期。浏览器收到证书后,会检查签发机构是否可信、域名对不对、证书有没有过期。任何一项不对,小锁就会变成警告,提醒你不要继续。
这也是为什么证书会过期。证书的有效期通常只有几个月到一年,到期不续,浏览器就会报警。网站管理员需要定期更新证书,就像身份证到期要换证一样。对普通用户来说,看到证书过期警告时,最稳妥的做法是先停下,不要在这个网站上输入账号密码。
HTTPS 保护的其实是三件事。第一是保密,内容只有对话双方能看懂;第二是完整,内容在路上被改动过,浏览器能发现;第三是身份,证书保证了你连上的确实是那个网站,而不是冒充者。三者缺一不可,只有加密没有身份验证,照样可能被骗到假网站上。
也有人会问:有了 HTTPS,是不是网站就绝对安全了?不是。HTTPS 只保护传输过程,不保护网站本身。如果网站自己有漏洞、把你的密码明文存进数据库,或者你装了恶意软件,小锁也帮不上忙。HTTPS 是底线,不是保险箱,它保证的是“路上没人动手脚”,而不是“对方一定可靠”。
下次看到地址栏里的小锁,可以点开看一眼:它背后是一次握手、一对钥匙和一张证书,三者合起来,才让你的每一次点击不至于裸奔。
- 点赞
- 收藏
- 关注作者
评论(0)