交易签名
最后更新于
场景 1 描述:
用户可以在亚马逊云上安全的使用私钥,例如进行交易签名,同时避免在代码或者配置文件中暴露私钥,私钥通过亚马逊云加密服务进行加密,密文可以安全的保存在 Amazon RDS 或 Secrets Manager 等存储中,使用时通过 IAM 权限控制谁可以解密密文。
实现方案:
使用 Amazon KMS 创建一个对称加密算法的 KEY,使用这个 KEY 对私钥进行加密,得到密文,可以选择将密文保存在 Amazon RDS 或 Secrets Manager ,应用希望使用私钥进行交易时,从存储中查到密文,调用 KMS 对密文解密得到私钥明文,进行交易签名。其中 KMS 的加密和解密需要设置密钥策略,允许哪些 IAM User 或 IAM Role 使用这个 KEY。
场景 2 描述:
用户可以在隔离的 CPU 和内存安全环境中使用和处理私钥,例如进行交易签名,同时阻止父 EC2 实例上的用户和应用程序获取私钥,免受来自本地操作系统潜在漏洞的攻击,比如黑客通过代码漏洞攻击内存,拿到私钥滥用发起交易。
实现方案:
基于 EC2 Enclave 构建一个隔离的零信任私钥使用环境,参考博客 ,使用流程如下所示:
另外如果希望在容器应用中使用 Enclave,目前支持在 Amazon EKS 中使用,参考 文档。
[Blogs] AWS Nitro Enclaves for secure blockchain key management: Part 3