XMPP Proxy TLS шифрование - PullRequest
       8

XMPP Proxy TLS шифрование

1 голос
/ 04 марта 2011

Я пытаюсь разработать XMPP "Proxy", который будет в середине стандартного Jabber-соединения.

Схема будет выглядеть примерно так:

Pidgin ---> Proxy <--- eJabberD
              |
              v
           Console

Цель этого прокси-сервера состоит в том, чтобы регистрировать все строфы, которые проходят по проводам.ИМХО, это очень удобно, когда вы разрабатываете решения на основе XMPP.

Я делаю это с EventMachine и Ruby, и главная проблема заключается в том, чтобы узнать, как расшифровать трафик после рукопожатия TLS / SASL.

Перед запуском все отлично работает, сервер и клиент могут общаться между ними, но когда начинается рукопожатие tls, хотя оно работает, невозможно сбросить чистый контент, поскольку весь трафик зашифрован.

Я не эксперт в TLS / SASL, поэтому я не знаю, какой из этих подходов лучший.Я думаю, что один из способов достижения этого - захватить сертификат в рукопожатии и использовать его для расшифровки содержимого, передаваемого через прокси.

Спасибо!

1 Ответ

2 голосов
/ 04 марта 2011

Если бы вы могли делать то, что вы говорите (взять сертификат на провод и использовать его для расшифровки), то TLS будет довольно бесполезным.Это одна из основных атак, которые существует для предотвращения TLS.

Если сервер разрешит это, просто не отправляйте starttls.Это не требуется по спецификации.Если вашему серверу требуется starttls, вы можете настроить его на использование нулевого шифра, что позволит оставить трафик незашифрованным.Конечно, не все серверы будут поддерживать это.

Вы можете использовать starttls как посредник.Ответьте своим собственным туннелем клиенту и отправьте отдельное согласование starttls на сервер.Это должно генерировать предупреждения сертификата на клиенте, но, поскольку вы контролируете клиент, вы можете сказать ему, чтобы он все равно принимал сертификат.

Если вы контролируете сервер, вы можете использовать закрытый ключ от него для расшифровки трафика.Я не знаю ни одного готового кода, чтобы сделать это легко, но он доступен для записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...