CMS 签名通常包含以下项目
Posted: Sun Mar 23, 2025 7:43 am
欲查看简短版本,请继续阅读:
CMS 版本
有关摘要算法的信息
内容信息
(可选)消息本身
(可选)已使用的证书 + 证书吊销列表
签名者信息:CMS 版本
签名者 ID
摘要算法
签约时间
签名算法
签名
简而言之,CMS 签名包含您需要验证的消息是否由 喀麦隆 数字数据 提供的签名进行签名的所有内容。因此验证包括两个步骤:
根据签名验证内容
验证使用的签名
),但首先是签名。首先,我们需要创建 ASN1Primitive,即将签名表示为 Java 对象。接下来,我们使用签名对象和实际消息创建 CMSSignedData。
现在我们有了这两个对象,我们就可以验证签名了——因为 CMS 可以包含多个签名者。这是通过根据证书验证签名来完成的。通过对每个签名者执行此操作,您可以验证完整的签名。
下一步是验证证书本身。
}
<span class="copy">Copy</span>
上述代码根据已知/批准的证书来验证证书。首先创建一个信任锚。这是通过从密钥库中检索所有证书并将其添加到受信任证书列表中来完成的。这些在 PKIXBuilder 参数中组合。因为已经使用的证书有可能是证书链的一部分,所以我们将添加在签名中找到的完整证书链。这意味着只要该链中的一个或多个证书受到信任,证书就是有效的。
下一步是将中间存储添加到 params。一旦我们掌握了这三点,我们就可以验证实际的链条,以绝对确保一切正常!
结论
当需要在链中添加额外的安全层时,CMS 签名是一种非常强大的工具。它独立于通信协议,只要消息被一方收到,您就可以验证信息的来源以及是否已被更改。这需要一些设置,但是一旦设置到位并运行,您就在零信任框架中添加了一个额外的层。
CMS 版本
有关摘要算法的信息
内容信息
(可选)消息本身
(可选)已使用的证书 + 证书吊销列表
签名者信息:CMS 版本
签名者 ID
摘要算法
签约时间
签名算法
签名
简而言之,CMS 签名包含您需要验证的消息是否由 喀麦隆 数字数据 提供的签名进行签名的所有内容。因此验证包括两个步骤:
根据签名验证内容
验证使用的签名
),但首先是签名。首先,我们需要创建 ASN1Primitive,即将签名表示为 Java 对象。接下来,我们使用签名对象和实际消息创建 CMSSignedData。
现在我们有了这两个对象,我们就可以验证签名了——因为 CMS 可以包含多个签名者。这是通过根据证书验证签名来完成的。通过对每个签名者执行此操作,您可以验证完整的签名。
下一步是验证证书本身。
}
<span class="copy">Copy</span>
上述代码根据已知/批准的证书来验证证书。首先创建一个信任锚。这是通过从密钥库中检索所有证书并将其添加到受信任证书列表中来完成的。这些在 PKIXBuilder 参数中组合。因为已经使用的证书有可能是证书链的一部分,所以我们将添加在签名中找到的完整证书链。这意味着只要该链中的一个或多个证书受到信任,证书就是有效的。
下一步是将中间存储添加到 params。一旦我们掌握了这三点,我们就可以验证实际的链条,以绝对确保一切正常!
结论
当需要在链中添加额外的安全层时,CMS 签名是一种非常强大的工具。它独立于通信协议,只要消息被一方收到,您就可以验证信息的来源以及是否已被更改。这需要一些设置,但是一旦设置到位并运行,您就在零信任框架中添加了一个额外的层。