为啥朝廷总抓不到俺——十年反党活动的安全经验汇总(上)

原载于编程随想的博客

好几天没上线,可能有读者以为俺出事了。别担心!俺21日还在回复评论,截止发这篇博文,【未】超出14天的期限,属于【正常静默】。
因为这篇博文要【全面地】分享俺十年反党活动的【技术】经验,牵涉到很多零碎的内容,整理起来多费了点精力和时间。

★“朝廷想抓俺而不可得”正说明了——俺的防御措施基本靠谱

熟悉俺博客的读者都晓得——本人已经抹黑党国很多年了。从“第一篇政治博文”一直到“写这篇汇总”,时间跨度已超过“9.5年”,四舍五入就算十年吧 :)
俺记得很多年以前,有人在博客评论区对俺说(以下是大意):
“你小子能在网上得瑟,是因为网监部门还没注意到你;等到哪天网警开始盯上你,你就等死吧。”
那时候,很多事情都还没有发生,俺缺少反驳的素材。如今可以理直气壮地反驳了——朝廷的有关部门早就盯上俺了;遗憾的是:他们拿俺一点办法也没有。
想看证据的话,请围观前几天的那篇《开博十周年大事记》。俺摘录其中几个要点:
1. 早在2011年的“中国茉莉花革命”期间,俺就连发多篇具有“煽颠”性质的博文(注:那几篇显然能评上“煽动颠覆国家政权”的大罪)
2. 到了2016年,朝廷向 Github 发出【政府删除令】,企图干掉俺维护的《太子党关系网络》项目(注:Github 有骨气,此项目至今屹立不倒)
3. 针对俺 Gmail 邮箱的两次【国家级入侵】(注:分别出现在2011和2017)
4. 2017年针对俺博客评论区的大规模刷屏(注:Blogspot 评论系统有“验证码机制”,想达到那种刷屏速度,需要好多个职业五毛一起刷)
上述这种种的迹象早已说明——俺是朝廷有关部门的眼中钉。

花了这么多口水,就是想说明一点——俺的防御措施还是基本靠谱滴!
换句话说,俺的防御措施不敢说完美(完美是不可能滴),但至少【没有】明显的漏洞。否则的话(如果有明显漏洞),俺要么被跨省,要么帐号被攻陷,又怎么能在将近十年的时间里“肆意抹黑朝廷,恶毒攻击党和国家领导人”?


★本文的目标读者

开博这么多年来,有一个感慨——(在墙内)很多具备政治素质的人,缺乏信息安全的技能;所以他们无法利用互联网与党国斗争。
虽说墙外已经有很多民运网站,也有很多民运人士开设了社交网络(SNS)帐号。但他们毕竟生活在墙外。天朝的民主化进程,不可能光依靠海外人士,关键还是需要靠咱们这些生活在天朝的民众。所以今天这篇,首先是为了帮助那些【有志于从事反党活动的网民】。
其次,是为了帮助那些捍卫互联网上【言论自由】的人。俺曾经写过一篇《“对抗专制、捍卫自由”的 N 种技术力量》,谈到这方面的问题。

