背景信息: C#中的程序写入
我现在正在开发一个程序,通过SOCKS5代理连接(从头开始编码。运行良好。),但我也想(通过该代理)通过SSL与DESTINATION进行通信。
我已经做了一些研究,谷歌搜索了很多次,并得出结论SslStream不适合我的情况。我需要先通过代理验证SSL,然后在收到密钥后开始发送加密数据包。
问题:
如何在C#中使用TLS加密我的数据包?出于某种原因,我根本无法弄明白。我被卡住了! :(
甚至REQUEST表示SSL证书所需的原始语法是什么?
答案 0 :(得分:1)
您可能希望了解开源Bouncy Castle cryptography library中的TLS实现。如果它不能按原样工作,你可以将其破解成你需要的东西。如果您想深入了解规范本身,您会发现它为IETF RFC 5246。
正如您可能已经发现的那样,执行连接设置工作的任何部分都会让您无法使用WebRequest
类系列来处理协议工作的HTTP部分。这给我留下了两个我可以看到的选项:自己做HTTP(我在网上找到了trivial example HTTP client),或者更改了当前的用户代理服务器设置
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "ProxyEnable"=dword:00000001 "ProxyServer"="socks=socks.example.net:1080"
然后使用WebRequest
类正常发送请求。
答案 1 :(得分:0)
我想向您提供我们的SecureBlackbox产品SSLBlackbox包。在众多其他组件中,它有一个基于套接字的简单SSL客户端组件,可以通过不同的代理(SOCKS,HTTPS CONNECT)连接,并支持SSL / TLS的所有功能,最高可达TLS 1.2。如果需要更多控制,可以使用任何自定义套接字,而不仅仅是内置套接字支持。这使您可以使用组件来保护不通过套接字的流量(鸽子邮件也可以通过这种方式保护)。
HTTPS客户端可用并包含在SSLBlackbox中。