I have also had this same experience (1.0.1i) with SSLv3 being negotiated though I used the SSL_OP_NO_SSLv3 flag on the SSL_set_options call. (I have NOT re-built with SSLv3 disabled).
What I expected to see is 'unknown protocol' when an SSLv3 client tries to connect to my server with the options call coded as above. (server would be configured to refuse SSLv3) The only way I found to eliminate SSLv3 from negotiation was to insist on a cipher suite that is TLS only. But in that case, I get 'no shared cipher' during negotiation. Any advice is helpful. Thanks. Dave +-+-+-+-+-+-+-+-+- Dave McLellan, Enterprise Storage Software Engineering, EMC Corporation, 176 South St. Mail Stop 176-V1 1/P-36, Hopkinton, MA 01749 Office: 508-249-1257, FAX: 508-497-8027, Mobile: 978-500-2546, dave.mclel...@emc.com +-+-+-+-+-+-+-+-+- From: owner-openssl-us...@openssl.org [mailto:owner-openssl-us...@openssl.org] On Behalf Of Pradeep Gudepu Sent: Friday, October 24, 2014 6:13 AM To: openssl-users@openssl.org Subject: openssl SSL3 vulnerability Hi, To Get rid of openssl SSL3 Poodle bug, I upgraded from openssl 1.0.1g to 1.0.1j. Also Compiled openssl sources with no-ssl2 no-ssl3, so that only TLSv1 works in client server application. On top of this, in my SSL config code, I added following code to create context. if(server) //method = ::SSLv23_server_method(); method = ::TLSv1_server_method(); else //method = ::SSLv23_client_method(); method = ::TLSv1_client_method(); if(server) { ::SSL_CTX_set_options(ctx, (SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_COMPRESSION)); ::SSL_CTX_set_cipher_list(ctx, "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"); } But in logs, I still see, client and server are negotiated with SSLv3. SSLConfig::Init: SSL initiated (OpenSSL 1.0.1j 15 Oct 2014 built on: Fri Oct 24 07:44:36 2014). SSLSocket::Callback: Handshake done: AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 SocketClose: shutdown failed ('WSAENOTCONN: A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.'). Also I see, connection is not established Can you please tell me, is any more code I have to add, such that only TLSv1 is negotiated. Thanks - Pradeep Reddy. ::DISCLAIMER:: ---------------------------------------------------------------------------------------------------------------------------------------------------- The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only. E-mail transmission is not guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents (with or without referred errors) shall therefore not attach any liability on the originator or HCL or its affiliates. Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification, distribution and / or publication of this message without the prior written consent of authorized representative of HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately. Before opening any email and/or attachments, please check them for viruses and other defects. ----------------------------------------------------------------------------------------------------------------------------------------------------