unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
To: "Perry E. Metzger" <perry@piermont.com>
Cc: Lars Ingebrigtsen <larsi@gnus.org>,
	Paul Eggert <eggert@cs.ucla.edu>,
	Emacs-Devel devel <emacs-devel@gnu.org>,
	Eli Zaretskii <eliz@gnu.org>, Noam Postavsky <npostavs@gmail.com>
Subject: Re: A couple of questions and concerns about Emacs network security
Date: Thu, 5 Jul 2018 16:58:26 +0100	[thread overview]
Message-ID: <CAKDRQS5UanSfxDsDBN_VYPYVir1ipwWFueeWdUvZ+bVWsyv7gA@mail.gmail.com> (raw)
In-Reply-To: <20180705115259.4032dbea@jabberwock.cb.piermont.com>

Ok I think I should let people know what my current plans are to avoid
miscommunications:

1. Certificate pinning - HTTP Public Key Pinning is currently used by
some browsers, but it's problematic. Chrome will remove it in Chrome
69[1] and go full-on Certificate Transparency (CT).

2. NSM has its own kind of certificate pinning, which is basically
reinventing `$gnutls-cli --tofu`. It has a couple of problems, such as
not being able to store multiple fingerprints (Google load balance
between 2 certs signed by 2 different public keys), I have fixed them
in my branch. I'll publish it soon.

3. There are a few security theatrics in NSM ATM, 'paranoid level is
BS. If that level is justified, you can justify turning off your
network card. I have removed it in my branch.

4. Certificate pinning is only a very very very small part of the
entire suite of measures needed to securely deploy TLS on the client.
There are a whole host of cipher suite and TLS extension checks
missing in NSM currently. The current set of best practices RFC is RFC
7525. I have implemented most of the recommendations minus those not
applicable to GnuTLS and some big ones like OCSP and CT.

5. The way `gnutls-min-prime-bits` was handled in whatever that bug
number was was never appropriate. 256-bit default was never a good
idea. I have defaulted it to `nil` in my branch, which tells GnuTLS to
use an appropriate bit length according to the priority string
(generally > 1024). If this breaks anyone's config, they have one of 2
options - 1) manually set `gnutls-min-prime-bits` back to whatever you
were using and keep putting yourself at risk, and/or 2) complaint to
your server's admin.

6. GnuTLS is behind in some features such as CT, and enables a shit
ton of ciphers by default that OpenSSL has disabled. It's so seldomly
used and looked at by researchers that I bet it's full of holes.
Paradoxically, this is also its advantage. It's so seldomly used,
mostly OpenSSL specific attacks don't apply to it. I'm not too
concerned about GnuTLS at the moment.

7. Here's a preview of the latest set of checks in my fix-nsm-branch


(defcustom nsm-tls-checks
  '((nsm-tls-check-verify-cert            . low)
    (nsm-tls-check-same-cert              . medium)
    (nsm-tls-check-version                . medium)
    (nsm-tls-check-compression            . medium)
    (nsm-tls-check-renegotiation-info-ext . medium)
    (nsm-tls-check-null-suite             . medium)
    (nsm-tls-check-cbc-cipher             . high)
    (nsm-tls-check-ecdsa-cbc-cipher       . medium)
    (nsm-tls-check-3des-cipher            . medium)
    (nsm-tls-check-rc4-cipher             . medium)
    (nsm-tls-check-sha1-sig               . medium)
    (nsm-tls-check-md5-sig                . medium)
    (nsm-tls-check-rsa-kx                 . high)
    (nsm-tls-check-dhe-prime-kx           . medium)
    (nsm-tls-check-dhe-kx                 . high)
    (nsm-tls-check-export-kx              . medium)
    (nsm-tls-check-anon-kx                . medium))
  "This variable specifies what TLS connection checks to perform.
It's an alist where the key is the name of the check, and the
value is the minimum security level the check should begin.

Each check function is called with the parameters HOST PORT
STATUS SETTINGS.  HOST is the host domain, PORT is a TCP port
number, STATUS is the peer status returned by
`gnutls-peer-status', and SETTINGS is the persistent and session
settings for the host HOST.  Please refer to the contents of
`nsm-setting-file' for details.  If a problem is found, the check
function is required to return an error message, and nil
otherwise.

