POODLE(CVE-2014-3566) 취약점을 확인하면서 들여다 보던 중 cipher suite에서는 ssl3와 tls1을 별도 지정할 수 없다는 것을 알았다.
apache는 ssl protocol 설정이 별도로 있기 때문에 All -SSLv2 -SSLv3 로 설정하는데 내가 확인한 모듈은 cipher 설정만 지원하고 있기 때문에 ssl3만 끌 수 없었다.
제대로는 SSLProtocol 설정을 변경해야 하지만 SSLCipherSuite 설정에 -SSLv3 처럼 지정해도 프로토콜이 disable 되는 효과가 있는데 이렇게 하면 TLSv1 도 사용할 수 없게 된다.
결국 소스를 수정해서 protocol을 별도 지정할 수 있게 하고 SSL_CTX_new() 이후에 SSL_CTX_set_options()으로 SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 를 지정하는 방식으로 해결했다.
openssl 매뉴얼을 확인하면 ssl3/tls1이 cipher를 공유한다는 것을 알 수 있다:
Protocol version: SSLv2, SSLv3, TLSv1.2. The TLSv1.0 ciphers are flagged with SSLv3. No new ciphers were added by TLSv1.1.