VPN和互联网审查术语表
46 terms, each with a definition you can quote and a note on what it is usually taken to mean that is wrong.
每个条目都有永久锚点,因此您可以直接链接到定义。随意引用它们——附上返回链接是受欢迎的,但不是必需的。
如果您正在选择协议而不是查找某个协议,协议对比 按决策顺序涵盖了相同的内容。
封锁的工作原理
网络用来阻止你访问某些内容的方法。大多数限制结合了几种方法,这就是为什么击败一个通常会暴露出下一个,而不是开放的互联网。
-
深度包检测 (DPI)
# 也: DPI -
网络上的设备查看流量内部,而不仅仅是其目标地址,并根据发现的内容决定如何处理。
DPI通常被描述为读取您的数据。在加密连接上它无法做到:负载是密文。它读取的是流量的形状——数据包大小、时序、握手的未加密开头字节、谁先说话以及说话多少的模式。这足以在不解密任何字节的情况下识别协议,这就是为什么VPN在完全不可读的情况下仍可能被封锁。这也解释了为什么混淆通过改变这种形状而不是增加更多加密来工作。
-
DNS过滤
# 也: D, N, S, 封, 锁, ,, D, N, S, 中, 毒 -
通过让网络对“此域名的地址是什么?”这个问题给出错误答案或根本不给出答案来封锁网站。
这是最便宜的一种封锁方式,也是最容易破解的——更换解析器通常可以恢复访问,这就是为什么人们认为封锁只是“DNS问题”。但要注意两点:只有当网络允许查询到达解析器时,更换解析器才有效;许多网络会将所有端口53的流量重定向到他们自己的解析器,无论你如何配置。而且,被DNS封锁的网站通常也会被IP或SNI封锁,所以DNS的解决方案只是揭示了下一层封锁,而不是开放的互联网。
-
SNI过滤
# -
通过读取TLS握手开始时浏览器以明文发送的网站名称来阻止HTTPS连接。
令人惊讶的细节:HTTPS加密了页面内容,但初始握手会以明文宣布你要连接的网站,这样托管多个网站的服务器就知道要提供哪个证书。这个字段——服务器名称指示(SNI)——是一个意外写入协议的按网站封锁列表。加密的客户端问候(Encrypted Client Hello)可以关闭它,但它需要两端的支持,而且对于审查者来说,因为它仍然足够罕见而容易识别,所以很容易被全面封锁。
-
IP封锁
# -
阻止到特定地址或来自特定地址的流量,无论流量内容是什么。
这是一种粗暴且因此容易暴露的方法。因为一个地址通常服务于成千上万个不相关的网站,IP封锁是最有可能误伤旁观者的方法,这种附带损害通常是外部观察者发现封锁发生的原因。对于VPN来说,这是一场纯粹的算术竞赛:提供商增加地址,审查者枚举并封锁它们。谁能更快地迭代,谁就在那个月获胜。
-
TLS指纹识别
# 也: J, A, 3, ,, , J, A, 4 -
通过加密连接打开握手的确切方式来识别背后的软件。
每个TLS客户端以特定的顺序提供其密码套件、扩展和曲线。这个顺序是库的签名,而不是用户的签名,它在加密开始之前发送。如果审查者能判断出你不是在用浏览器发送,它就不需要知道你发送的内容。这就是为什么严肃的规避工具会不厌其烦地逐字节模仿真实浏览器的握手,而不仅仅是良好地加密。
-
主动探测
# -
审查者连接到您刚刚使用的服务器,以查看它是否像代理那样响应。
被动检测询问您的流量看起来像什么;主动探测询问您的服务器在陌生人敲门时的反应。如果服务器以只有特定代理才会的方式响应格式错误的请求,它就会被识别并封锁,您的流量就不需要泄露。防御措施是服务器在没有正确凭证的情况下被访问时与普通事物无异——这是Reality和现代Shadowsocks的共同设计目标。
-
限速
# -
故意减慢连接速度而不是完全阻止,直到它变得难以使用。
审查者越来越倾向于使用限速而不是完全阻止,这是一个政治原因而不是技术原因:被阻止的服务会产生错误消息和新闻报道,而一个只是从不加载的服务会产生一个责怪自己手机的用户。它也远难测量,因为速度慢本质上是模棱两可的。将一个在特定网络、特定时间段之外任何地方都能正常工作的服务视为可能的限速,而不是巧合。
-
确认的封锁与异常
# -
确认的封锁是指测量明确识别出审查;异常是指某些东西看起来不对劲,但没有证明原因。
这种区别是值得引用的审查统计数据和值得忽略的统计数据之间的差异,几乎每个公布的数字都模糊了这一点。确认的封锁意味着看到了某种决定性的东西,通常是封锁页面。异常意味着DNS答案不一致,或连接重置,或证书不匹配——所有这些都是审查造成的,也都是普通故障造成的。将两者相加会使总数膨胀,有时是数倍。当你看到一个没有注明它计算的是哪一个的封锁百分比时,假设是较大的那个。
-
封锁页面
# -
页面显示您请求的网站不可用时,网络替代显示的页面。
因其内容而显得尤为宝贵,因为它是唯一一种承认自身存在的审查形式。测量项目可以匹配已知的封锁页面,并将事件记录为已证实而非怀疑。那些希望保持否认状态的审查者已经转向使用超时和重置,这些手段看起来与网络故障完全一样——因此,封锁页面的减少并没有使审查变得更少,而是更难计数。
-
防火长城 (GFW)
# -
在中国国际网络边界运作的综合过滤系统。
它不是一个防火墙,也不是一个单一的系统:它是一个分层的组合,包括DNS篡改、IP封锁、SNI检查、TLS指纹识别、主动探测和限流,这些措施在不均衡的省份和运营商之间应用,并频繁变化。两个实际后果是。报告称某个工具“在中国有效”是关于某一时刻某一网络的观察,而不是该工具的属性。而且它是大多数规避技术所针对的环境,这就是为什么在其他地方看起来过度的技术在那里是标准。
绕过封锁
使流量无法识别,或使其类似于审查者不愿意封锁的内容的技术。
-
混淆
# -
改变流量在网络上的外观,使检查设备无法识别协议类型。
通常被描述为“额外的加密”,这搞错了机制。加密隐藏内容;混淆隐藏身份,这两者几乎是独立的。WireGuard具有强大的加密性,但很容易被识别——它的握手有一个固定的形状,审查者可以一眼认出。混淆增加了填充、随机垃圾或模仿其他协议的内容,这些都不会使流量更加保密,但都会使分类变得更加困难。一个工具可能在其中一个方面表现卓越,而在另一个方面毫无用处。
-
可插拔传输
# -
一个可替换的层,用于伪装工具的流量,因此可以在不更改工具的情况下更换伪装。
这是Tor的一个架构理念,结果证明它比任何特定的伪装都重要。审查者几周内就会适应;一个每次都需要重写的系统将会失败。将“安全传输数据”与“看起来像其他东西”分开,意味着新的伪装可以按照自己的时间表发布。当你读到某个工具“支持obfs4和Snowflake”时,描述的就是这个机制。
-
obfs4
# -
一个Tor的可插拔传输,它使流量看起来什么也不像——没有可识别的协议,也没有对没有正确密钥的任何人的响应。
它的设计是为了应对主动探测而不是被动检查。obfs4桥接不仅看起来不寻常;它拒绝向无法证明已经知道桥接秘密的连接透露自己,因此扫描桥接会发现沉默。这种方法的弱点是固有的:类似于未知协议的流量本身就是一种类别,而一个愿意封锁所有无法识别内容的审查者将会捕获它。这就是后来转向模仿真实协议而不是避免所有协议的原因。
-
Shadowsocks
# -
一个轻量级的加密代理,最初在中国编写,用于绕过防火长城。
它不是VPN,区别很重要:它代理配置为使用它的应用程序,而不是携带您整个设备的流量,因此任何没有指向它的内容——通常包括DNS——继续在开放中传输。它也不是一个单一的东西。早期的版本因其缺乏任何握手而可被检测;当前的版本进行身份验证以抵抗探测。“我使用Shadowsocks”没有说明实现和密码就毫无意义。
-
V2Ray和Xray
# -
一个框架,它通过多种协议和伪装传输流量,而不是单一的自有协议。
它引起了无休止的混淆,因为名称指的是一个平台,而不是一种方法。V2Ray或Xray的设置可能是通过CDN后的WebSocket上的VMess,或者是带有Reality的VLESS,或者是一个普通的Shadowsocks端点——配置具有完全不同的检测属性。Xray是V2Ray的一个分支,现在在功能上处于领先地位,包括Reality。当有人说网络封锁V2Ray时,问他们运行的是哪种传输方式;答案通常会解释清楚。
-
VMess 和 VLESS
# -
V2Ray 家族的两种传输协议;VLESS 是较新的一个,设计上更为简洁。
VMess 自行加密和认证。VLESS 既不加密也不认证,这不是疏忽:它假设自己运行在 TLS 内部,而 TLS 已经提供了这两者,避免了第二层加密,其独特形状使 VMess 容易被流量分析识别。协议层减少的工作量意味着更少的指纹特征。然而,没有底层保护的 VLESS 是明文传输。
-
Reality (XTLS)
# -
一种使代理服务器呈现真实第三方网站的 TLS 握手的技术,因此检测时看到的是对该网站的普通访问。
早期的做法是模仿真实网站;Reality 则借用一个网站。没有正确密钥的探测请求会被静默传递到它正在模仿的真实网站,并从该网站获得真实证书,因此探测确认了掩护故事而不是破坏它。这同时击败了 TLS 指纹识别和主动探测,这就是为什么它成为在高度过滤的网络中默认推荐的技术。它不是魔法:掩护网站必须是你可能访问的合理网站,而且普通访问者不会产生的流量体积仍然是一个信号。
-
域名前置
# -
通过在可见的握手中使用一个域名,而在加密的请求内部使用另一个域名,来隐藏请求的真实目的地。
多年来可用的最强规避技术,因为阻止它意味着全面阻止一个主要的云平台。它现在主要是历史性的:大型提供商在 2018 年禁用了外部和内部名称之间的不匹配,因为他们认为这是一个负担。值得了解是因为这种想法会重现——Reality 是同一洞察的衍生物,即最安全的伪装是审查者无法阻止而不破坏其所需的东西。
-
网桥
# -
像 Tor 这样的网络中的未公开入口点,以少量分发,因此无法简单地将其添加到阻止列表中。
Tor 的公共中继是公开的,这使得阻止它们成为文书工作。网桥的存在是为了不公开,而整个问题变成了分配:自由分发它们,审查者像其他人一样收集它们;分发得太谨慎,需要它们的人无法得到它们。每一种网桥分发方案都是这两种失败之间的妥协,这就是为什么获得一个网桥可能会感觉异常尴尬。
-
Snowflake
# -
一种通过短寿命的志愿者浏览器路由的 Tor 传输,使用与视频通话相同的技术。
它的聪明之处在于经济而非加密。中继是一个普通人的浏览器标签,运行几分钟,其住宅地址与其他任何地址无异——因此没有稳定的列表可以阻止,流量是 WebRTC,审查者无法在不同时禁止视频通话的情况下禁止它。成本来自于该设计:连接持续的时间与陌生人的标签保持打开的时间一样长。
-
失忆工作组
# -
一种修改版的 WireGuard,它添加了垃圾数据和可配置的标头值,使其握手不再匹配 WireGuard 的特征。
WireGuard 的第一个握手数据包是固定大小且第一个字节固定——一个 DPI 可以用单一规则匹配的模式,几个国家都在这样做。AmneziaWG 保持加密不变,只改变形状:在握手之前发送垃圾数据包,在其中添加额外的字节,不同的标头类型值。问题是两端端必须就每个参数达成一致,而仅仅是错误而非无效的配置将愉快地连接,同时携带填充本应隐藏的指纹。
-
垃圾数据包 (Jc, Jmin, Jmax)
# -
AmneziaWG 在实际握手之前发送的无意义数据包,以便审查者首先看到不是握手。
Jc 是发送的数量;Jmin 和 Jmax 限制它们随机大小的范围。提高 Jc 的诱惑是为了安全,这是双重错误:每个垃圾数据包在每次连接上都增加了延迟,每个会话之前的一连串均匀随机噪声本身就是一个模式。低个位数的值和广泛的尺寸范围可以干扰指纹而不会产生新的指纹。两者必须使用相同的设置。
-
头部魔法 (S1, S2, H1–H4)
# -
AmneziaWG 参数,用于填充握手数据包并替换 WireGuard 的四个固定消息类型值。
S1 and S2 add bytes to the initiation and response packets; H1 to H4 replace the constants 1, 2, 3 and 4 that identify WireGuard message types. Two constraints get missed constantly. H1 to H4 must all differ from each other, or the peers cannot tell message types apart. And S1 + 56 must not equal S2: WireGuard's initiation is 148 bytes and its response 92, the init longer by exactly 56, so that combination pads the two into being the same size as each other — trading one fixed relationship between the handshake packets for another. What makes either mistake dangerous is that the tunnel comes up and passes traffic regardless.
VPN 协议
实际承载隧道的协议。安全性和抗封锁能力是独立的属性,最强的协议并不自动是最难检测的。
-
WireGuard
# -
一种围绕小型、固定的现代加密技术集和大约四千行代码构建的 VPN 协议。
其决定性的选择是移除选项。没有密码协商,因此没有降级攻击和配置错误;也没有办法在其中一个选择过时后进行更改。同样的极简主义也产生了它对于被审查网络的一个真正弱点——一个如此一致的握手,以至于识别它只需要一个规则。优秀的加密和糟糕的伪装并不矛盾;它们是不同的难题。
-
OpenVPN
# -
长期存在的开源 VPN 协议,可配置性极强,能够在 TCP 端口 443 上运行。
比 WireGuard 慢得多,也复杂得多,但在两种情况下仍然被有意选择。它可以被伪装成在 HTTPS 使用的端口上的普通 HTTPS 流量,这在其他任何东西都被阻止的地方很重要。而且它可以在永远不会看到 WireGuard 实现的设备上运行。它的可配置性确实是双刃剑:同样的灵活性允许伪装,也允许部署比其默认设置明显更弱的配置。
-
IKEv2/IPsec
# -
一种内置于大多数操作系统的 VPN 协议组合,以在网络变化中存活下来而闻名。
你的手机在从 Wi-Fi 切换到移动数据时保持其隧道的原因通常是 IKEv2 的 MOBIKE。在对抗审查方面,它表现不佳:它使用固定的、众所周知的 UDP 端口,这些端口是过滤网络首先关闭的东西,而且它没有自己的伪装。在自由网络上是一个不错的默认选择,在敌对网络上是一个糟糕的选择。
-
PPTP
# -
一种过时的 VPN 协议,其加密自 1990 年代以来就被认为已被破解。
包括在这里是因为它仍然被提供,仍然被配置,并且仍然在列表文章中被描述为“快速”。它之所以快速,是因为它几乎没有做任何事情。它的身份验证可以简化为单个 DES 密钥,并且可以作为一种服务被破解。将仍然将 PPTP 作为功能列出的提供商视为对该提供商的声明。
-
握手
# -
双方在发送任何受保护数据之前就密钥达成一致的初始交换。
值得了解,因为它几乎是所有审查行为发生的地方。握手必然在加密建立之前发生,因此它的某些部分是可见的:TLS 中的站点名称、WireGuard 中的数据包大小和消息类型、指纹识别你的客户端的密码列表。在握手时阻止连接既便宜又不会在试图访问的服务日志中留下任何痕迹。
-
MTU 和 MSS 限制
# -
链接将承载的最大数据包,以及保持隧道数据包低于它的调整。
最奇怪的VPN症状的原因:连接正常,小网站能加载,但某个页面却永远挂起。隧道会添加头部信息,所以原本刚好合适的包现在不合适了;如果应该报告此问题的消息被过滤——而阻止所有ICMP是一种常见做法——发送方永远无法得知,大数据传输就会悄无声息地停止。降低MTU或固定MSS可以解决这个问题。在责怪提供商之前,先试试这个方法。
泄漏和隐私
即使在工作的 VPN 仍然暴露你的方式,以及提供商用来描述他们如何处理你的数据的术语。
-
DNS泄漏
# -
当设备连接到VPN时,仍向普通DNS解析器询问要访问的地址,因此该解析器仍然可以看到您打开的每个网站。
流量被加密,但关于流量的查询并未加密。您的ISP无法读取页面内容,但有一个时间戳列表,记录了您查询的内容,对于大多数目的来说,这等同于相同的信息。这可能是通过拆分隧道规则、客户端忽略的IPv6解析器以及操作系统功能导致的,这些功能会同时查询每个可用接口,并使用最先回复的结果。切勿假设任何事情,进行测试。
-
WebRTC泄漏
# -
无论您使用VPN与否,浏览器通过使视频通话正常工作的API泄露您的真实IP地址。
WebRTC需要知道您的真实地址才能直接连接两个人,因此它会请求这些地址——而网页可以在未经许可且没有任何可见迹象的情况下读取答案。VPN没有错,也无法阻止:泄露发生在浏览器内部,在隧道之上。浏览器设置或扩展可以解决这个问题;不同的VPN则不能。
-
IPv6泄漏
# -
IPv6流量绕过仅承载IPv4的隧道,将您的真实地址暴露给任何可以通过IPv6访问的网站。
安静,因为一切看起来都正常工作。您的网络和网站都支持IPv6,但您的VPN不路由它,因此连接绕过隧道并携带您的真实地址到达——没有任何地方报告错误。处理这种情况的客户端要么承载IPv6,要么在连接时完全禁用它。任何不做这两件事的客户端默认都会泄漏。
-
断网保护(Kill switch)
# -
如果VPN断开,则阻止所有流量的规则,而不是让它继续不受保护。
如果没有这个规则,重新连接是一段您永远不会注意到的未受保护流量窗口,因为应用程序只是继续运行。质量比单一的复选框所暗示的更为复杂:防火墙级别的开关即使在客户端进程被终止时也仍然有效,而在应用程序内部实现的开关则不然,有些只在客户端注意到断开后才启动,而不是之前。通过结束VPN进程而不是礼貌地断开连接来测试它是哪种类型。
-
拆分隧道
# -
通过VPN发送某些应用程序或目的地,而其余的则使用普通连接。
有用且经常配置错误的。常见的失败是忘记DNS不是应用程序:被排除在隧道之外的应用程序可能仍会通过它解析名称,或者——更糟的是——隧道内的应用程序可能通过隧道外的系统解析器解析。 将任何拆分隧道设置视为之后需要泄漏测试,而不是作为您切换并信任的设置。
-
完美前向保密
# 也: PFS -
为每个会话使用新的、临时的密钥,因此今天记录流量并窃取服务器的密钥不会解密它。
它解决的问题是耐心而非即时的:无法立即破解您加密的对手可以存储它并等待密钥被捕获、泄露或最终被计算出来。前向保密使这些存档变得一文不值,一次一个会话。在WireGuard和现代TLS中是标准配置;在旧配置中缺少它是更改配置的一个原因。
-
无日志政策!
# -
提供商声称不会保留能够将账户与其活动关联起来的记录。
这是一种说法,而不是一种属性,而且实质在于措辞。“无活动日志”和“无日志”有所不同:前者允许连接时间戳和字节计数,这通常足以将用户与会话关联起来。区分有意义政策的是证据——对运行基础设施的独立审计,而不是对文件的审计,或者提供商无法回答的法院请求。阅读所承诺的内容,而不是标题。
-
保证金丝雀
# -
定期更新的声明,表明未收到任何秘密法律要求,基于移除该声明即传达提供商可能无法言说的信息的理论。
在几乎所有地方都未经法律验证,实际上比听起来更弱——一个悄悄停止更新的金丝雀,其含义在法院命令和无人维护的网站之间模棱两可。其价值主要在于表达意图。如果你依赖它,请注意它应该更新的日期并实际检查。
-
多跳
# 也: 双, 重, V, P, N -
通过两个或多个VPN服务器路由,以便没有单个服务器同时知道你是谁以及你在做什么。
对于一种特定威胁确实有用:单个受威胁或被迫的服务器。它对于能够观察路径两端的观察者几乎无能为力,对于识别大多数人的浏览器级跟踪则完全无效。如果两个跳点属于同一提供商且在同一司法管辖区内,它所防御的威胁实际上并未被分割。
-
Tor over VPN 和 VPN over Tor
# -
两种不同的工具排序,具有不同的后果。
Tor over VPN——先VPN,然后Tor——隐藏你的ISP知道你使用Tor的事实,是在使用Tor会引起注意的地方有意义的安排;你的VPN提供商知道你正在使用Tor,Tor入口节点看不到你的地址。VPN over Tor则相反,很少有人想要:它为你的Tor流量提供稳定的身份给提供商,并破坏了Tor的假设。如果不确定,你指的是第一种。
网络基础知识
经常出现在其他条款中,并且在这里有重要误解的术语
-
IP地址
# -
在互联网上标识流量应送达位置的数字。
被视为身份,但实际上并不完全是。大多数家庭连接在许多家庭之间共享一个地址,大多数移动网络在数千用户之间共享一个地址,大多数地址会随时间变化。地址可靠地表明的是网络和大概区域——这正是地理限制所针对的,也正是VPN所改变的。
-
数据中心IP与住宅IP
# -
地址是属于托管提供商还是属于消费者互联网连接。
这是大多数阻止措施现在所依赖的区别。地址由其所有者以范围形式发布,因此任何人都可以判断访问者是从云提供商而不是家庭连接到达的——由于普通客户不会从服务器浏览,这是一个阻止VPN、抓取工具和欺诈的廉价信号。这也是为什么VPN可以完美工作但仍被拒绝的原因:你的流量没有任何泄露,只是地址的文件记录。
-
自治系统编号 (ASN)
# -
代表自行路由流量的网络的标识符——ISP、托管公司、大型企业。
互联网实际被阻止和分析的单位。一个地址几乎毫无意义;其背后的ASN表明它是土耳其的移动运营商还是德国的托管公司。审查也因同一国家内的ASN而异,这就是为什么同一城市中的两个人可能会对某个网站是否被阻止有完全不同的看法,以及为什么测量数据按网络而不是按国家/地区阅读是有价值的。
-
运营商级NAT (CGNAT)
# -
ISP 将许多客户置于一个公共地址后面,因为地址数量不足。
解释了两个日常难题。这就是为什么你可能会与陌生人共享一个公共地址,并继承其中一个获得的封锁。而且这就是为什么传入连接失败——托管任何内容或直接连接到家庭网络,都需要一个属于你的地址,而在 CGNAT 后面则没有。大多数移动网络和越来越多的家庭连接都是这样工作的。
-
代理与 VPN
# -
代理转发被告知使用它的应用程序的流量;VPN 则承载设备发送的所有内容。
实际区别在于你忘记处理的流量会发生什么。浏览器代理会让你的其他应用程序、操作系统自身的连接以及经常性的 DNS 正常传输,它们都不会提醒你。代理通常也不提供任何加密,这对于改变一个明显的地理位置很有用,但对于隐私保护则毫无用处。没有哪个更好;它们回答不同的问题。
-
智能 DNS
# -
一种仅改变名称解析步骤以使流媒体网站认为你在其他地方的服务,而不隧道传输你的流量。
速度快,因为你的视频不会经过其他人的服务器,并且由于同样的原因不提供任何隐私保护:你的 ISP 仍然可以看到每一个连接,你的真实地址会到达网站。它是一个地理工具,而不是一个安全工具,将其描述为“像 VPN 但更快”忽略了重要的部分。
-
加密与隧道传输
# -
加密使流量不可读;隧道传输改变了它所走的路径。VPN 同时做到这两点,它们解决了不同的问题。
将它们分开可以解决大多数关于 VPN 能做什么的困惑。加密阻止网络运营商读取内容——但 HTTPS 已经为网络做到了这一点。隧道传输改变了你的明显来源,这就是击败地理封锁和隐藏目的地免受 ISP 窥探的原因。VPN 在 HTTPS 之上真正增加的新东西主要是后者。而且这两者都不会隐藏你登录的网站上的任何信息。