[AFS3-std] rxgk and the RFC 4402 PRF+ function
Michael Meffie
mmeffie@sinenomine.net
Fri, 21 Feb 2014 09:32:24 -0500
On Wed, 19 Feb 2014 16:23:36 -0500
Benjamin Kaduk <kaduk@MIT.EDU> wrote:
> Hi all,
>
> The core rxgk document (which just had a last call period) has a normative
> reference to RFC 4402 for the PRF+ construction, which is an algorithm to
> get variable-length pseudo-random bytestrings from the RFC 3961 enctype's
> pseudo_random() function. The construction is basically just to invoke
> the underlying pseudo_random() function in counter mode.
>
> However, there is an erratum [1] filed against RFC 4402, which notes that
> the implementors of that specification for krb5 gss_pseudo_random()
> started the counter at 0, even though the text of RFC 4402 mandates that
> the counter start at 1.
>
> Because of this ambiguity about what value the counter starts at, in order
> to ensure interoperability of rxgk implementations, we should note/clarify
> what behavior rxgk expects. It's probably easiest to do this by noting
> directly in the document, i.e., issue a new I-D with just this change.
> It's my understanding that if we have agreement on the list for the
> clarification, no additional last call period is necessary.
Thanks Ben,
So if I understand; This is not a change (or errata), but a clarification?
The clarification is to say the RFC 4402 mandate of starting the counter
at 1 is correct for afs3-rxgk (even though other impementations of 4402
start at 0)?
Can you suggest the correct wording?
>
> It doesn't really matter whether rxgk starts at 0 or 1, it's just an
> arbitrary choice and we have to pick one to ensure interoperability.
> There's some argument for starting at 0, in that we'll be doing the same
> thing as krb5. However, the krb5 libraries only export the RFC 4402
> functionality as the gss routine, which requires a GSS security context in
> order to be called. Thus, rxgk implementations would not be able to
> easily share code with krb5 implementations for this matter. I have an
> implementation of this PRF+ in OpenAFS gerrit for review; it's about 70
> lines of code. The argument for starting at 1 is that we're citing RFC
> 4402 for the construction, and the actual text of RFC 4402 is to start at
> 1. Entries in the RFC series should never change, so citing RFC 4402 as a
> normative reference means just that -- use the text that is there, not
> some edited version from an erratum.
>
> Does anyone have an opinion that might sway us to one side or the other?
>
> -Ben
>
> [1] http://www.rfc-editor.org/errata_search.php?rfc=4402
> _______________________________________________
> AFS3-standardization mailing list
> AFS3-standardization@openafs.org
> http://lists.openafs.org/mailman/listinfo/afs3-standardization
--
Michael Meffie <mmeffie@sinenomine.net>