【发布时间】:2014-01-20 14:30:35
【问题描述】:
我的任务是为命令行软件开发 Intranet 界面,现在我正在研究安全选项。我们的命令行应用程序已经完成,但我还没有开始编写 Web 界面。我不确切知道潜在客户的安全要求是什么,尽管我相信ssh 对于命令行界面通常是可以接受的。考虑到这一点,我请求帮助开发一个包含相关优缺点的选择菜单。有一天,我们可能会考虑将我们的 Web 界面发布到互联网上,所以如果它简单且/或免费,我愿意考虑比目前所需的更多安全性。
我已经做了很多阅读,我的初步结论是,没有证书的 SSL 安全性是最好的方法,不是因为安全性较低是不可接受的,而是因为 SSL 是标准,因为它似乎不很难设置。我,一个非安全专家,不需要解释为什么安全非专家可以接受的安全性较低。如有必要,我可以升级我的应用程序以在将来使用证书。
以下是 SSL 相关安全选项列表,按我对 cmets 安全级别的看法排序。我需要什么级别的保护?
无 SSL。 如果我们的客户不担心他们的员工看到/更改彼此的数据,这可能是可以接受的。无论如何,他们的员工可能希望彼此分享结果,我可以使用基于 IP 的访问控制和/或密码来确保安全。
在没有证书的情况下执行 SSL。 这会加密通信,这至少可以保护数据不被未经授权的员工读取。使用密码,这与命令行上的
ssh的安全级别相同,对吧?我不需要担心 Intranet 中的中间人攻击,对吗?如果存在大量浏览器警告消息,则此方法的缺点是。使用自签名证书进行 SSL。 这给了我什么没有证书给我的东西?如果 DNS 可以不恰当地更改,那么客户然后我的应用程序是他们最不关心的问题。换一种说法,如果 DNS 可以更改,那么我认为
ssh也会容易受到攻击。使用本地证书颁发机构执行 SSL。 OpenSSL 让我可以创建自己的证书颁发机构。这给了我什么是自签名证书没有的?我假设在 LAN 上,验证服务器的重要性较低。
使用外部证书颁发机构进行 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