问题标签 [man-in-the-middle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1158 浏览

security - “中间人”可以改变中间人攻击中发送的价值数据

如果我从 A 向 B 发送信息,“中间人”可以更改发送的值数据还是只能嗅探?

0 投票
2 回答
8514 浏览

security - 质询-响应协议如何帮助抵御中间人攻击?

质询-响应身份验证如何防止中间人攻击?我阅读了 wiki 文章,但仍然无法理解。

0 投票
1 回答
598 浏览

security - 为什么 SSH 不使用互锁协议?

似乎SSH设计者非常关心中间攻击的人。

他们的方法是,在您第一次连接到服务器时保存服务器的公钥指纹(并希望用户在第一次连接时不要从中毒的网络连接,例如如果他有病毒在计算机)。然后,用户在下次连接到此服务器时使用指纹验证服务器的公钥。

在实践中,我发现许多用户只是忽略了有关指纹不匹配的警告,并认为这是由于重新安装服务器造成的。只是 MITM 攻击很难进行而且很少见,你永远不用担心。此外,很多时候用户想要在许多不同的计算机上使用 ssh,并且他不会费心将所有指纹导入他可能想要使用的任何计算机SSH(嘿,你能看看我的网站为什么关闭,我很恐慌!我不在办公室,我去最近的网吧看看)。

公平地说,人们可以使用DNSSEC和使用DNS服务器作为CA. 但是我从来没有看到在实践中使用过。无论如何,它不是协议的强制性部分。

多年来,我认为没有预先共享的秘密就无法避免 MITM,但我最近一直在阅读 Bruce Schneir 出色的“实用密码学”,其中他提到了互锁协议

  1. Alice 将她的公钥发送给 Bob。
  2. Bob 将他的公钥发送给 Alice。
  3. Alice 使用 Bob 的公钥加密她的消息。她将一半的加密消息发送给 Bob。
  4. Bob 使用 Alice 的公钥加密他的消息。他将一半的加密消息发送给 Alice。
  5. 爱丽丝将她加密信息的另一半发送给鲍勃。
  6. Bob 将 Alice 的两半信息放在一起,并用他的私钥解密。Bob 将另一半加密消息发送给 Alice。
  7. 爱丽丝将鲍勃的两半信息放在一起,并用她的私钥解密。

现在,Mallory 必须在协议的第 (3) 步中向 Bob 发送一些东西,在他收到 Alice 的一半消息之后,即使在 (5) 中他从 Alice 那里得到所有信息之前他无法解密它。他必须向 Bob 编造一条消息,并且 Bob 可能会注意到他正在编造,例如,在他ls的主目录之后。

为什么不SSH使用这样的方案?它似乎真的符合它的目标。它不需要任何其他实体,它使 MITM 攻击变得更加困难。

是与生俱来的吗?我对问题的理解有缺陷?或者只是设计者认为额外的安全性不值得使协议复杂化?

PS: 如果你认为这样会造成太大的开销,你可以强制协议的用户只对10K连接中的第一个数据使用互锁,所以在实践中并没有太大的关系,但 MITM 会更多困难永远不会少。

更新:此处 描述的对联锁协议的攻击,并不意味着 MITM 攻击是可能的,它确实意味着如果在通信期间发送单个密码,MITM 可以拦截它并且用户只会看到超时错误。

更新 2: Eugene, raise 点是有效的。联锁协议不允许身份验证。也就是说,你仍然不能确定如果你连接到example.com,它确实是example.com,而不是malicious.com冒充到example.com。如果没有,比如说,你不能肯定地知道这一点DNSSEC。因此,例如,如果您正在SSH访问导弹发射井并写入launch_missile -time now(例如,没有使用ls来验证服务器确实是导弹发射井中的服务器),那么您可能实际上是在恶意服务器中编写的,并且现在敌人知道你要向他发射导弹了。联锁协议确实无法阻止这种类型的攻击。

但是,如果我正确理解协议,则可能会阻止更危险的攻击和非常实用的攻击。如果使用联锁协议,即使你对 . 一点都不了解example.com,也不可能SSH对你的服务器进行任何操作,并且有人会窃听整个SSH会话。我认为这种类型的攻击更有可能。

也许SSH不关心 MITM 攻击?我不认为,例如看腻子常见问题解答

那些烦人的主机密钥提示是 SSH 的重点。没有它们,SSH 用来保护会话安全的所有加密技术只不过是让攻击者的工作更加困难。攻击者不必使用数据包嗅探器坐在您和服务器之间,而是必须实际破坏路由器并开始修改来回的数据包。但这并不比嗅探要难得多。并且没有主机密钥检查,它将完全未被客户端或服务器检测到。

他显然是在谈论 MITM 攻击而不是服务器身份验证。我认为使用联锁协议可以清楚地防止 Putty FAQ 中提到的攻击,但我仍然不明白他们为什么不使用它。

0 投票
1 回答
4014 浏览

c - 由于字节序错误,无法使用 tcp.h 编译简单程序?

帮我用 tcp.h 编译这个简单的 C 程序?获取“mitmc.c:82: error: struct tcphdr has no member named th_off”,因为字节顺序未使用“# ifdef __FAVOR_BSD”设置

这对你们中的一些人来说是一个简单的问题。我正在尝试编译这个程序,一个简单的人在书中的中间实用程序。在 linux 上使用 gcc 编译(因为 Windows 没有 posix 库)。

首先我得到了这个错误:

看起来这是因为在“/usr/include/netinet/tcp.h”中,th_off 仅在 # ifdef __FAVOR_BSD 时定义

但是当我通过添加 #define _BSD_SOURCE 来定义它时(因为它是在 features.h http://www.linuxquestions.org/questions/programming-9/tcp-hdr-variables-388003/中设置的),然后我得到了一个整体其他一组错误:

谢谢你的帮助。

另外,顺便说一句,为什么我的编译器错误有时会用 â 而不是引号?谢谢,在 bash 中使用 LANG=C 修复了引号。

在这里回复以回答,以便我可以使用格式。出色的!我不知道 libnet-config 是一个可以在命令行上用于设置的二进制文件。所以对于其他菜鸟来说,

所以你逃避它所以它作为命令运行

感谢您的帮助,这是正确的答案。现在看来代码是为 openbsd 编写的(参见 wikipedia Strlcpy)。我想我会用 strncpy 替换 strlcat 并希望最好。成功,编译成功!哦,FFS,

啊,这只是我的用法。

谢谢弗拉德,谢谢耶利米!

0 投票
4 回答
4291 浏览

django - 这种中间人攻击是如何工作的?

关于其 CSRF 保护的Django 文档指出:

此外,对于 HTTPS 请求,严格的 referer 检查由 CsrfViewMiddleware 完成。这对于解决在 HTTPS 下使用独立于会话的 nonce 时可能发生的中间人攻击是必要的,因为 HTTP 'Set-Cookie' 标头(不幸地)被正在与HTTPS 下的站点。(对 HTTP 请求不进行引用检查,因为在 HTTP 下引用头的存在不够可靠。)

我无法想象这种攻击是如何工作的。有人可以解释一下吗?

更新
Django 文档中的措辞似乎暗示存在一种特定类型的中间人攻击(我假设这会导致成功的 CSRF)与会话无关的随机数(但不适用于特定于事务) nonce 等,我想)并涉及使用“Set-Cookie”标头。
所以我想知道这种特定类型的攻击是如何工作的。

