delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

31 Dec 2011

为什么输入敏感数据(如登录信息)的页面也要做成 https?

有一种错误的观念是,对于不太敏感的内容(例如论坛之类),只要用 https 保护登录过程中提交密码的部分就足够了。例如国内非常流行的网易邮箱,很早以前便提供了"SSL安全登录"的选项,这样做显然是比完全不提供SSL登录选项的新浪邮箱要强多了[注1],但是仍然是不够的。

为什么呢?因为通过明文传输的网页没有提供任何保护,而通过 https 传输的内容则是提供端到端(从服务器到客户的浏览器)的安全保证的。例如,代理服务器可以根据需要按URL(这是非常成熟的技术)来替换掉页面,而配合 DNS 攻击,或者攻击者掌握了受害人使用的网络基础设施,便可以在对方不知情的情况下把敏感数据传到攻击者控制的服务器上。假如采用了 https,攻击者能够选择的选项就大大减少了(例如,攻击者必须能够伪造适当的证书,并劫持、解密所有流量,等等)。

当然,使用 https 并不能阻止用户访问钓鱼网站并在其中输入敏感数据。这类用户应远离 Internet。


[注1] 不过很讽刺的是,新浪邮箱的登录首页实际上是有 https 版本的,但是这个 https 版本并不处理提交;而网易邮箱则完全没有提供 https 版本的登录首页。