【发布时间】:2011-06-08 04:51:18
【问题描述】:
我了解如何通过数字签名实现不可否认性和完整性,但我还没有掌握身份验证。
我正在用 C# 开发一个客户端-服务器应用程序,它应该能够使用数字证书和数字签名进行身份验证。我知道如何检查签名的有效性和完整性(使用 SignedCms.CheckSignature()),但这如何验证所涉及的任何部分?
例如:
- 客户端向服务器请求数字签名,
- 客户端收到签名并进行验证,
- 如果验证成功,请继续。
客户端可能成为中间人攻击的受害者,并在第 2 步中接收到有效签名。验证会成功,但客户端不会与正确的服务器通信。
我错过了什么?
【问题讨论】:
标签: c# authentication digital-signature digital-certificate x509certificate2