<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 16, 2016 at 9:16 AM, Joe Armstrong <span dir="ltr"><<a href="mailto:erlang@gmail.com" target="_blank">erlang@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":qp" class="a3s aXjCH m15731db181b04fb5">What would a Pid look like - a<br>
{HostIP,PortNumber,NodeName,<wbr>LocalPidinNode} tuple?</div></blockquote></div><br></div><div class="gmail_extra">The problem with this is that HostIP, PortNumber and NodeName are mobile. They change their location over time as the machine is moved around and roam. In the modern network, this is a common thing to happen, so one has to handle this.<br><br></div><div class="gmail_extra">Another problem is that there is no way to authenticate.<br><br></div><div class="gmail_extra">I propose that a Node is identified by Curve25519 Public Key. Thus, an identity is<br><br></div><div class="gmail_extra">{Curve25519PK, LocalPid}<br><br></div><div class="gmail_extra">Dissemination of the PK is done either over a DHT (Kademlia, ...) which maps the PK to {IP, Port} pairs. Or it is using a P2P mesh network such as Secure Scuttlebutt. Once connected, you exchange messages in a mode of authentication, where you force a handshake, and verify that the other end is indeed the owner of the secret key behind the public key. This thwarts MITM attacks. Furthermore, if you use something such a CurveTun, you also get the advantage the connection has perfect forward secrecy.<br></div><div class="gmail_extra"><br clear="all"></div><div class="gmail_extra">Given:<br><br></div><div class="gmail_extra">* enacl<br></div><div class="gmail_extra">* dht<br></div><div class="gmail_extra">* curve_tun<br><br></div><div class="gmail_extra">We have the parts for the DHT solution already. For the Secure ScuttleButt (ssb) solution, we have to write some code, but OTOH, we then also get access to a open mesh facebook social media network :) I may be writing an OCaml backend for the ssb network :)<br><br></div><div class="gmail_extra">-- <br><div class="gmail_signature" data-smartmail="gmail_signature">J.</div>
</div></div>