“分布式协议”的意思是由多个Erlang节点组成的一个集群。当Erlang的节点被组成集群后,任何的进程都可以发送信息去任意节点去执行,并且可以在任意的节点上产生新的进程。 这样就形成了分布式应用的基础,比如Mnesia,数据库的实现分别由Erlang/OTP和消息代理RabbitMQ来进行。
Erlang分布式协议被设计为假定运行在一个可靠的网络。当节点互相联系是需要证明彼此是持有共享密钥的, 称为 "cookie",这样做的主要目的是保证不同的Erlang集群处于同一网络中是不会意外的合并;也不建议依靠cookie机制来防止攻击者。
此外,在一个集群中所有的Erlang节点完全信任彼此。集群中任何节点可以任意的其他节点运行代码,包括运行由os:cmd产生的任意命令。这就是为什么文章the Distribunomicon chapter of Learn You Some Erlang 描述的Erlang安全模型时使用了这句话 * this space intentionally left blank *。
在这篇文章内,我将叙述如何通过TLS来进行Erlang分布式协议,以及能够或不能够解决的问题。
评论删除后,数据将无法恢复
协作翻译 | Erlang 通过 TLS 的分布式
什么是Erlang分布式?
“分布式协议”的意思是由多个Erlang节点组成的一个集群。当Erlang的节点被组成集群后,任何的进程都可以发送信息去任意节点去执行,并且可以在任意的节点上产生新的进程。 这样就形成了分布式应用的基础,比如Mnesia,数据库的实现分别由Erlang/OTP和消息代理RabbitMQ来进行。
Erlang分布式协议被设计为假定运行在一个可靠的网络。当节点互相联系是需要证明彼此是持有共享密钥的, 称为 "cookie",这样做的主要目的是保证不同的Erlang集群处于同一网络中是不会意外的合并;也不建议依靠cookie机制来防止攻击者。
此外,在一个集群中所有的Erlang节点完全信任彼此。集群中任何节点可以任意的其他节点运行代码,包括运行由os:cmd产生的任意命令。这就是为什么文章the Distribunomicon chapter of Learn You Some Erlang 描述的Erlang安全模型时使用了这句话 * this space intentionally left blank *。
在这篇文章内,我将叙述如何通过TLS来进行Erlang分布式协议,以及能够或不能够解决的问题。