【问题标题】:Store Asymmetric Key Container In Load Balanced Cloud Environment在负载均衡的云环境中存储非对称密钥容器
【发布时间】:2015-06-04 01:23:17
【问题描述】:

我的任务是使用 C#RSACryptoServiceProvider.SignData() 方法对一些数据进行签名。为了生成公钥和私钥,我使用了 RSACryptoServiceProvider 并传递了一个 keycontainername 以便安全地存储密钥。

当我运行MSDN example 在我的机器上使用固定的keycontainername 生成一组公钥/私钥时,每次都会生成相同的预期公钥/私钥。

这在单个服务器环境中可以正常工作,但是,我们在服务器负载平衡的弹性环境中运行。如果我在任何一台机器上使用私钥加密数据并通过 RSACryptoServiceProvider 存储此数据,则数据将仅存在于机器级别。每台机器将使用不同的密钥对数据进行签名,而公钥的用户将无法验证签名。

有什么方法可以将密钥安全地存储在分布式环境中?

谢谢

【问题讨论】:

    标签: c# cloud rsa amazon-elastic-beanstalk


    【解决方案1】:

    我想到了两个。

    第一种是使用包含私钥的 X509 证书。您可以使用X509Certificate2 类来获取具有私钥的 RSACryptoServiceProvider 实例。证书和私钥本身将保存在 Windows 证书存储中。然后,您可以将通过证书存储对私钥的访问限制为某些帐户。然后,您只需在需要它的每台机器/AMI 上安装证书。

    您的另一个选择是使用硬件安全模块。 AWS 有一项名为CloudHSM 的服务,它允许您在 VPC 内使用网络 HSM(我不知道它与 Elastic Bean Stalk 的效果如何)。 HSM 供应商 SafeNet IIRC 允许安装指向 HSM 的 CSP。然后,您需要为 RSACryptoServiceProvider 提供一个 CspParameters 实例,该实例接受容器和 CSP 名称。

    HSM 解决方案是最安全的,但更复杂、更昂贵。

    【讨论】:

    • 哇很好的回答,谢谢,我明天会和基础设施的人聊一聊,然后尝试实现这个。再次感谢。
    • @ahammond - Azure 也有一个类似的 HSM 服务,称为 KeyVault,还有许多加密即服务提供商,例如 safenet-inc.com/data-protection/virtualization-cloud-security/…,但它们可能有点矫枉过正一次性使用...
    • 感谢@ErikFunkenbusch。目前,我们主要是 AWS 基础设施。我们仍在调查如此有用的信息,感谢您的帮助。
    • @ahammond - 只是布局选项,不确定您使用的是 AWS 还是其他提供商。
    猜你喜欢
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多