# GitHub访问速记

不知道我的消息够不够灵通，在昨晚我了解到GitHub Pages疑似遭到中间人攻击。我打开自己的浏览器先访问了GitHub，发现一切正常，然后再打开Pages，就遇到了以下问题：

![\*.github.io疑似遭到了MITM（中间人）攻击。](https://doodlehuang.files.wordpress.com/2020/03/image-4.png?w=1024)

![浏览器不想相信这种证书，毕竟它太假了](https://doodlehuang.files.wordpress.com/2020/03/403vuu7s42llf6xr40q8i-1.png?w=804)

在这里，我想先说明一下，很多人说HTTPS没用，这都能被挡住。事实上，这就是HTTPS的作用与魅力：它能阻止不安全的连接。如果没有这项机制，你可能甚至不会察觉到网络连接被劫持了。

当我检查证书的时候，我发现了这个证书跟GitHub官方的确丝毫没有联系，因此没有什么浏览器会选择信任它。

![证书的详情：这是一个自签（Self-Signed）证书。](https://doodlehuang.files.wordpress.com/2020/03/image-2.png?w=409)

这个证书是一个自签证书，给主机“server”签发。这看起来只是一个给局域网或是内网使用的证书，却不知道为什么流到了互联网，而且还是被用于劫持一个大网站！

很多人都查看了CSR信息，发现了该证书请求邮箱是一个QQ邮箱，而他的昵称为“心即灵山”，这个QQ想必很多人也有尝试接触过。

![346608453@qq.com](https://doodlehuang.files.wordpress.com/2020/03/image-3.png?w=409)

我个人认为这个证书更像是一个替罪羔羊，并不能指示任何一个幕后主使者，而我也不支持任何骚扰这个人的行为。于是我进一步检测这个问题：

1. 我通过NSLookUp查询GitHub多个网站的地址，并将IP进行搜索，发现是官方IP无误，排除DNS污染等常用GFW操作的可能；
2. Pages一直都没有强制HTTPS，因此在稍晚的时候，多数人通过HTTP即可访问几乎所有Pages（在通过关键词审查的前提下），因此我合理猜测80端口和443端口被分开路由了，或者是……？
3. 由于HTTP是明文传输，我合理猜测HTTP也有可能被中间人攻击，只是用户无法察觉。
4. 因为DH trl，根本不懂什么网络技术，上述猜想根本不会去验证，呜呜呜。

今天早上我登入知乎查看了一下[GitHub的主题（Luv Letter的回答）](https://www.zhihu.com/question/382718053/answer/1107253757)，然后发现了一些结论，同时也解决了我的一些疑惑：

1. 这个情况的确有且仅有在国内发生；
2. 大家普遍同意那个不明证书（里面提到的QQ号）和幕后主使没有太大关联（就是“替罪羔羊”）；
3. DNS相关部分运作正常，根据网友的进一步检测（我太弱了，呜呜呜），证实HTTP是正常的（没有中间人攻击），而443端口的流量则被转发到不同的路由；
4. 攻击模式确认就是中间人攻击（MITM）无误。

昨晚我还刻意测试了一下GitHub官网，在那个时候它还能被访问。但是今天早上我起床后再试了一下——

![连它也不能幸免于难！](https://doodlehuang.files.wordpress.com/2020/03/image-5.png?w=1024)

![Stapx的截图](https://doodlehuang.files.wordpress.com/2020/03/7v3vxby0g5vg409t.jpg?w=150)

Surprise！相同的手法，相同的结果，相同的阴谋！

没有人想要被网络搞暧昧。

截止到发布前，GitHub的各项服务已经能在中国大陆大部分地区正常访问，少数地区仍存在偶尔的劫持问题，长期禁止GitHub的地区不在本文的讨论范围内。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dh.4g.cx/items/accessing-difficulties-of-github-in-china.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
