2

我已经实现了一个 STS,它允许客户端使用 X509 证书进行身份验证。WIF(现在内置在 .NET 4.5 中)有一个X509SecurityToken类似乎非常适合这种情况。就我而言,我还想传递一个ActAs令牌,但在我看来,虽然 ActAs 令牌是经过验证的(通过不同的令牌处理程序集合),但对于X509SecurityToken,此验证并不能证明调用者拥有私钥,就像将令牌用作消息凭据时一样。

有没有办法解决?我如何要求 ActAs 令牌证明它具有私钥?

4

1 回答 1

-1

出示公钥或 X509 证书并不能证明我是私钥的持有者。
那不是目的。

但是签名证书也不能证明我是私钥的持有者。

如果我给你寄一张乔治 W 的亲笔签名照片,而你验证签名是真实的,而且照片是乔治 W,这是否证明我是乔治 W?

您验证我是乔治 W 的方式是您向我发送一个随机挑战(在过去它被称为通知),然后我用我的私钥对其进行签名。
然后,您使用公钥(通过 x509 证书)验证签名。
证书的目的是识别具有证书的实体而不是私钥的持有者。
而且它真的不能验证我是乔治 W。
它只是验证我在那个时间点拥有私钥。

确实,如果身份验证是基于签名证书的,那么您可以使用任何经过身份验证的服务器进行身份验证,这种错误假设是签名证书证明我是私钥的持有者。

您的困惑不仅限于 PKI,而是一般的安全性。
为了加密通道,加密密钥每 x 时间段更改一次。

于 2013-11-07T21:59:22.337 回答