代码之家  ›  专栏  ›  技术社区  ›  Richard

如何加密Erlang RPC调用(和Mnesia复制)和其他通信

  •  16
  • Richard  · 技术社区  · 16 年前

    我相信代码间通信是在clear中进行的,cookie值严格用于认证。(我还没有任何证据)。

    1. 如何加密代码间通信?
    2. 如何加密Mnesia复制消息?
    3. 如何配置防火墙和数据包过滤器以允许这些消息通过?
    4. 如何防止二郎的交通被监听?
    4 回复  |  直到 8 年前
        1
  •  6
  •   cjs    16 年前

    好吧,因为它都是通过IP运行的,一个选项是在节点之间使用ipsec。加密的VPN连接也可以做到这一点。这些都不需要在erlang方面进行任何更改,erlang程序或运行时也不会意识到加密正在发生,除非在(希望)很少发生的导致通信失败的攻击情况下,在这种情况下,它看起来像是另一个节点已关闭。

        2
  •  3
  •   none    16 年前

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

    erl-rsh ssh….

    有关更多详细信息,请参阅:

        3
  •  2
  •   Stratus3D    8 年前

    现在可以使用 inet_tls_dist 自定义分发模块。有一个 guide in the documentation 浅谈如何使用 伊内特尔斯德迪特 模块作为分发模块,以获取集群节点之间的加密通信。我不确定这些特性是什么时候引入的,但我知道它们在Erlang18.2和更新版本中存在。

    Erlang Solutions还写了一篇 blog post on this .

        4
  •  1
  •   Andrew    16 年前

    基本上有两种选择:

    1. 使用 用于连接Erlang节点的SSL 如上所述 on Trap Exit
    2. 使用 底层IP机制 像VPN或IPSec