<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 19, 2014 at 4:19 PM, Junxiao Shi <span dir="ltr"><<a href="mailto:shijunxiao@email.arizona.edu" target="_blank">shijunxiao@email.arizona.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi Adeola<div><br></div><div>I agree with the necessity of HMAC signature.</div><div><br></div><div>I have the following questions on the details:</div><div><ul><li>What's expected to appear in KeyLocator?</li></ul></div></div></blockquote><div>In my current implementation, I am setting up communications between two devices, and each of these devices is assigned an NDN name, which I can use to identify the sender/receiver of a signed packet. I think this is an implementation detail, similar to (partial) certificate names being used as key names with the current RSA signature. That is, there is nothing forcing someone implementing their own trust model with RSA signatures to use our certificate Data type and certificate names.</div><div><br></div><div>To relate to the current RSA signature KeyLocator, you can think of it as an identity instead of a full certificate name.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><ul><li>What's the benefit of using opad and ipad?</li><li>Why should SignatureValue contain two SHA256 hash functions? Why not use just "SHA256(KeyValue, Name, MetaInfo, Content, SignatureInfo)"?</li></ul></div></div></blockquote><div>This is how HMAC is defined (<a href="http://en.wikipedia.org/wiki/Hash-based_message_authentication_code">http://en.wikipedia.org/wiki/Hash-based_message_authentication_code</a>  <a href="http://www.ietf.org/rfc/rfc2104.txt">http://www.ietf.org/rfc/rfc2104.txt</a>). The two applications of SHA256 allow the symmetric key to be embedded in the hash. Otherwise, it would be a simple digest and could not prove the identity of a sender. The choice of ipad and opad were made by someone more aware of hash function attacks than I am.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>An accompanying document is needed to cover some guidance about how to design an application that makes use of HMAC signature and still guarantee a strong level of provenance.</div></div></blockquote><div><div> </div><div>There are many implementations of HMAC for authenticating web services. See <a href="http://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/HMACAuth.html">http://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/HMACAuth.html</a> for an example. I am not sure that I would be able to provide better guidance.</div><div> </div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>In particular, is this scheme usable if producer and sender do not exist at the same time?</div></div></blockquote><div><br></div><div>I'm not sure what you mean by exist. If they both know the key, they can exchange data. If you have old data stored and then someone tells you the symmetric key used in signing, you can verify it. It is exactly the same as if you encountered old data signed with an RSA private key, and then got the corresponding public key by whatever means: you would then be able to verify it.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>Yours, Junxiao​</div></div>
</blockquote></div><br></div><div class="gmail_extra">Thanks,</div><div class="gmail_extra">Adeola</div></div>