【问题标题】:Are certificates useful for intranet SSL?证书对 Intranet SSL 有用吗?
【发布时间】:2014-01-20 14:30:35
【问题描述】:

我的任务是为命令行软件开发 Intranet 界面,现在我正在研究安全选项。我们的命令行应用程序已经完成,但我还没有开始编写 Web 界面。我不确切知道潜在客户的安全要求是什么,尽管我相信ssh 对于命令行界面通常是可以接受的。考虑到这一点,我请求帮助开发一个包含相关优缺点的选择菜单。有一天,我们可能会考虑将我们的 Web 界面发布到互联网上,所以如果它简单且/或免费,我愿意考虑比目前所需的更多安全性。

我已经做了很多阅读,我的初步结论是,没有证书的 SSL 安全性是最好的方法,不是因为安全性较低是不可接受的,而是因为 SSL 是标准,因为它似乎不很难设置。我,一个非安全专家,不需要解释为什么安全非专家可以接受的安全性较低。如有必要,我可以升级我的应用程序以在将来使用证书。

以下是 SSL 相关安全选项列表,按我对 cme​​ts 安全级别的看法排序。我需要什么级别的保护?

  1. 无 SSL。 如果我们的客户不担心他们的员工看到/更改彼此的数据,这可能是可以接受的。无论如何,他们的员工可能希望彼此分享结果,我可以使用基于 IP 的访问控制和/或密码来确保安全。

  2. 在没有证书的情况下执行 SSL。 这会加密通信,这至少可以保护数据不被未经授权的员工读取。使用密码,这与命令行上的ssh 的安全级别相同,对吧?我不需要担心 Intranet 中的中间人攻击,对吗?如果存在大量浏览器警告消息,则此方法的缺点是。

  3. 使用自签名证书进行 SSL。 这给了我什么没有证书给我的东西?如果 DNS 可以不恰当地更改,那么客户然后我的应用程序是他们最不关心的问题。换一种说法,如果 DNS 可以更改,那么我认为 ssh 也会容易受到攻击。

  4. 使用本地证书颁发机构执行 SSL。 OpenSSL 让我可以创建自己的证书颁发机构。这给了我什么是自签名证书没有的?我假设在 LAN 上,验证服务器的重要性较低。

  5. 使用外部证书颁发机构进行 SSL。 是否有理由为 Intranet 走这条路线?我找到了一些在线销售的“内联网证书”——但不清楚他们提供的内容是我自己做不到的。

作为参考,此页面可能有助于比较证书:

http://httpd.apache.org/docs/trunk/ssl/ssl_faq.html#aboutcerts

[更新]

Here's 一篇讨论从公共 CA 获取内部证书的风险和规则的文章。

【问题讨论】:

  • 也许我可以在标题的开头添加“如何”一词。
  • 荒谬的关闭。问题不是“太宽泛”。它有一个单词是/否的答案。投票重新开放。
  • “太宽泛”似乎是错误的,但它可能不是编程,也许是 ServerFault 领域?总之:
  • 2:通常不可能;有一些 SSL 密码套件不使用服务器证书,但它们在很大程度上未在野外实现。 3:与 ssh 一样,假设如果您想安全地执行此操作,则必须为每个服务器预先分发已知良好的证书/密钥。 4:比 3 更容易管理,但再次假设您将通过现有的已知良好的分发渠道将内部 CA 推广到所有内部机器。 5:如果外部 CA 能够以比贵公司雇佣合适的内部人员来提供服务的成本更低,那么您将使用外部 CA。

标签: security ssl ssh ssl-certificate intranet


【解决方案1】:

是的,证书对于 Intranet SSL 仍然有用。

SSH 和 SSL-without-a-certificate 之间有一个重要区别:当您首次使用 SSH 连接到服务器时,您的 SSH 会存储服务器的指纹。如果您随后尝试连接到 SSH 客户端认为是同一台机器但返回不同指纹的机器,它会提醒您可能有人拦截了您的通信。

