如何将 X509SecurityToken 用作 ActAs 令牌并验证调用方是否具有私钥



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

有什么办法吗?如何要求 ActAs 令牌证明它拥有私钥?

提供公钥或 X509 证书并不能证明我是私钥的持有者。
这不是目的。

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

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

验证我是乔治W的方式是你给我一个随机挑战(在过去它被称为宣布),我用我的私钥签名。
然后,使用公钥(通过 x509 证书)验证签名。
证书的目的是标识具有证书的实体,而不是私钥的持有者。
它真的不能验证我是乔治·
它只是验证在某个时间点我有私钥。

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

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

相关内容

  • 没有找到相关文章

最新更新