Hello Roman,

A lot of the fixes that you suggested are incorporated in the draft-07
that was just released. I think the last version addresses your
concerns, but you may of course want to verify.

On 9/25/2019 7:27 AM, Roman Danyliw wrote:
> Hi Christian!
>
> Thanks for the detailed responses and the helpful background.  Below are a 
> number of proposed text block replacements to clarify my intent (instead of 
> more questions).
>
> Roman
>
>> -----Original Message-----
>> From: iesg [mailto:iesg-boun...@ietf.org] On Behalf Of Christian Huitema
>> Sent: Wednesday, September 18, 2019 10:14 PM
>> To: Roman Danyliw <r...@cert.org>; The IESG <i...@ietf.org>
>> Cc: draft-ietf-tls-sni-encrypt...@ietf.org; tls-cha...@ietf.org; tls@ietf.org
>> Subject: Re: [TLS] Roman Danyliw's No Objection on draft-ietf-tls-sni-
>> encryption-05: (with COMMENT)
>>
>> Thanks for the feedback, Roman. Comments in line.
>>
>> On 9/18/2019 4:40 AM, Roman Danyliw via Datatracker wrote:
>>> ** Section 1.  Per “More and more services are colocated on
>>> multiplexed servers, loosening the relation between IP address and web
>>> service”, completely agree.  IMO, unpacking “multiplexed servers” is
>>> worthwhile to explain the subsequent text because it motivates the
>>> loss of visibility due to encryption with network only monitoring.
>> “Multiplex’ happens at two levels:
>>> -- co-tenants (e.g., virtual hosting) – multiple services on the same
>>> server (i.e., an IP/port doesn’t uniquely identify the service)
>>>
>>> -- cloud/cdn  – a given platform hosts the services/servers of a lot
>>> of organization (i.e., looking up to what netblock an IP belongs
>>> reveals little)
>>
>> OK, will try to incorporate your text.
> Thanks.

Changes incorporated in first paragraph of section 1.


>
>>> ** Section 2.1.  Per “The SNI was defined to facilitate management of
>>> servers, though the developers of middleboxes soon found out that they
>>> could take advantage of the information.  Many examples of such usage
>>> are reviewed in [RFC8404].”,
>>>
>>> -- Can’t middleboxes also help facilitate the management of servers?
>>> This text seems to take a particular view on middleboxes which doesn't
>> seem appropriate.
>>
>> It is pretty clear that the load balancer in front of a server farm will need
>> access to the service ID, and must be able to retrieve the decrypted SNI.
>> There may be other examples, such as DoS mitigation boxes. The
>> "unanticipated usage" comes typically from middle-boxes that are not in the
>> same management domain as either the client or the server. Is there an
>> established way to designate those?
> I'm not sure I understand the original of the requirement that the client and 
> server being in the same management domain.
>
> RFC3546's definition of SNI opens with:
>    [TLS] does not provide a mechanism for a client to tell a server the
>    name of the server it is contacting.  It may be desirable for clients
>    to provide this information to facilitate secure connections to
>    servers that host multiple 'virtual' servers at a single underlying
>    network address.
>
> It seems to me that if we are trying to channel original intent, then only 
> the virtual server use case applies.  I'd propose:
>
> OLD
> The SNI was defined to facilitate management of servers, though the 
> developers of middleboxes soon found out that they could take advantage of 
> the information.  Many examples of such usage are reviewed in [RFC8404].
>
> NEW
> The SNI was defined to facilitate secure connections to servers that host 
> multiple 'virtual' servers at a single underlying network address [RFC3546].  
> However, addition management and security practices emerged making use of 
> this information.  Examples of such usage are reviewed in [RFC8404].
>
> This language would let you distinguish all of the middle box behaviors done 
> by operators and enterprises from a possible [RFC7258] attacker.
>
>>> -- RFC8404 describes a number of middlebox practices, but only Section
>>> 6.2 explicitly discusses SNI, and of the examples list here, only one
>>> comes from RFC8404.
>> A few of the examples also come in the "deep packet inspection" sections of
>> 8404. But rather than going in a long discussion, I would rather rewrite the
>> sentence as: Many examples of such usage are reviewed in [@?RFC8404],
>> other examples came out during discussions of this draft.
>>> ** Section 2.1. The “monitoring and identification of specific sites”
>>> isn’t symmetric to the other examples – it is rather generic.  The
>>> other examples, identify a what/who (e.g., ISP, firewall) + action (e.g.,
>> block, filter).
>>> Also, to implement most of the other example, “monitoring and
>>> identification of specific sites” needs to be done.
> I still think this needs to be cleaned up in some way.  IMO, I'd drop it.

