HTTP 迁移至 HTTPS的附带问题
我们拿某银行官网http://www.leumi.co.il举例。
一般人进入银行网站都是通过搜索引擎、书签或者直接在浏览器里输URL。无论你是怎么进去的,你都会被带到这个网页http://www.leumi.co.il——注意,此处是HTTP,而非HTTPS。
那中间人攻击到底是怎么窃取数据的呢?以下由天威诚信为您做情景再现中间人攻击是如何运作的。
在本次情景再现中,我们假设攻击者和被攻击用户正使用同一个WIFI/LAN 网络。这是在nutshell里的攻击场景:攻击者发起“中间人攻击”。
用户前往银行首页,获取了由攻击者修改过的首页(此时,所有HTTPS链接已被换成了对应的HTTP链接)。
用户按下登录链接,进入了HTTP协议下的登录界面。攻击者充当代理,并通过HTTPS将所有请求委派给实际的银行服务器。通过使用一些JavaScript代码,攻击者便可以修改页面并记录和破解密码。用户输入登录凭据并提交数据。内容通过HTTP发送至攻击者的设备,然后再提交到银行服务器。
那用户呢?他们看得到什么?除了网络稍微有一点延迟,其他的什么也不会察觉。用户会看到一样的登录页面内容,除了没上锁的地址栏。不幸的是,在这个(转移HTTP到HTTPS)场景中,就算存在“挂锁”也不代表绝对安全:攻击者甚至可以仿造一个安全页面的假象,而且这根本不是什么难事。
由于验证页面的域名(hb2.bankleumi.co.il)和银行主页不一致(leumi.co.il),攻击者可以注册一个“长得差不多”的域名(比方说hb2bankleumi.co.il 或hb2.bankluemi.co.il),然后给他按一个有效的SSL证书。这样一来,易容之术就完成了。如果攻击者用心高明到如此程度,除非用户有意深究SSL证书的签名,一般来说可以达到神不知鬼不觉。
在此天威诚信提醒大家当你登录银行账号或是其他敏感网站时,请注意留意地址栏左侧的挂锁,以及域名是不是长得很奇怪。要知道,攻击者可以买个看起来相似的域名再加个SSL证书来伪装自己——安全的通信不会自动和“域名正确”划等号。
作为一个网站管理者,最能保证用户数据安全的做法就是确保你的所有网页都使用SSL,包括一个小小的促销页面。大量的用户会通过搜索引擎或社交链接来到你的网站,而对促销页面使用HTTPS可以保证他们的通信安全——也因此避免了SSL剥离对站点发动攻击的可能。
与此同时,你也应当开启 HTTP Strict Transport Security (HTST),以使浏览器始终链接HTTPS,即便相关链接用的时HTTP也要强行HTTPS。以上方法可以有效防御上述攻击,所有通信都将保证安全。