Skip to content

Commit abd5d8f

Browse files
Viktor Dukhovnimattcaswell
authored andcommitted
Disable EXPORT and LOW SSLv3+ ciphers by default
Reviewed-by: Emilia Käsper <[email protected]>
1 parent a82cfd6 commit abd5d8f

5 files changed

Lines changed: 86 additions & 9 deletions

File tree

CHANGES

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
Changes between 1.0.1r and 1.0.1s [xx XXX xxxx]
66

7+
* Disable weak ciphers in SSLv3 and up in default builds of OpenSSL.
8+
Builds that are not configured with "enable-weak-ssl-ciphers" will not
9+
provide any "EXPORT" or "LOW" strength ciphers.
10+
[Viktor Dukhovni]
11+
712
* Disable SSLv2 default build, default negotiation and weak ciphers. SSLv2
813
is by default disabled at build-time. Builds that are not configured with
914
"enable-ssl2" will not support SSLv2. Even if "enable-ssl2" is used,

Configure

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta
5858
# library and will be loaded in run-time by the OpenSSL library.
5959
# sctp include SCTP support
6060
# 386 generate 80386 code
61+
# enable-weak-ssl-ciphers
62+
# Enable EXPORT and LOW SSLv3 ciphers that are disabled by
63+
# default. Note, weak SSLv2 ciphers are unconditionally
64+
# disabled.
6165
# no-sse2 disables IA-32 SSE2 code, above option implies no-sse2
6266
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
6367
# -<xxx> +<xxx> compiler options are passed through
@@ -729,6 +733,7 @@ my %disabled = ( # "what" => "comment" [or special keyword "experimental
729733
"ssl2" => "default",
730734
"store" => "experimental",
731735
"unit-test" => "default",
736+
"weak-ssl-ciphers" => "default",
732737
"zlib" => "default",
733738
"zlib-dynamic" => "default"
734739
);

NEWS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
Major changes between OpenSSL 1.0.1r and OpenSSL 1.0.1s [under development]
99

10+
o Disable weak ciphers in SSLv3 and up in default builds of OpenSSL.
1011
o Disable SSLv2 default build, default negotiation and weak ciphers.
1112

1213
Major changes between OpenSSL 1.0.1q and OpenSSL 1.0.1r [28 Jan 2016]

doc/apps/ciphers.pod

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -136,34 +136,46 @@ than 128 bits, and some cipher suites with 128-bit keys.
136136

137137
=item B<LOW>
138138

139-
"low" encryption cipher suites, currently those using 64 or 56 bit encryption algorithms
140-
but excluding export cipher suites.
139+
Low strength encryption cipher suites, currently those using 64 or 56 bit
140+
encryption algorithms but excluding export cipher suites.
141+
As of OpenSSL 1.0.1s, these are disabled in default builds.
141142

142143
=item B<EXP>, B<EXPORT>
143144

144-
export encryption algorithms. Including 40 and 56 bits algorithms.
145+
Export strength encryption algorithms. Including 40 and 56 bits algorithms.
146+
As of OpenSSL 1.0.1s, these are disabled in default builds.
145147

146148
=item B<EXPORT40>
147149

148-
40 bit export encryption algorithms
150+
40-bit export encryption algorithms
151+
As of OpenSSL 1.0.1s, these are disabled in default builds.
149152

150153
=item B<EXPORT56>
151154

152-
56 bit export encryption algorithms. In OpenSSL 0.9.8c and later the set of
155+
56-bit export encryption algorithms. In OpenSSL 0.9.8c and later the set of
153156
56 bit export ciphers is empty unless OpenSSL has been explicitly configured
154157
with support for experimental ciphers.
158+
As of OpenSSL 1.0.1s, these are disabled in default builds.
155159

156160
=item B<eNULL>, B<NULL>
157161

158-
the "NULL" ciphers that is those offering no encryption. Because these offer no
159-
encryption at all and are a security risk they are disabled unless explicitly
160-
included.
162+
The "NULL" ciphers that is those offering no encryption. Because these offer no
163+
encryption at all and are a security risk they are not enabled via either the
164+
B<DEFAULT> or B<ALL> cipher strings.
165+
Be careful when building cipherlists out of lower-level primitives such as
166+
B<kRSA> or B<aECDSA> as these do overlap with the B<eNULL> ciphers.
167+
When in doubt, include B<!eNULL> in your cipherlist.
161168

162169
=item B<aNULL>
163170

164-
the cipher suites offering no authentication. This is currently the anonymous
171+
The cipher suites offering no authentication. This is currently the anonymous
165172
DH algorithms and anonymous ECDH algorithms. These cipher suites are vulnerable
166173
to a "man in the middle" attack and so their use is normally discouraged.
174+
These are excluded from the B<DEFAULT> ciphers, but included in the B<ALL>
175+
ciphers.
176+
Be careful when building cipherlists out of lower-level primitives such as
177+
B<kDHE> or B<AES> as these do overlap with the B<aNULL> ciphers.
178+
When in doubt, include B<!aNULL> in your cipherlist.
167179

168180
=item B<kRSA>, B<RSA>
169181

0 commit comments

Comments
 (0)