VPN 是否真的掩盖了您的身份,还是伪装?

信息安全 隐私
2021-09-01 01:39:32

免责声明:

这不是为了教育我自己或他人进行非法活动。我对安全话题很感兴趣,作为一名工匠,我以继续教育为荣。那说:

问题:

人们常说,VPN、代理服务器等会掩盖您在互联网上的身份。我越是研究 TCP/IP 框架是如何实际工作的,我对这个理论的质疑也越来越多。

传统知识表明,如果您打开 VPN,则可以下载文件或查看令人尴尬的色情内容,而无需担心被识别。如果有人坐在我和我的 VPN 之间,我相信这是真的,因为那是一个加密隧道(希望如此)。我不相信这对于我的 VPN 隧道之外的系统可以这么说。根据我有限的研究,数据报不仅包含目标 IP 地址,还包含源 IP 地址。即使诸如 Tor 之类的网络在全球范围内反弹您的流量,最终,它也必须找到返回给您的方式。

我想简而言之,我在问,是什么阻止了 联邦调查局NSA 或任何人设置记录数据报标头以及这些请求的目标内容的脚本?除非您使用伪造的 MAC 地址从公共场所提交请求,否则似乎真的无法掩盖自己的身份。

需要明确的是,我特意问...是否可以合理地说,我请求数据的任何服务器,无论我是否在 Tor、VPN 等之后,实际上都可以找到包含在标题中的我的源 IP数据报,从而知道请求的真实来源。然后可以将其与请求的任何内容一起记录下来,然后交给任何可能请求它的人。

资源:

数据报

TCP/IP 的工作原理

