some thoughts after catching up on this thread:

* cdn -> origin ime generally resolves via DNS for the same reason you want
anything else to resolve via DNS: a level of indirection is handy for
management. Occasionally it bypasses DNS for the same reasons you want
anything to bypass DNS: a level of indirection adds tail risk and overhead.
* origins sometimes have reasonable potential for ESNI anonymity sets
themselves .. cloud hosting environments would be good examples. this
should be encouraged.

* it seems pretty unusual that a CDN and Origin would share keys.. the
major use case of the CDN key is to cover an anonymity set that is a
significant number of distinct customers.

* using one v6 per origin (when you've got multiple origins available)
isn't a great pattern imo - not only does it make ESNI rather useless (with
an anonymity set of 1). but it fails to leverage the handshake and
congestion control amortizations across origins that h2/h3 can and will be
able to give you. We've built all the necessary http authority muxxing
stuff into higher levels with SNI and HTTP at this point, there's no need
to force it back into correlations withe the transport addresses.

* a few folks do like to authenticate the cdn to the origin with client
certs. That's nifty - but overall its pretty unpopular for the same reasons
managing distributed keys are always unpopular - its a hassle to manage in
the wild certs in a low risk way. DNS (scoped to ESNI - not as
authentication replacement) is a bit nicer in this respect because you
don't need to manage all the clients (multi cdn), but rather just a origin
property..

tldr; imo none of this works if the origin does not have a decent anonymity
set potential. If it does, just reuse esni for that hop rather than minting
something new.

On Sat, Oct 12, 2019 at 3:19 AM Rob Sayre <say...@gmail.com> wrote:

> On Sat, Oct 12, 2019 at 12:11 AM Salz, Rich <rs...@akamai.com> wrote:
>
>>
>>
>>    - How does a request of the form "username.example.com
>>    
>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__username.example.com&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=4LM0GbR0h9Fvx86FtsKI-w&m=ujs6Lkbc_IGTiuLdcDk8syhWP1v9lNpztl9OxZuCvas&s=hBGHuzwfs66lIYRw2lkpneJu72vkeC9m5HH46EJ0i3c&e=>"
>>    get through a CDN to an Origin while leaving the SNI encrypted on the 
>> wire?
>>
>>
>>
>> The CDN needs to see the decrypted SNI.
>>
>
> Agreed.
>
>
>
>> If the CDN and origin share the ESNI keys, the CDN can just pass the
>> original ESNI value along.  If the CDN and origin do not share ESNI keys,
>> then the CDN will have to re-encrypt.  If that is an issue you haven’t
>> explained why or I missed.
>>
>
> It's definitely one approach. I am not sure which keys should be used for
> the CDN -> Origin traffic, though. I suggested sending the SNI with the
> client cert, because it seemed simpler if client certs are already being
> used (an option I recommend for CDN -> Origin traffic).
>
> EKR's Host header suggestion may also be viable, but my goal is actually
> to make some TLS-level decisions about traffic based on the SNI. EKR's
> proposal also assumes some level of Host header / SNI divergence is allowed
> by the Origin host. These policies are not clear to me. For example, I'm
> not sure what rules a Cloudflare to Google Cloud Platform link would need
> to follow (this is a common enough setup that they have an egress
> agreement).
>
>
>>
>>    - I also disagree with the argument that ESNI is pointless when “IPv6
>>    uniquely identifies the origin”.
>>
>>
>>
>> Can you explain why?
>>
>
> I agree that a unique IPv6 address would expose the fact that a CDN is
> communicating with an Origin, but I also think subdomain data could be used
> for tracking, and so the SNI should still be encrypted.
>
> thanks,
> Rob
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to