在HTTP(非HTTPS)上进行客户端证书身份验证

7

在 Windows IIS 平台上使用 ASP.NET,仅通过 HTTP 能否使用客户端证书进行身份验证,而不需要 HTTPS?

我需要使用数字证书对客户端进行身份验证,但不能使用 HTTPS。


这个回答解决了你的问题吗?我能在不使用HTTPS连接的情况下使用SSL证书吗? - leonheess
1个回答

0

不行,至少如果客户端是一个Web浏览器的话。而且,这没有任何意义。


1
谢谢Kan的快速回复!您能否更详细地解释一下,为什么这不合理?如果我想知道客户端是谁,但我不想要一个安全通道。 - Allan Baker
如果您没有安全通道,那么任何人都可以窃取客户的身份,而您将无法确定是真正的客户还是窃取了客户身份的黑客。 - kan
4
@kan,你的回答并不完全正确,请参考:https://dev59.com/31nUa4cB1Zd3GeqPXBJm - Kees C. Bakker
@KeesC.Bakker 为什么?你提到的问题只涉及WS-Security。WS不是一个Web浏览器。实现X.509的唯一方法是使用JavaScript,但我不确定它是否能正常工作,至少由于性能问题。而且不确定客户端如何向JavaScript提供客户端证书。 - kan
4
虽然需要定制解决方案,但确实存在这样一个点。如果某人无法使用SSL(例如由于IP地址限制),则使用客户端证书仍可通过使用挑战加密和返回服务器的方式进行安全身份验证。该挑战使用用户的公钥进行加密,然后使用服务器的公钥进行加密并由客户端的私钥签名,从而在HTTP上实现安全身份验证。 - AJ Henderson
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接