知识卡片
配置HTTPS不等于安全:从软件漏洞到证书信任链都是独立攻击面
内容
很多人认为只要给网站配置上HTTPS,传输安全的问题就解决了,但书中明确指出这是一个误区——”配置了HTTPS就一定安全吗?答案当然是否!”。真实的安全防护需要独立检查多个彼此独立的环节:首先,实现HTTPS协议的软件本身可能存在漏洞(比如著名的OpenSSL”心脏出血”漏洞),一个存在已知漏洞的HTTPS软件版本本身就是攻击面;其次,即使软件没有已知漏洞,加密套件的具体配置也可能不够安全(比如是否还允许已被认为不安全的SSLv3、密钥交换算法和加密算法的选择是否足够强);即使前两者都做对了,还存在”用户第一次访问时输入的是HTTP而非HTTPS”这样的降级攻击窗口(SSLStrip),以及证书信任链本身可能被不良CA或被盗签的证书攻破的风险。这个案例给出一条对任何”部署了某个安全机制”的场景都适用的警示:安全防护从来不是”开启某个开关”就能一劳永逸的单点动作,而是一条由多个独立环节(底层软件实现、具体参数配置、协议层的降级攻击窗口、信任链本身的完整性)组成的链条,链条上任何一环存在漏洞,整体防护效果都会大打折扣,必须逐环独立核查,不能因为”已经开启了HTTPS”这个表面动作就默认安全无虞。
参考来源
- 位置:《高可用架构(第1卷)》第7章《安全与网络》"7.5 互联网主要安全威胁分析及应对方案"节,"7.5.2 威胁应对方案","5.HTTPS"(源文件:_epub-src/OEBPS/Text/Chapter7_5_3.xhtml)
- 结论依据:原文说明"那么问题来了,配置了HTTPS就一定安全吗?答案当然是否!首先,你需要部署一个没有已知漏洞的HTTPS软件,一般我们使用OpenSSL,'心脏出血'就是这个软件最著名的漏洞……其次,需要配置HTTPS参数……那配置了HTTPS后,是不是就再不会被劫持了?答案当然还是有可能被劫持",直接支撑本卡片结论。
- 原始内容:那么问题来了,配置了HTTPS就一定安全吗?答案当然是否!首先,你需要部署一个没有已知漏洞的HTTPS软件,一般我们使用OpenSSL,"心脏出血"就是这个软件最著名的漏洞……那配置了HTTPS后,是不是就再不会被劫持了?答案当然还是有可能被劫持。