Skip to content

Commit f342829

Browse files
authored
Clarify use of static ciphers in readme files (wolfSSL#9283)
embhorn : Clarify use of static ciphers in readme files
1 parent 4f0836e commit f342829

File tree

2 files changed

+40
-30
lines changed

2 files changed

+40
-30
lines changed

README

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,24 +29,29 @@ of the wolfSSL manual. (https://www.wolfssl.com/docs/wolfssl-manual/ch4/)
2929
*** Notes, Please read ***
3030

3131
Note 1)
32-
wolfSSL as of 3.6.6 no longer enables SSLv3 by default. wolfSSL also no longer
33-
supports static key cipher suites with PSK, RSA, or ECDH. This means if you
34-
plan to use TLS cipher suites you must enable DH (DH is on by default), or
35-
enable ECC (ECC is on by default), or you must enable static key cipher suites
36-
with
37-
38-
WOLFSSL_STATIC_DH
39-
WOLFSSL_STATIC_RSA
40-
or
41-
WOLFSSL_STATIC_PSK
42-
43-
though static key cipher suites are deprecated and will be removed from future
44-
versions of TLS. They also lower your security by removing PFS.
45-
46-
When compiling ssl.c, wolfSSL will now issue a compiler error if no cipher
32+
wolfSSL as of 3.6.6 no longer enables SSLv3 by default. By default, wolfSSL
33+
disables static key cipher suites that use PSK, RSA, or ECDH without ephemeral
34+
key exchange. Instead, wolfSSL enables cipher suites that provide perfect
35+
forward secrecy (PFS) using ephemeral Diffie-Hellman (DH) or Elliptic Curve
36+
(ECC) key exchange, both of which are enabled by default.
37+
38+
If you need to support legacy systems that require static key cipher suites,
39+
you can enable them using one or more of these defines:
40+
41+
WOLFSSL_STATIC_DH
42+
WOLFSSL_STATIC_RSA
43+
WOLFSSL_STATIC_PSK
44+
45+
Important: Static key cipher suites reduce security by eliminating perfect
46+
forward secrecy. These cipher suites reuse the same long-term private key for
47+
all session key exchanges. In contrast, PFS-enabled cipher suites (the wolfSSL
48+
default) generate a new ephemeral key for each session, ensuring that
49+
compromising a long-term key cannot decrypt past sessions.
50+
51+
When compiling `ssl.c`, wolfSSL will now issue a compiler error if no cipher
4752
suites are available. You can remove this error by defining
48-
WOLFSSL_ALLOW_NO_SUITES in the event that you desire that, i.e., you're not
49-
using TLS cipher suites.
53+
`WOLFSSL_ALLOW_NO_SUITES` in the event that you desire that, i.e., you're
54+
not using TLS cipher suites.
5055

5156
Note 2)
5257
wolfSSL takes a different approach to certificate verification than OpenSSL

README.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,24 @@ of the wolfSSL manual.
3333
## Notes, Please Read
3434

3535
### Note 1
36-
wolfSSL as of 3.6.6 no longer enables SSLv3 by default. wolfSSL also no longer
37-
supports static key cipher suites with PSK, RSA, or ECDH. This means if you
38-
plan to use TLS cipher suites you must enable DH (DH is on by default), or
39-
enable ECC (ECC is on by default), or you must enable static key cipher suites
40-
with one or more of the following defines:
41-
42-
```
43-
WOLFSSL_STATIC_DH
44-
WOLFSSL_STATIC_RSA
45-
WOLFSSL_STATIC_PSK
46-
```
47-
Though static key cipher suites are deprecated and will be removed from future
48-
versions of TLS. They also lower your security by removing PFS.
36+
wolfSSL as of 3.6.6 no longer enables SSLv3 by default. By default, wolfSSL
37+
disables static key cipher suites that use PSK, RSA, or ECDH without ephemeral
38+
key exchange. Instead, wolfSSL enables cipher suites that provide perfect
39+
forward secrecy (PFS) using ephemeral Diffie-Hellman (DH) or Elliptic Curve
40+
(ECC) key exchange, both of which are enabled by default.
41+
42+
If you need to support legacy systems that require static key cipher suites,
43+
you can enable them using one or more of these defines:
44+
45+
* `WOLFSSL_STATIC_DH`
46+
* `WOLFSSL_STATIC_RSA`
47+
* `WOLFSSL_STATIC_PSK`
48+
49+
**Important:** Static key cipher suites reduce security by eliminating perfect
50+
forward secrecy. These cipher suites reuse the same long-term private key for
51+
all session key exchanges. In contrast, PFS-enabled cipher suites (the wolfSSL
52+
default) generate a new ephemeral key for each session, ensuring that
53+
compromising a long-term key cannot decrypt past sessions.
4954

5055
When compiling `ssl.c`, wolfSSL will now issue a compiler error if no cipher
5156
suites are available. You can remove this error by defining

0 commit comments

Comments
 (0)