我有一个用C#编写的客户端服务器应用程序。 实际上tcp连接是由rsa和rijandel(像穷人ssl)一样加密的。我经常读到,我应该使用像SSL这样的东西而不是自己的实现。我知道原因。 但是如果我使用ssl,我需要两个证书,一个用于客户端,一个用于服务器,对吧? (因为服务器也会向客户端发送一些数据和其他方式)我如何使用客户端执行此操作?或者我应该将此通信用于其他加密通道?
答案 0 :(得分:2)
SSL(或TLS)使用public key cryptography有两个目的。一种是加密通信信道(实际上只是为了交换对称密钥),一种用于服务器识别。公钥私钥对的公钥在由权威机构进行数字签名的证书中交换。
如果您不需要您的客户端进行身份验证(这与您登录的用户不同),则不需要客户端证书。服务器证书足以识别服务器并加密通信通道。
客户端证书通常用于后台服务或守护程序需要通过Web服务标识自身的场景中。在这种情况下,没有用户可以使用谁的身份来授权请求。