(Sorry for delay, thought I sent this Tue but apparently it didn't go, and I wasn't in Wed.)
> From: [email protected] On Behalf Of Peter Lin > Sent: Monday, 22 February, 2010 03:20 > I have a TLS server application which the old OpenSSL library > has no problem connecting to it but the latest couldn't. > The problem occurs in the first client hello stage while the server only > returned two bytes "02 28" for the s_client from OpenSSL-v0.9.8l afterwards. > But the same command works fine with the s_client from OpenSSL-0.9.8a. Beginning with 0.9.8j (and thus in 1.0.0-beta which your version identifies itself as) TLS extensions are now enabled by default. You can see this as the extra 11 bytes at the end of your ClientHello. If the server doesn't support/implement rfc4366, it will reject this. Your log includes the 'renegotiation-sequence' (aka 'protect-Apache') extension #FF01, which is new and not yet widely implemented/deployed, but I believe if a server doesn't support a *particular* extension it should just skip it (not reject the message). I understood renegoseq should only be in 1.0.0-beta5 (and 0.9.8m-beta1) while your code identifies as 1.0.0-fips-beta4. Possibly this is a glitch in the build process; I haven't tried beta5 yet and don't do fips at all. Or possibly a snapshot; are you using a snapshot build? > Since I do not have the source code of TLS server app, it is quite difficult > for me to debug this problem. The debug information is appended as quotation. > Is there anyway I can connect to it with latest OpenSSL library? Any idea is welcomed. For commandline s_client -no_ticket suppresses ticket extension, or in client code SSL_[CTX_]set_options(,SSL_OP_NO_TICKET). But I don't see any way to (selectively) suppress renegoseq (except by using an older version where it isn't implemented). All other extensions (still?) default to unused/omitted. You can use the "v2upgradeto3" ClientHello, which is the default for commandline or SSLv23_client_method for code. That can't (and doesn't) send extensions. Of course if you get a server that demands v3+ hello it won't succeed, and if you get a server that actually agrees to v2 you don't want to succeed. Or build OpenSSL with NO_TLSEXT to not support extensions at all. That's a sledgehammer, but it should work (I haven't tested). Of course then you can't get the benefits of any extension(s), including the security benefit of renegoseq. Or of course get the server folks to upgrade/enable/whatever. Depending on the server, and/or the folks, that could be hard. ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List [email protected] Automated List Manager [email protected]
