使用 HTTPS 安全上网

Google 前几天发博客称,使用 HTTPS 的站点,在搜索结果中可以提升一定的位置。也就是说,同时支持 HTTP 和 HTTPS 的站点,Google会优先显示HTTPS版本的页面,而你的 HTTPS 页面,也会比其它站点的HTTP页面的权值高。

那 Google 为什么要做出这样的设定呢?很明显,目的就是提高整个网络的安全性,这也是 HTTPS 和 HTTP 的主要差别。在 HTTPS 中,只有域名是公开的,其它部分,包括 URL 的剩余部分、网页的内容、请求登录的密码等,都是经过加密的。

根据 HTTPS 的原理,每次通讯的时候,客户端的浏览器和服务器会先约定好一个密钥,而浏览器或是服务器发出的消息,都会使用这个密钥来加密,也就是说,如果中途有人截获了一段消息,他得到的也是加密之后的内容,而要破解这段内容,不是在有生之年可以做到的事情。于是,HTTPS 的通信是安全的。

不对呀,有那么一种情况,貌似可以破解 HTTPS。比如你在网吧里上网,你要去招商银行检查一下你的存款,于是你访问了招行的主页(https://www.cmbchina.com/)。但是,这个时候,网吧的路由器拦截了这个请求,对你假装自己就是招行的主页,和你建立一个 HTTPS 连接;然后再对招行假装他是你,和招行再建立一个 HTTPS 连接。这样他就让你们以为互相在和对方用 HTTPS 通信,但实际都是在和他通信,他就从中获取了你的帐号密码。这种攻击方法称为“中间人攻击”(Man in the Middle Attack)。

HTTPS 牛x的一点是,它可以防止中间人攻击

防御的方法是,每一个 HTTPS 的站点都有一个对应的证书(Certificate)。证书的意义是说明了站点的 HTTPS 是由一个第三方机构认可的。如果你查看本站的 HTTPS 证书,可以看到它是由一个名为“Go Daddy Secure Certificate Authority - G2”的组织签发的,而这个组织它自己的证书,已经存放在你的电脑里。由于你的电脑信任“Go Daddy”,而“Go Daddy”又证明本站是安全的,于是你的电脑和浏览器就可以安全地和本站通信。至于上述的那个“网吧路由器“,他也可以去“Go Daddy”为“leonax.net”申请一个证书,但是“Go Daddy”颁发证书之前会先验证域名的所有权,而“网吧路由器“显然提供不了所有权的证明,于是他就得不到 HTTPS 的证书。

在得不到证书的情况下,“网吧路由器“可能会伪造一个证书,这样就无法通过浏览器的校验,于是浏览器会显示类似以下的警告:

当看到这样的警告的时候,切记不可继续访问网站,继续访问会带来非常大的安全隐患。

另外,值得一提的是,前几年有人提出了另一种攻击方法,称为 SSL Strip。它的工作原理是,当你访问一个 HTTPS 网站(比如 https://leonax.net)的时候,它会偷偷地把目标地址改成http://leonax.net,即把 HTTPS 偷换成 HTTP,这样显然就不安全了,但问题浏览器也没给出警告,一些糊涂的用户就上当了。如果做得再高级一点,它会换成另一个 HTTPS 的域名,例如 https://leonax.net.xyz.com/。这样实际上是在访问 xyz.com 而不是 leonax.net 了。至于 xyz.com 是干什么的,谁知道呢。

总之,安全使用 HTTPS 要注意两点,一是浏览器的警告,二是域名。如果你正在访问的是 https://leonax.net/ 且没有警告,那一定是安全的了。


5 条评论 添加

发表评论

电子邮件地址不会被公开。 必填项已用*标注