证书对 Intranet SSL 有用吗?

2024-04-03

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

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

以下是 SSL 相关安全选择的列表,按我对安全级别的看法和评论排序。我需要什么级别的保护?

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

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

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

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

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

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

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

[update]

Here's http://www.networkworld.com/article/2457649/security0/new-ssl-server-rules-go-into-effect-nov-1.html一篇讨论从公共 CA 获取内部证书的风险和规则的文章。


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

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

另一方面,无证书的 SSL 不存储服务器的指纹。您的通信仍将被加密,但如果有人以某种方式劫持了您提到的 DNS 服务器,或者,正如鲁西奥所说 https://stackoverflow.com/questions/20894868/are-certificates-useful-for-intranet-ssl/20895967#comment31387770_20895967,ARP 中毒或类似的东西,他们将能够执行中间人攻击。如前所述,SSH 会(假设您在过去某个时间连接到正确的服务器)注意到指纹已更改并提醒您。

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

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

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

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

Disclaimer: I am not a security expert.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

证书对 Intranet SSL 有用吗? 的相关文章

  • JavaScript 中的安全数据

    我必须为 Web 测试创建生成器 使用 HTML 和 JavaScript 测试必须离线和在线进行 正确答案和分数评估必须是生成的测试的一部分 最终用户的分数仅发送到服务器 无法在服务器上进行评估 并且服务器对问题一无所知 它只保存最终分数
  • Paramiko ValueError“p 的长度必须恰好为 1024、2048 或 3072 位”

    我正在尝试使用 Python 脚本连接 SFTP 由于 p 错误 我无法连接 import paramiko client paramiko SSHClient client load system host keys client con
  • 如何对 Firebase 中托管的静态网站进行 IP 白名单? / 是否有用于 Firebase 托管的 WAF?

    我有一个在 Firebase 中托管的静态网站 我可以很好地附加一个自定义域 我想将对我的网站的访问限制在特定范围的 IP 范围内 我知道在 GCP 中 Google Cloud Armor 可以做到这一点 但 Cloud Armor 仅适
  • 链和主证书添加之间 X509 结构的正确释放是否有所不同?

    我需要从内存中添加 PEM 类型证书 这意味着我无法使用内置的从文件读取帮助程序 我的问题是没有关于如何释放内存的文档 现在我最好的猜测如下 SSL CTX use certificate X509 structure SHOULD be
  • 使用 CreateRestrictedToken(LUA_TOKEN) 从提升的进程创建低/中进程

    我正在尝试从提升的进程创建中或低完整性进程 我知道还有其他类似的问题 但它们主要关注使用资源管理器或任务计划程序等解决方法 我想坚持使用CreateRestrictedToken CreateProcessAsUser 我认为一定可以以某种
  • 如何将命令作为参数传递给 ssh [重复]

    这个问题在这里已经有答案了 我的需要是让这个命令起作用 sshpass p XXXX ssh oStrictHostKeyChecking no email protected cdn cgi l email protection sudo
  • 如何为移动应用程序创建无密码登录

    我有兴趣在移动应用程序和 API 之间构建某种无密码登录 假设我可以控制两者 动机是必须登录对用户来说非常烦人并且存在安全风险 例如 用户将重复使用现有密码 我希望用户能够立即开始使用该应用程序 我想知道是否有一些可行的技术 例如 在移动设
  • 通过将密码与命令一起传递,使用 powerShell 脚本进行 ssh

    如果我输入 我可以从 PowerShell ssh 到服务器 ssh 用户名 主机 这会提示输入密码 我输入有效的密码 但我试图编写一个脚本 通过 ssh 进入服务器执行一些脚本并返回 所以我必须传递密码和命令我该怎么做 关于 shell
  • 如何记录 ssh 调试信息?

    我需要将 ssh 调试信息的输出写入文件中 这 ssh v email protected cdn cgi l email protection gt result txt ssh v email protected cdn cgi l e
  • mysql jdbc 与 SSL 连接在 tls 握手级别失败

    我们的 mysql 服务器配置为仅接受与 ssl 密码 DHE RSA AES256 GCM SHA384 的连接 我正在使用 java mysql connector java 8 0 15 和 java 8 openjdk 版本 1 8
  • AWS EC2 应用程序负载均衡器 + 双向 SSL?

    是否可以使用 AWS Application Load Balancer 并使用双向 ssl 客户端证书 我当前的设置使用经典的 ELB 通过 tcp 转发到 Web 服务器端点来支持此操作 我现在需要使用 URL 路由流量 并希望在可能的
  • Android - API 请求

    我开发了一个应用程序 它也在 iPhone 上 问题出在 api 请求上 我为所有请求设置了超时 有时会出现 30 60 秒的中断 看起来这个应用程序执行了几个请求 然后就中断了 一直超时 大约 45 秒后一切正常 不知道是服务器问题还是安
  • 如何将域添加到 aws 上的现有 SSL 证书

    我有一个与 Amazon Web Services 上的负载均衡器关联的 SSL 证书 我想在该证书上有一个额外的域 我的问题是 是否可以向 aws 上现有的 ssl 证书添加额外的域 我发现您可以在创建证书时添加其他名称 但我不知道如何使
  • SSH 无法对 [email protected] 进行身份验证

    最近 我在 Github com 上注册了一个免费计划 我按照他们的说明生成 ssh 密钥以添加到我的帐户 然而 当我尝试ssh v email protected cdn cgi l email protection 我收到此错误 deb
  • php 中的简单授权/登录功能

    我希望第一次实现用户登录到我的网站 我很高兴构建自己的解决方案 或者实现一些开源的东西 但是到目前为止 在我的搜索中没有任何包是明显的选择 同样 我完全意识到 作为一名中级 php 程序员 如果我推出自己的解决方案 并真正敞开大门 我很可能
  • python:API 令牌生成及其危险

    我正在按照 Flask Web Development 一书来实现基于令牌的身份验证 基本上 用户使用 HTTP 基本身份验证对其进行身份验证 并为其生成令牌 s Serializer app config SECRET KEY expir
  • 设置 verify_certs=False 但 elasticsearch.Elasticsearch 因证书验证失败而引发 SSL 错误

    self host KibanaProxy 自我端口 443 self user 测试 self password 测试 我需要禁止证书验证 使用选项时它与curl一起使用 k在命令行上 但是 在使用 Elasticsearch pytho
  • 覆盖内网兼容模式IE8

    默认情况下 IE8 强制 Intranet 网站进入兼容模式 我尝试将元标头更改为 IE8 但它不承认元标头 仅使用浏览器设置 有谁知道如何禁用此功能 可以覆盖内网中的兼容模式 对于 IIS 只需将以下代码添加到 web config 中
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • 我可以在本地使用 RSA 密钥测试身份验证吗?

    有没有办法在本地检查您是否为 RSA 密钥提供了正确的密码 最近 我在将一些提交推送到 github 时遇到了麻烦 因为推送提示输入密码 然后身份验证失败 我验证了 github 具有正确的公钥id rsa文件在我的 ssh目录 并且我验证

