<div dir="ltr">I've been reading through RFC 2869 section 5.14<div><a href="http://tools.ietf.org/html/rfc2869#section-5.14">http://tools.ietf.org/html/rfc2869#section-5.14</a><br></div><div><br></div><div>And RFC 5176 Section 3.4</div>
<div><a href="http://tools.ietf.org/html/rfc5176#section-3.4">http://tools.ietf.org/html/rfc5176#section-3.4</a><br></div><div><br></div><div>And from how I understand it and how this is implemented by FreeRadius in 3.0.3 and 2.2.5.</div>
<div><br></div><div>Access-Request or Accounting or Status Messages:</div><div><br></div><div>The Message-Authenticator is calculated after the packet Authenticator has been generated using a HMAC-MD5 with the Message-Authenticator being a zero 16 byte string and then the HMAC-MD5 calculated using the shared secret as the key then replaced over the 16 zero byte field with the calculated value.</div>
<div><br></div><div>So a packet would look like this if the User-Name was "bob" with password "hello" and the shared secret of "testing123"</div><div><br></div><div>Request to HMAC-MD5 calculate:</div>
<div><div>0101002b14dbc57d377ba1846411553a49bf019b0105626f62501200000000000000000000000000000000<br></div><div><br></div><div>HMAC-MD5 46ecb6b4dde2c7e15a7d2a86fb05f1b2<br></div><div><br></div><div>Resulting request:</div>
<div>0101002b14dbc57d377ba1846411553a49bf019b0105626f62501246ecb6b4dde2c7e15a7d2a86fb05f1b2<br></div></div><div><br></div><div>Whereas because of this line in RFC5176 with my emphasis on the word before:</div><div><br></div>
<div>"<span style="color:rgb(0,0,0);font-size:1em">The </span><span style="color:rgb(0,0,0);font-size:1em">Message-Authenticator Attribute is calculated and inserted in the </span><span style="color:rgb(0,0,0);font-size:1em">packet *before* the Request Authenticator is calculated."</span></div>
<div><span style="color:rgb(0,0,0);font-size:1em"><br></span></div><div><span style="color:rgb(0,0,0);font-size:1em">So this means that the </span><span style="color:rgb(0,0,0);font-size:13px">Message-Authenticator</span><span style="font-size:1em;color:rgb(0,0,0)"> HMAC value should be calculated on the assumption the Packet </span><span style="font-size:13px;color:rgb(0,0,0)">Authenticator </span><span style="font-size:1em;color:rgb(0,0,0)">is all zero bytes so it would look something like this:</span></div>
<div><span style="color:rgb(0,0,0);font-size:1em"><br></span></div><div><font color="#000000">2b90002b000000000000000000000000000000000105626f62501200000000000000000000000000000000</font><br></div><div><font color="#000000"><br>
</font></div><div><font color="#000000">And then the Packet </font><span style="font-size:13px;color:rgb(0,0,0)">Authenticator</span><span style="font-size:13px;color:rgb(0,0,0)"> and the </span>Message-Authenticator gets added in and you end up with a packet like this:</div>
<div><br></div><div>2b90002b9b6756059c3b56559d67f44418ae1fb70105626f6250125d68bd8fc122f6f2346e51872ba21fc3<br></div><div><br></div><div>Is this correct? As that is how it seems to be working for me. And I just wanted to make sure I was approaching this correctly. As it seems a little strange that the CoA/DM messages would prefer to have a null Authenticator message when calculating a Message-Authenticator. But it seems to be the way it is.</div>
<div><br></div><div>Cheers</div><div><br></div><div>Peter</div></div>