0

我们收到了一组智能卡测试证书,用于开发需要使用 PKI 对 XML 消息进行签名的解决方案。每个(物理)智能卡似乎都存储了两个证书。我使用智能卡提供商提供的软件将它们导入 Windows 证书存储区,然后使用类似于以下的代码来迭代已安装的证书:

foreach (X509Certificate2 x509 in CertStore.Certificates) {
  foreach (X509Extension extension in x509.Extensions) {
     if (extension.Oid.Value == "one we are interested in") {
        X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
        if ((ext.KeyUsages & X509KeyUsageFlags.DigitalSignature) != X509KeyUsageFlags.None) {
            // process certs here

我们被告知要使用设置了 NonRepudiation 密钥使用标志的证书来签署 XML。但是,具有 NonRepudiation 标志的证书具有此标志,而不是例如我在上面检查的 DigitalSignature 标志。除了我之外,这会让任何人感到有点奇怪吗?换句话说,我被告知使用没有(似乎)设置了 DigitalSignature 使用标志的证书进行签名。这是正常程序吗?任何意见?

谢谢。

4

3 回答 3

1

它有什么关键用途?没错,这有点奇怪,但是,例如,如果密钥用于提供 AD 登录,那么它可能没有设置用于 DigitalSignature 的标志。这并不是说您不能为此使用它,它只是表明当您超出密钥的指定用途时,证书颁发者不提供任何保证。

于 2009-12-21T09:51:41.990 回答
1

当我阅读RFC 5280 (4.2.1.3) 时,nonRepudiation 是 digitalSignature 的超集。换句话说,它授予了 digitalSignature 的所有能力,然后是一些。所以从技术上讲,他们要求的是有效的,尽管可能不寻常。

于 2010-01-10T16:49:02.397 回答
1

如果您想提供不可否认服务,即您希望签名具有法律价值,那么您应该只使用不可否认。实际上,这是标准推荐的(参见 ETSI TS 102 280),因为使用其他 keyUsage 位和 nonRepudation 可能存在安全问题。

于 2010-06-10T14:19:25.167 回答