On Tue, Feb 24, 2009 at 09:59:02AM -0800, Bernard Aboba wrote: > Does the following more accurately describe what you are seeing?
> At the end of successful authentication, EAP-MSCHAPv2 derives two 16-byte > > MPPE keys as specified in [RFC3079] Section 3.3. The Master Session Key > ([RFC3748]) > > is derived from the two MPPE keys as follows: > > MSK = 16-byte MPPE-Send-Key + 16 bytes zeroes (padding) + 16-byte > MPPE-Receive-Key + 16 bytes zeroes (padding) This does not match with the way ISK is generated in either EAP-FAST or EAP-PEAPv0 with cryptobinding. The main problem is in there being no clear description on how to derive a 64-octet MSK from EAP-MSCHAPv2. Anyway, ISK is only going to use up to 32 octets of MSK (the first octets; anything beyond that will be ignored). Consequently, the zero padding in the MSK must not occur in that part to match the current uses. In addition, the Send vs. Recv key concept is problematic since the EAP peer and server (or well, more likely authenticator and supplicant) have different directions for sending and receiving. If we want to define EAP-MSCHAPv2 MSK derivation in a way that matches with the normal ISK generation rules (take first 32 octets) in EAP-PEAPv0 with cryptobinding, we would get something like this: MSK = 16-byte server/authenticator MS-MPPE-Send-Key | 16-byte server/authenticator MS-MPPE-Recv-Key | 32 bytes of something (e.g., zeroes; ISK does not care, some other uses might, so likely better to use something else than zeroes..) On the peer, the first keys would be peer MS-MPPE-Recv-Key | peer MS-MPPE-Send-Key (i.e., reverse Recv/Send). If we want to define EAP-MSCHAPv2 MSK derivation in a way that matches with the normal ISK generation rules in EAP-FAST, we would have to swap Send and Recv in the above description for EAP-PEAPv0 due to the other order of Send/Recv MPPE keys used there. In other words, we cannot come up with a EAP-MSCHAPv2 MSK derivation rules that would cleanly fit into all deployed uses and there will unfortunately be need for tunnel method specific exception in either EAP-PEAP with cryptobinding or EAP-FAST. Either way, it would be useful to get this documented clearly so that all future uses of EAP-MSCHAPv2 would be able to refer to an existing specification instead of having to come up with their own MSK/ISK derivation rules as was done with EAP-PEAP cryptobinding and EAP-FAST. -- Jouni Malinen PGP id EFC895FA _______________________________________________ Emu mailing list Emu@ietf.org https://www.ietf.org/mailman/listinfo/emu