Closed Bug 284450 Opened 20 years ago Closed 19 years ago

Only use SSL V2 compatible hello, if SSL V2 is enabled

Categories

(Core :: Security: PSM, enhancement)

x86
All
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dftapusk, Assigned: KaiE)

References

Details

(Keywords: fixed1.8.1)

Attachments

(1 file, 1 obsolete file)

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 When SSL 2.0 is disabled in Firefox it still sends a V2 compatible Client Hello message when starting an SSL connection. There are a couple of problems with this in that the CLIENT_RANDOM is 16 bytes so the server would have to pad the client random that it generates for the PRF with zeros to the left. Second it doesn't follow what the RFC indicates that v2 should be phased out. Now IE only sends a SSLv2 CLIENT_HELLO only when v2 is enabled; otherwise it will send an SSL 3.0/TLS1.0 CLIENT_HELLO. This should be a simple change; ssl_defaults.v2CompatibleHello just has to be set to off if v2 is disabled. Reproducible: Always Steps to Reproduce: 1. Ensure SSLv2 is disabled 2. Run Ethereal and capture output; connect to https website. 3. View captured log and view v2 client hello. Actual Results: Capture log indicates v2 client hello was used. Expected Results: Don't use v2 client hello; use v3 client hello instead. This mirrors the behaviour IE demonstrates and the move in stated in RFC 2246. Warning: The ability to send Version 2.0 client hello messages will be phased out with all due haste. Implementors should make every effort to move forward as quickly as possible. Version 3.0 provides better mechanisms for moving to newer versions.
Assignee: firefox → kaie
Component: General → Client Library
Product: Firefox → PSM
QA Contact: general
Product: PSM → Core
Blocks: 116169
This simple (one liner) patch only honours ->v2CompatibleHello iff ->enableSSL2 is also true. (Or in english, do v3/TLS handshakes if SSLv2 is disabled)
Attachment #182052 - Flags: review?(kaie)
SSL is product NSS.
Assignee: kaie → wtchang
Component: Security: UI → Libraries
Product: Core → NSS
QA Contact: bishakhabanerjee
Version: Other Branch → unspecified
Comment on attachment 182052 [details] [diff] [review] Don't use SSLv2 Hello's when SSLv2 is disabled. Please ask SSL expert nelson@bolyard.com for his thoughts on your patch.
Attachment #182052 - Flags: review?(kaie)
Nelson, could you take a look at this? I verified that the patch does what it intends to do, but I don't know if we really want to do that. Using LXR, I verified that the code the patch modified is the only place in NSS where we test the v2CompatibleHello field. We may also want to review the code in SSL_OptionSet and SSL_OptionSetDefault that attempts to keep enableSSL2 and v2CompatibleHello consistent. Perhaps that code could be enhanced to keep those two fields more (fully?) consistent. For example, right now if you set enableSSL2 to true, we automatically set v2CompatibleHello to true. The attached patch would not be needed if we did the same when you set enableSSL2 to false. Finally, I found that our tstclnt test program keeps its enableSSL2 and v2CompatibleHello options fully in sync: http://lxr.mozilla.org/security/source/security/nss/cmd/tstclnt/tstclnt.c#702
Assignee: wtchang → nelson
Comment on attachment 182052 [details] [diff] [review] Don't use SSLv2 Hello's when SSLv2 is disabled. The ability to continue to use SSL2-compatible client hellos, even when SSL2 is disabled is a correct and necessary feature of NSS for clients that want the feature. This patch would disable the ability of SSL3 clients to send ssl2-compatible hellos for all clients, and therefore is unacceptable. NSS provides a way for the application to disable SSL2 client hellos through an SSL socket option, if the application does not want SSL2 compatible hellos. That feature works, and has worked for over 6 years. If some application does not want SSL2-compatible client hellos, that application must turn them off. No change to NSS/SSL is needed.
Attachment #182052 - Flags: review-
Apparently this is a request for a change to the FireFox application, asking that it disable the SSL2-compatible behavior of SSL3 (which is part of the SSL3 and TLS specifications) when SSL2 is disabled. If FF wants that behavior, FF can enable it. No change to NSS is needed. I am changing this to be a PSM bug, since PSM is the module by which FF interfaces to NSS.
Assignee: nelson → kaie
Severity: normal → enhancement
Component: Libraries → Security: PSM
Product: NSS → Core
QA Contact: bishakhabanerjee
Version: unspecified → Trunk
OS: Windows XP → All
Confirming.
Blocks: 226271
Status: UNCONFIRMED → NEW
Ever confirmed: true
Attached patch Patch v2Splinter Review
This patch proposes the following logic for PSM: If SSL 2 is disabled, disable SSL 2 compatible client hellos. Only if SSL 2 is enabled, we enable SSL 2 compatible client hellos. As Firefox meanwhile has SSL 2 disabled by default, this change will disable SSL 2 compatible client hellos by default, too.
Attachment #182052 - Attachment is obsolete: true
Attachment #215778 - Flags: review?(rrelyea)
Attachment #215778 - Flags: review?(rrelyea) → review+
Attachment #215778 - Flags: approval-branch-1.8.1+
Summary: SSL Client Hello always uses V2 compatible hello → Only use SSL V2 compatible hello, if SSL V2 is enabled
As of today, https://mel.np.edu.sg/ is a site that supports SSL v2 only. Using that site and the patch in this bug, I verified that connecting to SSL v2 sites is still possible, when having SSL v2 (explicitly) enabled.
Thanks to Nelson for providing additional background info per email. Thanks for the reviews. Checked in to trunk and 1.8 branch.
Status: NEW → RESOLVED
Closed: 19 years ago
Keywords: fixed1.8.1
Resolution: --- → FIXED
Please see bug 343230 for an enhancement related to this bug.
Blocks: 343230
QA Contact: psm
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: