Subject: Re: [TLS] draft-jay-tls-psk-identity-extension-01

From: Raja ashok <[email-masked]>
Date: Mon, 19 Dec 2016 11:40:46 +0000

Hi David & Nikos,

3rd version of the draft-jay-tls-psk-identity-extension has been submitted. Your valuable comments are also fixed.
Please go through once and provide me your suggestion.

@Andreas : Requesting you also to go through and provide your suggestion.

Raja Ashok V K
Huawei Technologies
Bangalore, India
http://www.huawei.com 

本邮件及其附件含有华为公司的保密信息，仅限于发送给上面地址中列出的个人或群组。禁
止任何其他人以任何形式使用（包括但不限于全部或部分地泄露、复制、或散发）本邮件中
的信息。如果您错收了本邮件，请您立即电话或邮件通知发件人并删除本邮件！
This e-mail and its attachments contain confidential information from HUAWEI, which 
is intended only for the person or entity whose address is listed above. Any use of the 
information contained herein in any way (including, but not limited to, total or partial 
disclosure, reproduction, or dissemination) by persons other than the intended 
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by 
phone or email immediately and delete it!

-----Original Message-----
From: Raja ashok 
Sent: 21 September 2016 23:17
To: 'David Woodhouse'; Nikos Mavrogiannopoulos
Cc: [email-masked]'; [email-masked]
Subject: RE: draft-jay-tls-psk-identity-extension-01

Hi David & Nikos,

My comments are inlined in below mail, please check it.

-----Original Message-----
From: David Woodhouse [mailto:[email-masked]]
Sent: 19 September 2016 13:04
To: Nikos Mavrogiannopoulos; Raja ashok; [email-masked]
Subject: Re: draft-jay-tls-psk-identity-extension-01

On Sat, 2016-09-17 at 09:53 +0200, Nikos Mavrogiannopoulos wrote:
> Hello,
>  We were with David implementing the draft-jay-tls-psk-identity-
> extension-01 on openconnect VPN, however we noticed that the latest 
> version of TLS 1.3 modified the identity extension in an incompatible 
> way. I am not sure if the new format can be used in place of the old 
> one. For that we would like to ask what is your plan about it. Would 
> you include the new format with some guidance on how to be used under 
> tls 1.2, or would you stick to the existing format?

[ashok]  : PSK Identity extension specified in our extension differs from the extension specified in TLS1.3. In TLS1.3 PSK identity extension they are trying to exchange whether its DHE based PSK or not and also authentication mechanism (PSK or cert based authentication), all these things for key_share extension. So that TLS1.3 has PskKeyExchangeModes and PskAuthenticationModes. But I hope these are not required for lower versions (TLS1.2, 1.1 and 1.0). So the extension proposed in this draft is only for usage with TLS1.2, 1.1 and 1.0. And I feel, we can make this as a separate extension to avoid confusion with TLS1.3 extension. If we feel anything needs to be inherited from TLS1.3 extension, we can do it.

A couple of other comments on looking in detail at the draft...

RFC4279 §5.1 says that PSK identities MUST be a character string, encoded in UTF-8.

But the TLSv1.3 draft doesn't say this anywhere, and in fact in §4.5.1 it seems to suggest that for session resumption, we use a ticket constructed according to RFC5077 as the PSK identity. Which would probably be binary.

If TLSv1.3 is going to allow non-UTF8 PSK identities and TLSv1.2 still doesn't, then it would be useful to clarify precisely what is allowed in draft-jay-tls-psk-identity-extension.

[ashok] : PSK identity extension specified in this draft also expects the PSK ID as character string in UTF format, similar to RFC 4279. I will update this point in our draft, thanks for reminding me.

Another difference I note between your draft and the current TLSv1.3 draft is that in TLSv1.3, the PreSharedKeyExtension data returned by the server is just an index in the identities offered by the client; not a copy of the identifier itself:

   struct {
       select (Handshake.msg_type) {
           case client_hello:
               PskIdentity identities<6..2^16-1>;

           case server_hello:
               uint16 selected_identity;
       }
   } PreSharedKeyExtension;

...
   selected_identity     The server’s chosen identity expressed as a
                         (0-based) index into the identities in the
                         client’s list.

[ashok] : I feel sending the selected ID is better, otherwise while process "server hello" msg, client has to maintain the PSK ID list in the same order in which it sent. Already there was a discussion in TLS1.3 group for sending selected ID instead of index. 

And a final nitpick... replace every instance it "it's" with "its" :)

[ashok] : I will check and fix it. I will upload a revised draft. Thanks for your comments.

-- 
David Woodhouse                            Open Source Technology Centre
[email-masked]                              Intel Corporation

Raja Ashok
HUAWEI TECHNOLOGIES CO.,LTD. 

E-mail: [email-masked]
www.huawei.com
-------------------------------------------------------------------------------------------------------------------------------------
This e-mail and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!