证书对Intranet SSL有用吗?

amo*_*mos 37 security ssh ssl intranet ssl-certificate

我的任务是为命令行软件开发内部网接口,现在我正在研究安全选项.我们的命令行应用程序已完成,但我还没有开始编写Web界面.我不确切知道潜在客户的安全要求是什么,尽管我认为ssh命令行界面通常是可以接受的.考虑到这一点,我正在寻求帮助开发一个选择菜单及其相关的优点/缺点.有一天,我们可能会考虑将我们的网络界面发布到互联网上,所以如果它很容易和/或免费,我愿意考虑比目前更必要的安全性.

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

这是一个与SSL相关的安全选择列表,按照我对安全级别的看法和我的评论进行排序.我需要什么级别的保护?

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

  2. 没有证书的SSL.这会加密通信,至少可以防止未经授权的员工读取数据.使用密码,这ssh与命令行上的安全级别相同,对吧?我不需要担心内联网中的中间人攻击,对吗?如果有大量浏览器警告消息,则此方法的con.

  3. 使用自签名证书执行SSL.这给了我什么,没有证书给我?如果DNS可以被不适当地更改,那么客户那么我的应用程序是他们最不关心的问题.换句话说,如果DNS可以改变,那么我认为ssh也是脆弱的.

  4. 使用本地证书颁发机构执行SSL.OpenSSL允许我创建自己的证书颁发机构.这给了我一个自签名证书不是什么?我假设在局域网上,验证服务器不太重要.

  5. 使用外部证书颁发机构执行SSL.有没有理由去内联网这条路线?我在网上发现了一些"内联网证书" - 但目前尚不清楚他们提供的是我自己无法做到的.

作为参考,此页面可能对比较证书很有用:

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

[更新]

这里有一篇文章讨论了从一个公共CA获取内部证书的风险和规则

ick*_*fay 23

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

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

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

自签名证书在安全性方面与SSH相当.中间的人可以生成自己的自签名证书,但只要您的应用程序配置为仅接受自签名证书,您就应该获得类似于SSH将给您的警报.

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

我不相信外部证书颁发机构有任何优势,除了可能更少的配置,如果您的计算机已经拥有受信任的证书颁发机构.

最后,我不太了解双因素身份验证来评估它,但对于大多数应用程序,SSL应该足够了.

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

  • "你的通信仍然会被加密,但如果有人以某种方式劫持了你所提到的DNS服务器,他们将能够进行中间人攻击." 有更简单的方法来实现这一点,例如ARP中毒.没有证书,期限,SSL不适合用途. (2认同)