Re: [TLS] Review of draft-ietf-tls-external-psk-guidance-00

Jim Schaad <> Wed, 08 July 2020 14:45 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id ADEA13A0D0F; Wed, 8 Jul 2020 07:45:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id VT1qWoNOrKWz; Wed, 8 Jul 2020 07:45:25 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7B4AC3A0CC3; Wed, 8 Jul 2020 07:45:22 -0700 (PDT)
Received: from Jude ( by ( with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 8 Jul 2020 07:45:15 -0700
From: Jim Schaad <>
To: 'Mohit Sethi M' <>,
References: <045601d64fea$e0d7f800$a287e800$> <> <006401d653af$7b029f80$7107de80$> <>
In-Reply-To: <>
Date: Wed, 08 Jul 2020 07:45:13 -0700
Message-ID: <010201d65536$6554f5b0$2ffee110$>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0103_01D654FB.B8F84090"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJKcycXoPg67pLJAT3vSEDhcRD9xgI5SobMAloYa9wBpZZNm6fjvKJA
Content-Language: en-us
X-Originating-IP: []
Archived-At: <>
Subject: Re: [TLS] Review of draft-ietf-tls-external-psk-guidance-00
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 08 Jul 2020 14:45:34 -0000



From: Mohit Sethi M <> 
Sent: Wednesday, July 8, 2020 1:03 AM
To: Jim Schaad <>; Mohit Sethi M <>;
Subject: Re: [TLS] Review of draft-ietf-tls-external-psk-guidance-00


Hi Jim,

On 7/6/20 7:06 PM, Jim Schaad wrote:


-----Original Message-----
From: Mohit Sethi M  <> <>
Sent: Monday, July 6, 2020 3:10 AM
To: Jim Schaad  <> <>; draft-ietf-tls-external-psk- <> 
Cc: <> 
Subject: Re: Review of draft-ietf-tls-external-psk-guidance-00
Hi Jim,
Thanks for the review. A clarifying question in-line.
On 7/2/20 12:02 AM, Jim Schaad wrote:

* In section 4 there is a statement that switching the roles of
servers which use PSKs will lead to weakening of security properties.
As this is a common scenario today in situations where you are doing
server-to-server communication, it would be useful to discuss just how
and how much this weakening occurs.  This was a complete surprise to
me and I don't know if it was supposed to be one.  Are there mitigations that

can be made?

* In section 7, The first sentence does not read, also It seems a bit
difficult to have a MUST in there when most of the items below are SHOULDs.
That seems to be a dissonance.
* Section 7.1.1 - The idea of having domain name suffixes on PSKs
seems to me to be a bad idea as this would seem to lower privacy levels.

I think you are referring to the PSK identity and not to the PSK.
As you know, the Network Access Identifiers (NAIs) used in EAP typically need
the domain name suffix for roaming, federation, etc.

This is true, it is also true that EAP is very strong on saying that if you have a choice, always send an anonymous version of the NAI if you have to do it in the clear.  This means that the domain can be used for correlation, but you do not have the full identity for that purpose.
I think that the EMU group is going to need to look at what level of privacy protection it is going to desire when using a PSK, but in that case there is no need for having  a domain suffix as that information is provided elsewhere.   This might require keeping the TLS tunneling as an option to deal with passive attacks.

You are absolutely right about the preference for using anonymous identities. draft-ietf-emu-eap-tls13 currently says the following about resumption: 

   It is RECOMMENDED to use a NAIs with the same realm in the resumption
   and the original full authentication.  This requirement allows EAP
   packets to be routable to the same destination as the original full
   authentication.  If this recommendation is not followed, resumption
   is likely to be impossible.  When NAI reuse can be done without
   privacy implications, it is RECOMMENDED to use the same anonymous NAI
   in the resumption, as was used in the original full authentication.
   E.g. the NAI @realm can safely be reused, while the NAI
   ZmxleG8=@realm cannot. 

This document and the ensuing discussion pertains only to external PSKs and external PSK identities. I think I incorrectly used the word "issue" in my previous email as a more correct choice would have been "agree/establish" (i.e. the server and client agree on an external PSK and an external PSK identity). RFC 8446 doesn't place any restrictions on external PSK identities (other than the fact that they are at least 1 byte). If we are going to discourage the use of domain names in external PSK identities, would that be sufficient? What prevents me from using an external PSK identity of the type: my_strong_secret_psk_with_amazon_server? 

I am not sure if we should recommend randomized external PSK identities of a certain minimum length. Perhaps it might be better to add a disclaimer about the privacy loss from carelessly chosen external PSK identities? 

[JLS] There are going to be three different cases for external PSK identities: The identity if factory provisioned and carried in a file to the server,  the identity is factory provisioned and read by the user from the device, and it is hand chosen.  The first two cases can definitely be randomized.  I don’t know that having a minimum length makes any difference.  This is not exactly a cryptographic property.  Another thing that might be done would be analogous to the PSK importer document and apply a one way hash from the typed in value to the value that is sent over the wire so on the wire it is just a random set of bytes.






I would like to understand the nature of the resulting privacy loss. Is it that a
passive attacker can now easily determine the server which issued the PSK
identity (and the server where it will eventually be used)?

While it I true that at least some of the privacy information has already been leaked in the PSK case, you know the address that is being talked to and the PSK identity that is passed.  If you look at using thigs like ESNI, doing this would appear to potentially give away the very information that is being hidden in that case.  
The other problem with having domain based KIDs is that you could easily get some amount of correlation between the KIDs that are assigned in different domains.  You could end up with mohit.ietf and and it would be quite reasonable to assume that both of those identities are going to be for the same entity, just in different domains.


* Section 7.1.2 - There seem to me to be three different places where
collisions will occur.  The importer function could get a collision,
there could be collisions with pre-TLS 1.2 external identifiers and
there could be collision with resumption keys.  There has been a huge
discussion about this in the EMU group and I don't find the text here
to be sensible in term of whether this is or is not a problem.
* Section 7.1.2 - One of the things that I kept meaning to get to and
just haven't done so yet, is dealing with the question of can the TLS
Key binders in the handshake to distinguish between multiple keys that
happen to have the same identity.  Perhaps you should look to see if
this does work and if it is safe.

TLS mailing list <>