【问题标题】:Self-signed certificate security for private server/client私有服务器/客户端的自签名证书安全性
【发布时间】:2015-10-24 10:33:32
【问题描述】:

我读过很多书,由于缺乏安全性,自签名证书不应该在生产中使用,但我想知道如果我是唯一一个应该连接到服务器?出于某种原因,破解自签名证书是否更容易?我正在创建服务器和客户端应用程序,其他人连接的唯一方法是创建自己的客户端。这意味着每次安装客户端时,我都可以将证书添加到受信任的根证书中。

或者在消息级别继续使用我自己的使用 RSA/AES 的加密实现是否更安全?我想改用 SSL 的原因是它更容易使用,尤其是当我想要流媒体时,因为我不必分块发送它。

【问题讨论】:

  • 如果您可以检查其有效性,例如使用证书固定,您可以使用自签名证书。不要自己实现 RSA+AES。你可以做错很多事。

标签: c# security ssl encryption self-signed


【解决方案1】:

我读过很多,自签名证书不应该在生产中使用,因为缺乏安全性......

自签名证书本身还不错,如果做得好,也可以在生产中使用。

如果对等方能够正确验证证书,则证书可以安全使用。通常的验证是基于浏览器或操作系统中包含的一些受信任的根 CA 完成的。但是,不能以这种方式验证自签名证书并不意味着它根本无法验证,因为:

  • 您可以将其显式添加为受信任的浏览器/操作系统的证书存储区。
  • 在您验证您在浏览器中获得的证书实际上是您知道的证书(通过比较指纹,而不仅仅是主题)之后,您可以在首次使用时例外。
  • 如果您有自己的应用程序,您可以发送应用程序,以便它(仅)信任此证书。

当然,将证书显式导入为受信任或在浏览器中设置异常并不能很好地扩展,因为它确实为每个用户完成了。这就是 CA 签名证书的要点:证书被隐式信任,因为它是由受信任的人签名的,而不是每个用户都必须手动验证和信任证书。这也是您希望在生产中使用 CA 签名证书的唯一原因。只要证书得到正确验证,它是否是自签名的都没有关系。

或者继续使用我自己的在消息级别使用 RSA/AES 的加密实现更安全?

除非您真正了解自己在做什么,否则切勿运行自己的加密货币。 在这种情况下,SSL 提供了您所需的一切,但您必须知道如何正确使用它。

【讨论】:

    猜你喜欢
    • 2018-08-31
    • 2010-11-13
    • 2011-10-25
    • 2011-06-11
    • 2014-06-07
    • 2011-03-14
    • 2014-05-04
    • 2013-08-23
    • 2017-10-30
    相关资源
    最近更新 更多