Skip to content

Commit

Permalink
Disable EXPORT and LOW SSLv3+ ciphers by default
Browse files Browse the repository at this point in the history
Reviewed-by: Emilia Käsper <emilia@openssl.org>
  • Loading branch information
Viktor Dukhovni authored and mattcaswell committed Mar 1, 2016
1 parent a82cfd6 commit abd5d8f
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 9 deletions.
5 changes: 5 additions & 0 deletions CHANGES
Expand Up @@ -4,6 +4,11 @@

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

* Disable weak ciphers in SSLv3 and up in default builds of OpenSSL.
Builds that are not configured with "enable-weak-ssl-ciphers" will not
provide any "EXPORT" or "LOW" strength ciphers.
[Viktor Dukhovni]

* Disable SSLv2 default build, default negotiation and weak ciphers. SSLv2
is by default disabled at build-time. Builds that are not configured with
"enable-ssl2" will not support SSLv2. Even if "enable-ssl2" is used,
Expand Down
5 changes: 5 additions & 0 deletions Configure
Expand Up @@ -58,6 +58,10 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta
# library and will be loaded in run-time by the OpenSSL library.
# sctp include SCTP support
# 386 generate 80386 code
# enable-weak-ssl-ciphers
# Enable EXPORT and LOW SSLv3 ciphers that are disabled by
# default. Note, weak SSLv2 ciphers are unconditionally
# disabled.
# no-sse2 disables IA-32 SSE2 code, above option implies no-sse2
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
# -<xxx> +<xxx> compiler options are passed through
Expand Down Expand Up @@ -729,6 +733,7 @@ my %disabled = ( # "what" => "comment" [or special keyword "experimental
"ssl2" => "default",
"store" => "experimental",
"unit-test" => "default",
"weak-ssl-ciphers" => "default",
"zlib" => "default",
"zlib-dynamic" => "default"
);
Expand Down
1 change: 1 addition & 0 deletions NEWS
Expand Up @@ -7,6 +7,7 @@

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

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

Major changes between OpenSSL 1.0.1q and OpenSSL 1.0.1r [28 Jan 2016]
Expand Down
30 changes: 21 additions & 9 deletions doc/apps/ciphers.pod
Expand Up @@ -136,34 +136,46 @@ than 128 bits, and some cipher suites with 128-bit keys.

=item B<LOW>

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

=item B<EXP>, B<EXPORT>

export encryption algorithms. Including 40 and 56 bits algorithms.
Export strength encryption algorithms. Including 40 and 56 bits algorithms.
As of OpenSSL 1.0.1s, these are disabled in default builds.

=item B<EXPORT40>

40 bit export encryption algorithms
40-bit export encryption algorithms
As of OpenSSL 1.0.1s, these are disabled in default builds.

=item B<EXPORT56>

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

=item B<eNULL>, B<NULL>

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

=item B<aNULL>

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

=item B<kRSA>, B<RSA>

Expand Down

0 comments on commit abd5d8f

Please sign in to comment.