OpenSSL-CCS注入漏洞修复方案
所有文档

          SSL证书服务 CAS

          OpenSSL-CCS注入漏洞修复方案

          关于 OpenSSL CCS 漏洞

          在昨天 2014-06-05 OpenSSL 发布了关于漏洞 CVE-2014-0224 的安全公告,并发布了已修复此漏洞的最新 OpenSSL版本。由于此漏洞是 OPenSSL ChangeCipherSpec 设计缺陷造成,被称为 CCS 注入漏洞。攻击者可以发起中间人攻击并利用此漏洞篡改或监听SSL加密传输的数据。

          受影响的OpenSSL版本包括:

          • OpenSSL 1.0.1 through 1.0.1g
          • OpenSSL 1.0.0 through 1.0.0l
          • all versions before OpenSSL 0.9.8y

          未影响版本:

          • OpenSSL 1.0.1h
          • OpenSSL 1.0.0m
          • OpenSSL 0.9.8za

          检测漏洞

          您可通过在线工具检测SSL服务端是否存在这个漏洞。

          应对措施

          Windows环境下的apache及nginx等使用openssl的webserver直接重新下载最新的webserver版本就可解决。

          Linux环境下

          • Nginx:

          使用ldd nginx指令检查是否有的libssl.so和libcrypto.so的调用,如果用,直接升级openssl就可以了,如果没有,那么需要重新编译Nginx

          • Apache:

            • 如果你的apache是使用管理安装的,那么直接使用包管理升级openssl就可以了。
            • 如果你的apache是自己编译的,那么您需要检查apache的编译参数,看有没有指定自己的openssl目录;
            • 如果没有那么也可以直接使用包管升级openssl。
            • 如果您编译安装的时候使用了自己的openssl目录而非系统的openssl,那请升级对应目录的openssl或重新编译apache.

            升级openssl:对于使用包管理安装的openssl直接使用包管理升级就可以了,升级后版本号可能不在安全的版本号之只,但是它们是被打过补丁的,是安全的。

            从源码编译安装openssl:从openssl下载自己希望使用的openssl版本的最新文件。编译时请加上参数shared以打开共享库。完成后需按自己的环境来安装。

          • 其他受影响的WebServer:

            建议到官方更新不受此漏洞影响的版本。

          漏洞分析

          SSL握手过程中两端会发起ClientHelloServerHello握手消息。

          在握手过程中双方会协商一些会话参数,如协议版本、加密套件、会话密钥等。SSL协议中允许双方在握手阶段通过使用ChangeCipherSpec(CCS)来修改连接的加密策略。

          按照标准,CCS消息应该是在 握手加密参数协商完成之后最终确认消息发送之前 来发送。但Openssl没有这么设计,它允许CCS消息在加密参数协商完成之前发送。

          中间人攻击可以利用这点,在一个 SSL 握手过程中向客户端和服务端分别发送一个 CCS 包并用长度为零的预主密钥来协商会话密钥,这样攻击者就可以知道会话密钥并可以篡改或 截获SSL通信数据。

          上一篇
          密文填塞漏洞
          下一篇
          API参考