文档简介:
数字签名技术是非对称加密算法的另一种典型应用。数字签名分为签名和验证两个过程,消息发送者使用私钥对数据签名,消息接收者使用公钥进行签名验证。
通过密钥管理服务(KMS)创建的非对称密钥可以实现签名验签功能,签名者通过调用密码运算API使用私钥计算消息签名,同时获取公钥并分发至消息接收者,接收者使用公钥对消息进行签名验证。
-
场景特点
用于信任程度不对等的系统之间,实现敏感信息的安全传递
-
优势
应用广泛:通过非对称密钥实现签名验签,广泛用于数据防篡改、身份认证等相关技术领域
安全保障:支持主流的非对称密钥算法并且提供足够的安全强度,保证数字签名的安全性
场景示意图
操作流程
1. 信息发送者通过KMS控制台或者调用CreateKey接口,创建一个非对称的用户主密钥(CMK)。
2. 信息发送者通过调用KMS的getPublicKey接口获取到公钥,并将公钥分发给消息接收者。
3. 信息发送者通过调用KMS的asymmetricSign接口,使用创建的CMK私钥对需要传输的数据生成签名。
4. 信息发送者将签名和数据传递给信息接收者。
5. 信息接收者拿到签名和数据之后,在本地通过gmssl、openssl、密码库、KMS 的国密 Encryption SDK 等验签方法,使用信息发送者分发的公钥进行验证。特殊需求场景下,也可调用KMS的asymmetricVerify接口,使用CMK进行签名校验。
相关API
您可以调用以下KMS API,完成对数据的签名验签处理。
API名称 |
说明 |
createKey |
创建用户主密钥(CMK)。 |
getPublicKey |
获取非对称密钥的公钥,可用于离线验证数字签名,或者加密数据。 |
asymmetricSign |
非对称密钥的私钥运算:产生数字签名。 |
asymmetricVerify |
非对称密钥的公钥运算:验证私钥产生的数字签名。 |