另一方面,SSL-without-a-certificate 不存储服务器的指纹。您的通信仍将被加密,但如果有人以某种方式劫持了您提到的 DNS 服务器,或者as Rushyo notes,进行 ARP 中毒或类似的事情,他们将能够执行中间人攻击。如前所述,SSH 会(假设您在过去某个时间连接到正确的服务器)会注意到指纹已更改并提醒您。

自签名证书的安全性与 SSH 相当。中间人可以生成他们自己的自签名证书,但只要您的应用程序配置为仅接受 那个 自签名证书,您应该会收到类似于 SSH 将发出的警报你。

本地证书颁发机构为您提供类似于自签名证书的安全性,但可能更具可扩展性。如果您有多个服务器,每个服务器都可以拥有自己的证书,但客户端只需要顶级服务器即可信任所有服务器。如果服务器受到威胁,您可以撤销其证书,而不必更改每台服务器的证书。

我不认为外部证书颁发机构有任何优势,除了如果您的机器已经拥有受信任的证书颁发机构可能会减少配置。

最后,我对双因素身份验证的了解还不够,无法对其进行评估,但对于大多数应用程序来说,SSL 应该就足够了。

免责声明:我不是安全专家。

【讨论】:

  • “您的通信仍将被加密,但如果有人以某种方式劫持了您提到的 DNS 服务器,他们将能够执行中间人攻击。”有很多更简单的方法可以做到这一点,例如 ARP 中毒。 SSL 不适合没有证书、句号的目的。
  • “如果您的机器已经拥有受信任的证书颁发机构,则减少配置”对于允许员工 BYOD 非常重要。
【解决方案2】:
  1. 使用外部证书颁发机构执行 SSL。是否有理由为 Intranet 走这条路线?我发现了一些在线销售的“内联网证书”——但不清楚他们提供什么我自己做不到。

好处是,如果您需要管理大量证书和/或机器,则无需学习如何设置自己的证书颁发机构。这样的证书已经被所有浏览器信任,而您无需将自己的证书安装到受信任的存储中。

但是,这实际上不太安全,因为有人可以为不同的 Intranet 购买证书并在您的网络上使用它。因此,SSL 供应商不再提供此服务。更多信息请见:https://www.godaddy.com/help/phasing-out-intranet-names-and-ip-addresses-in-ssls-6935

如果您只有非常小的 Intranet,那么我建议您使用自签名证书,然后只需将每个自签名证书添加到每台计算机的受信任存储区。

但是,当您想添加新计算机时,在 Intranet 中的每台计算机上安装新证书很快就会变得不切实际。此时,您需要设置自己的证书颁发机构,这样您只需在每台计算机的受信任存储中安装一个 CA 证书。

【讨论】:

  • 嘿@geofflee chrome 和 IE 会不断提醒我内部网中的用户,即使我将我的自签名证书添加到受信任的商店,我也会像往常一样使用绿色栏互联网SSL配置的网站,这个可以实现吗?
  • 是的,这是可能的。您是否将证书安装到“受信任的根证书颁发机构”证书存储中?确保未选择“显示实体店”。
  • 我做到了 :) 这个选项“显示实体店的意思”是什么意思,它在 chrome 和 IE 中都可用,还是证书管理器中的操作系统选项?您能否编辑您的答案以包含一些屏幕截图?那太好了!
  • 此外,Chrome 不再接受使用 SHA-1 的 SSL 证书。您必须启用 EnableSha1ForLocalAnchors 策略,或使用 SHA-2。 SHA-2 套件包括 SHA-256 和 SHA-512。 (请参阅:security.googleblog.com/2016/11/…)Internet Explorer 将继续接受使用 SHA-1 的自签名证书。 (见:social.technet.microsoft.com/wiki/contents/articles/…
  • “显示物理存储”选项仅允许您选择计算机上存储证书的物理位置。在您的情况下,它应该存储在注册表中。但是,如果您取消选择该选项,它将自动为您选择正确的物理位置。因此,您不应选择此选项。
猜你喜欢
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
相关资源
最近更新 更多