Skip to content
This repository was archived by the owner on Apr 22, 2023. It is now read-only.

Commit 226c986

Browse files
committed
doc: clarify poodle mitigation
1 parent b259f24 commit 226c986

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

doc/api/tls.markdown

+20
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,26 @@ If you wish to enable SSLv2 or SSLv3, run node with the `--enable-ssl2` or
4848
`--enable-ssl3` flag respectively. In future versions of Node.js SSLv2 and
4949
SSLv3 will not be compiled in by default.
5050

51+
This means that without having one or both of those flags set on the command
52+
line, Node.js will **throw** if you explicitly set the `secureProtocol` to
53+
`SSLv3_method` or similar. However the default protocol method Node.js uses is
54+
`SSLv23_method` which would be more accurately named `AutoNegotiate_method`.
55+
This method will try and negotiate from the highest level down to whatever the
56+
client supports. To provide a secure default, Node.js (since v0.10.33)
57+
explicitly disables the use of SSLv3 and SSLv2 by setting the `secureOptions`
58+
to be `SSL_OP_NO_SSLv3|SSL_OP_NO_SSLv2` (again, unless you have passed
59+
`--enable-ssl3` or `--enable-ssl2`).
60+
61+
The ramifications of this behavior change:
62+
63+
* If your application is behaving as a secure server, clients who are `SSLv3`
64+
only will now not be able to appropriately negotiate a connection and will be
65+
refused. In this case your server will emit a `clientError` event. The error
66+
message will include `'wrong version number'`.
67+
* If your application is behaving as a secure client and communicating with a
68+
server that doesn't support methods more secure than SSLv3 then your connection
69+
won't be able to negotiate and will fail. In this case your client will emit a
70+
an `error` event. The error message will include `'wrong version number'`.
5171

5272
## Client-initiated renegotiation attack mitigation
5373

0 commit comments

Comments
 (0)