我将通过 Open SSL 使用 AES-256 对称加密。请查看我的工作流程,并告知我是否安全。
加密工作流程
1:APP 将使用 PHP 的 Open SSL 安全地加密数据(将为每个用户生成一个唯一的密钥)
2:APP将使用步骤1中的密钥加密所有敏感用户数据。
3:APP 将使用第二个密钥(客户端主密钥)加密用户生成的密钥,然后再将其发送到 AWS。此密钥将存储在我服务器上的配置文件中(此密钥的唯一功能是阻止 AWS 查看用户密钥)
4 将客户端主密钥生成的密钥发送到AWS API Gateway进行加密。
5 在 API 网关请求成功时触发 AWS lambda 函数。
6:Lambda 函数将使用 AWS KMS 主密钥加密客户端主密钥,然后将主密钥与加密的敏感用户数据一起存储在 Dynamo DB 中
解密工作流程
1:调用 AWS 网关 - 触发 lambda 函数
2:lambda 函数将检索用户敏感的加密数据以及密钥 - Lambda 函数随后将解密由 AWS Master Key 生成的密钥
3:然后,Lambda 函数将向 API 网关返回包含加密卡数据和加密密钥的响应
4: APP 将使用客户端主密钥通过开放 SSL 解密检索到的密钥。
5:解密的客户端密钥将解密用户的卡数据。
笔记:应用程序将位于 WAF 后面,并配备 IPS、IDS、防病毒和 FIM 解决方案。FIM 将检查文件系统的任何更改并通过电子邮件提醒我,此外,如果 FIM 检测到更改,我将添加一些逻辑以自动禁用 AWS KMS 主密钥。
补充说明:对 AWS API Gateway 的访问将仅限于我的服务器 IP 地址。
请让我知道您的想法和建议。