我实现了一个允许客户端使用X509证书进行身份验证的STS。WIF (现在内置于.NET 4.5中)有一个X509SecurityToken类,它看起来非常适合这个场景。在我的示例中,我还想传递一个 ActAs 令牌,但在我看来,当ActAs令牌被验证(由不同的令牌处理程序集合)时,对于X509SecurityToken,此验证并不能证明调用者拥有私钥,就像令牌用作消息凭据时一样。
有办法绕过这件事吗?如何要求ActAs令牌证明它有私钥?
发布于 2013-11-07 21:59:22
出示公钥或X509证书并不能证明我是私钥的持有者。
这不是目的。
但签署的证书也不能证明我是私人钥匙的持有者。
如果我寄给你一张乔治W的亲笔签名照片,而你核实签名是真实的,照片是乔治W,这能证明我是乔治W吗?
你确认我是乔治W的方式是,你给我一个随机的挑战(在过去,它被称为“零”),我用我的私钥签名。
然后使用公钥(通过x509证书)验证签名。
证书的目的是用证书来标识实体,而不是私人钥匙的持有人。
这并不能证明我是乔治·W。
它只是验证当时我有私钥。
实际上,如果身份验证是基于签名的证书,那么您可以使用任何服务器进行身份验证,该服务器使用错误的假设进行身份验证,即签名的证书证明我是私钥的持有者。
您的混淆并不局限于PKI,而是一般的安全性。
要加密信道,加密密钥每隔x段时间更改一次。
https://stackoverflow.com/questions/19795794
复制相似问题