Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clarify strongly recommended guidance from NIST #414

Open
Sakurann opened this issue Feb 6, 2025 · 0 comments
Open

clarify strongly recommended guidance from NIST #414

Sakurann opened this issue Feb 6, 2025 · 0 comments
Labels
Milestone

Comments

@Sakurann
Copy link
Collaborator

Sakurann commented Feb 6, 2025

In PR #380, @martijnharing pointed out that

RFC 7518 also says that:

Applications need to specify how the "apu" and "apv" Header
   Parameters are used for that application.  The "apu" and "apv" values
   MUST be distinct, when used.  Applications wishing to conform to
   [[NIST.800-56A](https://datatracker.ietf.org/doc/html/rfc7518#ref-NIST.800-56A)] need to provide values that meet the requirements of
   that document, e.g., by using values that identify the producer and
   consumer.

So I think we need to normatively specify how the apu and apv header are used (which could be that they must be empty). I'm not sure what the exact implications are for the requirements regarding NIST 800-56A. Is anyone familiar with making the use of ECDH-ES compliant to NIST 800-56A?

NIST document is here https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar2.pdf and the text is

Appendix B: Rationale for Including Identifiers in the KDF Input
It is strongly recommended that identifiers for both parties to a key-agreement transaction be
included among the data input to the key-derivation method – as a simple and efficient means of
binding those identifiers to the derived keying material. (See Sections 5.8.)

Current discussion is not to add more guidance to apu and apv because as noted here...

Given that the nonce is part of the encrypted payload, it already contributes to the cryptographic output. Therefore also using it as the "apu" value is redundant.

Likewise, the Client ID is part of the encrypted content, and so need not also be in "apv".

Creating a thread to document why not, or why should we.

@Sakurann Sakurann added this to the Final 1.0 milestone Feb 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant