防火长城

简介

一般情况下，中国国家防火墙，即防火长城，主要指中国政府用于过滤互联网国际出口上内容的软硬件系统的集合。例如中国政府将查获的特定网点阻断，造成大家所熟知的连线错误现象，因此防火墙不是中国特有的一个专门单位，是由分散部门的各服务器和路由器等设备，加上相关公司的应用程序所构成，是一个跨军民合作的大型信息管制系统，世界其他一些国家也存在网络审查，不过其审查对象、规模、执行主体等均与中国的审查机制有着相当大的不同(参见：互联网审查)，例如仅止于金融洗钱、国际诈骗等犯罪行为，或者仅审查儿童色情相关。而防火长城的作用是监控所有经过国际网关的通讯，对认为不符合中共官方要求的传输内容，进行干扰、阻断、屏蔽。由于中国网络审查广泛，中国国内含有“不合适”内容的网站，会受到政府直接的行政干预，被要求自我审查、自我监管，乃至关闭，故防火长城主要作用在于分析和过滤中国境外网络的信息互相访问。中国工程院院士、北京邮电大学前校长方滨兴是防火长城关键部分的首要设计师，被称为中国国家防火墙之父。
然而，防火长城对网络内容的审查是否没有限制和不违反言论自由，一直是受争议的话题，官方说辞也相当笼统。有报告认为，防火长城其实是一种圆形监狱式的全面监控，以达到自我审查的目的。而中共当局一直没有正式对外承认防火长城的存在，如当有记者在外交部新闻发布会上问及互联网封锁等问题的时候，发言人的答案基本都是“中国政府鼓励和支持互联网发展，依法保障公民言论自由，包括网上言论自由。同时，中国对互联网依法进行管理，这符合国际惯例。”方滨兴曾在访问中被问及防火长城是如何运作的时候，他指这是“国家机密”。不过2015年1月与官方有密切关系的《环球时报》则发布报道曾公开宣扬其存在。
在中国大陆民众内部，由于内部蓬勃的互联网企业，墙的存在感也逐渐被忽略，经过18个月的调查研究后，北京大学和斯坦福大学两名经济学家在2018年得出了结论，中国大学生对于获取未经审查的政治敏感信息漠不关心。他们给北京两所大学的近1000名学生提供了能够绕过审查的免费工具，但发现近半数学生并没有使用它。在那些使用了的学生中，几乎没人花时间浏览遭到屏蔽的外国新闻网站。
中国还有一套公开在公安部辖下的网络安全项目——金盾工程，其主要功能是处理中国公安管理的业务，涉外饭店管理，出入境管理，治安管理等，所以金盾工程和防火长城的关系一直没有明确的认定。

域名解析服务缓存污染