随机推荐

  • 为什么变量指针包含相同数据类型的地址?

    指针声明的一般语法 data type pointer name 指针是一个变量 其值是另一个变量的地址 即内存位置的直接地址 与任何变量或常量一样 您必须先声明一个指针 然后才能使用它来存储任何变量地址 指针的数据类型必须与指针所指向的变
  • 在nginx反向代理后面处理flask url_for

    我有一个使用 nginx 进行反向代理 ssl 终止的 Flask 应用程序 但是在 Flask 中使用 url for 和重定向时遇到了麻烦 nginx conf 条目 location flaskapp proxy pass http
  • 如果表单没有焦点,则不会调用 OnPaint

    我有一个带有自定义绘画的用户控件 据我所知 构造函数正确设置了样式 基本代码 public partial class LineChart2 UserControl public LineChart2 InitializeComponent
  • 更改 const 对象 - 没有警告?另外,什么情况下是UB?

    为什么下面的代码没有警告呢 int deserialize students const Student dest const int destCapacityMax FILE ptr file int i 0 ptr file fopen
  • 具有自定义模板的 STL 迭代器

    我有以下模板方法 template
  • 如何重定向到移动网站但保留主题标签?

    我希望拥有它 以便当用户加载我们的页面时 它会检查他们是否在移动设备上 然后将他们重定向到我们网站的移动版本 但保留原始哈希标签他们关注的链接 我尝试使用 javascript 中的哈希标签设置新位置 它在 Chrome 中工作 但在 Sa
  • 创建 ArrayList 元素的数组

    我想创建一个包含 ArrayList 元素的数组 我试过了 ArrayList
  • 创建一个仅指向另一个数组的一部分的数组?

    我有一个包含引用类型元素的巨大数组 并且我想创建许多其他数组 这些数组本质上只是指向该一个大数组的特定部分 换句话说 我想创建 索引器 或 具有长度的指针 在 C 中 使用指针很容易做到这一点 并为每个指针分配一个长度 例如创建一个包含具有
  • 在 iOS 上使用可调整大小的图像时避免混合图层

    我试图避免 iOS 上的混合层以提高性能 但是 我注意到我使用的可调整大小的图像backgroundView of my UITableViewCell被标记为混合层 事实上 使用任何可调整大小的图像 即使是没有透明度的 JPEG 都会导致
  • 如何使用 rspec 配置 Sorbet?

    我有一个简单的测试 但是describe关键字在冰糕测试中不起作用 我在这些方法上收到的错误 Method describe does not exist on T class of
  • 增大/缩小 WPF 动画

    在 WPF 中 当用户获得焦点时TextBox 我想要一些动画 可以使TextBox变成多行并使其Width更大 当他打字时 并且当焦点丢失时 TextBox恢复到原来的大小 尺寸未知 另外 最终 TextBox需要在 WPF 内DataG
  • Gunicorn 与 unix 套接字不工作给出 502 bad gateway

    我正在关注http www obeythetestinggoat com book chapter 08 html http www obeythetestinggoat com book chapter 08 html书上说要添加一个un
  • 如何更改 Notepad++ 更改文本行的背景颜色?

    更新 未保存 的文本行有亮粉色 ffc286 背景色 更改和保存的文本行有亮绿色 b5ffb5 此背景对于任何颜色样式都是相同的 我在样式配置器中找不到它 我以为它可能是增量突出显示 但事实并非如此 并且它不在全局设置中 我已经在寻找这个值
  • 授予子网中所有计算机的 mysql 访问权限

    我有一个在 Windows 上运行的 mysql 实例 和架构 我可以通过基于 localhost 作为服务器的连接字符串进行访问 现在我希望能够从同一子网上的另一台计算机访问该数据库 如果可能的话 我想使用单个用户 但允许它从同一子网上的
  • 在 n 层系统中,您应该从数据访问层向业务层返回哪些对象

    例如 如果您有一个名为 Person ID Name 等 的数据库表 数据访问层应将什么样的对象返回给业务层 我在想这样的事情 data access tier public class DataAccess public interfac
  • 具有多个参数的 Blazor EventCallback - 如何响应父主机控件中的事件

    我有一个带有 EventCallBack 参数的 blazor 组件 该组件利用允许多个参数的新结构格式 Parameter public EventCallback lt EmployeeShiftDay DateTime DateTim
  • Java中泛型参数类的反射?

    想象一下以下场景 class MyClass extends OtherClass
  • TableView 复选标记

    我想在选择字典数据数组时在表格视图中放置复选标记 例如 数组包含 10 个模型名称 它是字典 它包含子模型 我的问题是 当我选择子模型时 模型名称自动获得复选标记 现在我为不同的模型和子模型添加了复选标记 但是我们如何根据子模型添加复选标记
  • jquery 在视口检查器中同时检查多个元素

    我有一个 jQuery 函数来检查元素是否在视口中 如果是 它会添加 animate 类来启动动画并使元素可见 上面的方法有效 但现在 有多个元素 jQuery 仅针对该类的第一个元素blogcard 然后执行addClass animat
  • 证书对 Intranet SSL 有用吗?

    我的任务是开发命令行软件的内联网接口 现在我正在研究安全选项 我们的命令行应用程序已经完成 但我还没有开始编写 Web 界面 我不确切地知道潜在客户的安全要求是什么 尽管我相信ssh对于命令行界面来说通常是可以接受的 考虑到这一点 我请求帮