私有服务器/客户端的自签名证书安全性

时间:2015-10-24 10:33:33

标签: c# security ssl encryption self-signed

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

或者在消息级别继续使用我自己的使用RSA / AES的加密实现更安全吗?我想要使​​用SSL的原因是它更容易使用,特别是当我想要流媒体时,因为我不需要以块的形式发送它。

1 个答案:

答案 0 :(得分:0)

  

我已经阅读了很多,因为缺乏安全性,自签名证书永远不应该用于生产....

自签名证书本身并不错,如果处理得当,也可以在生产中使用。

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

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

当然,在浏览器中明确地将证书作为可信任或在异常中导入时,扩展性不佳,因为它已经为每个用户完成了。这是CA签名证书的要点:证书被隐式信任,因为它是由受信任的人签名的,而不是每个用户必须手动验证和信任证书。这也是您希望在生产中使用CA签名证书的唯一原因。只要证书正确验证,它是否是自签名无关紧要。

  

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

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