Hi Jonathan,

Am Freitag, dem 05.11.2021 um 15:34 +0000 schrieb Jonathan Hoyland:
> 
> Having now looked at SCRAM a little bit, using the TLS channel
> binding guarantees that some malicious server isn't passing the
> client's messages off to another server and performing a malicious
> authentication there.
> ...
> If you don't require a unique string I could write a new protocol
> SCRAM++ with cross-compatible messages, but different security
> guarantees, and use that to compromise SCRAM clients. 
> Obviously that's a patently malicious example, but it's perfectly
> possible that some new version of SCRAM produces messages that an old
> version of SCRAM misinterprets. 
Authentication method and SCRAM mechanism negotiation must happen
before SCRAM exchange. if parties don't agree on the method/mechanism
negotiation fails. If you control the server to the level that you
negotate one method/mechanism but use another - you're not mitm, you
just _pwn_ the service, and no binding in the world would solve that.
> It's even highly likely that a server that supports old versions of
> SCRAM for backwards compatibility would use the same key material for
> all versions. 
> 
> Requiring a unique string makes the messages totally unrelated. 
> 
> I don't find the arguments "It's always been insecure in the past" or
> "We have bad APIs" especially compelling. 
> 
It's not "historically insecure", it's just not a secret key by design.
It's public (non-secret) but unique and imutable property of the TLS
channel (not application/authentication channel, mind you). Finished
packet - is not a secret - any sneaky person can snoop it. Certificate
digest - is not a secret, any person in the world can get it. It's not
a guardian of the confidentiality, rather a warrant of integrity.


Regards,
Ruslan

Attachment: signature.asc
Description: This is a digitally signed message part

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

Reply via email to