zoukankan      html  css  js  c++  java
  • (转)SSL/TLS 漏洞“受戒礼”,RC4算法关闭

    原文:https://blog.csdn.net/Nedved_L/article/details/81110603

    SSL/TLS 漏洞“受戒礼”
     

    一、漏洞分析
    事件起因
    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算法处理的时候,决定伪随机输出流的最低有效位。这些偏差的流字节和明文进行过异或,导致密文中会泄露重要明文信息。

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

    $ openssl s_client IP:PORT -cipher 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例子:
    <connector port="443"maxhttpheadersize="8192" address="127.0.0.1"enablelookups="false" disableuploadtimeout="true"acceptCount="100" scheme="https" secure="true"clientAuth="false" 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"keystoreFile="mydomain.key"
    keystorePass="password"
    truststoreFile="mytruststore.truststore"truststorePass="password"/>;

    对于websphere的修复
    1.登录控制台--展开Security--点击SSL certificate and key management--点击右侧SSL configurations--进入Quality of protection (QoP) settings

    删掉rc4相关算法

    was修复后,还能扫描到漏洞.那么可能是IHS没有关掉rc4,则需要对IBM HttpServer 修复

    对于 IBM HttpServer 修复
     

    配置文件默认路径  /IBM/HttpServer/conf/httpd.conf

    删除配置以下rc4相关算法

    # All of these must be removed to disable RC4
    SSLCipherSpec SSL_RSA_WITH_RC4_128_SHA
    SSLCipherSpec SSL_RSA_WITH_RC4_128_MD5
    SSLCipherSpec 34
    SSLCipherSpec 35

    参考博文https://www.cnblogs.com/lsdb/p/7126399.html
    详细修复查看官网 https://www-01.ibm.com/support/docview.wss?uid=swg21701072
    ---------------------
    作者:内德
    来源:CSDN
    原文:https://blog.csdn.net/Nedved_L/article/details/81110603
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)
    XSS攻击及防御
    通过Nginx,Tomcat访问日志(access log)记录请求耗时
    nginx配置长连接
    nginx常见内部参数,错误总结
    nginx 并发数问题思考:worker_connections,worker_processes与 max clients
    Nginx与Tomcat、Client之间请求的长连接配置不一致问题解决[转]
    JavaScript的基准测试-不服跑个分?
    延迟求值-如何让Lo-Dash再提速x100?
    如果把编程语言当成座驾
  • 原文地址:https://www.cnblogs.com/liujiacai/p/10215733.html
Copyright © 2011-2022 走看看