[tcpm] Review of draft-lebovitz-ietf-tcpm-tcp-ao-crypto-00
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tcpm] Review of draft-lebovitz-ietf-tcpm-tcp-ao-crypto-00



Hey all,
So far EKR's is the only review I've seen of this draft. And many of you might have missed it, for the wrong subject line he used. So I'm resending my one and only precious review to the list w/ correct subject line.

Gregory.

At 05:32 PM 3/19/2009, Eric Rescorla wrote:
At Thu, 19 Mar 2009 17:31:06 -0700,
Doh. This review was of draft-lebovitz-ietf-tcpm-tcp-ao-crypto-00

A review of auth-opt is forthcoming.
-Ekr


At Thu, 19 Mar 2009 17:31:06 -0700,
Eric Rescorla wrote:
>
> [Resent from an account that's subscribed.]
>
> -Ekr
>
> $Id: draft-lebovitz-ietf-tcpm-tcp-ao-crypto-00-rev.txt,v 1.1 2009/03/19 22:37:19 ekr Exp $
>
> S 2.1.
> This whole {SHOULD,MUST}{+,-,*,?} thing is a bad idea. It's hard
> enough for developers to understand SHOULD vs. MUST, but now we have 5
> separate options for implementors to understand and us to argue
> over. I don't remember there being WG consensus on this point.
>
>
> S 2.2.
> The assignment of HMAC-SHA-1 to MUST- and AES-CMAC to SHOULD+ is
> basically unjustified. There's no good reason to believe that
> HMAC-SHA1 will be broken before AES-CMAC.  This is exactly the
> confusion fostered by the +/- regime.  Make HMAC-SHA1 MUST and
> AES-CMAC SHOULD.
>
>
> S 3.
> You repeat the phrase "Each MAC algorithm MUST..." twice.
>
>
> S 3.1.
> It's confusing to talk about KDFs having an interface and then
> have the function named "PRF".
>
> I would rewrite this as:
>
>      All KDFs used in TCP-AO have the following interface:
>
>       Derived_Key = KDF(Master_Key, Context, Output_Length)
>
>      Where these values are defined as.... [blah blah]
>
> Then:
>      The KDFs defined in this document are all based on pseudorandom
>      functions (PRFs) which take a key and an input and emit a
>      fixed-length pseudorandom value.  Given PRF X, the associated
>      KDF, KDF_X, is constructed as follows:
>
>      KDF_X(Master_Key, Context, Output_Length) =
>          X(Master_Key, Input)
>
>      Where Input is constructed as:...
>
> Where you say that the master key isn't random, that's not quite
> right. The point is not that it doesn't contain high entropy.
> For instance HEX(X) where X is a 128-bit random number has high
> entropy but may or may not be suitable for use keying a MAC
> function.
>
> This section of the document is pretty confusing about the concept of
> output length. To recap:
>
> 1. The underlying PRFs have fixed sized output lengths, 128 bits in the
>    case of AES-CMAC, 160 bits in the case of HMAC-SHA1.
> 2. It is possible to generate an arbitrary number of output bits with
>    a given PRF by operating it in a feedback or counter mode.
>    The FIPS-whatever KDFs incorporate this feature, hence the
>    leading "0".
> 3. Each MAC needs a key of a specific length.
> 4. Not totally uncoincidentally, the KDFs we have chosen to use with
>    each MAC happen to generate the right key size for use with the
>    MAC, thus avoiding the need for the procedure in (2).
> 5. If you wanted to use these KDFs with a MAC requiring a longer key
>    (e.g., HMAC-SHA-256) you would, however need to use the procedure.
> 6. For some reason, the FIPS-whatever KDFs seem to think it's
>    a useful idea to mix the desired number of bits produced by the
>    KDF into the KDF input. I don't see the point of this, but
>    whatever.
>
> You'll note that the PRF does not need to be parametrized in terms
> of output length. It's fixed.
>
> IMO, this could be a lot clearer.
>
> S 3.1.1.
> Is this an ASCII 0 (0x30) or a NUL (0x00)
>
>
> S 3.1.2.
> It's pretty unclear what problem you're trying to solve here. I would
> write:
>
> RFC 4615 is designed to take an arbitrary length key but for any
> key length other than 128 bits, whitens it by first computing an
> AES-CMAC with key 0. Because the keys in use with TCP-AO will
> likely be arbitrary-length ASCII strings, TCP AO always performs
> this whitening step even if the key happens to be 16 bytes long.
> In other words, using the terminology of RFC 4615:
>
>    K = AES-CMAC(0^128, MK, MKlen)
>
>
> S 4.
> This UI labels section should be entirely removed. As far as I know,
> there was never WG consensus to include it and it just creates
> extra confusion. In AO, the MAC completely defines the KDF, so
> the concept of suites just adds an extra name. Moreover, since
> MACs have obvious names and the suites have opaque, confusing names,
> this is doubly bad.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
_______________________________________________
tcpm mailing list
tcpm at ietf.org
https://www.ietf.org/mailman/listinfo/tcpm


Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.