防火长城对所有经过骨干出口路由的在UDP的53端口上的域名查询会被IDS检测，一经发现与黑名单关键词相匹配的域名查询请求，防火长城会马上伪装成目标域名的解析服务器给查询者返回虚假结果。由于通常的域名查询没有任何认证机制，而且域名查询通常基于的UDP协议是无连接不可靠的协议，查询者只能接受最先到达的虚假查询结果，并丢弃之后的正确查询结果。用户若改用TCP在53端口上进行DNS查询，虽然不会被防火长城污染，但可能会遭遇连接重置，导致无法获得目标网站的IP地址。
DNSSEC技术为DNS解析服务提供了解析数据验证机制，理论上可以有效抵御劫持。此外，DNSCrypt、DoT、DoH等负载于安全连接的DNS访问也能保护DNS的访问数据不被中间传输设备篡改。
全球一共有13组根域名服务器（Root Server），2010年中国大陆有F、I、J这3个根域DNS镜像，但曾因为多次DNS污染外国网络，威胁互联网安全和自由，北京的I根域服务器曾被断开与国际互联网的连接。当前已恢复服务。
从2002年左右开始，中国大陆的网络审查机关开始采用域名服务器缓存污染技术，防止了一般民众访问被过滤的网站。对于含有多个IP地址或经常变更IP地址逃避封锁的域名，防火长城通常会使用此方法进行封锁，具体方法是当用户从境内向境内DNS服务器提交域名请求时，DNS服务器要查询根域名服务器，此过程会受防火长城污染。而用户不做任何保护措施直接查询境外DNS时，会受防火长城污染。当用户从境外查询境内服务器（不一定是有效DNS服务器），结果也会被污染。
2010年3月，当美国和智利的用户试图访问热门社交网站如facebook.com和youtube.com还有twitter.com等域名，他们的域名查询请求转交给中国控制的DNS根镜像服务器处理，由于这些网站在中国被封锁，结果用户收到了错误的DNS解析信息，这意味着防火长城的DNS污染已影响国际互联网。
2010年4月8日，中国大陆一个小型ISP的错误路由数据，经过中国电信的二次传播，扩散到了整个国际互联网，波及到了AT&T、Level3、德国电信、Qwest和西班牙电信等多个国家的大型ISP。
2012年11月9日下午3点半开始，防火长城对Google的泛域名*.google.com进行了大面积的污染，所有以.google.com结尾的域名均遭到污染而解析错误不能正常访问，其中甚至包括不存在的域名，而Google为各国定制的域名也遭到不同程度的污染（因为Google通过使用CNAME记录来平衡访问的流量，CNAME记录大多亦为.google.com结尾），但Google拥有的其它域名如.googleusercontent.com等则不受影响。有网友推测Google被大面积阻碍连接是因为中共正在召开的十八大。
2014年1月21日下午三点半，中国网站的.com,.net,.org域名解析不正常，网站被错误地解析至65.49.2.178，该IP位于美国北卡罗来纳州的Dynamic Internet Technology，即自由门的开发公司。据推测，可能是操作失误造成的事故。
2015年1月2日起，污染方式升级，不再是解析到固定的无效IP，而是随机地指向境外的有效IP。刚开始只是对YouTube影片域名（*.googlevideo.com）进行处理，之后逐渐扩大到大多数被污染的域名。这导致了境外服务器遭受来自中国的DDoS攻击，部分网站因此屏蔽中国IP。
当前大部分网站污染方式已恢复为解析到固定的无效IP，但小部分网站和新疆地区访问Google时仍会污染至有效IP（如Google中国大陆境内的服务器IP）。

针对TCP和UDP连接的封锁

在早期技术实现中，会使用访问控制列表（ACL）技术来封锁特定的IP地址，由此延伸可以封锁传输层协议（TCP或UDP）的特定目的端口的网络流量。不过由于大量的ACL匹配会导致网络性能不佳，现在主要是采用了效率更高的路由扩散技术封锁特定IP地址。正常的情况下，静态路由是由管理员根据网络拓扑或是基于其它目的而给出的一条路由，所以这条路由最起码是要正确的，这样可以引导路由器把数据包转发到正确的目的地。而防火长城的路由扩散技术中使用的静态路由其实是一条错误的路由，而且是有意配置错误的，其目的就是为了把本来是发往某个IP地址的数据包统统引导到一个“黑洞服务器”上，而不是把它们转发到正确目的地。这个黑洞服务器上可以什么也不做，这样数据包就被无声无息地丢掉了。更多地，可以在服务器上对这些数据包进行分析和统计，获取更多的信息，甚至可以做一个虚假的回应。这些错误静态路由信息会把相应的IP数据包引导到黑洞服务器上，通过动态路由协议的路由重分发功能，这些错误的路由信息可以发布到整个网络。这样对于路由器来讲现在只是在根据这条路由条目做一个常规数据包转发动作，无需再进行ACL匹配，与以前的老方法相比，大大提高了数据包的转发效率。
2011年3月，防火长城曾经对Google部分服务器的IP地址实施自动封锁（按时间段）某些端口，按时段对www.google.com（用户登录所有Google服务时需此域名加密验证）和mail.google.com的几十个IP地址的443端口实施自动封锁，具体是每10或15分钟可以连通，接着断开，10或15分钟后再连通，再断开，如此循环，使中国大陆用户和Google主机之间的连接出现间歇性中断，使其各项加密服务出现问题。Google指中国这样的封锁手法高明，因为Gmail并非被完全阻断，营造出Google服务“不稳定”的假象，表面看上去好像问题出自Google本身。
2014年5月27日起，几乎所有Google服务的80和443端口被屏蔽。2014年12月26日起，Google数段IP被路由扩散封锁，直接导致GMAIL客户端所用的IMAP/SMTP/POP3端口也被屏蔽。
一般情况下，防火长城对于中国大陆境外的“非法”网站会采取独立IP封锁技术，然而部分“非法”网站使用的是由虚拟主机服务提供商提供的多域名、单（同）IP的主机托管服务，这就会造成了封禁某个IP地址，就会造成所有使用该服务提供商服务的其他使用相同IP地址服务器的网站用户一同遭殃，就算是“内容健康、政治无关”的网站，也不能幸免。其中的内容可能并无不当之处，但也不能在中国大陆正常访问。所以基于路由封锁的方法现在主要用于针对自主拥有大量连续地址段的特定网络服务商，例如Google、Twitter、Facebook等；对于内容分发网络（CDN）的地址段可能不会采用这种地址封锁的方法，以避免误封；基于ACL策略可能会在当地的互联网服务商（ISP）中使用，同时用于控制过度往网络发送数据包的控制。

