千家信息网

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)*

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、漏洞分析事件起因2015年3月26日,国外数据安全公司Imperva的研究员Itsik Mantin在BLACK HAT ASIA 2015发表论文《Attacking SSL when usin
千家信息网最后更新 2025年12月02日主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)*

一、漏洞分析

事件起因

2015年3月26日,国外数据安全公司Imperva的研究员Itsik Mantin在BLACK HAT ASIA 2015发表论文《Attacking SSL when using RC4》阐述了利用存在了13年之久的RC4漏洞--不变性弱密钥(《Weakness in the Key Scheduling Algorithm of RC4》,FMS 发表于2001年)进行的***,并命名为"受戒礼"***(Bar Mitzvah Attack)。

直到2015年3月,还有约30%的网络通信是由RC4进行保护的。通过"受戒礼"***,***者可以在特定环境下只通过嗅探监听就可以还原采用RC4保护的加密信息中的纯文本,导致账户、密码、信用卡信息等重要敏感信息暴露,并且可以通过中间人(Man-in-the-middle)进行会话劫持。

***方法和模式

***者嗅探监听大量的SSL链接,可以判断第一个加密消息包含SSL的完成消息和HTTP请求,都是具有可预测的信息的。然后等待一个不变性弱密钥的链接到来,当获取到一个弱密钥链接时候就可以提取出LBS。当弱密钥使用的时候,明文和密钥会进行异或,***者可以看到生成的密文模式。

***者同样也进行DNS投毒,将所有的链接链接到一个恶意的主机,主机进行中间人***,能够有效地进行大量用户的嗅探监听和会话劫持。

漏洞原理和细节

根据《Attacking SSL when using RC4》中的阐述,漏洞的成因主要在于不变性弱密钥是RC4密钥中的一个L型的图形,它一旦存在于RC4的密钥中,在整个初始化的过程之中保持状态转换的完整性。这个完整的部分包括置换过程中的最低有效位,在由RPGA算法处理的时候,决定伪随机输出流的最低有效位。这些偏差的流字节和明文进行过异或,导致密文中会泄露重要明文信息。

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

状态转换(来自《Attacking SSL when using RC4》)

这种模式发生在LSBs,a single LSB, 2 LSBs 等的不同数字时候,导致不同种类的RC4弱密钥。

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

如果一个q-class(q 指代LSB的数字)的密钥被使用,那么会发生以下的问题:

RC4的初始化语句不能正确地配合状态和关键信息,并且保存K个最低有效位存储内部状态;
RC4初始状态具有固定的非混合q LSB;
第一个明文字节流的30-50字节的q个最低有效位遵守显著概率确定模式;
第一个明文字节流的30-50字节的q个最低有效位有显著概率暴露。
SSL在很多加密套件中使用RC4进行加密。在握手环节产生RC4密钥用来加密上行数据流和下行数据流。上行数据流中用来加密客户端- 服务器的数据流,下行数据流中用来加密服务器 - 客户端的数据流。加密是有状态的,使用第一个密钥流加密第一个字节的信息,之后的密钥流加密下一条消息(想CBC模式一样)。由于串加密毁灭了最低有效位的确定性,所以不变性弱密钥只能利用于被保护的第一个100字节。

SSL的握手结束消息是每个方向(上行和下行)的第一条加密消息,且结束消息固定使用了36个字节,所以还有64个字节留给***者使用。

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

二、安全检测

在线检测:服务器测试:https://www.ssllabs.com/ssltest/index.html

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

浏览器测试:https://www.ssllabs.com/ssltest/viewMyClient.html

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

本地检测:(针对服务器,需要在linux服务器下安装openssl)

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

$ openssl s_client -connectyinxiang.com:443 -cipher RC4
主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

如果能够查看到证书信息,那么就是存在风险漏洞
如果显示sslv3 alerthandshake failure,表示改服务器没有这个漏洞。

三、修补方式

服务器

对于NGINX的修补

修改nginx配置文件中的 ssl_ciphers项

ssl_ciphers"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
重新加载:

$sudo /etc/init.d/nginx reload
对于apache的修复

打开配置文件

$ sudo vi /etc/httpd/conf.d/ssl.conf
修改配置

SSLCipherSuite
HIGH:MEDIUM:!aNULL:!MD5;!RC4
$ sudo /etc/init.d/httpd restart
对于TOMCAT的修复

server.xml 中SSL connector加入以下内容:

SSLEnabled="true"sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
tomcat例子:

;
对于IIS修补

将下面的内容保存为fix.reg,并双击运行来修改注册表:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES56/56]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC240/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC256/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC440/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC456/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC464/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT1.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL2.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL3.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL3.0\Client]"DisabledByDefault"=dword:00000001
客户端浏览器

对于chrome浏览器的修补

@linux

关闭浏览器,在terminal中直接输入命令运行

$ google-chrome-cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007
@windows

快捷图标->右键->在目标后面加入引号内的内容 "-cipher-suite-blacklist=0×0004,0×0005,0xc011,0xc007"

重启浏览器生效

@macos

在terminal种输入:

/Applications/GoogleChrome.app/Contents/MacOS/GoogleChrome--cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007
对于firefox(全平台)

在地址栏输入 about:config 回车,搜索框输入rc4,双击 value 的值就可以改成 false并且禁止rc4相关的ssl传输,如下图:

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

对于IE(只在windows平台)

参考解决办法:https://www.sslshopper.com/article-how-to-disable-ssl-2.0-in-iis-7.html

运行->regedit->对下面键值进行设置:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4128/128]
"Enabled"=dword:00000000
·[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC440/128]
·"Enabled"=dword:00000000
·[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC456/128]
·"Enabled"=dword:00000000
或者将将下面内容保存为fix.reg,然后双击运行fix.reg进行注册表修改:

WindowsRegistry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4128/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC440/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC456/128]"Enabled"=dword:00000000

漏洞 密钥 加密 主机 原理 套件 密码 信息 有效 字节 数据 服务器 服务 最低 数据流 消息 状态 明文 模式 浏览器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 公安局数据库 网络安全攻防实验的目的 学数据库技术用什么书最好 四川网络技术学校 扬州网络安全准入控制系统价格 看门狗2怎么不连接服务器 永7服务器 宿州软件开发培训学费 湛江智能软件开发外包 魔兽正式服哪个服务器最平衡 优酷如何部署网络安全架构 网络运营者应当制定网络安全视频 服务器主机做视频渲染好不好 教育行业关于网络安全的文件 mas移动代理服务器 米哈游渠道服和官服服务器互通吗 支付软件开发惹官司 食品药品网络安全管理制度 手机app服务器认证失败 网络安全2022任子行 驱动人生服务器什么时候恢复 网络安全的基座 合肥科竞网络技术有限公司 软件开发java控制前端后端 什么叫数据库可扩展性 mysql数据库字符集怎么选择 韩商言参加的网络安全大赛 浪潮 阿里巴巴服务器 极客湾数据库在哪看 东城区时代软件开发价目表
0