Hi, Christopher,

Thanks for reply. It seems you reply to me personally, so I resend our 
discussion the list.

> On Aug 23, 2022, at 22:45, Christopher Patton <cpat...@cloudflare.com> wrote:
> 
> You're correct that the outer SNI is sent in the clear, but there is no a 
> priori reason why this would leak the inner SNI in a given deployment. For 
> example, a reverse proxy might use the same public name for all hostnames it 
> terminates TLS for.

It may be right for a common cloud platform, but what about indie server? Every 
site who need ECH have to deploy an addition
outer domain to *protect* the inner one. But these indie servers can not share 
a common outer domain, so the have to use some
distinct one who doe one-to-one respond the inner one.

The leak of the outer domain is equal the leak for the inner one, which make 
the protection for the inner one useless.

> The reason we have the ECH rejection path (terminate TLS with 
> ClientHelloOuter and transmit updated ECH config list) is that the DNS record 
> obtained by the client might not be in sync with the TLS server.  Imagine an 
> ECH enabled server that rotates the ECH config list every day or even every 
> hour: The higher the rotation frequency, the more likely it becomes that 
> somewhere in the world, some client tries to use an out-of-date DNS record.

Yes, the  ECH RR should be rotated, and the client may get the outdated 
records. We need a method to send the latest records
to the client and correct it's handshake. In the meanwhile, the client needs 
some method to assure the new records sent from the
server is valid. This is why the outer domain and TLS certificate the outer 
domain are needed.

In order to make ECH suitable for indie servers, which not own some common 
outer domain, we should not depend the outer SNI and
TLS handshake at all.

What about make the server just send the ECH RR and it's responding RRSig to 
the client? By this way, the client can validate the
new ECH record by the DNSSEC means. And does not need to send the outer domain 
at all.

However, this design means the ECH depends the DNSSEC. As a result, maybe it is 
hard to deploy ECH because of the low rate
deployment of DNSSEC. But I do not think it is a real problem. Because the ECH 
depends the DNS SVCB, as well. An DNS SVCB
also need to be deployment from zero.

Make the ECH depends the DNSSEC just make the DNSSEC has additional benefit. If 
you want to protect client's SNI, you have to
deploy DNSSEC. And this will promote the deployment of DNSSEC too.

Another benefit of this DNSSEC-style method is that we may transfer to a 
CA-free world. If we do not need a certificate, we do not
need a CA. Drop the outer domain is the first step. If we did, the server could 
also publish some public key for (EC)DHE key exchange.
Theses key can be verified by DNSSEC, and be used for the real TLS handshake.

You register a domain, deploy the DNSSEC and then you can serve content by TLS.

> On Aug 19, 2022, at 07:04, 涛叔 <h...@taoshu.in> wrote:
> 
> Hello, Guys,
> 
> I have read the draft-ietf-tls-esni-14, and found the ECH does not protect 
> the SNI.
> 
> Because if the client use the outdated ECH config to encrypted the 
> ClientHelloInner,
> it will not be decrypted by the client facing server.
> 
> In order to correct the client, the server will finish the handshake using the
> ClientHelloOuter, which has its own SNI. And the server will send new ECH 
> configs
> encrypted by its SSL certificate. So the client can verify the new configs is 
> valid.
> 
> In my own opinion, this design only hide the original SNI, but still depends 
> the
> client-facing server's domain name. It has two drawbacks:
> 
> 1. If one domain want to deploy ECH in share mode, it have to offer one 
> addition domain
> for the ClientHelloOuter.
> 2. Even the real domain will be encrypted, the shared domain don't. And if 
> the outs
> domain been blocked, all the inner domain will gone.
> 
> So my question is why not just use the DNSSEC method the correct the client 
> who
> has some outed ECH configs?
> 
> If the client-facing can not decrypted the ClientHelloInner, all it needs to 
> do is
> send the new HTTPS DNS records and their RRSIGs. And the client can validate 
> them by
> the DNSSEC methods.
> 
> By this design, there is no need to establish the outer TLS handshake. And no 
> additional
> outer domain any more. The client does not need to know or deploy two domain 
> as well.
> 
> And for almost TLS handshake, their even no need to a SSL certificates. 
> Because we can
> deploy some public key by the DNS, and make a PSK handshake to the server.
> 
> So why the working group does not choose the DNSSEC method?
> 
> Thanks
> 
> Taoshu(涛叔)
> _______________________________________________
> 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