wrong checksum type for arcfour-hmac-md5
Greg Hudson
ghudson at MIT.EDU
Wed Sep 15 15:07:43 EDT 2010
On Wed, 2010-09-15 at 13:35 -0400, Sam Hartman wrote:
> My current thinking on this is that the bug is in Samba. Based on the
> evidence so far I don't support this change. Having the mandatory
> checksum for an enctype be unkeyed is problematic for a number of things
> including FAST, PKINIT, the securID stuff I'm working on and the OTP
> preauth under last call in krb-wg.
It turns out Heimdal has special logic for choosing an authenticator
checksum type:
* For des-cbc-crc, it chooses md4, "to make DCE secd (and older MIT
kdc?) happy".
* For rc4-hmac, rc4-hmac-exp, des-cbc-md4, and des-cbc-md5, it chooses
md5, "to make MS kdc happy".
* For everything else it uses the enctype's associated keyed checksum
type, or unkeyed checksum type if there isn't one. The Heimdal
associated checksum types do not always match the MIT mandatory
cksumtype; here is the chart:
Enctype MIT mandatory Heimdal cksum Heimdal keyed
------- ------------- ------------- -------------
des-cbc-crc md5 crc32 none
des-cbc-md4 md4 md4 md4-des
des-cbc-md5 md5 md5 md5-des
des3-cbc-sha1 hmac-sha1-des3 sha1 hmac-sha1-des3
rc4-hmac hmac-md5 hmac-md5 none
rc4-hmac-exp hmac-md5 (???) (???)
aes128-cts hmac-sha1-96-aes128 sha1 hmac-sha1-96-aes128
aes256-cts hmac-sha1-96-aes256 sha1 hmac-sha1-96-aes256
(rc4-hmac-exp doesn't seem to have an entry in heimdal's
lib/krb5/crypto.c, even though the associated constant is still
referenced elsewhere.)
The resulting authenticator checksum chart is, I think:
Enctype MIT Heimdal
------- --- -------
des-cbc-crc md5 md4
des-cbc-md4 md4 md5
des-cbc-md5 md5 md5
des3-cbc-sha1 hmac-sha1-des3 hmac-sha1-des3
rc4-hmac hmac-md5 md5
rc4-hmac-exp hmac-md5 md5
aes128-cts hmac-sha1-96-aes128 hmac-sha1-96-aes128
aes256-cts hmac-sha1-96-aes256 hmac-sha1-96-aes256
Since the authenticator checksum doesn't need to be keyed, I don't
object in principal to messing with that specific choice for
interoperability. I'd prefer a better understanding of the reasons why,
though; the bug presented so far only seems to affect malformed GSSAPI
token authenticators, and is as easy to fix in Samba as it is in MIT
krb5.
More information about the krbdev
mailing list