当我们在咖啡馆连上WiFi打开网页和邮箱时,殊不知有人正在监视着我们的各种网络活动。在打开账户网页的一瞬间,也许黑客就已经盗取了我们的银行凭证、家庭住址、电子邮件和联系人信息,而这一切我们却毫不知情。这是一种网络上常见的“中间人攻击”(Man-in-the-Middle Attack, MITM),通过拦截正常的网络通信数据,并进行数据篡改和嗅探。
2014年10月,国内曾出现过非常严重的中间人攻击事件,微软、苹果iCloud、雅虎等知名企业都遭受了大面积SSL中间人攻击,其中国地区大部分用户隐私暴露无遗,用户在这些网站上输入及存储在云端的私房照片、帐号密码等都能够被黑客复制。
很多不知情的用户可能会问,SSL不就是为了保障HTTP的保密性和完整性,提供端到端安全服务的吗?为什么还会发生SSL中间人攻击,难道HTTPS都不能保证网络通信安全?
SSL中间人攻击的三大场景
事实上,SSL被设计得十分安全,想要攻破并不容易。SSL是为网络通信提供安全及数据完整性的一种安全协议,它可以验证参与通讯的一方或双方使用的证书是否由权威受信任的数字证书认证机构颁发,并且能执行双向身份认证。
而我们现在常见的SSL中间人攻击方式都是通过伪造、剥离SSL证书来实现的。换句话说,一旦发生SSL中间人攻击事件,问题并不出在SSL协议或者SSL证书本身,而是出在SSL证书的验证环节。中间人攻击的前提条件是,没有严格对证书进行校验,或者人为的信任伪造证书,因此以下场景正是最容易被用户忽视的证书验证环节:
- 场景一:网站没有使用SSL证书,网站处于HTTP明文传输的“裸奔”状态。这种情况黑客可直接通过网络抓包的方式,明文获取传输数据。
- 场景二:黑客通过伪造SSL证书的方式进行攻击,用户安全意识不强选择继续操作。
受SSL证书保护的网站,浏览器会自动查验SSL证书状态,确认无误浏览器才会正常显示安全锁标志。而一旦发现问题,浏览器会报各种不同的安全警告。
例如,SSL证书不是由浏览器中受信任的根证书颁发机构颁发的,或者此证书已被吊销,此证书网站的域名与根证书中的域名不一致,浏览器都会显示安全警告,建议用户关闭此网页,不要继续浏览该网站。
- 场景三:黑客伪造SSL证书,网站/APP只做了部分证书校验,导致假证书蒙混过关。
例如,在证书校验过程中只做了证书域名是否匹配,或者证书是否过期的验证,而不是对整个证书链进行校验,那么黑客就可以轻松生成任意域名的伪造证书进行中间人攻击。
如何防御SSL中间人攻击?
首先,真正的HTTPS是不存在SSL中间人攻击的,因此首当其冲的是要确定网站有SSL证书的保护。
那么用户如何判断网站有没有SSL证书保护呢?
- 可使用https:// 正常访问。
- 浏览器显示醒目安全锁,点击安全锁,可查看网站真实身份。
- 使用了EV SSL证书的网站,显示绿色地址栏。
如果用户访问的网站呈现以上特征,说明该网站已受SSL证书保护。
其次,采用权威CA机构颁发的受信任的SSL证书。
数字证书颁发机构CA是可信任的第三方,在验证申请者的真实身份后才会颁发SSL证书,可以说是保护用户信息安全的第一道关口。
最后,对SSL证书进行完整的证书链校验。
如果是浏览器能识别的SSL证书,则需要检查此SSL证书中的证书吊销列表,如果此证书已经被证书颁发机构吊销,则会显示警告信息:“此组织的证书已被吊销。安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。建议关闭此网页,并且不要继续浏览该网站。”
- 如果证书已经过了有效期,一样会显示警告信息:“此网站出具的安全证书已过期或还未生效。安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。建议关闭此网页,并且不要继续浏览该网站。”
- 如果证书在有效期内,还须检查部署此SSL证书的网站域名是否与证书中的域名一致。
如果以上都没有问题,浏览器还会查询此网站是否已经被列入欺诈网站黑名单,如果有问题也会显示警告信息。
总而言之,企业能够做到证书部署和校验环节完整,个人用户能够认真观察HTTPS安全标识,识别证书真实性、有效期等信息,HTTPS几乎是无法攻破的,所谓的SSL中间人攻击就是一个伪命题。
在网络安全事件频发的时代,部署HTTPS已是大势所趋,它用复杂的传输方式降低网站被攻击劫持的风险。当然,实现全网HTTPS不是一件立竿见影的事情,而是需要参与互联网的每一家企业都承担起网络安全的责任,我们每一个个体都增强保护自我隐私的意识,从而共同缔造一个安全的网络空间。