如何加密Erlang rpc调用(和Mnesia复制)和其他流量?

sbtkgmzw  于 2022-12-08  发布在  Erlang
关注(0)|答案(4)|浏览(155)

I believe that internode communication is taking place in the clear and that the cookie value is strictly used for authentication. (I do not have any proof as yet).

  1. How do I encrypt internode communication?
  2. How do I encrypt Mnesia replication messages?
  3. How do I configure my firewall and packet filters to permit these messages to pass through?
  4. How do I prevent snooping of my Erlang traffic?
um6iljoc

um6iljoc1#

好吧,因为它都是在IP上运行的,一种选择是在节点之间使用IPSec。加密的VPN连接也可以实现这个目的。这两种连接都不需要在Erlang方面做任何更改,Erlang程序或运行时也不会知道加密正在发生,除非在(希望如此)导致通信失败的攻击的罕见情况,在这种情况下,看起来好像另一个节点已关闭。

fwzugrvs

fwzugrvs2#

您可以使用SSH隧道通过它传递所有的erlang通信,使用-rsh ssh参数,您将需要为ssh设置基于证书的身份验证(即没有密码)。
呃--呃--嘘嘘....
有关更多详细信息,请参阅:

6ioyuze2

6ioyuze23#

现在,使用inet_tls_dist自定义分发模块就可以实现这一点。有一个guide in the documentation介绍了如何使用inet_tls_dist模块作为分发模块来获得集群节点之间的加密通信。我不知道这些特性是什么时候引入的,但我知道它们在Erlang 18.2和更新版本中都有。
Erlang Solutions也编写了一个blog post on this

dddzy1tm

dddzy1tm4#

基本上有两种选择:
1.使用SSL连接Erlang节点,如on Trap Exit所述
1.使用VPN或IpSEC等底层IP机制

相关问题