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