<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Apr 14, 2016 at 12:50 PM, Henry Baker <span dir="ltr"><<a href="mailto:hbaker1@pipeline.com" target="_blank">hbaker1@pipeline.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ok, so now we have 2 choices: engage in a DH exchange with the repository or utilize random numbers.<br>
<br>
Using a DH exchange is a real problem due to 1) latency and 2) we now need the little sensor to be able to *receive* data from the data repository, which complicates the system enormously and opens up whole new vistas of attack surfaces.  It also doesn't solve the problem of fully protecting the session keys so negotiated from physical attacks.</blockquote><div><br></div><div>No bidirectional communication is needed. Each time the sensor wants to send data, it "seals" it by generating a random ephemeral (EC)DH private key, computing the corresponding public key and shared secret with the static (EC)DH public key of the recipient which can be used to derive a symmetric key to encrypt a given message. Then you just send the corresponding ephemeral public key along with each message, and erase the (EC)DH private key (and derived shared secret / symmetric key) once the message has been sent.</div><div><br></div><div>This scheme lacks forward secrecy if the static key on the other end is exposed though.</div><div><br></div></div>-- <br><div class="gmail_signature">Tony Arcieri<br></div>
</div></div>