标签: man-in-the-middle

如何在 SSH 中删除严格的 RSA 密钥检查,这里有什么问题?

我有一个 Linux 服务器,每当我连接它时,它都会向我显示更改 SSH 主机密钥的消息:

$ ssh root@host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @警告:远程主机标识已更改!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ 有人可能正在做一些令人讨厌的事情!现在有人可能正在窃听你(中间人攻击)!也有可能 RSA 主机密钥刚刚被更改。远程主机发送的 RSA 密钥的指纹为 93:a2:1b:1c:5f:3e:68:47:bf:79:56:52:f0:ec:03:6b。请联系您的系统管理员。在 /home/emerson/.ssh/known_hosts 中添加正确的主机密钥以消除此消息。/home/emerson/.ssh/known_hosts:377 中的违规密钥

host1 的 RSA 主机密钥已更改,您已请求严格检查。主机密钥验证失败。

它让我保持登录状态几秒钟,然后关闭连接。

host1:~/.ssh # 从远程主机 host1 读取:对等端的连接重置 与 host1 的连接关闭。

有谁知道发生了什么以及我可以做些什么来解决这个问题?

security ssh man-in-the-middle rsa hostkey

57
推荐指数
4
解决办法
16万
查看次数

MITM 攻击 - 它们的可能性有多大?

互联网安全中“中间人”攻击的可能性有多大?

除了 ISP 服务器之外,还有哪些实际的机器将处于互联网通信的“中间”?

与理论风险相比,与 MITM 攻击相关的实际风险是什么?

编辑:我对这个问题中的无线接入点不感兴趣。他们当然需要得到保护,但这是显而易见的。无线接入点的独特之处在于,每个人都可以听到广播通信。正常的有线互联网通信被路由到他们的目的地——只有路由中的机器才能看到流量。

networking security man-in-the-middle

36
推荐指数
4
解决办法
8322
查看次数

设置透明 SSL 代理

我有一个装有 2 个网卡的 linux 机器,用于检查通过端口 80 的流量。一张网卡用于上网,另一张卡连接到网络交换机。关键是为了调试目的,能够检查连接到该交换机的设备上的所有 HTTP 和 HTTPS 流量。

我已经为 iptables 编写了以下规则:

nat

-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:1337
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1337

-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

