在 CloudHSM CLI 中验证使用 RSA-PKCS 机制签名的签名
使用 CloudHSM CLI 中的 crypto verify rsa-pkcs 命令完成以下操作:
确认文件已通过给定的公有密钥在 HSM 中签名。
验证签名是否是使用
RSA-PKCS
签名机制生成的。将签名文件与源文件进行比较,并根据给定的 rsa 公有密钥和签名机制确定两者是否具有加密相关性。
要使用 crypto verify rsa-pkcs 命令,您的 AWS CloudHSM 集群中必须首先有一个 RSA 公有密钥。
注意
您可以使用带有 CloudHSM CLI 中的 crypto sign 类别 子命令的 CloudHSM CLI 生成签名。
用户类型
以下类型的用户均可运行此命令。
-
加密用户(CU)
要求
-
要运行此命令,必须以 CU 身份登录。
语法
aws-cloudhsm >
help crypto verify rsa-pkcs
Verify with the RSA-PKCS mechanism Usage: crypto verify rsa-pkcs --key-filter [
<KEY_FILTER>
...] --hash-function<HASH_FUNCTION>
<--data-path<DATA_PATH>
|--data<DATA>
> <--signature-path<SIGNATURE_PATH>
|--signature<SIGNATURE>
> Options: --cluster-id<CLUSTER_ID>
Unique Id to choose which of the clusters in the config file to run the operation against. If not provided, will fall back to the value provided when interactive mode was started, or error --key-filter [<KEY_FILTER>
...] Key reference (e.g. key-reference=0xabc) or space separated list of key attributes in the form of attr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE to select a matching key --hash-function<HASH_FUNCTION>
[possible values: sha1, sha224, sha256, sha384, sha512] --data-path<DATA_PATH>
The path to the file containing the data to be verified --data<DATA>
Base64 encoded data to be verified --signature-path<SIGNATURE_PATH>
The path to where the signature is located --signature<SIGNATURE>
Base64 encoded signature to be verified -h, --help Print help
示例
这些示例说明了如何使用 crypto verify rsa-pkcs 来验证使用 RSA-PKCS 签名机制和 SHA256
哈希函数生成的签名。此命令在 HSM 中使用公有密钥。
例 示例:使用 Base64 编码的数据验证 Base64 编码的签名
aws-cloudhsm >
crypto verify rsa-pkcs --hash-function sha256 --key-filter attr.label=rsa-public --data YWJjMTIz --signature XJ7mRyHnDRYrDWTQuuNb+5mhoXx7VTsPMjgOQW4iMN7E42eNHj2Q0oovMmBdHUEH0F4HYG8FBJOBhvGuM8J/z6y41GbowVpUT6WzjnIQs79K9i7i6oR1TYjLnIS3r/zkimuXcS8/ZxyDzru+GO9BUT9FFU/of9cvu4Oyn6a5+IXuCbKNQs19uASuFARUTZ0a0Ny1CB1MulxUpqGTmI91J6evlP7k/2khwDmJ5E8FEar5/Cvbn9t21p3Uj561ngTXrYbIZ2KHpef9jQh/cEIvFLG61sexJjQi8EdTxeDA+I3ITO0qrvvESvA9+Sj7kdG2ceIicFS8/8LwyxiIC31UHQ==
{ "error_code": 0, "data": { "message": "Signature verified successfully" } }
例 示例:使用数据文件验证签名文件
aws-cloudhsm >
crypto verify rsa-pkcs --hash-function sha256 --key-filter attr.label=rsa-public --data-path data.txt --signature-path signature-file
{ "error_code": 0, "data": { "message": "Signature verified successfully" } }
例 示例:证明为错误的签名关系
此命令验证无效数据是否由标签为 rsa-public
的公有密钥使用 RSAPKCS 签名机制进行签名,以生成位于 /home/signature
中的签名。由于给定参数不构成真正的签名关系,所以命令会返回错误消息。
aws-cloudhsm >
crypto verify rsa-pkcs --hash-function sha256 --key-filter attr.label=rsa-public --data aW52YWxpZA== --signature XJ7mRyHnDRYrDWTQuuNb+5mhoXx7VTsPMjgOQW4iMN7E42eNHj2Q0oovMmBdHUEH0F4HYG8FBJOBhvGuM8J/z6y41GbowVpUT6WzjnIQs79K9i7i6oR1TYjLnIS3r/zkimuXcS8/ZxyDzru+GO9BUT9FFU/of9cvu4Oyn6a5+IXuCbKNQs19uASuFARUTZ0a0Ny1CB1MulxUpqGTmI91J6evlP7k/2khwDmJ5E8FEar5/Cvbn9t21p3Uj561ngTXrYbIZ2KHpef9jQh/cEIvFLG61sexJjQi8EdTxeDA+I3ITO0qrvvESvA9+Sj7kdG2ceIicFS8/8LwyxiIC31UHQ==
{ "error_code": 1, "data": "Signature verification failed" }
参数
<CLUSTER_ID>
-
要运行此操作的集群的 ID。
必需:如果已配置多个集群。
<DATA>
-
要签名的 Base64 编码数据。
必需:是(除非通过数据路径提供)
<DATA_PATH>
-
指定要签名的数据的位置。
必需:是(除非通过数据路径提供)
<HASH_FUNCTION>
-
指定哈希函数。
有效值:
sha1
sha224
sha256
sha384
sha512
必需:是
<KEY_FILTER>
-
密钥引用(例如
key-reference=0xabc
)或空格分隔的密钥属性列表,采用attr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
形式,可选择匹配密钥。有关支持的 CloudHSM CLI key 密钥属性列表,请参阅“Key attributes for CloudHSM CLI”。
必需:是
<SIGNATURE>
-
Base64 编码的签名。
必需:是(除非通过签名路径提供)
<SIGNATURE_PATH>
-
指定签名的位置。
必需:是(除非通过签名路径提供)