> On Feb 14, 2017, at 10:02 AM, Ben Schwartz <bem...@google.com> wrote:
> 
> Hi dnsop,
> 
> I've written a draft proposal to improve the privacy of TLS connections, by 
> letting servers use the DNS to tell clients what SNI to send.
> 


Hi Ben,


>    _443._tcp.subdomain1.example.com.  IN SNI subdomain2.example.com

As I read this part I was assuming that the RDATA of the SNI record is an RFC 
1035 <domain-name> and the lack of a trailing dot made me twitch a little bit.

It seems to me that you need to decide what the format of the RDATA will be.  
Throughout most of the doc it looks like a <domain-name>, but in other places 
it sounds like an opaque string (particularly the paragraph about 
extensibility).



>    When initiating a TLS connection to a domain and port, a client
>    application SHOULD query the SNI record for the prefixed domain at
>    the same time as the A or AAAA query, and wait for a response before
>    initiating TLS. 

In the Introduction you said "Clients can make use of this record without 
adding delay to their connection process" but here the instruction is to wait.  
How long should a client wait for a response to its SNI query?

Oh, I see later you wrote: A client application SHOULD NOT delay initiating a 
TCP connection while waiting for the SNI DNS response.



>    The application MUST discard or ignore any SNI
>    record whose RDATA is not a well-formed domain name or an empty
>    string. 

This might need more clarification.  Here's a place where the RDATA sounds very 
much like <domain-name>.  But then the empty label "." becomes particularly 
tricky here because, arguably, a <domain-name> can never be an empty string.


>    If
>    the selected SNI record is present with an empty RDATA (RLENGTH = 0),
>    then the client SHOULD omit the Server Name Indication.

Again, advice here will depend on what you choose for the RDATA format.  If its 
<domain-name> then you can't really have RDLEN=0.

>    Client applications MUST NOT allow the contents of the SNI record to
>    influence their certificate validation behavior.  The client's
>    certificate validation MUST be based on the user's specified
>    destination, not the RDATA of the SNI DNS record.  

Given this, it sounds like there is no real reason that the SNI value needs to 
be a domain name.  It could be something else, like an opaque string or an 
RFC4122 UUID?


I think this doc also needs a privacy considerations that talks about ways it 
could be abused by server operators.  For example, I think it could be used as 
a component of a so-called super cookie.  Each client could get a unique SNI 
from the DNS server, allowing the web site to track individuals.  While you may 
be improving privacy with respect to passive attackers, it can reduce privacy 
between web clients and servers.

DW


_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to