-1

背景信息: 用 C# 编写的程序

我现在正在开发一个通过 SOCKS5 代理连接的程序(从头开始编码。工作得很好。),但我也想(通过那个代理)通过 SSL 与 DESTINATION 通信。

我做了一些研究,用谷歌搜索了很多次,得出的结论是 SslStream 不适合我的情况。我需要首先通过代理向 SSL 进行身份验证,然后在收到密钥后开始发送加密数据包。

问题:

如何在 C# 中使用 TLS 加密我的数据包?由于某种原因,我根本无法弄清楚。我被困住了!:(

甚至请求所说的 SSL 证书所需的原始语法是什么?

4

2 回答 2

1

您可能想查看开源Bouncy Castle 密码库中的 TLS 实现。如果它不能按原样工作,你可以破解它来做你需要的事情。如果您想深入了解规范本身,您会发现它是IETF RFC 5246

但是,正如您可能已经发现的那样,自己完成连接设置工作的任何部分都会使您无法使用WebRequest类族来处理协议工作的 HTTP 部分。这给你留下了两个我可以看到的选项:自己也做 HTTP(我发现一个简单的例子 HTTP 客户端漂浮在网络上),或者更改当前用户代理服务器设置

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet 设置]
“代理启用”=dword:00000001
"代理服务器"="socks=socks.example.net:1080"

WebRequest然后使用类正常发送请求。

于 2011-05-20T05:28:10.093 回答
0

我想为您提供我们 SecureBlackbox 产品的SSLBlackbox包。在众多其他组件中,它有一个基于套接字的简单 SSL 客户端组件,可以通过不同的代理(SOCKS、HTTPS CONNECT)进行连接,并支持 SSL/TLS 的所有功能,最高支持 TLS 1.2。如果您需要更多控制,您可以使用任何自定义套接字,而不仅仅是内置套接字支持。这使您可以使用组件来保护根本不通过套接字的流量(信鸽邮件也可以通过这种方式得到保护)。

HTTPS 客户端也可用并包含在 SSLBlackbox 中。

于 2011-05-20T07:00:22.513 回答