SSL без SslStream, потому что я хотел бы подключиться через прокси SOCKS5 - PullRequest
0 голосов
/ 20 мая 2011

ОБЩАЯ ИНФОРМАЦИЯ: ПРОГРАММА, НАПИСАННАЯ НА C #

Сейчас я работаю над программой, которая подключается через прокси-сервер SOCKS5 (с нуля. Работает достаточно хорошо.), Но я также хотел бы (через этот прокси-сервер) общаться с DESTINATION через SSL.

Я провел некоторое исследование, много раз гуглил и пришел к выводу, что SslStream не будет идеальным для моей ситуации. Я должен сначала пройти аутентификацию с помощью SSL через прокси-сервер, а затем начать отправку зашифрованных пакетов, как только получу ключ.

Вопросы:

Как я могу зашифровать мои пакеты с помощью TLS в C #? По некоторым причинам я не могу понять это. Я застрял! (

Какой необработанный синтаксис требуется даже для ЗАПРОСА указанного SSL-сертификата?

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Возможно, вы захотите взглянуть на реализацию TLS в открытом коде Библиотека криптографии Bouncy Castle . Если он не будет работать как есть, вы можете взломать его и сделать то, что вам нужно. Если вы хотите углубиться в спецификацию, вы найдете ее как IETF RFC 5246 .

Как вы, вероятно, обнаружили, выполнение какой-либо части работы по настройке соединения самостоятельно оставляет вас без возможности использовать семейство классов WebRequest для обработки HTTP-части работы протокола. Это оставляет вам два варианта, которые я могу видеть: сделать HTTP самому (я нашел тривиальный пример HTTP-клиента , плавающий в сети) или изменить текущие настройки прокси-сервера пользователя

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyServer"="socks=socks.example.net:1080"

затем отправьте запрос в обычном режиме, используя WebRequest классы.

0 голосов
/ 20 мая 2011

Я хотел бы предложить вам SSLBlackbox пакет нашего продукта SecureBlackbox. Среди множества других компонентов он имеет простой клиентский компонент SSL на основе сокетов, может подключаться через различные прокси-серверы (SOCKS, HTTPS CONNECT) и поддерживает все функции SSL / TLS до TLS 1.2. Если вам нужно больше контроля, вы можете использовать любой пользовательский сокет, а не только встроенную поддержку сокетов. Это позволяет использовать компоненты для обеспечения безопасности трафика, который идет не через сокеты (почтовая почта также может быть защищена).

Доступен HTTPS-клиент, который также включен в SSLBlackbox.

...