use*_*510 3 pki secure-coding aws-sdk .net-core
我正在实现一个安全系统(使用.Net Core 2.0),其中需要密钥对(公共和私有)生成并将公钥传输给收件人.目前我生成密钥对(使用.Net Core Crypto库)并将私钥保留在DB中.我需要在AWS EC2实例中托管它.
我知道这是一种不好的做法(在数据库中存储私钥),我需要在安全保险库(AWS?)中生成这些密钥,并将私钥保存在保险库本身中.当需要解密时,应用程序需要检索相应的私钥.
我浏览了许多AWS文档,但找不到符合我要求的明确答案.如果有人能够就如何实现这一点向我提供一些明确的指示,那就太好了.
你指出在DB中自我存储秘密是一种不好的做法.根据您希望通过应用程序提供的功能范围,您可以使用以下AWS产品之一:
如果您需要在AWS中生成密钥生成以及密钥存储,则密钥管理服务(KMS)是最接近的匹配.以下是AWS KMS主页的链接以及文档.请记住,选择此选项会将密钥生成的确切机制限制为AWS提供的任何开箱即用的功能.此外,KMS的标准用例不包括大批量生成密钥,这可能是您的应用程序的可能性.
如果您决定在应用程序中包含密钥生成逻辑,并将存储部分保留给AWS,那么Parameter Store就是您的产品.要将新密钥添加到参数存储,您可以执行以下操作:
aws ssm put-parameter --name Generated_Public_Key --value "Generated_Private_Key" --type SecureString
Run Code Online (Sandbox Code Playgroud)
当您的应用程序的客户端通过提供公钥需要先前创建的私钥时,您可以使用以下内容:
aws ssm get-parameter --name User_Provided_Public_Key --with-decryption
Run Code Online (Sandbox Code Playgroud)
如果您决定在AWS之外查看,只需注意一点,Microsoft Azure的产品类似于名为Azure Key Vault的参数存储.
归档时间: |
|
查看次数: |
556 次 |
最近记录: |