Re: On email and web security

Doug Barton <> Wed, 13 January 2016 06:33 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 6C9661A1DBE for <>; Tue, 12 Jan 2016 22:33:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.003
X-Spam-Status: No, score=-2.003 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id YvrZovepbAxG for <>; Tue, 12 Jan 2016 22:33:40 -0800 (PST)
Received: from ( [IPv6:2607:f2f8:ab14::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id AFEBC1A1DBC for <>; Tue, 12 Jan 2016 22:33:40 -0800 (PST)
Received: from [IPv6:2001:4830:1a00:8056:c81f:f662:7a0c:c015] (unknown [IPv6:2001:4830:1a00:8056:c81f:f662:7a0c:c015]) by (Postfix) with ESMTPSA id 137EC39D07; Wed, 13 Jan 2016 06:33:39 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=dkim; t=1452666820; bh=v//dNsAB2Kf4p0xSyJ8Oyg3qVunnsiLNj5WB9qgtNNQ=; h=Subject:To:References:Cc:From:Date:In-Reply-To; b=LZ7/cZoUKlbZXjoV4u+3ehzeqLYJRZ1JYZOqeZ391skIBhHWy/XiKRau8cy+B1Pzr CaW5e3UWzTVNzUUQ9qJS4VNh+8hMlm3iamDJ5VH+W6JP3Ysvvd4HOS6ExtsU33JYXK YWOwPr4EiX+kwOaoh6MV/t1IZ4Y0bJ0sMwixd0q8=
Subject: Re: On email and web security
To: Phillip Hallam-Baker <>
References: <> <> <> <> <> <> <>
From: Doug Barton <>
Openpgp: id=E3520E149D053533C33A67DB5CC686F11A1ABC84
X-Enigmail-Draft-Status: N1110
Message-ID: <>
Date: Tue, 12 Jan 2016 22:33:37 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <>
Cc: IETF Discussion Mailing List <>
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: IETF-Discussion <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 13 Jan 2016 06:33:42 -0000

On 01/12/2016 06:27 PM, Phillip Hallam-Baker wrote:
> On Tue, Jan 12, 2016 at 8:32 PM, Doug Barton <> wrote:
>> On 01/02/2016 09:13 AM, Phillip Hallam-Baker wrote:
>>> On Sat, Jan 2, 2016 at 2:25 AM,  <> wrote:
>>>> "If Alice wants to encrypt the message for a group of people, she has to
>>>> encrypt the message for every member of the group."
>>>> really? not encrypt the message to a random key, then encrypt that key
>>>> separately to each member? much less processing...
>>> That is how it is done under the covers, yes. But that is the sort of
>>> optimization that I assume everyone knows.
>>> With standard S/MIME or PGP, the final message has a decryption blob
>>> for every recipient. So if you are sending to the IETF list, there are
>>> three consequences:
>>> 1) The sender has to know the entire recipient list
>>> 2) Every message sent reveals the entire recipient list
>> Not necessarily ... there are ways to encrypt a message without revealing
>> the encryption keys that it was encrypted to. They are slightly messier for
>> each list member to decrypt if they have multiple keys, but for users who
>> only have single keys they are actually quite painless.
> Not without modifying the specs and the apps you can't. If you are
> going to do that then proxy recryption does exactly what you want.

It's in GnuPG for years now:


Do  not  put the recipient key IDs into encrypted messages. This
helps to hide the receivers of the  message  and  is  a  limited
countermeasure against traffic analysis. ([Using a little social
engineering anyone who is able to decrypt the message can  check
whether  one  of  the other recipients is the one he suspects.])
On the receiving side, it may slow down the  decryption  process
because  all  available  secret keys must be tried.

There is another option as well that works similarly, but for single 

>>> 3) The recipient list cannot be expanded after the message is sent
>> That's no worse than current mailing list software.
>>> Using the recryption approach, the sender only encrypts the message
>>> once, to the key corresponding to the group (or security label if you
>>> want to think of it that way). So messages don't disclose anything
>>> about the other list members.
>>> This isn't just better security, it is a lot easier to implement
>>> because senders don't need extraneous information. It is also more
>>> manageable because a member added to the list after the fact can read
>>> all the messages in the archive.
>> Doesn't this require each member to have the group's private key so that
>> they can decrypt the messages?
> No, each user has their own private key. It is supplied by the group
> admin when they subscribed or it is encrypted under their public key
> and sent out with each message.

So they have *a* private key for the list, just not necessarily *the* 
private key. I suppose that might make it easier to revoke someone's 
read access after they've been removed from the list ... it also means 
they can't read anything from before they joined, unless the archives 
get re-encrypted.

>> I thought (but have not verified) that such
>> systems decrypt the message with the group's private key, then re-encrypt it
>> to the public keys of the list members at that point in time.
> That is what my understanding of how it is done today by the systems
> out there. What I am saying is that twenty years ago Matt Blaze showed
> us a better scheme and nobody seemed to notice the importance at the
> time.
>> That would mean of course that you would only be able to decrypt messages
>> from the time period where you were a member of the list.
> If you use the old technology, that is one of the problems.

Well, yeah. :)  Did I miss a proposal for new tech?

> The other
> is that you have to find someone you trust to run the mailing list or
> the jabber contact service or whatever.

Well that's a given no matter what solution you choose. If you're 
relying on someone else to do encryption on your behalf, you have to 
trust them. But that's a marginal increase in trust compared to running 
a non-encrypted list in the first place.