Was rewritten in new section 2.1 as "Filtering or censorship of specific
services for a variety of reasons."

>>> ** Section 2.1.  Why is parental controls in quotes?  In RFC8404, it is not.
>>> The quotes could be read as a judgement on the practice.
>> See answer to Alissa. Removing the quotes.
> Thanks.
>
>>> ** Section 2.1.  Per “The SNI is probably also included in the general
>>> collection of metadata by pervasive surveillance actors”, I recommend
>>> against speculation and instead simply stating that SNI would be
>>> interesting meta-data for a RFC7258 attacker.
>> Yes, Mirja made a similar comment. Proposed replacement:
>>
>> The SNI is probably also included in the general collection of metadata by
>> pervasive surveillance actors, for example to identify services used by
>> surveillance targets.
> IMO, explicitly linking it to the draft would help.
>
> OLD:
> The SNI is probably also included in the general collection of metadata by
> pervasive surveillance actors, for example to identify services used by
> surveillance targets.
>
> NEW:
> The SNI could be included in the general collection of metadata by
> pervasive monitoring attacker [RFC7258], for example to identify services 
> used by surveillance targets.

I missed the reference to 7258. Will add it in the next version.

>
>>> ** Section 2.2.  Per “One reason may be that, when these RFCs were
>>> written, the SNI information was available through a variety of other
>>> means”, what would those “other means” be?
>> The list includes at a minimum:
>>
>> Clear text exchanges amenable to deep packet inspection (DPI), server
>> certificates send in clear text during TLS/SSL exchanges, DNS names of
>> servers in clear text DNS queries, and server specific IP addresses in packet
>> headers.
>>
>> I guess I could write that all, but it makes the text a bit redundant, since 
>> the
>> following paragraphs do discuss server certificates, DNS names and IP
>> addresses.
> I understand.  I didn't read it that way.  My recommendation isn't to 
> describe the "other means" (as it is described below), but to be clear on the 
> obvious, what is the SNI information.
>
> OLD:
> One reason may be that, when these RFCs were
> written, the SNI information was available through a variety of other
> means.
>
> NEW: 
> One reason may be that when the RFCs were written, the name of the server the 
> being contacted by the client (i.e., the SNI) was evident through other means.
>
>>> ** Section 2.3.  Per “Deploying SNI encryption will help thwarting most of
>> the
>>> ‘unanticipated’ SNI usages described in Section 2.1, including censorship
>> and
>>> pervasive surveillance.”:
>>>
>>> -- Why the quotes around "unanticipated" SNI usage?
>> Removing the quotes. Otherwise, you will be convinced that the authors
>> believe that all middle-boxes are the spawn of the devil...
> Thanks.
>
>>> -- One person’s censorship is another person’s threat mitigation, policy
>>> enforcement for a network they own, or parental controls (per the list in
>>> Section 2.1) – recommend being more precise on the order of “Deploying
>> SNI
>>> encryption will {break | reduce the efficacy of } the operational practices
>> and
>>> techniques used in middleboxes described in Section 2.1”.
>> OK. I will try to make the text just stick to the facts:
>>
>> Deploying SNI encryption thwarts most of the unanticipated SNI usages
>> described in (#snileak). It reduces the efficacy of the operational
>> practices and
>> techniques implement in middle-boxes. Most of
>> these functions can, however, be realized by other means.
> Works for me.  However, I'd drop "Most of these functions can, however, be 
> realized by other means" because this opens the debate on how exactly, etc.

Fixed in draft 07.

>>> ** Section 2.3.  Per “It will also thwart functions that are sometimes
>>> described as legitimate”, what functions are those?  I’d recommend
>> eliminating
>>> this sentence as it reads like a value judgement on existing practices 
>>> (which
>>> doesn’t seem germane for discussing requirements).
>>>
>>> ** Section 3.  Per “Over the past years, there have been multiple proposals
>> to
>>> add an SNI encryption option in TLS.”, can these past proposals be cited so
>>> future readers can learn from them.
>> We are describing here a series of design proposed in the TLS working
>> group over the years. The whole point of the draft is to provide the
>> results of the analyses, as an easy to read kind of "threat model",
>> without requiring readers to wade through years of archives. If you
>> really are interested, you can indeed do just that but I would not
>> encourage the approach...
> I understand.  It doesn't seem practical to quote mailing list threads.
There is actually one such quote in the "Acknowledgement" section.
>
>>> ** Section 3.4. The existence of designs were alluded to but not cited.  Be
>>> specific with citation.
>>>
>>> ** Section 3.7.1. The rational for including this discussion about ALPN 
>>> isn’t
>>> clear as it doesn’t suggest new requirements for SNI encryption.
>> Got comments about that already, and updated the text.
>>> ** Section 4.  I got hung-up on the description of Section 4 describing a
>>> “solution”.  Is Section 4 (and the related subsections) describing an
>>> operational practice or a notional reference architecture?  The text reads
>> one
>>> part “people are doing” and another part “people could do”.
>> Yes, I get that. Our point is to describe this solution as part of
>> explaining why we really want a TLS level solution, not just HTTP. Not
>> sure that I can change much here.
> See below.  I think I may have an approach for clarity.
>
>>> ** Section 4.  Per “In the absence of TLS-level SNI encryption, many sites
>> rely
>>> on an "HTTP Co-Tenancy" solution”, this seems like a strong of a statement
>>> about utilization of this architecture explicitly to hide the
>>> hidden.example.com SNI.  Can you provide a citation for a sense
>> penetration.
>>
>> That's really hard, because it is all cloak and dagger stuff. The one
>> well known example is the encrypted messaging application "Signal", that
>> was censored in Egypt during the "Arab Spring" events. They were hosted
>> by Google, and apparently programmed their app to just connect to
>> "https://google.com/";, and then use "host: signal.org" in the HTTP
>> headers, evading censorship. It is not clear at all to what amount they
>> synchronized with Google when doing that. And I don't think that anybody
>> ever spoke openly about this.
> Thanks for the details.  Let me step back and try to restate my concern.  My 
> feedback on the assertion that "many sites rely on an HTTP Co-Tenancy" and 
> the question above about the "browser plugin" all come from my 
> misunderstanding of the purpose of Section 4.   Is it describing a commonly 
> accepted practice already done or a notional reference architecture.  IMO, 
> given the framing of the rest of the document, it should be the latter.
>
> The first paragraph states that "many sites" use this approach which 
> suggested to me an existing best common practice.  However, as you clarified, 
> there is little evidence that can be provided beyond signal.  To me the 
> statement of "many sites" can't be supported.  My thinking is that this could 
> be easy cleared up simply avoiding the discussion about adoption by saying:
>
> OLD:
> In the absence of TLS-level SNI encryption, many sites rely on an
> "HTTP Co-Tenancy" solution.  The TLS connection is established with
> the fronting server, and HTTP requests are then sent over that
> connection to the hidden service.
>
> NEW:
> In the absence of TLS-level SNI encryption, a site could adopt an "HTTP 
> Co-Tenancy" architecture to protect the SNI information.  In such an 
> architecture, the client establishes a TLS connection with a fronting server, 
> and the HTTP requests are then sent over that connection to the hidden 
> service.
>
> Related to my confusion is also the new text added to Section 1 of -06, "This 
> document does not present the design of a solution, but provides guidelines 
> for evaluating proposed solutions."  However, the current text in Section 4 
> is explicitly states it is providing a solution.  The sub-section of Section 
> 4.x assume the solution in Section 4.0 and describe the follow-on work.  
> Section 2 - 3 do lay out the means for evaluation nicely.  Perhaps, something 
> on the order of:
>
> OLD:
> This document does not present the design of a solution, but provides 
> guidelines for evaluating proposed solutions.
>
> NEW:
> This provides guidelines on evaluating solution and proposes an architecture 
> to mitigate the threats created by an unencrypted SNI using existing 
> approaches.


I added the reference to a paper by Fified et al. that describes the
"domain fronting" solution and some of its deployments.

>
>>> ** Section 4.  Per the bullet “since this is an HTTP-level solution”, I
>>> recommend citing that it fails on the requirement identified in Section 3.7
>>> (instead of enumerating a list of protocols)
>> Yes. Already fixed.
> Thanks.
>
>>> ** Section 4.  The opening of this section noted that “many sites” rely on
>> the
>>> architecture described in this section. Later, it is noted that “a browser
>>> extension that support[s] HTTP Fronting” is a necessary architecture
>> component.
>>>   Can a few citations be made to the popular extensions.
>> The "Signal" deployment used a service specific app. The trick of using
>> https://fronting + Host: hidden is really easy to pull in an app. To do
>> that in a browser does indeed require an extension, that's pretty much a
>> statement of fact.
> Makes sense.  Back to my earlier comment about "many sites", if this text is 
> describing a specific solution/best practice vs. a reference architecture.  
> If it is the former, then what's actually done needs to be described (i.e., 
> an app-based approach).  If it is the latter, the text is fine.

Draft 07 added text describing actual deployments.

-- Christian Huitema


_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to