0 投票
3 回答
4564 浏览

c# - ASP.NET 和中间人

ASP.NET 是否使用一种机制来禁止在客户端和服务器之间操作数据?

如果不是,是否意味着我们应该使用 SSL?SSL 可以防止什么样的攻击?

如果是,这个机制是什么?

0 投票
1 回答
1199 浏览

wcf - WCF 安全 - 防止中间人攻击

我有一个使用传输和消息安全的 WCF 服务。如何保护数据免受恶意中间人攻击,例如来自使用 fiddler 并允许 fiddler 解密 HTTPS 流量的用户?

0 投票
2 回答
1261 浏览

php - 在 Flash 和 PHP 之间拦截数据的工具

我一直在为一些 PHP 服务和 ActionScript 3 之间的通信开发一些 API。

我知道有很多方法可以截获从 Flash 发送到 PHP 脚本的数据,对其进行操作,然后使用操作后的数据继续发送。这可能是在高分桌上作弊的最简单方法。

显然这是无法避免的,但我可以让大多数人难以破译并且不值得。

我想知道的是:

我可以使用哪些工具来执行上述操作(拦截并查看我发送到 PHP 的数据)?老实说,我什至不确定这是如何做到的。是否有我可以使用的 GUI 或浏览器插件?

目标是观察和加强将在 ActionScript 和我的 PHP 服务之间发送的数据的“加密”。

0 投票
6 回答
6926 浏览

ruby - 支持 HTTPS 的中间人 (MITM) 代理

我们现在似乎有点绕圈子。我们正在寻找简单的轻量级,最好是基于 ruby​​ 的代理,它使我们能够执行以下操作。

  • 浏览器和 Web 应用程序之间的代理 HTTPS 请求。例如GMail
  • 拦截和修改请求/响应 - 中间人修改
  • 动态生成 SSL 证书(或者我们预先配置)以在代理和浏览器之间使用

使用 Ruby,我们已经对em-proxyGoliath进行了试验,但我认为这些都不太合适。

任何建议将不胜感激。

此致,

卡尔斯基。

0 投票
1 回答
348 浏览

filter - Windows 命令行 Web 内容过滤器,如 mitmproxy

我想阻止 Facebook、Twitter 等网站。我正在寻找一个简单的小命令行工具(Windows XP 7),它类似于:

filter.exe -list.txt

///------------list.txt------------
*.facebook.*
*.twitter.*

建议?