diff options
| author | Stefan Kangas | 2023-10-24 16:20:42 +0200 |
|---|---|---|
| committer | Stefan Kangas | 2023-10-24 16:41:10 +0200 |
| commit | dbcaaf375f285a42ff1a81c313a454264374cbdb (patch) | |
| tree | 830680dcf5105af629cf10b13565d81fd001dbd5 | |
| parent | a59d1da0dde890da59dc007d39efb1a0892ebbb6 (diff) | |
| download | emacs-dbcaaf375f285a42ff1a81c313a454264374cbdb.tar.gz emacs-dbcaaf375f285a42ff1a81c313a454264374cbdb.zip | |
Warn about 3DES when network-security-level is medium
* lisp/net/nsm.el (network-security-protocol-checks): Bump
deprecated and insecure '3des-cipher' to 'medium'.
* doc/emacs/misc.texi (Network Security): Document the above change.
Ref: https://nvd.nist.gov/vuln/detail/CVE-2016-2183
| -rw-r--r-- | doc/emacs/misc.texi | 12 | ||||
| -rw-r--r-- | etc/NEWS | 6 | ||||
| -rw-r--r-- | lisp/net/nsm.el | 7 |
3 files changed, 16 insertions, 9 deletions
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index a05b7f6c6ea..d7168fa1ca0 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi | |||
| @@ -399,18 +399,18 @@ vulnerable to a variety of attacks, and you may want to avoid using | |||
| 399 | these if what you're doing requires higher security. (This is the | 399 | these if what you're doing requires higher security. (This is the |
| 400 | @code{ssl} check in @code{network-security-protocol-checks}). | 400 | @code{ssl} check in @code{network-security-protocol-checks}). |
| 401 | 401 | ||
| 402 | @item Triple DES (or @acronym{3DES}) cipher | ||
| 403 | The @acronym{3DES} stream cipher provides at most 112 bits of | ||
| 404 | effective security, and a major security vulnerability in it was | ||
| 405 | disclosed in 2016 (CVE-2016-2183). It has been deprecated by NIST in | ||
| 406 | all applications from late 2023 onwards. (This is the | ||
| 407 | @code{3des-cipher} check in @code{network-security-protocol-checks}). | ||
| 402 | @end table | 408 | @end table |
| 403 | 409 | ||
| 404 | If @code{network-security-level} is @code{high}, the following checks | 410 | If @code{network-security-level} is @code{high}, the following checks |
| 405 | will be made, in addition to the above: | 411 | will be made, in addition to the above: |
| 406 | 412 | ||
| 407 | @table @asis | 413 | @table @asis |
| 408 | @item @acronym{3DES} cipher | ||
| 409 | The @acronym{3DES} stream cipher provides at most 112 bits of | ||
| 410 | effective security, which is considered to be towards the low end. | ||
| 411 | (This is the @code{3des} check in | ||
| 412 | @code{network-security-protocol-checks}). | ||
| 413 | |||
| 414 | @item a validated certificate changes the public key | 414 | @item a validated certificate changes the public key |
| 415 | Servers change their keys occasionally, and that is normally nothing | 415 | Servers change their keys occasionally, and that is normally nothing |
| 416 | to be concerned about. However, if you are worried that your network | 416 | to be concerned about. However, if you are worried that your network |
| @@ -62,6 +62,12 @@ more details. | |||
| 62 | 62 | ||
| 63 | ** Emacs now supports Unicode Standard version 15.1. | 63 | ** Emacs now supports Unicode Standard version 15.1. |
| 64 | 64 | ||
| 65 | ** The Network Security Manager now warns about 3DES by default. | ||
| 66 | This cypher is no longer recommended owing to a major vulnerability | ||
| 67 | disclosed in 2016, and its small 112 bit key size. Emacs now warns | ||
| 68 | about its use also when 'network-security-level' is set to 'medium' | ||
| 69 | (the default). See 'network-security-protocol-checks'. | ||
| 70 | |||
| 65 | ** Help | 71 | ** Help |
| 66 | 72 | ||
| 67 | *** 'describe-function' shows function inferred type when available. | 73 | *** 'describe-function' shows function inferred type when available. |
diff --git a/lisp/net/nsm.el b/lisp/net/nsm.el index 8558a1fd5d1..478a2998830 100644 --- a/lisp/net/nsm.el +++ b/lisp/net/nsm.el | |||
| @@ -149,10 +149,11 @@ unencrypted." | |||
| 149 | (dhe-prime-kx medium) | 149 | (dhe-prime-kx medium) |
| 150 | (sha1-sig medium) | 150 | (sha1-sig medium) |
| 151 | (ecdsa-cbc-cipher medium) | 151 | (ecdsa-cbc-cipher medium) |
| 152 | ;; Deprecated by NIST from 2016/2023 (see also CVE-2016-2183). | ||
| 153 | (3des-cipher medium) | ||
| 152 | ;; Towards TLS 1.3 | 154 | ;; Towards TLS 1.3 |
| 153 | (dhe-kx high) | 155 | (dhe-kx high) |
| 154 | (rsa-kx high) | 156 | (rsa-kx high) |
| 155 | (3des-cipher high) | ||
| 156 | (cbc-cipher high)) | 157 | (cbc-cipher high)) |
| 157 | "This variable specifies what TLS connection checks to perform. | 158 | "This variable specifies what TLS connection checks to perform. |
| 158 | It's an alist where the key is the name of the check, and the | 159 | It's an alist where the key is the name of the check, and the |
| @@ -169,13 +170,13 @@ otherwise. | |||
| 169 | 170 | ||
| 170 | See also: `nsm-check-tls-connection', `nsm-save-host-names', | 171 | See also: `nsm-check-tls-connection', `nsm-save-host-names', |
| 171 | `nsm-settings-file'" | 172 | `nsm-settings-file'" |
| 172 | :version "27.1" | ||
| 173 | :type '(repeat (list (symbol :tag "Check function") | 173 | :type '(repeat (list (symbol :tag "Check function") |
| 174 | (choice :tag "Level" | 174 | (choice :tag "Level" |
| 175 | :value medium | 175 | :value medium |
| 176 | (const :tag "Low" low) | 176 | (const :tag "Low" low) |
| 177 | (const :tag "Medium" medium) | 177 | (const :tag "Medium" medium) |
| 178 | (const :tag "High" high))))) | 178 | (const :tag "High" high)))) |
| 179 | :version "30.1") | ||
| 179 | 180 | ||
| 180 | (defun nsm-save-fingerprint-maybe (host port status &rest _) | 181 | (defun nsm-save-fingerprint-maybe (host port status &rest _) |
| 181 | "Save the certificate's fingerprint. | 182 | "Save the certificate's fingerprint. |