【问题标题】:Securing private key保护私钥
【发布时间】:2011-09-17 22:03:53
【问题描述】:

我知道有一些关于此的话题,但我仍然想听听您的意见。我正在创建一个将在网络上发送一些消息的网站。这些消息将通过私钥/公钥加密进行加密。

现在,由于我的服务器将发送大量此类消息,因此我将需要大量访问私钥。此私钥当前作为文件位于服务器上。然而,这不是必需的。

现在,如果没有人能够进入我的服务器,那完全没有问题。但是如果有人可以访问我的服务器怎么办?他们只要拿走私钥文件,我的安全就被破坏了。

我无法使用硬件解决方案来解决这个问题。

我有什么选择?

【问题讨论】:

  • 您了解您的私钥仅用于 1) 对您创建的消息进行签名和 2) 解密其他人发送给您的消息。如果您要向个人或节点 X 发送消息,则使用 X 的公钥来保护消息。
  • 如果有人可以访问您的服务器,他们可以重写您的应用程序以将内容发送到异地。保护您的服务器并将密钥保存在服务器上。
  • 互联网上的每个 SSL 服务器都面临这个问题。唯一的选择是尽可能保护您的网络服务器,当您检测到服务器受到威胁时,您会撤销您的密钥。使用由 Verisign、GoDaddy、GlobalSign、Comodo 等公司颁发的 X509 证书最容易做到这一点。

标签: encryption key private


【解决方案1】:

现在,因为我的服务器要发送很多这样的消息......

如果您真的只需要向其他参与者发送消息,您只需要将他们的公钥存储在您的服务器上。那里没有危险。

如果您打算对发送给您的消息进行签名/解密,但是您必须考虑一个安全的私钥存储解决方案。

现在,如果没有人能够进入我的服务器,那完全没有问题。但是如果有人可以访问我的服务器怎么办?他们只要拿走私钥文件,我的安全就被破坏了。

你总会遇到一个单点故障,一段代码必须知道你的私钥/访问私钥的秘密等等。但是这个问题不是来自公钥/私钥加密,而是来自系统本身。无论底层协议如何,您都必须始终处理未加密的消息。

【讨论】:

  • 对不起,我在开始的帖子中确实很不清楚。我实际上是在寻找一种安全的私钥存储解决方案。
【解决方案2】:

如果他们有密钥,并且他们知道如何处理它(它在哪里以及如何应用于您的消息),那么是的,您完全被入侵了。但是,让我们面对现实吧,当有人植根您的服务器时,情况总是如此。

更好的方法可能是:如何防止常见的黑客攻击(例如中间人攻击)损害安全性?

我会说:

  1. 通过 SSL 传输消息(如果您使用的是 HTTP/HTTPS 协议)。
  2. 混淆提供编码/解码功能的代码。如果有人确实获得了密钥,这将使您的哈希更难解码。如果您没有在服务器上对密钥和/或消息进行编码,并在客户端上进行解码 - 这可能需要根据您的要求进行研究
  3. 在网络上的消息是 正在传输,使用网络 监控流量的工具(即 哼)。入侵检测可以告诉您何时有人在做某事。

只是一个开始......

【讨论】:

    【解决方案3】:

    如前所述,您将始终遇到单点故障。但是,谈到私钥存储解决方案,您可以查看Vault project,它存储了您的秘密——加密形式的私钥。它提供访问控制策略、审计日志和其他功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-04
      • 2012-02-10
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多