【问题标题】:How to prevent HTTPS man-in-middle attack from the server side?如何防止来自服务器端的 HTTPS 中间人攻击?
【发布时间】:2010-06-20 08:46:00
【问题描述】:

在 HTTPS 安全模型中,最薄弱的部分是浏览器中受信任的 CA 列表。有人可以通过多种方式将额外的 CA 添加到用户信任错误的人的列表中。

例如,您公司的公用计算机或 PC。管理员可能会强制您信任自己颁发的 CA,如果使用带有 HTTPS 中继的 HTTPS 代理服务器,可能会非常不安全。结果,他们将能够窥探您的消息、登录名和密码,即使浏览器告诉您您正在使用受信任的 SSL 连接。

在这种情况下,Web 应用程序开发人员可以做些什么来保护用户和系统?

【问题讨论】:

  • 安装受信任的根 CA 证书需要访问用户计算机。一旦您可以访问一台机器,窃取数据的方法比安装证书要简单得多,因此就 SSL 安全性的实用性而言,这种情况并不是真正有效的。 SSL 更多地是为了防止中间人攻击,在这种攻击中,用户只是嗅探通过网络发送的流量,而无需直接访问用户的机器。

标签: https security


【解决方案1】:

作为 Web 应用程序开发人员,您对此无能为力。

这个问题需要进一步处理。

如果地球另一端的人想要:

一个。在某人的计算机上放置一个虚假的根 CA

b.在该 CA 下为您的域颁发证书

c。冒充您的网站

d。将某人的本地 DNS 条目为您的域指向不同的 ip

上述步骤均未涉及或咨询您的应用程序,因此这是良好的网络管理和安全性很重要的地方。

除此之外,也许有人有正当理由在其个人网络上本地执行此操作。我是谁来阻止他们?

这基本上是公司网络代理过滤器所做的事情,他们有权这样做。

至于阻止恶意人员采取上述步骤,这需要您的客户计算机的管理员执行。

【讨论】:

【解决方案2】:

从理论上讲,如果用户的终端归对手所有,那么你已经输了,你无能为力——如果迫在眉睫,他们可以过滤掉你的反制措施或甚至抓取和欺骗整个网站。

在实践中,您可以采取一些措施让对手的工作更加困难,但这是一场军备竞赛。您可能不得不使用恶意软件针对扫描仪所使用的所有相同类型的对策——因为从对手的角度来看,您的站点正在通过试图防止自己被覆盖而进行恶意行为! -- 并且知道,如果你的对手足够关心,你所做的任何事情都可以而且会很快被反击。

例如,您可以从 JavaScript 或小程序打开套接字或使用XmlHttpRequest,但您无法阻止对手更新他们的过滤器以删除您添加的任何内容。

通过发出多态输出或使用其他反逆向工程技术,您可能会获得更多收益,因此似乎没有两次对该站点的点击会产生类似的代码/资源发送到浏览器。这是一项过多的工作,但如果你的对手想要扮演中间人,他们就会陷入困境。

【讨论】:

    猜你喜欢
    • 2012-04-07
    • 2011-03-05
    • 2021-08-09
    • 2011-04-05
    • 2013-03-28
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多