SSL FREAK 漏洞 原理及修复方案
FREAK是什么?
Factoring RSA Export Keys,也就是RSA导出密钥。是种中间人攻击。这个攻击是使用了美国国家安全局(NSA)在20世纪90年代早起加密战争期间授权支持但已经被弃用很久的“出口类”加密算法。当时NSA试图覆盖可被出口至其他国家的软件的加密强度,强制工程师设计出加密库能够同时接收来自加密性较强的国内客户端(泛指浏览器)以及加密性较弱的国外客户端。
FREAK攻击的原理
要了解这个攻击的原理,首先要了解RSA算法。RSA是目前太阳系中使用最多的非对称算法(不久的将来也许将被ECC取代)。RSA是基于数学上大整数的因式分解难题,目前除了暴力破解,没有特别有效的方法。事实上,由于科技技术提高,硬件设备告诉发展,人类已经分解的最大整数为(232个十进制,768位二进制)
1230186684530117755130494958384962720772853569595334792197322452151726400507263657518
7452021997864693899564749427740638459251925573263034537315482685079170261221429134616
70429214311602221240479274737794080665351419597459856902143413
它是这两个质数的乘积
3347807169895689878604416984821269081770479498371376856891243138898288379387800228761
4711652531743087737814467999489
*
36746043666799590428244633799627952632279158164343087642676032283815739666511279233373
417143396810270092798736308917
因此,在768位以内的RSA都已经可以轻易破解了。
那么FREAK攻击描述,见下图:
- 在客户端发出的Hello消息中,它会请求标准的RSA加密
- 中间人攻击者会改变请求内容,转而请求“出口级的RSA加密”
- 服务端会回馈一个512比特位的出口级的RSA密钥,并使用自己的密钥签名
- 由于OpenSSL/Secure传输的bug,客户端会接受这个存在漏洞的密钥
- 中间人破解RSA密钥(见上述)
- 当客户端加密“pre-master secret”这样的消息,并发送给服务端时,黑客便可以通过获得的RSA密钥解密,改为“master secret”
- 从这一步起,黑客可以看见明文,然后对其内容任意进行修改
图为”FREAK”的中间人攻击
FREAK漏洞的检测工具:
可以到这里检测当前服务器的漏洞状况
https://www.trustasia.com/tools/freak-checker.htm
解决方案:
从原理上可以分析为,只要禁用SSL协议中密钥交换时使用的export相关的套件。
l Windows系统(包含IIS)
到这里下载http://www.trustasia.com/down/ssltools.zip这个工具,在安全里设置加密套件。
或者开始——运行——MSC——本地计算机、策略——计算机配置——管理模版——SSL配置设置,然后调整自己想到的套件。
l 基于openssl的开源服务器(或者客户端)
1.0.1系列的升级至1.0.1l
1.0.0系列的升级至1.0.0q
0.9.8系列的升级至0.9.8ze
如果对openssl三条分支要求不高的,建议使用1.0.2
由于服务器种类较多,其他作为不常见的请参阅服务商的安全升级告示。