针对UDP连接的干扰

针对使用UDP连接的网站，在保证IP未被路由扩散技术封锁的情况下，使用HTTP/3（QUIC传输协议）的UDP连接可以有效避开防火长城的审查。但从2019年3月起，出现针对UDP的连接干扰。（错误提示：ERR_QUIC_PROTOCOL_ERROR），当前防火长城仍然无法对UDP连接进行针对性阻拦，但防火长城可以干扰其连接，使得当前所有利用UDP 翻墙的手段都可能会受到干扰，特别是在针对QUIC 方面会阻断UDP 443 端口的连接。

针对HTTP协议的关键字阻断

2002年左右开始，中国大陆研发了一套关键字过滤系统。这个系统能够从出口网关收集分析信息，过滤、嗅探指定的关键字。普通的关键词如果出现在HTTP请求数据包的标头（如“Host: www.youtube.com”）时，则会马上伪装成对方向连接两端的计算机发送RST数据包（Reset）干扰两者间正常的TCP连接，进而使请求的内容无法继续查看。如果防火长城在数据流中发现了特殊的内文关键词（如“falun”等）时，其也会试图打断当前的连接，从而有时会出现网页开启一部分后突然停止的情况。在任何阻断发生后，一般在随后的90秒内同一IP地址均无法浏览对应IP地址相同端口上的内容。
2010年3月23日，Google宣布关闭中国服务器（Google.cn）的网页搜索服务，改由Google香港域名Google.com.hk提供后，由于其服务器位于大陆境外必须经过防火长城，所以防火长城对其进行了极其严格的关键词审查。一些常见的中共高官的姓氏，如“胡”、“吴”、“温”、“贾”、“李”、“习”、“贺”、“周”、“毛”、“江”、“令”，及常见姓氏“王”、“刘”、“彭”等简体中文单字，当局实行一刀切政策全部封锁，即“学习”、“温泉”、“李白”、“圆周率”也无法搜索，使Google在中国大陆境内频繁出现无法访问或搜索中断的问题。2011年4月，防火长城开始逐步干扰Google.com.hk的搜索服务。2012年10月下旬起，防火长城使用更巧妙方式干扰Google搜索，部分用户在点击搜索结果链接跳转时一直被卡住，一直卡了6分钟之后客户端发送RST重置，然后页面一片空白。原因是链接跳转使用的是HTTP，用HTTPS跳转无影响。
这种阻断可以双向工作。在中华人民共和国境外访问位于境内的网站时，如果在数据包头部出现部分关键字，连接也可能会被阻断。两者的关键词列表并不完全相同，比如在境外使用知网搜索“法轮功”连接会被阻断，并且90秒无法访问，搜索“六四”则不会，在中华人民共和国境内访问境外网站时两者都会被阻断。
由于HTTPS采取加密传输，关键词阻断无法对网页传输造成影响。但由于身份认证证书信息是明文传输，因此阻断仍然是有可能的。
后来Google等网站开始采用HTTPS传输数据，针对HTTP协议的关键字阻断对相当一部分网站已经失去作用。

针对TLS的证书传输检测