当然啦,所有的技术都是【双刃剑】——都可能被滥用。某些在网络上干坏事的家伙,也会从本文中受益。关于这点,俺也很无奈 :(
但是,俺不会因为技术存在被滥用的可能性,就停止对技术的传播和普及。


★本文与“之前写的信息安全教程”的关系

开博这么多年来,俺已经写了很多信息安全相关的【扫盲教程】(参见这篇末尾的:和本文相关的帖子)。今天要聊的很多内容,之前的教程都已经有了。那么,为啥俺还要写这篇捏?
因为之前写的那些,都只是针对某个具体的方面或某个具体的软件。而本文就是为了——把所有这些【串起来】,以方便那些在“信息安全领域”刚刚入门的同学。
为了避免老读者说俺“炒冷饭”,本文包含了一些过去没聊过的内容。另外,最后一章还附上几个实际案例,作为【反面教材】。


★两个【核心原则】

假如你想要效仿俺——长期利用互联网进行反党活动。如下两个原则需要时刻牢记。


原则1:确保你的身份隐匿
原则2:确保你的帐号安全




下面的讨论,都是围绕这2条来展开。
关于“身份的隐匿”,俺补充说一下:即便你的肉身位于【墙外】,确保身份隐匿依然是必要滴!
★如何选择网络平台?
◇首先,【绝对不要】使用【国内】的网络服务

(此处所说的“国内”,指的是:伟光正具备【司法管辖权】的范围,含香港/澳门,不含台湾)
如果你想要在网络上进行敏感的政治活动,这个原则一定要牢记。因为用国内的网络服务进行反党活动,会大大增加你暴露的风险。
以俺自己来举例:
刚开博的时候(2009年初),俺同时也注册了 CSDN 的帐号,并在 CSDN 上架设了一个镜像博客(详情参见《开博十周年大事记》)等到后来,俺越来越放肆地抹黑党国,那个 CSDN 帐号也就用得越来越少了。
虽然俺全程使用 TOR 访问 CSDN(也就是说,CSDN 的服务器无法知道俺的公网 IP)。但是它还是会知道俺的在线活动时间。请注意:“时间线”也会构成某种信息量。关于这方面的详细介绍,请看《如何隐藏你的踪迹,避免跨省追捕》系列教程的第9篇:
除了“在线时间信息”。考虑到如今很多网站都重度依赖 JavaScript 脚本(禁用 JS 脚本,网站就没法用)。所以,你如果用了墙内的网络服务,其网站上的 JS 脚本【有可能】收集到你本机的一些系统信息。

如果说“时间信息”和“系统信息”还不足以吓唬你,俺再提一个事情:当你使用墙内的网络服务,你所有的【用户行为】都有可能被有关部门收集和监控。
啥是“用户行为”捏?假如你用的是聊天服务(IM),你的用户行为就是——“你写过和看过的全部内容”;假如你使用的是邮件服务(Email),你的用户行为就是——“你发送和接收的所有邮件”。
请注意:“用户行为”所包含的信息量实在太大了。只要你一不小心,在其中涉及到与你真实身份相关的信息,这个信息就有可能成为日后追溯你身份的线索。(不信的话,请看本文末尾的其中一个反面案例)

◇为啥【不要】注册“独立域名”?

俺已经不止一次被问到:为啥博客没有用“独立域名”?老实说,俺一直觉得:只要博客内容足够好,有没有独立域名其实无所谓。
另外,如果从“信息安全”的角度来讲,独立域名还会增加额外的风险。
因为域名是稀缺资源,凡是要注册独立域名,自然涉及到【购买】(也就是【付费】)的问题。不管你是支付现金还是比特币,都会暴露“与你身份相关的信息量”。(通俗地说:增加了身份暴露的风险)

◇为啥【不要】搭建“自己的 Server”?
(注:本小节说的 Server 是广义滴,包括“物理主机、VPS”)
1. 考虑到【付费】的风险
(跟“域名”的情况类似)一旦你要搭建自己的 Server,也要涉及到【付费】的环节。如上一节所说,“付费的环节”会增加身份暴露的风险。
2. 考虑到【安全加固】的专业性
一般来说,用来提供网络服务的 server 通常会安装 Linux;还有极少数装 Server 版 Windows 或某种 UNIX(BSD 是 UNIX 的一种)。不管你的 Server 用哪种操作系统,都需要进行【安全加固】。
本来,“安全加固”已经是个很专业的领域,懂行的人就相对较少。然后,你还要考虑到——本文讨论的是“反党活动”。也就是说,你的安全加固,【不仅仅】是防“普通骇客”,还要防【御用骇客】。显然,“御用骇客”要比“普通骇客”牛逼得多。不妨稍微透露一下:由于工作关系,俺曾经跟御用骇客打过交道,知道他们的份量。(更多的细节,俺不便多说)
除非你自己是一个非常资深的信息安全从业人员,并且你对“服务器安全加固”这个细分领域非常熟悉,并且你对 Server 所用的操作系统的安全特点非常熟悉。请扪心自问一下:上述这3条,你都能达到吗?
达不到的话,还是死了这条心——不要自己去装 server。
3. 考虑到【时间和精力】
还有一个原因,也顺便说说——自己维护 server,需要消耗【很多】时间和精力。
请注意:“安全加固”并【不】是一劳永逸滴,而是个【动态过程】。如果你自己维护 server,需要时刻关注各种安全新闻,掌握你使用的操作系统和软件是否曝光新的安全漏洞,了解最新出现的入侵手法,诸如此类。一旦出现安全漏洞,你需要第一时间进行升级/维护。另外,你还要定期进行安全检查/安全审计......
凡此种种,都非常消耗时间与精力!
◇是否用【暗网】?
这个问题分两种情况:
1. 如果需要你自己搭建服务器,那么答案是“否定”滴。(原因参见前一个小节)
2. 如果无需你自己搭建服务器,由靠谱的第三方提供服务器,那么答案是“肯定”滴。

说到“暗网”,补充说一点:
很多人过度迷信“暗网”的能耐。俺要提醒一下:“暗网”只是帮你完成【网络层面】的隐匿性。要想彻底地隐身,你要在【多个层面】进行防范。(其它层面的防范,下面章节会聊到)
◇【国外】商业公司之间的权衡
简单说几个参考点:
1. 公司的口碑
不要用那些口碑差(历史上有污点)的平台。这个道理很显然,就不举例了。
2. 在华业务的规模
如果某个商业公司在天朝有庞大的商业利益,那么,一旦有关部门找这家公司索取用户私密信息,这家公司为了顾及在华商业利益,就【有可能】屈服于朝廷。
说到这里,已经猜到有同学会反驳俺——“既然这样,为啥还用“微软网盘”分享电子书?”
(对这类反驳,请看下一条的解答)
3. 网络服务的种类
不同类型的网络服务,对安全性的要求也不同。
比如说,俺会使用微软的网盘,但俺肯定【不】考虑微软的邮箱。
为啥捏?
因为俺的网盘本来就是用来进行【公开分享】,对保密性没啥要求。而电子邮箱对保密性的要求(相比“网盘”)要高得多。
所以在选择电子邮箱方面,Google 的 Gmail 显然比微软的 Hotmail/Outlook 更好(Google “在华业务”相比其“全球业务”,可忽略不计)
同样的道理也适用于 Github。虽然 Github 已经被微软收购了,但俺无所谓。因为俺的 Github 帐号也是用来进行【公开分享】滴。又没啥私密性的东西。最坏情况下,也就是帐号被封掉。真有那么一天,俺再转移战场继续战斗嘛。
★如何注册【隔离的】虚拟身份?
◇选择一个【全然不同】的网名
你要选择一个【完全不同】的网名。这个网名与你之前使用过的【任何一个】网名都【不】能有相似之处。
说到这儿,顺便分享一下俺起网名的经验。
老读者应该知道:俺刚开博的时候,只是想写点编程方面的博文,算是某种经验分享。当时想过用“喜欢软件开发的极客”,但这个名称太长;改成“喜欢编程的极客”,还是太长;后来又改了几次,才想到如今这个“编程随想”。这个名称比较短,而且还能搭配罗丹那个“思考者的雕像”。
俺的经验是:
网名太长就不好记(从传播学角度而言是不利滴),太短又容易跟其它名称混淆(导致“识别度”降低),所以要找一个长度较短同时还具有一定识别度的名称。
◇注册时,【不要】填写真实的个人信息
比如说,注册电子邮箱时,会让你填写生日,你可不要写真实的哦,瞎掰一个就行啦。
至于像【手机号】、【身份证号】之类的,更加【不】能据实填写。
(注:“短信验证”的问题,下面会聊到,别急)
◇注册的【全过程】都要走【匿名网络】
“注册帐号”是这个敏感虚拟身份的【起点】。如果注册的过程中暴露了身份信息,那么今后再怎么隐匿都【没用】啦!
所以,你要确保——注册的全过程都通过【匿名网络】来进行。这样才可以【彻底避免】“公网 IP 暴露”的风险。换句话说,即使在你注册的过程中,网站服务器记录了你的“访问者 IP”,这个 IP 也【不是】你真实的公网 IP。
◇啥是【匿名网络】?
“匿名网络”,洋文叫做“anonymity network”。顾名思义,是用来帮助你实现【匿名化】的手段之一。通过匿名网络进行各种操作(比如在网上发布言论),可以让【网络层面】的【逆向追溯】变得极端困难。
注:很多人把“匿名网络”与“暗网”混为一谈,其实这是两个不同维度的概念。之所以会有这种混淆,是因为几个知名的工具(Tor、I2P)既是“暗网”,也是“匿名网络”。
◇为啥“只用翻墙代理”还【不够】可靠?
因为翻墙工具的设计初衷是为了“突破 GFW”,而【不是】为了“匿名化”。
如果你非常在意“匿名化”(比如:想在网上发表敏感的政治言论),那么你就必须使用专门的【匿名网络】。
◇如何使用“匿名网络”?
名气最大的匿名网络有两个,分别是 Tor 和 I2P。俺个人推荐 Tor,但如果你想用 I2P,俺也不反对。
关于这两款,俺都写了教程(如下)。
Tor 的教程:
“如何翻墙”系列:扫盲 Tor Browser 7.5——关于 meek 插件的配置、优化、原理》(这篇讲“Tor Browser 套件”的使用,比较傻瓜化,支持各种桌面系统)
扫盲 Arm——Tor 的界面前端(替代已死亡的 Vidalia)》(这篇讲 Linux 下如何使用“裸 Tor”,技术门槛比上一篇高)
I2P 的教程:
“如何翻墙”系列:简单扫盲 I2P 的使用》(这篇是 I2P 入门教程)
◇如何解决【短信验证】的问题?
先声明一下:
由于俺开博比较早(2009年初),那时候移动互联网尚未普及,很多网络帐号【无需】绑定手机。于是就便宜了俺这种懒汉——省去了很多麻烦。
如今,越来越多的帐号需要绑定手机(注册帐号时,需要【短信验证】)。这时候,你【千万不要】用真实手机进行绑定操作!!!
很多同学要问了:那咋整啊?大致有两种【通用】的招数可以搞定(如下):
招数1:虚拟号码
你上网搜索一下:虚拟号码 短信验证,应该能找到很多【免费】的“虚拟号码服务”。这种服务可以用来帮你接收验证短信。
用这个招数的时候,有一点请注意——使用“虚拟号码服务”的【全过程】,也要基于【匿名网络】哦!
招数2:【不记名】的手机卡
如今天朝的手机卡,全都已经【实名制】了。要找这种【不记名】的手机卡,需要去【境外】。据说香港就有。(至于还有哪些地方可以买到,欢迎列位看官补充)
当然啦,你没必要为了搞个手机卡专程跑一趟;可以利用某次境外旅游的时候,顺便买一个。
用这个招数的时候,有几点请注意:
1. 在使用“不记名手机卡”的过程中,要确保你的手机本身是【纯洁】滴(可以考虑去搞一个“功能机/非智能机”来干这事儿)
2. 通过【境外】的手机网络接收“验证短信”。
3. 一旦接收完验证短信,这张“不记名手卡”就拔下来,【别】再用了。
4. 注册的操作过程应该在【PC 端】进行。
5. 不光是注册过程,以后也【不要】在任何手机上操作“你注册的敏感帐号”(手机的危险性,后续章节还会单独谈)
★【硬件】层面的防范
◇总是启用“开机密码”和“硬盘锁”
一些比较大牌的笔记本电脑,都有这两项功能。当你入手了一台笔记本电脑,首先把这两项开启。
启用了这两项之后,每次你开机(冷启动),都需要先输入两个密码,分别是“开机密码”和“硬盘密码”。可能某些同学会嫌麻烦,俺要强调一下:想提升安全就不要怕麻烦
当然啦,这两个玩意儿的【可靠性】到底有多高,是很难讲滴——因为不同品牌(厂商)的笔记本电脑,在实现这俩密码的机制方面,差别很大。但“启用”总归比“不启用”要好。
另外,正是因为笔记本自带的硬盘锁不一定靠得住,所以你需要在“操作系统级别”进行【全盘加密】(下面的章节会聊到这个)。
◇把一些多余且危险的 BIOS 选项禁掉
考虑到不同年代、不同品牌的笔记本,BIOS 选项差异较大。俺在这里只举几个例子。大伙儿要举一反三。
比如说:对于英特尔(Intel)架构,要把 ME(Management Engine)禁掉——这玩意儿有安全风险。另,AMD 架构也有类似的玩意儿,叫 PSP(Platform Security Processor),也要禁掉。(注:有些 BIOS 无法禁用 ME 或 PSP)
比如说:当你装好系统之后,应该到 BIOS 的启动配置界面中,把其它的启动项都禁掉,只保留“硬盘启动”这一项。
比如说:“网络唤醒”的功能就没啥必要,而且有风险。
......
(还有很多,就不逐一列举了。再次提醒大伙儿:举一反三)
★【操作系统】层面的防范
◇如何选择操作系统?
如果你用的操作系统,其本身就有很多安全问题,那当然不行。所以第一步是:选择某种靠谱的操作系统。
1. 【不要】使用预装的操作系统
俺【从不】使用笔记本内置的操作系统。俺的习惯是——只使用自己亲手装出来的系统。
为啥捏?因为你无法判断预装的系统是否【纯洁】,如果操作系统本身有安全隐患,后面聊的所有安全加固措施都是白搭!
可能有些同学认为俺故意耸人听闻,建议这些同学去搜一下前几年的新闻。
随手举个例子——2015年,联想 PC 因【预装】流氓软件,在美国遭遇集体诉讼,赔了好多银子。
2. 强烈建议【不】用 Windows
这个已经是老生常谈,具体就不展开了,参见下面这篇:
3. Linux 比 Mac OS 更好
说到这个话题,很多读者以为俺担心 Mac OS 是【闭源】。其实这只是一个方面。甚至都【不是】最主要的方面。
俺重点想说的是——【攻击面的确定性】。Linux 的特点是——【发行版非常多】。不同的发行版,内置软件的种类和版本不同,内核(kernel)的版本不同,内核的编译参数不同......而且 Linux 还支持多种 CPU 芯片,既有 x86 系列(Intel/AMD),也有【非】x86 系列(比如 ARM)。
一言以蔽之——Linux 由于发行版之间【巨大的差异】,会导致攻击面【非常不确定】。因此,在不了解你系统配置的情况下,入侵者的难度会急剧变大。
再来看苹果的桌面系统。因为 Mac OS【没有】“发行版”这个概念。或者换种说法,Mac OS 只有一个发行版(就是苹果官方维护的那个)。所以跟 Linux 一对比,Mac OS 的系统环境就显得非常确定了。
另外,还有很多其它因素导致了——Linux 比 Mac OS 更有利于安全加固。具体请看下面这篇:
4. 如何选 Linux 发行版?
Linux 的发行版,大概有上百种之多。经常会让新手困惑。
如果你是 Linux 的新手,先看《扫盲 Linux:如何选择发行版》,了解一些基本概念。
“如何选择 Linux 发行版”这个问题,【没有】放之四海皆准的标准答案。不同的场景,不同的使用者,自然会有不同的择。以本文这个话题,俺的建议是:【保守型】、【社区维护】、【口碑好】
你在符合这几个条件的发行版中,挑个你觉得最顺手的。
5. 善于折腾的同学,也可以考虑 BSD 社区
BSD 社区比较有影响力的发行版包括如下几个:
这是 BSD 社区最知名的一款,也是该社区最多人用滴。
这款是以【安全性】著称滴。它的社区采用了很多机制(代码审计、最小化权限、最小化安装 ...)来提升系统的安全性。
而且 OpenBSD 社区非常强调【默认安装的安全性】。也就是说,默认装好,不作任何配置,其安全性就已经足够好。根据历史记录,从1997年到俺写本文之时(2019年初),OpenBSD 在默认安装下只曝光了2个【远程】漏洞(时间分别在2002年、2007年)。这种水平,其它操作系统望尘莫及。
值得一提的是:有很多知名的软件(比如:OpenSSH、tmux、LibreSSL、PacketFilter)就源于 OpenBSD 社区。
这款是以【可移植性】著称滴。号称支持的硬件平台超过任何一款 Linux 发行版。
(不过捏,这个优势对个人用户而言,意义不大)
小结
综上所述,用 Linux 或 BSD。本文后续的讨论,也在这两者基础上展开。

没有评论: