SSL 还是自己的实现?

SSL or own implementation?

我有一个用 C# 编写的客户端服务器应用程序。 实际上,tcp 连接是由 rsa 和 rijandel 加密的(就像可怜的 ssl 一样)。我经常读到,我应该使用像 SSL 这样的东西而不是自己的实现。我知道这是为什么。 但是,如果我使用 ssl,我将需要两份证书,一份用于客户端,一份用于服务器,对吗? (因为服务器也以其他方式向客户端发送一些数据)我如何对客户端执行此操作?或者我应该使用其他加密通道进行此通信吗?

SSL(或 TLS)使用 public key cryptography 有两个目的。一种是加密通信通道(实际上只是为了交换对称密钥),一种是用于服务器识别。 public 私钥对的 public 密钥在由权威机构数字签名的证书中交换。

如果您不需要客户端对自己进行身份验证(这与您的用户登录不同),则不需要客户端证书。服务器证书足以识别服务器并加密通信通道。

客户端证书通常用于后台服务或守护进程需要通过 Web 服务标识自己的场景。在这种情况下,没有用户的身份可用于授权请求。