(仅仅因为我知道有人会争辩说 VPN 提供商声称他们提供匿名性http://btguard.com/不是传统知识)

4个回答

是否可以合理地说,我请求数据的任何服务器,无论我是否落后于 Tor、VPN 等,实际上都可以在数据报的标头中找到我的源 IP,从而知道数据的真实来源要求。

在 IPv4 上没有。虚拟专用网络通过在您和 VPN 提供商之间连接一条隧道来工作,这样您就可以通过专用网络进行路由 - 10.0.0.0/8、192.168.0.0/24 或 172.16.0.0/16 地址空间之一。这就是为什么它是一个“私人网络”。虚拟位来自您实际上是通过公共互联网路由的事实。

然后,您对互联网的访问就像家庭路由器一样被“代理”,即网络地址转换。由于没有通往私有 IP 地址的路由,与公共 IP 地址不同,面向公众的路由器必须负责将数据包转发到 Internet 并跟踪回复的目的地。

一种方法是通过源端口,但这不是唯一的方法。在这种情况下,数据包的源端口以及接收回复的端口会告诉路由器要将数据包发送到哪个私有网络主机。

因此,您将“似乎”拥有 VPN 出口网关的 IP 到看到您的请求的服务器。

简化的 Tor 电路就像网关处理乘以 3。每个步骤都知道发送给谁以及返回给谁,但不知道其他任何事情,每个步骤都负责路由。所以,在你和互联网之间,你有一个 Tor 入口服务器、一个中继服务器和一个 Tor 出口节点。例如,中继服务器知道将数据包从入口服务器中继到出口节点,但仅此而已 - 它不知道只有出口知道的数据包的最终目的地,或者只有入口知道的源。

这与传统路由完全相反,传统路由在公共互联网上明确具有源 IP 和目标 IP。路由器不会重写它,而是简单地尝试计算最有效的“下一跳”(可以将数据包发送到的直接连接的硬件)。在典型的互联网通信中会发生多个这样的步骤(请参阅跟踪路由),并且由于 tor 节点是互联网通信,因此 tor 节点数据包还将通过具有已知源和目的地(关键仅是中继)的互联网通过不同路由的多个节点跳跃。

我写了很多文字,所以也许值得回顾一下 VPN 场景中数据包发生的步骤。假设我正在发送一个 HTTP 获取请求。

  1. 我连接到 VPN。这样做的过程会保留我的 VPN 流量路由,但会通过 VPN 网关创建默认路由并使我成为他们专用网络的一部分。我的 VPN 提供商的示例:

    $ ifconfig
    tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.0.9.14  netmask 255.255.255.255  destination 10.0.9.13
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 48  bytes 23132 (22.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 55  bytes 12215 (11.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    $ ip -4 route
    0.0.0.0/1 via 10.0.9.13 dev tun0 
    default via 10.0.0.1 dev wlp2s0  proto static  metric 1024 
    10.0.0.0/16 dev wlp2s0  proto kernel  scope link  src 10.0.0.109 
    10.0.9.1 via 10.0.9.13 dev tun0 
    10.0.9.13 dev tun0  proto kernel  scope link  src 10.0.9.14 
    notareal.ip.200.165 via 10.0.0.1 dev wlp2s0 
    128.0.0.0/1 via 10.0.9.13 dev tun0 
    

    如果你仔细看这个,你会发现有些奇怪。默认路由仍然存在,但其度量设置为高(低优先级),而 0.0.0.0/1 和 128.0.0.0/1 - 包括除 notareal.ip 行之外的所有 IPv4 - 通过 tun0 发送。该线路存在,以便 VPN 流量仍然可以通过正确的原始接口。

  2. 我制作一个分组并发送它。根据我上面提到的方案,当我说我想将此数据包发送到 stackexchange.com 时,我的路由表指示我将其转发到 VPN 网关,因为这是最高优先级的匹配路由。

  3. 在内部,VPN 软件执行其加密操作并将数据包写入 VPN 网关。这也在路由表中查找并通过实际网络。它在另一端展开。
  4. 在另一端,数据包到达网关并进行 NAT,或代理,或您的提供商使用的任何方案。然后他们离开公共互联网。
  5. 当通过已建立的 TCP 连接收到回复时,会发生相反的过程。
  6. 无论如何,UDP是无连接的;入站 UDP 和外部发起的 TCP 连接是不可能的,因为我没有公共路由。

本质上,这很像您的家庭网络 NAT,除了虚拟。

在这种情况下,我使用的是 OpenVPN;如果您尝试这些步骤,您会看到什么取决于您的提供商、VPN 软件等,并且本质上是相同的。


现在回答您的问题“VPN 真的会掩盖您的身份吗?” - 嗯,有很多如果、但是和 ummms,但这是我能想到的最简单的细分:

  1. 如果您是服务器运营商并且有人正在使用 VPN,那么您不太可能识别出他们。你会很容易地看到来自 VPN 提供商的流量,但你不会知道它最初来自谁,除非:
  2. 您是具有某种身份验证机制或能够在目标上存储持久“跟踪”cookie 的服务器操作员。在前一种情况下,您甚至可能知道他们是谁;在后一种情况下,您知道他们是一个独特的个体,您不会确切知道是谁。然而:
  3. VPN 提供商可以看到所有内容——您发出的 DNS 请求、数据包的去向等。从这个意义上说,它们现在是您的 ISP。即使您匿名向他们付款并将详细信息提供给完全隔离的角色,他们仍然知道您的数据包来自哪里。这样做的结果是与您的真实身份相关联,或者至少与支付互联网账单的人相关联。

因此,如果你给执法部门足够的动机,他们会很容易找到你。


IPv6 是一个有趣的领域。我不知道有多少人经常通过 VPN 路由 ipv6,主要是因为我唯一可以通过 IPv6 连接命名的人是我……但是,它可以做到。IPv6 没有私有地址空间的概念(有点谎言,它们确实存在),因为一切都应该是世界可路由的。事实上,有些人认为 NAT 打破了互联网作为单一全球可路由网络的最初概念设计。

无论如何,您可以在此处阅读有关它的更多信息- 您会获得分配给您的 IPv6 可路由块,而不是私有范围。

但是,如果您想知道,可公开路由并不一定意味着数据包会被接受,它只是意味着它们可以被定向到那里。仍然可能有防火墙阻止所有传入连接。


编辑:作为一个有趣的教育练习,尝试在 VPN 接口(在我的情况下为 tun0)上使用wireshark 与实际的硬件接口监听流量:)

VPN 不会掩盖您的身份,甚至 BTGuard 也不建议这样做。VPN 会加密您的流量。这仅隐藏了沿该链接的流量内容。这很好,它是墙上的一块砖。

代理是另一个重要因素。例如,BTGuard 提供匿名代理服务。代理接收您的流量并将其重新传输到目的地。它可以做到这一点的方法之一是以自身为源重新发送流量并更改源端口。它维护您的连接的内部表以及新的源端口。这样一来,代理另一端的所有流量只能断定代理是始发者。代理接收来自目标的流量,并在原始源端口上重新传输给您。

这两种技术都很重要,而且开箱即用。你没有问过(并且已经在这个网站上以各种方式解决)是如何通过跟踪机制、错误配置和错误来击败这种有效的 1-2 拳。

你是正确的说你可以被识别。

请检查 FREAK 漏洞:http ://en.wikipedia.org/wiki/FREAK

我想说即使使用 VPN,也有可能被抓到做坏事/机密的事情。其他几个后门可能仍然存在,或者在加密技术中引入。

如果 VPN 没有更改您的浏览器请求的标头,则可以通过其指纹(您可以使用Panopticlick进行测试)或supercookies来识别您的浏览器。您的个人身份不会泄露,但理论上可以通过查看服务器日志找到您(更准确地说是您的计算机)访问了哪些页面。它可以是一种区分从同一 VPN 连接到同一 IP 地址的 2 个用户的方法。可以修改浏览器发送的标头以模拟更频繁的指纹。