由于TLS在握手期间，服务器传输站点证书时同样也是明文传输的，防火长城可以对证书的信息进行检测，从而是否需要被拦截的站点而中断TCP连接。
自2017年9月19日起，防火长城开始启用CA证书检测，若经过防火长城时，一旦探测到相关域名如：Google，Facebook，Youtube，Twitter，WhatsApp的CA证书，对应IP通信会被拦截切断。若使用SNI服务器IP反向代理部分域名也会被拦截（网站会提示ERR_CONNECTION_CLOSED 意外终止了连接），但并不是全部IP都会被拦截，可用IP极少。拦截只针对经过出口路由上。
从TLS 1.3开始，ServerHello之后的握手信息，包括站点证书，也会被加密后传输，一般可以认为能防止对证书信息的检测。

针对TLS的SNI阻断

虽然TLS能保证全程内容加密而且发现连接被干扰时警告并中断，但是对于SNI信息仍然是未加密的，仍可以被识别出访问域名。从2018年8月24日开始，开始出现基于SNI的检测机制，维基百科部分项目、日本亚马逊等启用https服务的网站同样被封锁。

对eD2k协议的连接干扰

从2011年开始，防火长城开始对所有境外eD2k服务器进行审查。当境内用户使用eD2k协议例如eMule使用模糊协议连接境外服务器时会被无条件阻断，迫使eMule使用普通方式连接境外服务器；同时防火长城对所有普通eD2k连接进行关键字审查，若发现传输内容含有关键字，则马上切断用户与境外服务器的连接，此举阻止了用户获取来源和散布共享文件信息，从而阻碍使用eD2k协议软件的正常工作。

对破网软件的反制

因为有防火长城的存在，大量境外网站无法在中国大陆境内正常访问，于是大陆网民开始逐步使用各类翻墙软件突破防火长城的封锁。针对网上各类突破防火长城的翻墙软件，防火长城也在技术上做了应对措施以减弱翻墙软件的穿透能力。通常的做法是利用上文介绍的各种封锁技术以各种途径打击翻墙软件，最大限度限制翻墙软件的穿透和传播。
同时根据中国大陆网民反映，防火长城现已有能力对基于PPTP和L2TP协议的VPN连接进行监控和封锁，这使得大陆网民突破防火长城的封锁变得更加困难。2015年1月起，部分国外VPN服务在中国大陆无法正常使用，这些VPN使用的是L2TP/IPSec和PPTP协议。

对破网软件加密流量的探测

防火长城通过提取加密流量数据包，分析其特征，即可对破网软件中的加密流量进行精准识别，并可进一步进行封锁；有研究表明防火长城可基于卷积神经网络对Shadowsocks流量进行探测。但上述方法适用范围较小，且随机加入防火长城无法识别的混淆数据理论上即可逃过审查。

间歇性封锁国际出口

从2011年5月6日起，中国大陆境内很多互联网公司以及高校、学院、科研单位的对外网络连接都出现问题，包括中国科学院。有分析指断网可能是因为防火长城已经具有了探测和分析大量加密流量并对用户IP地址执行封锁的能力，而各大机构的出口被封也在其中。具体表现为：当用户使用了破网（翻墙）软件后，其所在的公共网络IP地址会被临时封锁，所有的国际网站都无法访问，包括MSN、iTunes Store等，而访问国内网站却正常，但如果使用境外的DNS解析域名则将会由于DNS服务器被封锁导致无法解析任何域名，国内网站也会无法打开。也有分析指，此举是中国当局在测试逐步切断大部分人访问国际网站的措施，以试探用户反应并最终达到推行网络“白名单”制，也就是凡没有在名单上的企业或团体其网络域名将不能解析，一般用户也无法访问。而中共党机关报《人民日报》旗下的《环球时报》英文版则引述方滨兴指，一些ISP必须为自己的用户支付国际流量费用，因此这些公司“有动机”去阻碍用户访问国外网站。一位工信部官员说，用户碰到这些情况应先检查自己和网站的技术问题。

境内骨干路由器间歇性阻断

