Что такое хороший способ защитить сетевой трафик RPC Cap’n Proto?

Я хотел бы использовать Cap’n Proto RPC для связи с сервером в облаке с рабочего стола в офисе. Cap’n Proto не обеспечивает безопасных сетевых подключений через брандмауэр. Я бы предпочел c ++, так как у меня есть другие компоненты, которые требуют этого.

Я вижу, что некоторые люди смотрят на nanomsg и другие транспорты, которые напрямую связаны с приложением, но мне было интересно, может ли быть удовлетворительным stunnel или что-то подобное.

Приложение stunnel, как известно большинству, может обеспечить HTTPS-инкапсуляцию трафика TCP / IP при определенных условиях согласно FAQ:

  1. Протокол TCP, а не UDP.
  2. Протокол не использует несколько соединений, например, ftp.
  3. Протокол не зависит от внеполосных (OOB) данных,
  4. Удаленный сайт не может использовать протокол конкретного приложения, такой как ssltelnet, где SSL является согласованной опцией, за исключением тех протоколов, которые уже поддерживаются аргументом протокола для stunnel.

Кажется, что Cap’n Proto RPC может удовлетворить эти условия. Я не думаю, что клиент будет возражать против установки Stunnel в этом случае. Кто-нибудь пробовал это или что-то подобное? Если это так, ваш опыт будет оценен. Если кто-то знает более быструю / более легкую альтернативу, это также будет полезно.

Спасибо!

1

Решение

Да, двухсторонний протокол Cap’n Proto (единственный предоставляемый в настоящее время) должен отлично работать с stunnel, поскольку это простой транспорт на основе TCP. Конечно, вам нужно будет запустить и клиент Stunnel, и сервер, но в противном случае это должно быть легко установить. Вы также можете использовать переадресацию портов SSH или VPN для достижения аналогичного результата.

(Обратите внимание, что сам по себе stunnel не имеет ничего общего с HTTPS, но часто используется для реализации HTTPS, поскольку HTTP также является простым протоколом TCP, а HTTPS является тем же протоколом, за исключением TLS. В случае Cap’n Proto Cap’n Прото заменяет HTTP. Так что, я думаю, вы создаете Cap’nProto-S.)

Другой вариант заключается в реализации kj::AsyncIoStream абстрактный интерфейс, основанный непосредственно на библиотеке TLS, такой как OpenSSL, GnuTLS и т. д. Уровень RPC Cap’n Proto позволит вам обеспечить произвольную реализацию kj::AsyncIoStream как его транспорт (через интерфейсы в capnp/rpc-twoparty.h). К сожалению, многие библиотеки TLS имеют довольно уродливые интерфейсы, и это может быть трудно сделать правильно. Но если вы что-то пишете, пожалуйста, внесите это обратно в проект, так как это то, что я хотел бы иметь в базовой библиотеке.

В конце концов мы планируем добавить официальный криптографический транспорт в Cap’n Proto, предназначенный для непосредственной поддержки многопартийных представлений (чего на самом деле Cap’n Proto пока не делает, но я ожидаю, что когда он будет готов, эта функция станет убийственной). Я ожидаю, что эта поддержка появится в 2016 году, но не могу дать никаких обещаний.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector