如何加密erlang rpc调用(以及Mnesia复制)和其他流量

时间:2009-05-21 00:43:15

标签: security encryption erlang

我认为节点间通信是明确的,并且cookie值严格用于身份验证。 (我还没有任何证据)。

  1. 如何加密节点间通信?
  2. 如何加密Mnesia复制邮件?
  3. 如何配置防火墙和数据包筛选器以允许这些邮件通过?
  4. 如何防止窥探我的erlang流量?

4 个答案:

答案 0 :(得分:6)

好吧,因为它全部通过IP运行,所以一种选择是在节点之间使用IPSec。加密的VPN连接也可以解决问题。这些都不需要对Erlang方面进行任何更改,Erlang程序或运行时也不会意识到加密正在发生,除了(希望)罕见的导致通信失败的攻击情况,在这种情况下它会看起来好像另一个节点已关闭。

答案 1 :(得分:3)

您可以使用SSH隧道通过它传递所有erlang通信,使用-rsh ssh参数,您将需要为ssh设置基于证书的身份验证(即无密码)。然后你可以简单地使用

的内容
  

erl -rsh ssh ....

有关其他详细信息,请参阅:

答案 2 :(得分:2)

现在可以使用inet_tls_dist自定义分发模块开箱即用。关于如何使用inet_tls_dist模块作为分发模块来获取群集节点之间的加密通信,有一个guide in the documentation。我不确定何时引入所有这些功能,但我知道它们存在于Erlang 18.2及更新版本中。

Erlang Solutions还写了blog post on this

答案 3 :(得分:1)

基本上有两种选择:

  1. 按照on Trap Exit
  2. 所述,使用 SSL连接Erlang节点
  3. 使用底层IP机制,如VPN或IpSEC