背景
调用凭据管理系统(SSM)服务时,将会使用到腾讯云账号的 SecretKey 作为身份的认证,其中大部分用户直接以 SecretKey 的明文形式存储,例如明文暴露在代码中、放置在配置中心、上传至 Git 等方式,风险系数极大。
为了能保障端到端的全链路数据安全,防止 SecretKey 的明文泄露,可以结合密钥管理系统(KMS)的白盒密钥解决方案,以密文的形式来存储 SecretKey。
在白盒密钥管理解决方案中,将密钥和算法进行融合,有效的将密钥隐藏起来,大大增加密钥被嗅探、被破解的难度,从而保护密钥这一极其敏感的信息,提升端到端全链路的安全性。
操作流程
步骤1:创建 SSM 凭据对象
步骤2:白盒密钥加密
b. 用户使用密钥管理系统 KMS 的白盒密钥对 SecretKey 进行加密,具体操作步骤如下所示。
i. 创建白盒密钥 。
ii. 控制台获取 API SecretKey。
iii. 使用白盒密钥加密 API SecretKey。
c. 加密完成后,获取对应的密文和初始化向量,并下载解密密钥和解密 SDK 文件。
说明:
d. 部署白盒解密 SDK。
步骤3:应用系统需要访问 SSM,获取凭据明文
e. 首先在业务逻辑中调用白盒 SDK 的解密函数,获取到 SecretKey 的明文,接口详情请参见 白盒密钥解密代码示例。
f. 应用系统通过白盒解密接口所返回的 SecretKey 明文,再向凭据管理系统 SSM 请求访问凭据,接口详情请参见 获取凭据明文。
注意:
白盒解密的整个过程是在本地内存中运行的,不依赖于网络和外部的服务。