OpenID、SAML 是否会对 Tor 的匿名性构成威胁?如何防止 .exit 节点受损?

信息安全 应用安全 验证 云计算 匿名 山姆
2021-09-01 05:06:07

这是关于 Tor、OpenID 和安全路径中一个(或多个)受感染节点之间交互的思想实验。我专注于如何以一种为安全的云解决方案增加价值的方式使用技术。我对将这项技术用于邪恶目的没有兴趣。

用例

假设我有一个多租户服务器,每个客户都可以在其中确定其域的可见性。例如:x.myhost.com可以选择“公开”并且xyz.myhost.com是私有的并且只能通过隐藏.onion地址访问。

据我了解,服务器与 Tor 交互有两种方式:

  1. 什么都不做,使用 SSL,并相信最后一个出口节点没有被破坏
  2. 使用隐藏服务和 .onion 地址“挂钩”到 Tor 网络

威胁

据我了解,该会话容易受到 .EXIT 节点的攻击。我读过的一些技巧包括:

  • 泄露受 SSL 保护的数据
  • 如果用户在同一个 Tor 网络上使用许多服务,则会失去匿名性,从而实现关联

问题

现在世界正在转向基于声明的身份验证、SAML 和 OpenID,考虑到 .exit 节点可能会受到损害,应该如何将 Tor 与这些技术结合使用?鉴于存在关联黑客,是否应该使用 OpenID/SAML?影响架构的一些问题包括

  • 公共 OpenID 的安全性是否低于基于表单的身份验证?
  • 使用 OpenID/SAML 是否启用会话关联?某些 OpenID 提供商是否比其他提供商更好?
  • OpenID/SAML 服务器应该有一个 .onion 地址吗?这将有助于防止相关攻击吗?
  • 将公共 OpenID 服务器(Google/Yahoo)用于私有服务器(Microsoft ADFSv2)是否有好处?
4个回答

我不完全理解您的问题,但有两种与 TOR 用户互动的方式

1) 他们通过 TOR 访问互联网。这应该使用 SSL/TLS。作为连接到全球 Internet 的 TOR 用户,我经常使用 SSL/TLS 代理,例如具有有效 PKI(例如 SSL 证书)的 Apache 上的 CGIProxy 或 PHProxy。我还经常使用.exit指定一个出口节点——通常通过在 Vidalia 中对原产国和性能列表进行排序来选择。这样做的原因是因为出口节点默认情况下不会加密您的传出流量,因此唯一安全的 Web 目的地是 SSL/TLS 目的地(除非您使用 SSL/TLS 代理)。

2)他们试图到达.onion层次结构上的 TOR 隐藏节点。如果是这种情况,您就不需要 SSL/TLS,因为流量是加密的。但是,为了维护会话,您将需要依靠典型的 HTTP 机制:cookie(或类似的,如 Panopticlick 类数据的散列,如果它足够不同的话)。这将完全独立于 TOR 网络,所以我看不出有什么理由不能使用您提到的任何技术来生成有效的基于 cookie 的会话。

我见过运行洋葱路由器实例(.onion 地址)和公共实例的网站。

话虽这么说,如果您希望该网站公开,那么没有真正的理由为您做出任何努力来支持 tor。如果连接到您的服务的人在不了解风险的情况下使用 tor,或者由于使用 tor 而无意中暴露了他们的合法流量,那么这完全取决于该客户端。

我想我只是误解了为什么 tor 与这种情况有关。如果我了解到用户通过 Tor 连接到我的服务,那么我唯一的问题将是“我的网站发生了什么需要使用 Tor?” 您是否经营成人网站、仇恨网站、政治网站、黑帽网站或类似的网站?在那种情况下,我会说有一个联合的 tor 匿名 web 服务,或者甚至单独运行一个 tor web 服务。如果这些都不是真的,并且您的用户没有理由掩盖他们的身份,那么他们将承担不必要的风险。

Tor 的正确安装将被沙盒化,不允许任何类型的持久会话(如果我错了,请纠正我,但我不相信 openID 甚至可以与默认的 tor/vadalia/polipo 安装包一起使用)。因此,如果您是正确使用 Tor 的用户,他们应该采取尽可能多的步骤来保持他们的身份混淆(即不要通过 Tor 登录您的网站)。

我知道我没有解决您关于 OpenID 的实际问题,但我相信这是查看您提问基础的适当答案。这应该不是我如何通过 tor 确保 OpenID 安全的问题,而更多的是关于为什么使用 tor 访问/验证您的站点以及这些用户是否知道风险的问题。

实际上,现在几乎每个人都使用 Tor 的“浏览器捆绑包”,其中包括一个名为 Aurora 的经过修改的 FireFox,具有各种保护措施,例如默认启用 HTTPS Everywhere。据我了解,除非您明确执行ssh -l marlowe -2 1.2.3.4 -o ProxyCommand="/usr/local/bin/connect -4 -S localhost:9050 %h %p"或其他。因此,您最大的风险看起来像是在 Tor 的 Aurora 和另一个浏览器之间共享一个帐户。

听起来您正在运行一个公共网站,但您的一些用户正在使用 TOR 访问您的网站。如果这就是你的意思:

然后你不需要做任何特别的事情。使用任何标准的会话管理机制(例如,会话 cookie 等)。它应该适用于 TOR 用户。没有什么特别需要的。

或者,如果这不是您要问的,请编辑问题以更清楚地解释您的约束是什么。