See also: `nsm-check-tls-connection', `nsm-save-host-names',
`nsm-settings-file'"
  :version "27.1"
  :group 'nsm
  :type '(repeat (cons (function :tag "Check function")
                       (choice :tag "Level"
                               :value medium
                               (const :tag "Low" low)
                           (const :tag "Medium" medium)
                           (const :tag "High" high)))))

[1]: https://www.chromestatus.com/features/5903385005916160
[2]: https://tools.ietf.org/html/rfc7525

On Thu, Jul 5, 2018 at 4:52 PM, Perry E. Metzger <perry@piermont.com> wrote:
> On Mon, 25 Jun 2018 19:33:49 +0200 Lars Ingebrigtsen <larsi@gnus.org>
> wrote:
>> Jimmy Yuen Ho Wong <wyuenho@gmail.com> writes:
>>
>> > It's all about collisions[1], it's mostly a precaution, as no one
>> > has found an actual collistion for a cert yet, but Google has
>> > found collision for PDF last year [2].
>>
>> Ah, OK, then the SHA1 intermediate check isn't that vital.
>
> It is, actually. It's believed to be straightforward for national
> actors to forge intermediate certificates at this point.
>
>> (I think the PDF collision was a cheat, anyway, since they just
>> generated a lot of binary junk in a non-parsed section of the
>> PDF.  :-) )
>
> One of the rules in this game is attacks get better with time. Not
> that long after the first certificational attacks on MD5, it was
> discovered that parties unknown, generally thought to be nation-state
> actors, had been forging signatures on Microsoft software updates
> using MD5 collisions to enable what they were doing.
>
> I would make sure that SHA-1 defenses are in place.
>
> Perry
> --
> Perry E. Metzger                perry@piermont.com



  reply	other threads:[~2018-07-05 15:58 UTC|newest]

Thread overview: 221+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-22 22:00 A couple of questions and concerns about Emacs network security Jimmy Yuen Ho Wong
2018-06-22 22:43 ` Paul Eggert
2018-06-22 23:21   ` Lars Ingebrigtsen
2018-06-22 23:33     ` Lars Ingebrigtsen
2018-06-23  1:35       ` Jimmy Yuen Ho Wong
2018-06-23 10:23         ` Lars Ingebrigtsen
2018-06-23 10:34           ` Lars Ingebrigtsen
2018-06-23 10:48           ` Jimmy Yuen Ho Wong
2018-06-23 11:32             ` Lars Ingebrigtsen
2018-06-23 11:55               ` Jimmy Yuen Ho Wong
2018-06-23 12:05                 ` Lars Ingebrigtsen
2018-06-23 12:13                   ` Eli Zaretskii
2018-06-23 12:15                     ` Lars Ingebrigtsen
2018-06-23 12:26                       ` Eli Zaretskii
2018-07-07  9:57                         ` Eli Zaretskii
2018-07-08 14:01                           ` Lars Ingebrigtsen
2018-07-08 14:53                             ` Eli Zaretskii
2018-07-08 15:06                               ` Lars Ingebrigtsen
2018-07-08 15:23                                 ` Eli Zaretskii
2018-06-23 12:45                   ` Jimmy Yuen Ho Wong
2018-06-24 12:53                     ` Lars Ingebrigtsen
2018-07-05 13:33           ` Perry E. Metzger
2018-07-05 13:49             ` Eli Zaretskii
2018-07-05 15:29               ` Perry E. Metzger
2018-07-05 18:55                 ` Eli Zaretskii
2018-07-05 19:26                   ` Paul Eggert
2018-07-05 19:35                     ` Eli Zaretskii
2018-07-05 20:01                       ` Eli Zaretskii
2018-07-06 17:03                       ` Paul Eggert
2018-07-06 17:36                         ` Eli Zaretskii
2018-07-06 18:15                           ` Paul Eggert
2018-07-07  7:04                             ` Eli Zaretskii
2018-07-07 10:30                               ` Jimmy Yuen Ho Wong
2018-07-07 11:35                                 ` Eli Zaretskii
2018-07-05 20:46                     ` Perry E. Metzger
2018-07-05 20:45                   ` Perry E. Metzger
2018-07-06  6:29                     ` Eli Zaretskii
2018-07-06 23:08                       ` Richard Stallman
2018-07-07 12:18                         ` Perry E. Metzger
2018-07-07 13:19                           ` Eli Zaretskii
2018-07-07 13:46                             ` Perry E. Metzger
2018-07-07 14:17                               ` Eli Zaretskii
2018-07-07 15:25                                 ` Perry E. Metzger
2018-07-07 16:08                                   ` Eli Zaretskii
2018-07-07 23:46                                   ` Richard Stallman
2018-07-08  0:25                                     ` Perry E. Metzger
2018-07-08  2:44                                     ` Eli Zaretskii
2018-07-08 22:55                                       ` Richard Stallman
2018-07-07 14:32                               ` Jimmy Yuen Ho Wong
2018-07-07 15:15                                 ` Perry E. Metzger
2018-07-07 15:39                                   ` Jimmy Yuen Ho Wong
2018-07-07 18:16                                     ` Paul Eggert
2018-07-07 23:03                                       ` Jimmy Yuen Ho Wong
2018-07-07 15:57                                   ` Eli Zaretskii
2018-07-07 23:45                           ` Richard Stallman
2018-07-05 13:50             ` Jimmy Yuen Ho Wong
2018-07-05 15:30               ` Perry E. Metzger
2018-07-05 15:36                 ` Stefan Monnier
2018-07-05 16:05                   ` Perry E. Metzger
2018-07-05 22:44             ` Richard Stallman
2018-07-06  6:01               ` Eli Zaretskii
2018-06-23  0:00     ` Paul Eggert
2018-06-23  0:10       ` Stefan Monnier
2018-06-23  9:57         ` Lars Ingebrigtsen
2018-06-23  2:17   ` Noam Postavsky
2018-06-23  6:40     ` Eli Zaretskii
2018-06-23 10:21       ` Jimmy Yuen Ho Wong
2018-06-23 11:26         ` Eli Zaretskii
2018-06-23 22:28       ` Noam Postavsky
2018-06-24 14:23         ` Eli Zaretskii
2018-06-24 14:34           ` Lars Ingebrigtsen
2018-06-24 14:48             ` Noam Postavsky
2018-06-24 15:30               ` Eli Zaretskii
2018-06-24 16:57                 ` Lars Ingebrigtsen
2018-06-24 17:10                   ` Jimmy Yuen Ho Wong
2018-06-24 17:39                     ` Lars Ingebrigtsen
2018-06-24 18:29                       ` Jimmy Yuen Ho Wong
2018-06-24 18:51                         ` Eli Zaretskii
2018-06-24 21:30                         ` Jimmy Yuen Ho Wong
2018-06-25  1:25                           ` Van L
2018-06-25  2:28                             ` Jimmy Yuen Ho Wong
2018-06-25  2:38                               ` Jimmy Yuen Ho Wong
2018-06-25 17:16                           ` Eli Zaretskii
2018-06-25 17:25                             ` Jimmy Yuen Ho Wong
2018-06-25 18:06                             ` Jimmy Yuen Ho Wong
2018-06-24 20:58             ` Lars Ingebrigtsen
2018-06-24 21:07               ` Lars Ingebrigtsen
2018-06-24 22:47                 ` Jimmy Yuen Ho Wong
2018-06-25  0:04                   ` Lars Ingebrigtsen
2018-06-25  0:33                     ` Noam Postavsky
2018-06-25  0:36                       ` Lars Ingebrigtsen
2018-06-24 21:28               ` Noam Postavsky
2018-06-24 21:57                 ` Lars Ingebrigtsen
2018-06-25 16:06               ` Eli Zaretskii
2018-06-25 16:29                 ` Jimmy Yuen Ho Wong
2018-06-25 16:58                   ` Lars Ingebrigtsen
2018-06-25 17:08                     ` Jimmy Yuen Ho Wong
2018-06-25 17:18                       ` Eli Zaretskii
2018-06-30 17:40                         ` Jimmy Yuen Ho Wong
2018-06-30 18:04                           ` Eli Zaretskii
2018-06-25 17:09                     ` Eli Zaretskii
2018-06-25 17:17                   ` Eli Zaretskii
2018-06-25 16:55                 ` Lars Ingebrigtsen
2018-06-25 17:06                   ` Eli Zaretskii
2018-06-25 17:20                   ` Jimmy Yuen Ho Wong
2018-06-25 17:33                     ` Lars Ingebrigtsen
2018-07-05 15:52                       ` Perry E. Metzger
2018-07-05 15:58                         ` Jimmy Yuen Ho Wong [this message]
2018-07-05 16:36                           ` Perry E. Metzger
2018-07-05 16:51                             ` Jimmy Yuen Ho Wong
2018-07-05 18:25                               ` Perry E. Metzger
2018-07-05 18:32                           ` Eli Zaretskii
2018-07-05 18:43                         ` Noam Postavsky
2018-07-05 20:31                           ` Perry E. Metzger
2018-07-08 11:43                   ` Lars Ingebrigtsen
2018-07-08 14:48                     ` Eli Zaretskii
2018-07-06  9:01                 ` Eli Zaretskii
2018-07-05 15:33       ` Perry E. Metzger
2018-07-05 18:58         ` Eli Zaretskii
2018-07-06  8:36           ` Robert Pluim
2018-07-06  8:49             ` Eli Zaretskii
2018-07-06  9:35               ` Robert Pluim
2018-07-06 12:32                 ` Eli Zaretskii
2018-07-06 12:52                   ` Robert Pluim
2018-07-06 13:31                     ` Eli Zaretskii
2018-07-06  9:45               ` Stephen Berman
2018-07-06 12:41                 ` Eli Zaretskii
2018-07-06 13:50                   ` Stephen Berman
2018-07-07  7:15                     ` martin rudalics
2018-07-07 12:22                       ` Stephen Berman
2018-07-07 13:22                         ` Eli Zaretskii
2018-07-07 13:47                           ` Stephen Berman
2018-07-08  8:11                         ` martin rudalics
2018-07-05 15:10     ` Perry E. Metzger
2018-06-23  6:45   ` Eli Zaretskii
2018-06-23 10:34     ` Jimmy Yuen Ho Wong
2018-07-05 15:58     ` Perry E. Metzger
2018-07-05 19:20       ` Paul Eggert
2018-07-05 20:46         ` Perry E. Metzger
2018-07-05 22:44       ` Richard Stallman
2018-07-06  6:42         ` Jimmy Yuen Ho Wong
2018-07-06  8:16           ` Eli Zaretskii
2018-07-06  9:28             ` Robert Pluim
2018-07-06 13:18               ` Eli Zaretskii
2018-07-06 18:06               ` Jimmy Yuen Ho Wong
2018-07-06 18:48                 ` Perry E. Metzger
2018-07-07  7:02                 ` Eli Zaretskii
2018-07-07  9:36                 ` Robert Pluim
2018-07-07  9:59                   ` Jimmy Yuen Ho Wong
2018-07-07 10:01                     ` Jimmy Yuen Ho Wong
2018-07-07 21:44                     ` Ted Zlatanov
2018-07-07 21:59                       ` Paul Eggert
2018-07-07 22:11                         ` Jimmy Yuen Ho Wong
2018-07-09 23:09                           ` Ted Zlatanov
2018-07-10 18:20                             ` Jimmy Yuen Ho Wong
2018-07-10 18:36                               ` Eli Zaretskii
2018-07-10 18:40                                 ` Jimmy Yuen Ho Wong
2018-07-10 18:58                                   ` Eli Zaretskii
2018-07-13 20:50                                     ` Jimmy Yuen Ho Wong
2018-07-14  6:37                                       ` Eli Zaretskii
2018-07-14 17:18                                         ` Jimmy Yuen Ho Wong
2018-07-14 18:25                                           ` Eli Zaretskii
2018-07-07 22:13                       ` Jimmy Yuen Ho Wong
2018-07-09 13:09                     ` Robert Pluim
2018-07-09 13:33                       ` Jimmy Yuen Ho Wong
2018-07-09 13:43                         ` Lars Ingebrigtsen
2018-07-09 13:49                           ` Jimmy Yuen Ho Wong
2018-07-09 17:15                           ` Eli Zaretskii
2018-07-09 17:24                             ` Jimmy Yuen Ho Wong
2018-07-10  0:06                               ` Perry E. Metzger
2018-07-10  0:03                           ` Perry E. Metzger
2018-07-10  0:02                         ` Perry E. Metzger
2018-07-06 13:03             ` Jimmy Yuen Ho Wong
2018-07-06 14:06               ` Eli Zaretskii
2018-07-06 21:24                 ` Jimmy Yuen Ho Wong
2018-07-07  7:55                   ` Eli Zaretskii
2018-07-08 14:06           ` Lars Ingebrigtsen
2018-07-08 14:54             ` Jimmy Yuen Ho Wong
2018-07-08 15:13               ` Lars Ingebrigtsen
2018-07-08 16:56                 ` Jimmy Yuen Ho Wong
2018-07-08 17:06                   ` Paul Eggert
2018-07-08 17:25                     ` Jimmy Yuen Ho Wong
2018-07-08 17:53                       ` Lars Ingebrigtsen
2018-07-08 18:54                         ` Jimmy Yuen Ho Wong
2018-07-08 19:30                           ` Lars Ingebrigtsen
2018-07-08 19:32                             ` Jimmy Yuen Ho Wong
2018-07-08 22:56                     ` Richard Stallman
2018-07-08 17:47                   ` Lars Ingebrigtsen
2018-07-08 18:10                     ` Eli Zaretskii
2018-07-08 18:12                       ` Jimmy Yuen Ho Wong
2018-07-08 18:26                         ` Eli Zaretskii
2018-07-08 18:39                           ` Lars Ingebrigtsen
2018-07-08 18:53                             ` Eli Zaretskii
2018-07-08 19:22                               ` Jimmy Yuen Ho Wong
2018-07-09 16:57                                 ` Eli Zaretskii
2018-07-09 17:17                                   ` Jimmy Yuen Ho Wong
2018-07-09 17:36                                   ` Jimmy Yuen Ho Wong
2018-07-09 17:38                                     ` Jimmy Yuen Ho Wong
2018-07-09 18:04                                       ` Eli Zaretskii
2018-07-09 18:10                                         ` Jimmy Yuen Ho Wong
2018-07-09 18:33                                           ` Eli Zaretskii
2018-07-09 18:47                                             ` Jimmy Yuen Ho Wong
2018-07-10 16:10                                               ` Eli Zaretskii
2018-07-08 19:28                               ` Lars Ingebrigtsen
2018-07-08 19:31                                 ` Jimmy Yuen Ho Wong
2018-07-09 17:04                                   ` Eli Zaretskii
2018-07-09 17:02                                 ` Eli Zaretskii
2018-07-09 17:09                                   ` Jimmy Yuen Ho Wong
2018-07-09 15:29                               ` Jimmy Yuen Ho Wong
2018-07-09 16:35                                 ` Robert Pluim
2018-07-08 18:31                     ` Jimmy Yuen Ho Wong
2018-07-08 18:42                       ` Lars Ingebrigtsen
2018-07-08 19:28                         ` Jimmy Yuen Ho Wong
2018-07-08 17:53                   ` Eli Zaretskii
2018-07-08 19:16                     ` Jimmy Yuen Ho Wong
2018-07-08 14:55             ` Eli Zaretskii
2018-07-08 14:58               ` Jimmy Yuen Ho Wong
2018-07-08 15:18                 ` Eli Zaretskii
2018-07-08 15:16               ` Lars Ingebrigtsen
2018-07-06 16:53         ` Paul Eggert
2018-07-06 23:11           ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAKDRQS5UanSfxDsDBN_VYPYVir1ipwWFueeWdUvZ+bVWsyv7gA@mail.gmail.com \
    --to=wyuenho@gmail.com \
    --cc=eggert@cs.ucla.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.org \
    --cc=npostavs@gmail.com \
    --cc=perry@piermont.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).