[Babel-users] Babel authentication I-D version 01
Denis Ovsienko
infrastation at yandex.ru
Sat Jan 26 16:59:28 UTC 2013
22.01.2013, 19:27, "Gabriel Kerneis" <kerneis at pps.jussieu.fr>:
> Denis,
>
> On Thu, Jan 10, 2013 at 12:05:53PM +0400, Denis Ovsienko wrote:
>
>> This is the next version of the Babel authentication spec:
>> http://tools.ietf.org/html/draft-ovsienko-babel-hmac-authentication-01
>
> I did not read version 00, so the following are general comments not necessarily
> related to recent changes.
>
Thanks for the feedback, Gabriel.
> Overall, the document reads well. It gives a very good level of details for
> someone intending to implement packet authentification, with rationale for most
> design choices and pitfalls to avoid, as well as possible optimisations. At
> first, I thought most of these advices should be moved in non-normative
> appendixes; but in fact it really helps understanding how this mechanism works,
> and by the end of the document I got used to having them intertwined with the
> description of the mechanism itself.
>
> [RIP2-AUTH] established the reference method of HMAC construct
> application housing the computed authentication data inside the
> message being authenticated.
>
> I do not understand what this means.
I will refine this sentence.
>
> Since any fixed arbitrary value of a padding constant does not affect
> cryptographic characteristics of a hash algorithm and the HMAC
> construct, and since single-octet padding is more straightforward to
> implement, the padding constant used by this mechanism is 0x00
> single-octet value.
>
> It would be nice to either have a reference for "does not affect cryptographic
> characteristics" or give a hint why everybody else is doing it the "magic
> value" way.
If one can control at least a part of a hash function's digest through magic bytes in the message, or, alternatively, withstand such attempts by the same means, this effectively means the hash function isn't a cryptographic hash function. I need some time to provide the reference.
>
> An implementation MUST allow the operator
> discovering the effective value of MaxDigestsIn in runtime or from
> the system documentation.
>
> Or from configuration files (unless you consider this a special case of "in
> runtime"?). Idem for MaxDigestsOut, etc. Maybe also mention "such as CLI or
> SNMP" here, as you do it later for ANM Table.
OK, I guess I see a good way to put this right in the next revision. I will work on it.
>
> 3. Remove all duplicate keys from the copy.
>
> It is essential that you explain how duplicates are removed, since it changes
> the list of ESAs! Consider the following case: K1,K2,K3,K1. If you remove the
> first occurrence of K1, then K2 and K3 will be selected (assuming the value of
> MaxDigests is 2), otherwise K1 and K2.
You are right, for me it was obvious that the first copy remains (K1, K2). I will make it into the text.
>
> No CSA structure field (including HashAlgo, LocalKeyID, and
> AuthKeyOctets) value has to be unique within a given CSA, or within a
> given list of CSAs, or within all lists of CSAs of a Babel speaker.
> […]
> Another intent is to set authentication key management and security
> association management as two interfaced, but otherwise independent
> processes. This way an implementation can include arbitrary
> authentication key management process(es) and at the same time
> conform to the CSA management constraints defined in Section 3.8.
> This is also the reason why LocalKeyID field has a bit length in ESA,
> but not in CSA.
>
> I'm probably missing something obvious, but I don't understand this whole
> section.
It is not the clearest section in the document, but I couldn't find any better words to explain the sense I see. I will need time to improve this section.
>
> configured for authenticated exchange (A) and another not not
>
> Typo (not not).
>
Fixed.
> Uni-directional links are not specific to use of this mechanism, they
> naturally exist on their own and are properly detected and avoided by
> the original protocol (see Section 3.4.2 of [BABEL]).
>
> "Avoided" is a bit confusing in this sentence; "dealt with", "handled
> properly"?
>
Changed to "detected and coped with".
> [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
> Hashing for Message Authentication", RFC 2104,
> February 1997.
>
> Use [HMAC] instead of [RFC2104]?
Actually it was [HMAC] in pre-00 revisions, but I tried and found that [RFC2104] was better readable in respective context, especially in the view of the second normative reference, [FIPS-198]. Does [HMAC] look better to other readers?
--
Denis Ovsienko
More information about the Babel-users
mailing list