radext-wg / draft-ietf-radext-tls-psk

RADIUS and TLS-PSK
0 stars 4 forks source link

interop #4

Open jimdigriz opened 1 month ago

jimdigriz commented 1 month ago

Picking up from: https://mailarchive.ietf.org/arch/msg/radext/tn-VX26DhBQrMQltfX9H1fin0To/

Section 4.1 (Requirements on PSKs) mentions there is a way to import PSKs detailed in RFC9258 section 5.1 (External PSK Diversification) but then leaves it open ended with "read that doc and follow the advice" on what should be done.

From RFC9258 section 5.1: "ImportedIdentity.context MUST include the context used to determine the EPSK, if any exists. For example, ImportedIdentity.context may include information about peer roles or identities to mitigate Selfie-style reflection attacks."; also of note is Appendix A describing a method to counter Selfie attacks by use of the context.

If one was to follow the advice there they would use a KDF and include in the context:

This looks to differs from the implementations I can find that look to use the base key directly:

This looks like it will lead to interop problems.

Is there an interop problem, if so we need to come up with a format for the use of KDF and context....or clearly state "ignore RFC9258 section 5.1"

fmauchle commented 1 month ago

While RFC9258 is mentioned, there is no real statement what to do with it - whether you MAY|SHOULD|MUST implement it. I guess I had falsely assumed that OpenSSL would take care of that anyway.

I'm still trying to truly understand RFC9258 and its implications. Here's my take so far:

Besides all that, the big elephant in the room (from an implementation perspective) is this: the imported PSK use a different binder key label (so an imported key will never agree with a plain key even if you happen to construct a matching key identity), but in the OpenSSL code I can find no signs of support for imported PSK binder keys. So I doubt that I would be able to implement.

To avoid interpo problems, we should at least mandate support for plain PSKs - or drop the reference to RFC9258 completely.