Подтвердить что ты не робот

Howto encrypt erlang rpc calls (и репликация Mnesia) и другой трафик

Я считаю, что межсетевое общение происходит в ясном виде и что значение cookie строго используется для аутентификации. (У меня пока нет доказательств).

  • Как шифровать межобщинные сообщения?
  • Как шифровать сообщения репликации Mnesia?
  • Как настроить фильтры брандмауэра и пакетов, чтобы эти сообщения могли проходить через?
  • Как предотвратить отслеживание трафика erlang?
4b9b3361

Ответ 1

Ну, поскольку все это выполняется по IP, одним из вариантов будет использование IPSec между вашими узлами. Зашифрованные VPN-соединения также могут сделать трюк. Ни один из них не требует каких-либо изменений на стороне Erlang, а также программы Erlang или время выполнения не должны знать, что происходит шифрование, за исключением случаев (надеюсь) редких случаев атак, которые приводят к сбою связи, и в этом случае он будет выглядеть как будто другой node не работает.

Ответ 2

Вы можете использовать SSH-туннель для передачи через него всех сообщений erlang, используя параметр -rsh ssh, вам нужно настроить аутентификацию на основе сертификата для ssh (т.е. нет паролей). Затем вы можете просто использовать что-то вдоль линий

erl -rsh ssh....

Дополнительные сведения см. в следующих разделах:

Ответ 3

В основном есть два варианта:

  • Используйте SSL для подключения узлов Erlang, как описано на выходе Trap
  • Использовать подстилающие механизмы IP, такие как VPN или IpSEC

Ответ 4

Теперь это возможно из коробки с использованием настраиваемого модуля распределения inet_tls_dist. Существует руководство в документации о том, как использовать модуль inet_tls_dist в качестве модуля распространения для получения зашифрованных сообщений между узлами кластера. Я не уверен, когда все эти функции представлены, но я знаю, что они присутствуют в Erlang 18.2 и новее.

Erlang Solutions также написал запись в блоге.