2012年10月下旬，Google位于北京的服务器被国家级骨干路由器长时间干扰连接，包括中国大陆境内用户在内访问时返回“连接超时”错误，造成大量基于Hosts技术利用Google北京服务器作为反向代理访问Google服务的用户和软件无法正常使用，例如GoAgent。测试指出数据包经过部分国家级骨干路由器时被选择性丢弃，造成与服务器连接的丢包率飙升，甚至有部分用户反映被完全阻断与服务器之间的连接。

深度包检测

深度数据包检测（Deep packet inspection,DPI）是一种于应用层对网络上传递的数据进行侦测与处理的技术，被广泛用于入侵检测、流量分析及数据挖掘。就字面意思考虑，所谓“深度”是相对于普通的报文检测而言的——相较普通的报文检测，DPI可对报文内容和协议特征进行检测。
在中国大陆，DPI一度被ISP用于追踪用户行为以改善其广告推送业务的精准性，而最近则被国外视为防火长城城赖以检测关键词及嗅探加密流量的重要技术之一。基于必要的硬件设施、适宜的检测模型及相应的模式匹配算法，防火长城能够精确且快速地从实时网络环境中判别出有悖于预期标准的可疑流量，并对此及时作出审查者所期望的应对措施。
华为公司曾被媒体指责涉及向伊朗政府提供DPI所依赖的硬件支持以帮助后者开展网络审查工作。

针对IPv6协议的审查

IPv6（互联网通信协议第6版）是被指定为IPv4继任者的下一代互联网协议版本。在IPv4网络，当时的网络设计者认为在网络协议栈的底层并不重要，安全性的责任在应用层。但是即使应用层数据本身是加密的，携带它的IP数据仍会泄漏给其他参与处理的进程和系统，造成IP数据包容易受到诸如信息包探测（如防火长城的关键字阻断）、IP欺骗、连接截获等手段的会话劫持攻击。虽然用于网络层加密与认证的IPsec协议可以应用于IPv4中，以保护IPv4网络层数据的安全，但IPsec只是作为IPv4的一个可选项，没有任何强制性措施用以保证IPsec在IPv4中的实施。因为防火长城是挂载在国家级骨干路由器的旁路设备，而网络数据传输必须知道数据包来源地与数据包的目的地才能完成路由转发，故在IPv4协议时代实施的针对IP地址封锁技术和特定IP地址端口封锁技术依然对IPv6有效。
方滨兴在他的讲话《五个层面解读国家信息安全保障体系》中曾经说道：“比如说Web 2.0概念出现后，甚至包括病毒等等这些问题就比较容易扩散，再比如说IPv6出来之后，入侵检测就没有意义了，因为协议都看不懂还检测什么。”
自2014年8月28日起，原先可以通过IPv6直连Google的中国教育网（CERNET）内试图通过https连接*.google.com.*等网页时，可能收到SSL证书错误的提示，其中以连接https://www.google.com.hk/几乎是每次连接均收到攻击，而其它连接例如https://ipv6.google.com/和https://accounts.google.com/也有受到攻击的报告，但攻击发生的几率相对较低。伪造的SSL证书显示其为google.com，颁发机构即为其本身，与真正的google证书不同，显示谷歌在中国教育网上受到中间人攻击（MITM attack）。
现阶段防火长城已经具备干扰IPv6隧道的能力，因为IPv6隧道在用户到远程IPv6服务器之间的隧道是创建在IPv4协议上的，因为数据传输分片的问题或者端点未进行IPSec保护的时候很有可能暴露自己正在传输的数据，让防火长城有可乘之机干扰切断连接。另外因为防火长城实行DNS污染，通过域名来访问IPv6服务器时可能也会因错误解析而无法访问。
IPv6大规模在国内普及后，防火长城随即跟进了其在IPv4上使用的封锁技术，使得使用IPv6绕过防火长城审查的难度大大增加。

网络攻击

中华人民共和国从2015年3月开始，使用一种被称为“大炮”的网络攻击攻击方案，对可能涉及违反审查要求的特定网站，进行分布式拒绝服务攻击（DDoS）。
其中2015年3月针对Github的攻击，通过包括劫持常见的网站工具脚本植入攻击代码、一些常见浏览器漏洞等方法，持续五天对Github网站进行攻击，导致网站全球访问速度缓慢。中国政府否认有关指责。