在 192.168.2.1:1337,我有一个使用 Charles ( http://www.charlesproxy.com/ ) 进行录制的透明 http 代理。

对于端口 80 一切正常,但是当我为指向端口 1337 的端口 443 (SSL) 添加类似的规则时,我通过 Charles 收到有关无效消息的错误。

我之前与 Charles ( http://www.charlesproxy.com/documentation/proxying/ssl-proxying/ )在同一台计算机上使用过 SSL 代理,但由于某种原因透明地执行它没有成功。我在谷歌上搜索的一些资源说这是不可能的 - 如果有人可以解释原因,我愿意接受它作为答案。

请注意,我可以完全访问所描述的设置,包括连接到子网的所有客户端 …

ssl https man-in-the-middle iptables transparent-proxy

15
推荐指数
1
解决办法
2万
查看次数

SSH 选项 CheckHostIP=yes 对我有何帮助?

关于此选项有很多讨论,大多数人认为“它提高了安全性”、“它可以保护您免受 MiTM 攻击/DNS 欺骗”等,但我不明白这是怎么回事。ssh_config(5)说这个选项

允许 ssh 检测主机密钥是否因 DNS 欺骗而更改

但它仍然显得模糊甚至误导,因为

  1. 该选项不会检测“主机密钥是否已更改”,而仅检测主机的 IP 是否已更改,并且
  2. 它没有详细说明当它检测到这样的事情时它会做什么(例如,它是否会阻止连接发生?)。

由于文档含糊不清,其他人甚至似乎认为CheckHostIP=yes不会您连接到已更改 IP 的主机(即它的 IP 与已记录的 IP 不同known_hosts),这是完全不真实的,位于至少据我自己的测试可以理解。

  • CheckHostIP=yes当我(默认)连接到主机密钥已存储在 中known_hosts但已更改其 IP 的远程服务器时,连接正常进行,但我收到警告:

    永久添加 IP 地址的 ECDSA 主机密钥 [......]

    另外,还会在 中添加一个新行known_hosts,其中包含服务器的主机密钥(未更改)和新的 IP 地址(不同)。如果主机稍后再次更改其 IP,则下次我使用 来连接它时CheckHostIP=yes,将附加一个新行,known_hosts依此类推。

  • 如果我连接CheckHostIP=no到已更改其 IP 地址的服务器,连接将继续(这也是 发生的情况CheckHostIP=yes),但这次没有警告或在 中附加新行known_hosts

yes因此,和之间的唯一区别no似乎是连接时的简单一行警告,以及known_hosts每次主机更改其 IP 时记录新地址(有效地保留服务器不同 IP 的历史记录)。

如果是这样的话,我什至不确定这CheckHostIP=yes比 …

domain-name-system ssh man-in-the-middle

11
推荐指数
1
解决办法
2276
查看次数

中间人攻击与 SSL 证书颁发机构

什么阻止了中间人攻击证书颁发机构的请求以验证证书?浏览器是否预先加载了受信任证书颁发机构的公钥(从而提供身份验证)?

每当我想到 MITM 攻击时,我认为任何防御都需要建立一个“安全”连接来进行身份验证,而任何“安全”连接的初始建立似乎总是受到 MITM 攻击本身的影响。因此,例如,如果上述受信任的证书颁发机构的公钥确实与浏览器一起分发,则浏览器的分发将受到 MITM 攻击。据我了解,即使您亲自将公钥/证书/纸上的任何内容交给某人,您也最好从其他地方了解他们,否则他们可能是中间人。

我理解正确吗?

谢谢!

ssl man-in-the-middle certificate-authority

7
推荐指数
1
解决办法
2455
查看次数

可能迁移 openssh-server 指纹?

我已将服务器升级到新的操作系统和更新的硬件。

但是新安装的操作系统生成了一组新的指纹/服务器密钥。无论如何我可以将它从我的旧服务器复制到新服务器。为了从客户端删除安全警告?

编辑:操作系统更改来自 ubuntu 11.10 -> 12.04

ssh man-in-the-middle

6
推荐指数
1
解决办法
4791
查看次数

一旦您接受了自签名证书,中间人是否安全

我有一个带有自签名 SSL 证书的邮件服务器。

我使用 Thunderbird 访问此服务器,它要求我接受此证书。

所以假设我在一个半安全的位置接受这个,例如在本地网络上。然后继续使用我的证书在 Thunderbird 电子邮件客户端中接受的不安全网络。

Thunderbird 设置为使用 STARTTLS 到电子邮件服务器。

是不是这样,一旦这个证书被接受,就不可能进行中间人攻击了。对于要使用此公共自签名 SSL 证书的人,他们还需要邮件服务器保留的私钥吗?

危险信号是如果有一天 Thunderbird 突然想让我接受来自邮件服务器的新证书。

certificate man-in-the-middle starttls

5
推荐指数
1
解决办法
396
查看次数

在顶级域中使用 HSTS 标头和 includeSubdomains 时出现问题

假设我经营一家公司“Example Inc”,并有一个网站:

https://www.example.com

现在,因为出于安全意识,我正在使用 https,并希望设置 HSTS 标头以强制使用它。我还会包含子域名很长一段时间,比如说一年。

严格传输安全:max-age=31536000;包含子域

现在我也是一个优秀的网站所有者,因此我设置了以下 301 重定向到上述网站:

最后一个也有 HSTS 标头及其 https 站点。

据我了解,这是运行 https 网站的推荐设置(显然还有许多其他设置),并且相当常见。

到目前为止,一切都很好。

现在,在公司内部网上,我在互联网上不可用,有大量服务器并使用 example.com 域。所以我有:

  • machine1.example.com
  • machine2.example.com ...等

现在假设其中一些机器运行 Web 服务器,但并非所有机器都是 https。

这是否意味着如果我的任何员工碰巧访问https://example.com那么他们的浏览器将设置 HSTS 标头并拒绝访问任何子域的 http,因此无法再访问其中一些内部 http-仅网络服务器?

这有什么办法吗?

我是否应该通过不使用 includeSubDomains 设置来危及外部网站的安全?至少不在https://example.com网站上?为了内部问题而牺牲外部安全似乎是错误的。

我是否应该强制所有内部应用程序也采用 https?说起来容易做起来难。

我应该在内部使用不同的域吗?例如 machine1.intraexample.com?似乎浪费了一个域,并且某些项目(例如电子邮件服务器)需要位于主域上,尽管如果它们甚至需要运行它们,它们可能仅限于仅 https 的 Web 服务器。

还有其他想法吗?

另外,认为这可能会给公司带来大问题,可能应该在规范和其他地方更多地强调。许多网站所有者没有针对非 www 版本的单独配置,因此可能会无意中在顶级域上设置 includeSubDomain 标志。只是在实施之前想到了这个场景,我才避免了这种情况。我最初会将到期时间设置得很低(一天),以解决这些问题,恕我直言,这也可以更有力地建议。这很容易被忽视,并给许多潜在用户带来奇怪的问题。


编辑 2015 年 6 月 这是一个网站在这个问题上犯错误的真实示例: https: //github.com/NuGet/NuGetGallery/issues/2535


编辑 2015 年 10 月 一篇文章建议您确实应该使用 TLD 的 includeSubDomains 来解决 cookie 中的缺陷: …

man-in-the-middle web-server tls

5
推荐指数
1
解决办法
1829
查看次数

一个人在中间攻击有多罕见?

我想知道是否应该为我的站点的数据库管理应用程序 (phpmyadmin) 设置安全连接。

他们不存储信用卡或任何对黑客有价值的东西。

security man-in-the-middle web-server apache-2.2

2
推荐指数
1
解决办法
267
查看次数