On Tue, Aug 18, 2020, at 07:55, Christopher Patton wrote:
> Hi Martin, 
>  
> > Or maybe just running the HPKE KDF with a fixed input.
> Do you mean something like this? Let `config_digest = KDF.extract("some 
> salt", "some label", config)`, where `config` is the ECH configuration?

Sure.  I would probably use all of HKDF though, see below.

> > Unless I've missed something critical, you don't need any sort of 
> preimage resistance for this, it's only for identification purposes.
> The manner in which `config_digest` is computed could be significant to 
> "don't stick out", depending on how you define this property. For 
> example, one requirement for the hash function might be that it is 
> one-way.

So the current system has the property that anyone in possession of the 
original config can confirm that this is the config in use.  And we have 
assumed that the config does not contain secrets.

Being unable to recover one input seems to be a KDF property.  We could feed 
config to that input (for the full HKDF, that would be IKM, I think).  See 
definition 7 in https://eprint.iacr.org/2010/264.pdf, which supports the theory 
that a KDF is a PRF with respect to at least one input (\sigma in the same).

I think that the only case where being able to compute the inverse becomes 
interesting is if the config contains a secret.  Let's say that you use a 
config that includes a PSK.  The answer there could just be "don't do that 
then".  Or we could work something out (for example, a nonce of sufficient 
length might ensure that a secret could not be reconstructed even if everything 
else were predictable).

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

Reply via email to