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

  好几天没上线,可能有读者以为俺出事了。别担心!俺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篇:
如何隐藏你的踪迹,避免跨省追捕[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”,技术门槛比上一篇高)
“如何翻墙”系列:关于 Tor 的常见问题解答》(这篇是 FAQ)

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
  这个已经是老生常谈,具体就不展开了,参见下面这篇:
吐槽一下 Windows 的安全漏洞——严重性超乎想象

  3. Linux 比 Mac OS 更好
  说到这个话题,很多读者以为俺担心 Mac OS 是【闭源】。其实这只是一个方面。甚至都【不是】最主要的方面。
  俺重点想说的是——【攻击面的确定性】。Linux 的特点是——【发行版非常多】。不同的发行版,内置软件的种类不同,版本也不同;而且 Linux 还支持多种 CPU 芯片,既有 x86 系列(Intel/AMD),也有【非】x86 系列(比如 ARM)。
  一言以蔽之——Linux 由于发行版之间【巨大的差异】,会导致【攻击面非常不确定】。因此,在不了解你系统配置的情况下,入侵者的难度会急剧变大。
  再来看苹果的桌面系统。因为 Mac OS【没有】“发行版”这个概念。或者换种说法,Mac OS 只有一个发行版(就是苹果官方维护的那个)。所以跟 Linux 一对比,Mac OS 的系统环境就显得非常确定了。
  另外,还有很多其它因素导致了——Linux 比 Mac OS 更有利于安全加固。具体请看下面这篇:
为什么桌面系统装 Linux 可以做到更好的安全性(相比 Windows & macOS 而言)

  4. 如何选 Linux 发行版?
  Linux 的发行版,大概有上百种之多。经常会让新手困惑。
  如果你是 Linux 的新手,先看《扫盲 Linux:如何选择发行版》,了解一些基本概念。
  “如何选择 Linux 发行版”这个问题,【没有】放之四海皆准的标准答案。不同的场景,不同的使用者,自然会有不同的择。以本文这个话题,俺的建议是:【保守型】、【社区维护】、【口碑好】
  你在符合这几个条件的发行版中,挑个你觉得最顺手的。

  5. 善于折腾的同学,也可以考虑 BSD 社区
  BSD 社区比较有影响力的发行版包括如下几个:
  FreeBSD
  这是 BSD 社区最知名的一款,也是该社区最多人用滴。
  OpenBSD
  这款是以【安全性】著称滴。它的社区采用了很多机制(代码审计、最小化权限、最小化安装 …)来提升系统的安全性。
  而且 OpenBSD 社区非常强调【默认安装的安全性】。也就是说,默认装好,不作任何配置,其安全性就已经足够好。根据历史记录,从1997年到俺写本文之时(2019年初),OpenBSD 在默认安装下只曝光了2个【远程】漏洞(时间分别在2002年、2007年)。这种水平,其它操作系统望尘莫及。
  值得一提的是:有很多知名的软件(比如:OpenSSH、tmux、LibreSSL)就源于 OpenBSD 社区。
  NetBSD
  这款是以【可移植性】著称滴。号称支持的硬件平台超过任何一款 Linux 发行版。
  不过捏,这个优势对个人用户而言,意义不大。

  小结
  综上所述,用 Linux 或 BSD。本文后续的讨论,也在这两者基础上展开。

◇强烈建议使用【虚拟机】来强化安全

  刚才提到的“操作系统防范”,主要是针对你的【物理系统】(下面称之为“Host OS”)。下面要谈的是——你【一定要】在 Host OS 之上,用【虚拟化软件】来搭建若干个“虚拟系统”(下面称为“Guest OS”或“VM”)。这种玩法可以大大提升你防御入侵的能力,在某些特定情况下,还可以避免你暴露公网 IP(本文末尾的某个反面案例会提及这点)

  1. 虚拟化软件的选择
  如果你对技术方面【不太懂】,优先考虑的虚拟化软件是 VirtualBox(VBox)或 VMware。这两款的知名最大,用的人也最多;你如果碰到问题,比较容易找到相关的文档/教程。
  俺当年写的《扫盲操作系统虚拟机》系列教程,主要是也是拿这两款来举例。
  至于那些善于折腾的同学,当然还可以考虑别的软件,比如:KVMXenQEMU……
  因为虚拟化软件的很多功能是相通滴。所以捏,如果你用了别的虚拟化软件,依然可以参考俺上述的系列教程,然后自己举一反三。

  2. Guest OS 的选择
  关于“Guest OS 的选择”,可以参考“Host OS 的选择”。不过俺要提醒一下:Guest OS 最好与 Host OS【有所差别】。
  为啥捏?因为要规避【单点故障】的风险。关于这个话题,可以参考如下博文:
聊聊【单点故障】——关于“德国空难”和“李光耀”的随想

  3. 设定“安全基线”,并做到【定期回退快照】
  关于这个话题,请看俺那个“虚拟机系列教程”的第7篇:
扫盲操作系统虚拟机[7]:如何用“快照”辅助安全加固、强化隐私保护?

  4. 虚拟系统的【颗粒度】
  最起码你得有【两个】Guest OS(VM),一个用于你的日常身份,另一个用于你的敏感虚拟身份。这种做法的“颗粒度”【最大】,也是安全性【最差】滴。
  【更好的做法】是——把你敏感的虚拟身份操作的 N 个网络帐号拆分到 N 个 VM 里。以俺为例:有一个 VM 是专门用于“编程随想的 BT Sync”(Resilio Sync);有一个是专门用于“编程随想的 OneDrive”(微软网盘);有一个是专门用于“编程随想的 Twitter” ……另外,还有若干个虚拟机用于俺的真实身份。所以,俺的笔记本电脑里有很多虚拟机。
  拆分的颗粒度变小之后,即使某个 Guest OS(VM)被入侵,最坏也只是损失一个帐号。
  说到“颗粒度”,还有一个需要讨论的问题是:翻墙软件应该装在哪个虚拟机?关于这个问题,在下面讨论【网络】的章节中再细聊。

  5. 如何防止“虚拟机穿透”?
  在虚拟机这章的最后一个小节,俺来聊一下“虚拟机穿透”这事儿。所谓的“穿透”就是指:入侵者先攻占 Guest OS,然后利用虚拟化软件本身的漏洞进行“穿透”,入侵到 Host OS。
  这么干,从技术上讲是可行滴,而且也有安全研究人员演示过这个招数。但这个招数的实现难度非常非常大(需要同时具备很多条件),一般人其实不用担心这个风险。不过俺在本文开头也说了,本教程是要应付【御用骇客】滴。所以,这种情况的概率虽然小,还是值得考虑滴。
  那么,如何防范捏?比较好也比较彻底的做法是【物理隔离】。比如说:在多台【物理主机】上配置不同网络帐号的操作环境。即使某个物理主机被入侵了,其它物理主机上的网络帐号【不】受影响。
  最近这些年,笔记本电脑都已经白菜价了。所以,多买几台笔记本电脑来进行物理隔离,钞票的压力应该不大吧?
  刚才只是介绍了“物理隔离”的其中一种玩法。其它几种玩法请参见《如何防止黑客入侵》系列教程的第8篇:
如何防止黑客入侵[8]:物理隔离的几种玩法

◇确保 Host OS【极简】

  使用了“虚拟化软件”之后,你应该把【所有的】日常操作都放到 VM 中进行。普通身份的操作放到“普通 VM”,敏感身份的操作放到“敏感 VM”。
  于是捏,你的 Host OS 几乎就不需要啥软件了(除了虚拟化软件和系统自带的软件)。
  通过把 Host OS 简化到极致,也就把 Host OS 的攻击面降低到最小。你始终要记住:Host OS 非常重要!!!Host OS 如果沦陷,运行在它之上的所有 Guest OS 也将沦陷。

★【应用软件】层面的防范

◇选择软件的几个原则

  1. 【不要】使用国产软件
  这其中的道理就类似于——不要使用国内的网络服务。
  如果你由于某些原因不得不用某个国产软件(比如说:QQ、迅雷……),应该把这个国产软件单独隔离在某个虚拟机(Guest OS)中,【千万不要】装到 Host OS 中,也【不要】安装到那些用于敏感身份的虚拟机。

  2. 安装的软件【越少越好】
  安装的软件越多,你所暴露出的【攻击面】就越大。
  因为每个软件都无法做到尽善尽美,每个都有可能存在潜在的(未曝光的)漏洞。

  3. 尽量使用【成熟度比较高】的软件
  举个【反例】来说事儿。在浏览器方面 IE 就是个典型的反例。最近这20年,IE 曝光的【高危】安全漏洞(远程执行类、提权类)那真是一坨又一坨,简直惨不忍睹。像 IE 这么烂的浏览器,如果你用它去上网,简直找死。

  4. 优先选择【开源】的软件
  商业公司必定【逐利】,所以商业公司有作恶(耍流氓)的动机和动力。比如说,用户数据可以转化为利润(变现),所以商业软件(尤其是用户量很大的那些),总是喜欢收集用户隐私。
  相比之下,开源社区【没有】盈利的压力。所以,开源软件耍流氓的情况,不敢说完全没有,但肯定远远少于商业软件。

  5. 优先选择【发行版官方仓库】所含的软件包
  如果你使用 Linux 或 BSD,优先使用发行版官方维护的软件包。
  比如说,两个软件,功能差不多,其中一个包含在官方软件仓库中,另一个没有。通常情况下,应该选那个软件仓库已有的。
  “官方仓库”相当于某种程度的【背书/担保】。口碑越好的发行版,其官方仓库中的软件,可信度越高。

  6. (在安全方面)版本【并非】越新越好
  很多同学有个【误区】,以为版本越新越好。其实不然!(至少在安全方面,这点并【不】成立)
  关于这方面的讨论,可以参见下面这篇博文。虽然这篇博文讨论的是 Firefox,但道理是相通滴!
基于安全性考虑,如何选择及切换 Firefox 版本?
  另外,前面谈“如何选 Linux 发行版”,俺强调用【保守型】的发行版。道理也在于此。

◇磁盘加密工具的使用

  磁盘加密软件很重要,俺单列一个小节来讨论。由于磁盘加密软件依赖于具体的操作系统,下面俺以【Linux】来说事儿。用 BSD 的同学请依样画葫芦。

  1. 用 dm-crypt(LUKS)全盘加密
  装 Linux 系统时,/boot 通常会单独分一个区。/boot 的加密会比较麻烦。不太熟悉 Linux 的同学,可以把 /boot【之外】的其它分区都加密。如果你想把 /boot 也加密,可以到网上搜相关的教程。
  (注:因为 /boot 分区通常很小,而且【不】存放个人数据,该分区的保密性要求并不高)
  然后你可以在已经用 LUKS 加密的分区上,用 LVM(Logical Volume Manager)创建一系列逻辑分区(也叫“逻辑卷”)。请注意:规划逻辑分区时,要特意留几个空闲的(未用的)。
  引申阅读:
扫盲 dm-crypt——多功能 Linux 磁盘加密工具(兼容 TrueCrypt & VeraCrypt)

  2. 用 TrueCrypt / VeraCrypt 在空闲的逻辑分区创建【敏感加密盘】
  先再次唠叨一下:虽然 TrueCrypt(以下简称 TC)这个开源项目已死,但其替代品 VeraCrypt(以下简称 VC)完全兼容 TC 的功能和加密盘格式。所以,这两个软件大体上可以通用滴。
  在前一个步骤,俺提到:预留几个空闲的逻辑分区。到了这一步,你选择某个空闲的逻辑分区,用 TC/VC 在这个分区上创建加密盘,用来存放【特别敏感】的数据(跟你的敏感虚拟身份相关的数据)。为了叙述方便,该加密盘称之为“敏感加密盘”。
  TC/VC 的加密盘【格式】有一个优点,是传统加密盘所不具备滴。那就是 TC/VC 的加密盘【没有】特定的文件头,也【没有】任何其它特征。换句话说,给你一段看似随机的数据,你【完全无法】通过数据本身来判断其是否 TC/VC 的加密盘数据。
  这个优点很重要。因为某个未格式化的分区,其数据看上去是随机的;把这个分区做成 TC/VC 的加密盘之后,数据依然看上去像是随机的。这样就【不易】引起怀疑;即便引起了怀疑,你也可以抵赖,一口咬定该分区就是闲置未用滴。

  3. 示意图
  为了便于理解,用表格画个简单的示意图:

用来存放不那么敏感的数据 存放高度敏感的数据  
TrueCrypt / VeraCrypt
普通逻辑分区(正常格式化) 空闲逻辑分区(先不格式化)
LVM
dm-crypt(LUKS)
物理分区 物理分区
物理硬盘


  4. 【敏感加密盘】的配置原则
  由于这个加密盘特别重要,建议使用如下措施来强化其安全性:
  4.1. 认证因子要包含【key file】
  也就是说,要么只用“key file”,要么是“密码 + key file”。一旦你的认证因子中包含了“key file”,暴力破解就变得【不可行】。
  “key file”要用二进制文件,至少64字节或更大(以确保【熵值足够大】)。TC/VC 自身都提供了“生成 key file”的功能,以确保生成的“key file”是【高度随机】滴。
  4.2. 【多重】加密
  TC/VC 支持多重加密,每一重都使用不同的加密算法。
  4.3. 设置【隐藏卷】
  “隐藏卷”也叫“内层卷”。有了它,你就可以享受“Plausible Deniability”带来的好处啦 🙂

  5. 【敏感加密盘】的使用原则
  由于这个加密盘实在太重要了,俺建议遵循如下使用原则:
  5.1. 只有当你需要操作那些敏感身份的帐号,才开启/挂载(mount)敏感加密盘
  5.2. 当你要长时间离开自己的电脑——要么关机,要么关闭/卸载(umount)敏感加密盘

  (注:如果你不太熟悉 TrueCrypt 或 VeraCrypt,对本小节提到的很多名词会纳闷。请参考如下两篇教程)
TrueCrypt 使用经验
扫盲 VeraCrypt——跨平台的 TrueCrypt 替代品

★【网络】层面的防范

◇设置 OS 自带的防火墙(Host OS 和 Guest OS 都要设)

  无论是 Linux 还是 BSD 都内置了操作系统级的防火墙。你应该养成一个好习惯,一装好系统就开启防火墙。
  设置防火墙要遵循【最小权限原则】(凡是不需要的,都是禁止的)。
  比如说,你要配置一台个人用的 PC,并且【不】需要远程访问。那就应该把防火墙设置为“禁止对外监听端口”。
  (同样的原则也适用于 Guest OS 自带防火墙的配置)

◇Guest OS 的网卡模式

  前面提到了:要使用【虚拟化软件】来强化安全性。所以,你还需要对 Guest OS 设置“虚拟网卡模式”。
  俺的建议是:
1.
网关 VM【别用】bridge 模式,应该用 NAT 模式(NAT 可以起到类似防火墙的效果)
2.
(在极少数情况下)如果你需要【跨物理主机】共享“网关 VM”的翻墙流量,想让网关 VM 对其它物理主机暴露监听端口,可以在 NAT 模式下添加端口映射(洋文叫“port forwarding”)。如果俺没记错的话,VBox 和 VMware 都支持 NAT 模式下的端口映射。
3.
“操作上网帐号的 VM”用 host-only 模式(VBox 下还可以考虑 internal 模式,比 host-only 更严格)
通过这种方式,【彻底隔绝】该 VM 中的【任何软件】的网络直连,强迫他们都经过“网关 VM”联网。

  详细的“原理说明”和“配置教程”,参见如下两篇:
如何隐藏你的踪迹,避免跨省追捕[6]:用虚拟机隐匿公网 IP(原理介绍)
如何隐藏你的踪迹,避免跨省追捕[7]:用虚拟机隐匿公网 IP(配置图解)

◇避免用无线网络(比如:wifi)

  为啥要避免用无线捏?一言以蔽之,(相比物理网线)无线网络会显著增加你的攻击面。
  比如说:那些安全防范等级较高的公司或机构,其核心网络肯定是物理布线,而不会走 wifi 之类的无线网络。

◇设置家用路由器(如果有的话)

  哪怕是比较普通的家用路由器,也提供了一些基本的安全设置(比如:防火墙、MAC 地址绑定……)
  你应该把这些设置都用起来,还是刚才提到的老话——配置时参照【最小权限原则】。

◇操作敏感帐号,要【全程走】匿名网络(Tor 或 I2P)

  (关于这点,前面聊“注册帐号”时已经提过。为了加深你的印象,俺再次唠叨)

◇Tor 或 I2P 要加【前置代理】

  前面俺已经聊过了:Tor 和 I2P 是两个最有影响力的匿名网络。因为俺个人推荐 Tor,所以下面拿 Tor 来说事儿。想用 I2P 的同学,请依样画葫芦。
  Tor 从许多年以前,Tor 在天朝就无法独立联网了。因为 GFW 把 Tor 视作心腹大患,封杀了所有的 Tor 中继(Relay)。
  所以在墙内想用 Tor,需要让 Tor 借助某个前置代理(这个前置代理,通常是某个【可用】的翻墙软件)。后来 Tor 官方推出的 Tor Browser 内置了一个 meek 插件,可以辅助 Tor 在墙内联网。这个 meek 插件也可以视作某种前置代理。
  本来,让 Tor 走前置代理是为了突破 GFW 对 Tor 的封锁。但这么干产生了若干【额外的好处】——让你的网络传输更加健壮。啥意思捏?下面俺解释一下。

  好处1——ISP 【无法】知道你在用 Tor
  无论你在家上网还是在公司上网,最终你的网络流量都要经过 ISP。也就是说,ISP 完全有可能监控你的流量。
  当你采用“Tor over 前置翻墙软件”,ISP 监控你的流量,看到的是“前置翻墙软件”的流量。由于翻墙软件的流量都是【加密】滴,所以 ISP 无法解密,也就无法知道你在用 Tor。
  在全球的网络用户中,Tor 用户的比例依然很低;在天朝,这个比例会更低(墙内网民对隐私还是不够重视)。由于 Tor 是设计用来【隐匿网络踪迹】滴。如果让 ISP 看到你在用 Tor,终归不是啥好事儿。
  所以,即便你在墙外上网,此时 Tor 可以独立联网,你还是要给 Tor 配一个【加密的】前置代理。

  好处2——双保险
  当你采用“Tor over 前置翻墙软件”,你的“真实上网流量”的外面其实包裹了【两层】,第一层是 Tor,第二层是“前置翻墙软件”。由于包裹了两层,类似于某种【双保险】。
  换句话说,如果有人要在网络层面截获你的“真实上网流量”,必须先破解最外层(前置翻墙软件的加密),然后再破解次外层(Tor 的加密),才能看到你的真实上网流量。由于 Tor 本身是【强加密】,而翻墙软件的加密也不会太弱。所以,同时破解这俩层加密的可能性,小到可以忽略不计。

◇【不同】身份的帐号,要使用【不同】(各自独立)的匿名网络环境

  假设你让“真实身份”的帐号和“敏感身份”的帐号使用同一个 Tor/I2P 环境,有可能导致这两个帐号在【同一时间】使用了【相同出口节点】。
  如果这种情况长时间持续出现,就会使得这2个帐号产生某种【相关性】,从而让人怀疑这2个帐号背后是同一个人。
  更详细的说明,参见下面这篇博文的【公网地址】导致的关联性这个章节。
如何隐藏你的踪迹,避免跨省追捕[10]:从【身份隔离】谈谈社会工程学的防范

◇“翻墙软件”与“你的网络帐号”隔离

  刚才提到了:用某些翻墙工具作 Tor 的【前置代理】。那么,这些翻墙软件要放在何处捏?
  俺的建议是——把翻墙软件放到【另一个】虚拟机,以进一步降低网络帐号的风险。为啥捏?因为你无法知道:翻墙软件本身是否会耍流氓。
  在下面的这篇博文中,俺详细介绍了几种部署方式。其中包括“Tor 的前置部署”和“Tor 的后置部署”。
如何隐藏你的踪迹,避免跨省追捕[8]:如何搭配“多重代理”和“多虚拟机”
  对于本文的目标读者,如果你通过浏览器(Web 方式)操作网络帐号,此时你的上网软件(浏览器)是可信滴,而翻墙工具不一定可信。所以你应该采用“Tor 的【后置】部署”。

★【Web】层面的防范

◇如何选择浏览器?——俺推荐 Firefox

  说到“选浏览器”这个话题,其实也就是在 Chrome/Chromium 或 Firefox 这两家二选一。因为前面说了,你上网的系统应该是 Linux 或 BSD。像 IE、Edge 之流,就甭考虑啦。
  俺个人的建议是——Firefox
  俺知道读者中有很多 Google 的粉丝,也有很多 Chrome/Chromium 的粉丝。对俺倾向 Firefox 会感到不理解。建议这些同学看如下博文的分析:
弃用 Chrome 改用 Firefox 的几点理由——关于 Chrome 69 隐私丑闻的随想

◇如何选择 Firefox 的版本?

  关于 Firefox 版本的问题,列几个要点:
1. 【千万别用】中国版
2. 一定要用国际版中的 ESR(长期支持版本),别用 Release 版,【更不能】用 Beta 或 Nightly 版。
3. 在某个恰当的时间点切换 ESR(【不要】一发布新的 ESR 就切换)

  如果你不太了解 Firefox 的版本体系,未必明白上述这几个是啥意思。请参考如下博文:
基于安全性考虑,如何选择及切换 Firefox 版本?

◇关于 Firefox 的插件和扩展

  先说一下,“插件”(plugin)和“扩展”(extension)是两种不同的东西。在“这篇博文”中,有一个小节专门谈插件和扩展的区别
  对于操作重要帐号的浏览器——第三方“插件”一个都【不装】;第三方“扩展”要【尽量少】,最多只装几个安全相关的,要选那种口碑足够好的。

◇如何加固 Firefox?

  对于不太懂技术的同学,建议直接用“Tor Browser”套件。这个套件是 Tor 社区在 Firefox 的 ESR 版本基础上,又进一步强化了安全性。而且还绑定了 Tor。
  至于那些喜欢折腾的同学,可以自己用 user.js 对 Firefox 进行很多的定制。主要原则就是——把 Firefox 的【攻击面】降到尽可能小。
  (注:本来想写一篇“加固 Firefox”的教程,考虑到这个话题太小众,一直没动手写)

◇操作敏感帐号,确保全程 HTTPS

  如今 HTTPS 已经很普及啦。知名的网络服务,基本都支持【全站点 HTTPS】。有些网络服务做得更贴心——即使你用【明文】的 HTTP 协议访问,它也会把你重定向到【加密】的 HTTPS。
  有些同学会问:如果碰到某个网络服务,不支持 HTTPS,咋办?
  俺的建议是:如果某个网站到现在(2019)都还【没】实现“全站 HTTPS”,那这个网站也够烂的,不用也罢。
  为啥要强调【全程 HTTPS】捏?前面提到了“全程走匿名网络”,但是匿名网络中的节点都是由世界各地的志愿者维护的,不排除其中会有恶意节点(蜜罐节点)。【全程 HTTPS】之后,即使是恶意节点,也无法看到你的上网内容(网页、图片、视频、等),更加无法篡改。

◇确保浏览器【专用】

  为了说明【专用】是啥意思,举个例子。
  博客的读者都知道:俺有个推特帐号,是专门用来发布“博文更新的通知”。
  在俺的电脑上,有一个专门的 VM 用来操作此推特帐号(刚才聊虚拟机“颗粒度”的时候,已经提到这点)。这个 VM 里面的 Firefox,除了访问 Twitter 的网页,【绝对不】访问其它任何网站。
  确保浏览器【专用】,可以预防大部分的 Web 攻击。

★【社会工程学】层面的防范

  对于技术高手而言,“社会工程学”的防范【最难】。因为“社会工程学”探讨的是【非】技术领域的话题。
  这方面的防范,靠的不是你的技术,而是你的心理素质。比如:是否足够理性,是否足够细心,是否足够耐心,是否足够冷静 ……

◇关于【偷窥】

  (俺特意把这个放在第一条,因为谈到社会工程,很多人只想到对网上其他人的防范,而忽略了【身边人】)
  当你操作敏感的虚拟身份时,要确保【不】被周围的人看到。如果是在公共场合(包括公司里),还需要警惕周边的摄像头。
  再次拿自个儿举例:
  俺有时候会在【上班时间】回复读者评论,那是因为俺作为公司的高管,有独立办公室 🙂
  如果俺是在开会或者与别人讨论问题,肯定不会运行“编程随想”相关的 VM(甚至连存放这些 VM 的【敏感加密盘】都不开启)。

  既然说到“偷窥”,再顺便强调一个常识——输入重要密码记得遮挡键盘(尤其是在公共场合)。比如说:用笔记本的同学,(输密码时)把屏幕合拢到与键盘成30度角。

◇关于【信任】

  当你使用敏感的身份与别人沟通(哪怕【私密】的沟通),【永远不要】提及自己的真实身份。
  就算你能相信对方,你又如何确保沟通双方的系统环境是可信的?你又如何确保沟通双方的物理环境是严密的?……(这样的反问句,俺可以写一大堆)
  基于同样的道理,即使是跟俺邮件沟通,你也【不】可暴露自己的身份信息。

◇关于【社交网络】(SNS)

  敏感虚拟身份使用的 SNS 帐号,要与你真实身份使用的 SNS 帐号【没有交集】。
  比如说:俺的真实身份有一个 Twitter 帐号,但这个 Twitter 帐号肯定不会 follow 编程随想的 Twitter。

◇关于【聊天工具】(IM)

  聊天工具(IM)会暴露出比较多信息量。所以“编程随想”这个身份从未使用 IM 与读者沟通(最多只用邮件,而且如今连邮件也用得少了)。
  如果你确实想用 IM,那就只用【文本】形式,千万【别用】“音频 或 视频”。
  另外要提醒一下:【不要】过度迷信“端到端加密”。
  某些同学【误以为】:采用了“端到端加密”之后,聊天内容就只有两人知道。其实不然!比如说:其中一人的 PC/手机中了木马,聊天内容就有可能外泄。这还只是一种可能性,还有其它很多种可能性。

◇关于【个人信息】

  不论是写博客还是用 SNS(社交网络)与别人沟通,你所说的话,总是会不经意地暴露出一些个人的身份信息。
  比如俺博客聊了这么多信息安全的话题,有些话题还比较“阳春白雪”(只有懂行的人才写得出)。因此,读者就能猜出,俺是在这个圈子里混的——这就是某种“个人信息”。
  所以,除非你完全不说话,否则,总是会有这样那样的信息暴露出来。当你暴露的信息足够多之后,某些“有心人”就会根据这些信息,逐步缩小范围,逐步拼凑出你的完整脸谱。
  那么,该咋办捏?
  说到这儿,俺要借用《红楼梦》里面的名言——【假作真时真亦假】。也就是说,你要故意暴露【假信息】。通过这些【假信息】来干扰对方的视线。“假信息”关键在【质】而不在“量”。啥意思捏?就是说,“假信息”的数量并不需要太多,但一定要让人信以为真。
  由于存在“假信息”的【干扰】,当“有心人”企图根据你暴露的信息来缩小搜索范围,你就有可能【漏网】——漏到包围圈之外 🙂

◇关于【时间信息】

  关于这个维度的讨论,之前已经专门写过一篇博文(如下)。
  《如何隐藏你的踪迹,避免跨省追捕[9]:从【时间角度】谈谈社会工程学的防范
  正是因为这方面的考虑,所以俺要让自己的“上线时间”尽量【随机化】,不能有固定的模式。

◇关于【行文风格】

  每个人的遣词用句都有其独特之处,这种独特性就像是语言层面的“指纹”。
  举个例子:
  J.K. Rowling 曾经用化名出了一本推理小说《布谷鸟的呼唤》(The Cuckoo’s Calling)。某公司通过专门的软件对文字风格进行分析,发现此书与《哈利·波特》的行文风格高度一致,从而曝光了作者的真实身份。
  所以,如果你的“虚拟身份”与“真实身份”都在互联网上留下【足够多】文字,别人【有可能】从“文字风格”发现两者的相关性。文字越多,被发现的可能性越大。
  俺比较幸运之处在于——本博客是俺第一个博客。在2009年之前,俺一直是网上的【潜水者】(从来不冒泡)。另外,俺在公司里也不会写长篇大论的文档。所以,在“行文风格”方面,俺的风险会比较低。

  考虑到俺博客有不少程序员读者,顺便提醒:【源代码风格】的“指纹”。其原理是类似的。
  前些年,俺大幅度改造博客的评论区界面,加了很多定制的 JS 脚本,当时就有热心读者提醒俺这个风险。今天顺便也解释一下。
  作为一个老程序员,俺在公司里写了很多代码,但都是 C/C++、Java、Python(从俺写的编程博文,也能猜出这点)。而且俺在公司里写的都是【后端代码】(服务器端)。而博客评论区的改造属于【前端 JS】。因为前端与后端的差异太大,且编程语言也不同。因此,俺在这方面的风险也很小。

◇(其它)

  社会工程学涉及的方方面面太多,肯定有些是俺漏了说的。欢迎列位看官到博客评论区继续补充。

★对【手机】的防范

  关于“手机”的话题比较特殊,因为手机同时涉及前面提到几个层次,所以俺单列一章来讨论。

◇手机的风险

  关于手机的隐私风险,这些年来,俺已经重复唠叨很多次啦。今天再来一次。
  当你想用手机操作你的网络帐号,这已经隐含了一个前提——此手机必然是【智能机】。“智能机”的安全风险【至少】包括如下:

  1. 【硬件探测器】太丰富,能收集的信息太多
  手机包含的硬件探测器太多,至少包括:摄像头、麦克风、GPS、陀螺仪 ……
  在这种情况下,如果手机中的某个软件(app)是恶意的,并且获得了足够的权限,那么这个 app 就可以监控你日常生活的方方面面。
  比如说:通过“GPS 定位”或“基站定位”可以了解你日常活动范围,可以知道你用哪种交通工具(根据移动速度)……

  2. 两大手机操作系统(Android & iOS)都不是【完全开源】滴
  iOS 是闭源,这个众所周知了。
  很多人【误以为】Android 是开源,其实它只有【一部分】是开源滴。如果要说得再详细一点,那就是——
Android 系统包括两部分:AOSP(Android Open Source Project)和 GMS(Google Mobile Services)。其中的 GMS【不】开源。
  而且自从 Android 占据市场主导地位之后,Google 逐渐把 AOSP 中的模块转移到 GMS 中(注:Google 这么干,再次体现出商业公司的德性)。

  3. 固件是【闭源】滴
  请注意:固件处在操作系统的【下层】。固件如果不可信,比操作系统还麻烦。

  4. 手机上无法实现【操作系统虚拟机】
  到目前为止,手机上还无法实现“操作系统虚拟机”,也就是类似于 VMware 或 VirtualBox 之类的玩意儿。
  而“操作系统虚拟机”是非常重要的安全防御手段(前面章节已经聊过)。

  5. 手机上的【全盘加密】不够严密
  虽然如今的 Android 和 iOS 都已经有了“全盘加密”,但它们机制和功能,对俺这类高危人士而言是【远远不够】滴。
  为了长话短说,简单举个例子——
  至今还没听说有哪个手机系统的全盘加密支持【key file】,但成熟的桌面加密软件(TrueCrypt/VeraCrypt)都有这个功能。
  “key file”是啥玩意儿捏?通俗地说就是:用某个【内容随机生成】的文件作为加密盘的“认证因子”(其效果类似密码)。但是 key file 比密码更优秀之处在于——由于 key file 的内容是随机生成滴,你自己也不知道其内容(而且你也不可能把它的内容背下来)。因此,一旦你【彻底】销毁了这个 key file 之后,连你自己也【不可能】再打开加密盘。所以,key file 就可以用来对付警方的【酷刑逼供】。
  不光缺少“key file”功能,手机的磁盘加密还缺少其它很多重要的功能,比如“Plausible Deniability”,比如“自定义加密算法组合”,比如“自定义密钥迭代次数”……而这些功能对提高“加密盘的抗破解能力”,是非常重要滴!

  6. 常用的手机软件(App),大部分都是来自商业公司
  在《如何保护隐私》系列教程的第一篇,俺就特地强调了“商业公司”与“非盈利组织”的差异。很多人应该听说过“流量变现”,同样的道理,用户数据也可以变现。作为商业公司,“收集用户数据”自然成为他们的一大癖好。

  7. 用户群很大的那几个 App,都很流氓
  这个道理,俺也聊过多次了。像“微信/支付宝/百度/京东”这些 App,装机量都是以【亿】计。这么大的安装量,朝廷的有关部门,难道会不动心吗?假如有关部门找到这几家公司的老板,要他们稍微配合一下,在 app 里面玩点猫腻,像菊花疼、马淫、李阉红、刘强奸这些老板,他们有胆量拒绝朝廷提的要求吗?答案显然是【否定】滴!
  因此,国内装机量特别大的 app,不耍流氓几乎不可能!
  还有一个比较讽刺的是——所有这些公司(不管是老板还是公关部门),都会信誓旦旦地说:从来不耍流氓。但是大伙儿别忘了——这是在天朝,这是一个“诚信还不如狗屎”的国度。诸如此类的诅咒发誓,你当笑话听听就行啦,切莫当真。

◇结论

  由于手机存在如此多的风险点。所以——
1. 要【完全禁止】手机参与操作敏感的网络身份
2. 如果某个网络服务只提供手机 App,而不提供“Web 界面”或“桌面客户端”,那么你就应该【弃用】这个网络服务
3. 你在操作敏感的网络身份时,最好把手机放到别处(别忘了手机上的流氓软件有可能偷偷对你进行拍照/摄像哦)

★对几个【反面案例】的分析

  为了进一步加深大伙儿的印象,俺给大伙儿准备了几个反面教材。

◇案例1:Freedom Hosting 挂马事件

  Freedom Hosting 是暗网上提供托管服务的平台。其站长被 FBI 抓了之后,FBI 接管了网站服务器,然后在页面中嵌入了某个恶意脚本。这个恶意脚本可以利用 Firefox 17.0 ESR 版本的某个漏洞。
  当年的 Tor Browser 用的就是这个 ESR 版本的 Firefox。因此,当某个 Tor Browser 用户访问了这个挂马的页面,该脚本就会利用 Firefox 17.0 的安全漏洞,然后【绕过代理】,直接向某个 FBI 控制的服务器发送 HTTP 请求。
  由于是【绕过代理】进行直连,所以 FBI 只要检查该服务器收到的 HTTP 请求,就可以知道这些 Tor Browser 用户的【真实】公网 IP。

  有些同学以为俺说这个案例,是想谈“修补漏洞”。可惜不是!因为任何浏览器都无法保证零漏洞,所以光靠修补浏览器漏洞来对付这类威胁,不够保险。
  更保险的做法是【系统级网络隔离】。如果上述这些 Tor 用户看过俺的教程,懂得用【虚拟机隔离】来隐匿公网 IP,那 FBI 的招数就失灵了——因为在隔离的虚拟机中,恶意脚本【对外直连】的 HTTP 请求会【失败】(发不出去)。
  所以,这个案例的教训是——你要杜绝所有【不经代理】的网络直连行为。为了做到这点,要把所有敏感的上网行为都要隔离在【虚拟机】中,以确保【所有】流量都经过你设定的“网关 VM”。

◇案例2:顶级黑客 Jeremy Hammond 被捕

  此人是大名鼎鼎的 LulzSec 骨干成员,网名 yohoho。从其辉煌战绩可以看出,他显然是技术高手。而且他也一向谨慎,LulzSec 的其他成员并不知道他的真身。
  后来,LulzSec 的某个成员(网名 Sabu)被 FBI 逮捕,并转为卧底。所以 FBI 拿到了 yohoho 与 Sabu 之间的所有聊天记录。
  在与 Sabu 聊天时,yohoho 无意间提到自己参加了对“共和党全国代表大会”的抗议示威,并被警方拘留。这个信息量已经足够高,足以把范围缩到很小。警方开始怀疑 Hammond,并监控他家的网络流量。观察多日后发现:他家 Tor 流量出现的时间段,与 yohoho 上线的时间点高度吻合。
  于是 FBI 申请了“强行搜查令”,破门而入……

  此案例的第1个教训是——不要暴露【信息量太高】的真实个人信息。
  此案例的第2个教训是——Tor 前面再放个【加密】前置代理(这招俺唠叨了很多年啦)。如果 Hammond 遵守这个原则。那么,FBI 监控他家的流量,就无法判断他是否在使用 Tor(因为 Tor 流量被包裹在前置代理的加密流量之内)。

俺博客上,和本文相关的帖子(需翻墙)
如何保护隐私》(系列)
如何防止黑客入侵》(系列)
如何隐藏你的踪迹,避免跨省追捕》(系列)
扫盲操作系统虚拟机》(系列)
为什么桌面系统装 Linux 可以做到更好的安全性(相比 Windows & macOS 而言)
吐槽一下 Windows 的安全漏洞——严重性超乎想象
扫盲 Linux:新手如何搞定 Linux 操作系统
扫盲 Linux:如何选择发行版
扫盲 Tails——专门强化隐匿性的 Linux 发行版
文件加密的扫盲介绍
扫盲文件完整性校验——关于散列值和数字签名
TrueCrypt 使用经验》(系列)
扫盲 VeraCrypt——跨平台的 TrueCrypt 替代品
扫盲 dm-crypt——多功能 Linux 磁盘加密工具(兼容 TrueCrypt & VeraCrypt)
“如何翻墙”系列:扫盲 Tor Browser 7.5——关于 meek 插件的配置、优化、原理
扫盲 Arm——Tor 的界面前端(替代已死亡的 Vidalia)
“如何翻墙”系列:关于 Tor 的常见问题解答
“如何翻墙”系列:简单扫盲 I2P 的使用

开博十周年庆,博文分类汇总

  每年一次的“周年庆”又到啦!
  由于这次是【十周年】,有些读者建议俺搞得隆重一点。所以前几天特意发了篇《开博十周年大事记》,作为纪念。
  根据历年来的惯例,“周年庆”当天要发一篇【博文汇总】——把历史上的博文按照分类罗列出来,方便新来的读者了解旧博文。

★对【新读者】的几项说明

  在切入正题之前,先插播几条说明——主要是说给【新读者】听。

◇俺【无法】处理每一个“读者评论”和“读者来信”

  在2013年或更早,俺基本上可以做到——处理【每一条】读者评论。
  但如今的评论数【实在太多】,已经【无法】做到逐一回复了。
  至于邮件,就处理得更少了——因为评论可以被大伙儿看到,所以俺优先回复评论。如果你有【重要且紧急】的邮件发给俺,建议你在发邮件之后,再到俺博客最新的一篇博文中,用【留言的方式】提醒一下。
  在这里给大伙儿道个歉——俺的时间实在有限,列位看官请多包涵。

◇对读者评论,俺回复的频度会比较【随机】

  首先,俺如果比较忙,回复读者评论的频度自然会降低。
  其次,为了降低安全风险,俺采用尽可能【随机】的方式回复评论。以免朝廷的走狗摸清俺在线活动的规律。

◇本博客提供【离线浏览】和【邮件订阅】

  这两个功能主要面向那些【不】善于翻墙的读者。具体的使用请参见——博客界面的右侧栏。
  对于“离线浏览”
  俺提供了【电子书打包脚本】,可以把离线浏览的内容打包成一个电子书(epub 或 chm)。这样就可以在手机或平板上阅读俺博客的【全部内容】。
  对于“邮件订阅”
  订阅之后,会在【每篇博文】发布的次日收到一封邮件,邮件内容就是博文的正文。
  “邮件订阅”对每篇博文只会发送【一次】。因此,如果俺后来又修改了博文的内容,你就无法看到俺的修改。

========



  闲话就不多说了。
  (为了保持分类汇总的【精炼】,所以下面的汇总清单【不含】“网盘电子书更新”的博文,也不含“博客通告”的博文)。
  为了让大伙儿看起来方便,归为几个大类(思维方式、政治、翻墙、信息安全、心理学、管理、编程……)。如果你订阅俺博客的时间不长,或许有些老帖子你也会感兴趣滴。

★学习方法和思维能力

如何完善自己的知识结构
学习技术的三部曲:WHAT、HOW、WHY
用提问来促进思维——兼谈【非】技术领域的 WHAT HOW WHY 三部曲
聊聊【折腾】的重要性

批判性思维扫盲:学会区分“事实”与“观点”
谈谈逻辑谬误——以五毛言论为反面教材

聊聊洗脑和脑残——分析“脑残的起源”和“脑残的觉醒”
比“欺骗”更有效的洗脑——基于【双重思想】的思维控制
比“欺骗”更狡猾的洗脑——基于【真实数据】进行忽悠

各种【一元化思维】的谬误——从“星座理论”到“共产主义社会”
思维的误区:幸存者偏见——顺便推荐巴菲特最著名的演讲
思维的误区:忽视沉默的大多数

读书笔记:《反脆弱——从不确定性中获益》
聊聊【单点故障】——关于“德国空难”和“李光耀”的随想

《如何阅读一本书》——书评及内容纲要
书评:《学会提问——批判性思维指南》
书评:《你的灯亮着吗?——找到问题的真正所在》

如何挖掘网络资源(系列,已写3篇)

聊聊【阴谋论】流行的原因及其弊端
“片面强调 PX 低毒”属于【偷换概念】——茂名 PX 抗议活动随想
学会透过现象看本质,即使现象有时候挺诡异

★心理学

为啥俺要写这个博客——动机的自我分析

不要成为“粉丝”——谈谈“偶像崇拜”的成因和危害
思维的误区:从“沉没成本谬误”到“损失厌恶情结”

天朝民众的心理分析:圣君情结
天朝民众的心理分析:斯德哥尔摩综合症
朝廷为何落入“塔西佗陷阱”——天津火灾随想

为啥俺很少看视频?——兼谈“视频”与“文本”在认知心理学方面的差异
为啥俺不常用微博——兼谈时间管理心得

书评:《少有人走的路——心智成熟的旅程》
“心智模式”系列:认识你自己——心智模式扫盲介绍
“心智模式”系列:你是如何看待成败的?——兼谈有效归因
“心智模式”系列:如何面对【逆境】?——兼谈“斯托克代尔悖论”

光环效应引发的认知误区
关于社会认同和从众心理——从连环校园凶杀及连环跳楼说起
说说世界杯的球迷——关于粉丝的心理

★政治

◇政治 / 常识

为什么马克思是错的?——全面批判马列主义的知名著作导读
每周转载:关于辩证法(网文3篇)

谈革命(系列,已写9篇)
政治常识扫盲:理清“国家、政体、公民、政府、政党”等概念
扫盲常见的政治体制
聊聊天朝的政治体制

政治常识扫盲:澄清“言论自由”的各种误区
对政府——多些“监督问责”,少些“煽情感动”

谈谈【体制化】,并推荐《肖申克的救赎》
两个寓言折射天朝政治现状
每周转载:耶鲁教授关于【政治素质】的20条建议(俺的翻译及点评)

◇政治 / 真理部

如何用互联网进行“反洗脑”和“政治启蒙”——分享若干个人经验
各种迹象显示——党国喉舌正逐渐失去舆论阵地
分析爱国主义忽悠的常见类型——顺便戳穿几个流传很广的谣言

看看真理部是如何 PS 照片的
五毛言论点评——“每个国家都有审查制度”

看看真理部对利比亚革命的忽悠
关于本拉登的几个误区
党国应对灾难的标准操作流程——以上海大火为例
关于抹黑 Google——谈谈党国对舆论的操纵手法
党和互联网的较量

每周转载:真理部开始对娱乐圈下手——大批自媒体被封号(相关报道及网友评论)
每周转载:尴尬的2017年春晚(各种网友吐槽)
每周转载:不一样的猴年春晚(分享大量网友评论)
每周转载:党国红人周小平惨遭围观——网友称:请不要辜负这个傻逼
每周转载:关于“Gmail 彻底被墙”的网友评论
每周转载:网友热议《没有了祖国,你就什么都不是》
每周转载:关于学雷锋(网文4篇,评论若干)
每周转载:关于真理部的几篇旧文(网文5篇)
每周转载:关于天朝的网络实名制(网文5篇,评论若干)
每周转载:关于朝廷对爱国主义的忽悠(网文5篇)
每周转载:关于香港抗议洗脑教育(网文3篇,图片多张)
每周转载:关于保钓引发的狭隘民族主义(网文5篇)
每周转载:看看当年的共产党是如何唱高调的(网文4篇)

◇政治 / 权贵

点评中国社会九大阶层——没有公平、难以流动、无法稳定
相当奇葩的天朝,【劫贫济富】的国度
若政治制度不公平,则经济改革无意义——谈谈天朝这个大赌场

看看全国人大代表都是些什么货色——兼谈“议会道路的改良”行不通
聊聊“赵家人”走红网络的重要意义

王健林及万达集团背后的朝廷权贵家族(习、胡、温、贾、王)
中国电婊李小琳的精彩人生(多图)

习包子露馅——习近平在内的权贵家族如何转移巨额海外资产
每周转载:巴拿马文件曝光天朝权贵(大量网友评论)
每周转载:网友热议天朝权贵集团的“离岸”

每周转载:郭文贵撕逼王岐山——网友热议“海航、高空寻欢、习王斗”(多图)

热烈庆贺“太子党关系网络”开源项目率先获得朝廷认证
曝光天朝权贵家族——新鲜出炉的《太子党关系网络》(2018年更新)
《太子党关系网络》开源到 GitHub——大伙儿一起来曝光赵国权贵(2016年更新)
曝光天朝权贵——《太子党关系网络》2.2版本发布(2015年更新)
曝光天朝权贵——《太子党关系网络》2.0版本发布(2013年更新)
曝光天朝权贵——《太子党关系网络》1.0版本发布(2011年更新)
关于《太子党关系网络》的常见问题解答

每周转载:关于权贵资本主义(网文5篇)
每周转载:关于天朝的政治改革(网文4篇)
每周转载:关于天朝富豪的移民现象(网文5篇)
每周转载:关于十八大之后的天朝政局(网文3篇)

◇政治 / 共产运动

人类自由的三大死敌——谈谈“共产运动、纳粹主义、政教合一”的共性

面对共产党——民国人文大师的众生相
影评:《苏维埃往事》——帮你看清苏联和纳粹的共同本质
金氏王朝的崛起——聊聊金日成的历次大清洗
最“纯正”的共产主义政权——红色高棉简史

◇政治 / 腐败

分析“制度性腐败”——为啥天朝的贪官屡禁不止?
八卦一下周永康那些破事儿——他的家族、朋党、生意、情妇(多图)

每周转载:关于《编译局言情录》的电子书、网文、网友评论
每周转载:米兔运动(MeToo)冲击佛门,佛协会长竟是淫僧(举报材料及网友评论)
每周转载:网友热议近期多名贪官落马

◇政治 / 法制

聊聊美国政体中的权力制衡——不仅仅是三权分立
美国选举制度为啥这样设计?——兼谈其历史演变
中美政府信息监控的差异——“棱镜门”丑闻随想

被判“谋反罪”的都是哪些人?——“危害国家安全罪”出笼20年随想
每周转载:关于“浦志强庭审”的各方报道和网友评论
每周转载:710事件——全国性维权律师大抓捕(外媒报道及网友评论)

关于2018年修宪的随想
每周转载:两会、修宪、终身制、翻白眼、大外宣(各方报道和网友评论,多图)

每周转载:聂树斌冤案、死刑犯器官移植(相关报道及网友评论)
每周转载:雷洋案第1季——人大校友离奇死亡引大量网友围观
每周转载:雷洋案第2季——北京检方“不起诉”引发轩然大波
每周转载:辽宁交警执法,司机死在派出所,地方衙门称其“身体发生异样”
每周转载:大量网友围观庆安命案,并质疑 CCAV 视频(多图)
每周转载:网民围观长沙警方,区伯收到艳照要挟
每周转载:关于区伯“被嫖娼”事件的相关报道和网友评论
每周转载:网友热议“寻衅滋事”和“泄漏国家机密”的罪名
每周转载:汇总未成年人被性侵被嫖宿的案件(38起,附图)
每周转载:关于“马三家”和劳教制度(网文若干、图片若干)

◇政治 / 八卦

八卦一下天朝党政军的情报机构
如何解读朝廷要员的盖棺定论?

每周转载:习呆呆上台五周年,糗事一箩筐(图片及网友评论)
八卦一下伟光正的十九大
八卦一下“十九大”高层权斗:王岐山高调现身,孙政才黯然落马,栗战书惹上麻烦

每周转载:近期朝廷高层乱象,凸显权力斗争加剧
党国喉舌反遭多次封杀,朝廷高层权斗日渐激烈

呼之欲出的大老虎——与之相比,徐才厚和令计划都不算啥
为啥周永康案还不公布?另八卦一下后续大老虎的热门人选
八卦一下王立军事件的官方报道和小道消息
八卦一下薄熙来去职的官方报道和小道消息
八卦一下薄熙来被立案调查的官方报道和小道消息
八卦一下王立军的官方定性
八卦一下薄熙来的净身出户——好戏还没完
八卦一下薄熙来的初审——澄清某些误读和忽悠
每周转载:网友热议薄熙来被双开

◇政治 / 其它

书评:《中国人的性格》
每周转载:关于天朝的文化和民族的劣根性

厉害国真的很厉害吗?——给小粉红们泼点冷水
我们还能指望什么?——钱云会事件有感
汇总最近几年天朝的雷人语录(此文会不定期更新)
聊聊政客的人品

书评:《一九八四》——反乌托邦的代表作
影评:《V 怪客 / V 字仇杀队》

★历史

回顾六四(系列,已写32篇)
每周转载:六四事件23周年纪念(网文4篇)

谈谈三年大饥荒(系列,已写3篇)
每周转载:关于三年大饥荒(网文3篇)

谈谈真理部对朝鲜战争的忽悠
关于抗日战争——谈谈真理部对历史的篡改
谁是最可恨的人——写给仇日愤青们

中国是从哪个朝代开始落后于西方?

处在历史转折点的小人物们——回首80年代的几则往事
台湾民主运动和独立运动简史

伊斯兰教为何如此奇葩?——关于“巴黎连环恐怖袭击”的随想
伊斯兰教极端主义溯源——“《查理画报》惨案”和“尼日利亚大屠杀”随想
每周转载:伊朗迷你裙的变迁(值得某些毛粉反思一下)

聊聊二战中的日本——分析各方面的优势劣势
二战中日本是如何崩溃的?——兼谈中国战区的作用被夸大

那些对抗诺贝尔奖的政权——和平奖颁奖致辞有感

★外交

苏联是如何被慢慢勒死的?——聊聊冷战中美国的遏制战略
从量变到质变——中美关系40年
每周转载:盘点一下贸易战爆发后的【中美对抗】(2018年4季度)

如何解读金三胖在近期的外交动作
聊聊朝鲜半岛核问题——北朝鲜博弈策略分析
聊聊朝鲜半岛核问题——美国博弈策略分析

每周转载:朝鲜试爆氢弹(各方的报道及评论)
每周转载:朝鲜准备核爆,南韩部署萨徳,中国抵制乐天(大量网友评论)
每周转载:金正男遇刺(汇总各方报道及照片)

扫盲《联合国海洋法公约》——帮你更好地解读“中菲南海仲裁案”
澄清关于南海纠纷的常见误解

★翻墙姿势

如何翻墙——写在 BlogSpot 被封之后(本文定期更新)
“如何翻墙”系列:获取翻墙软件方法大全

学习一下德国人民的翻墙精神

“如何翻墙”系列:扫盲 Tor Browser 7.5——关于 meek 插件的配置、优化、原理
“如何翻墙”系列:TOR 已复活——meek 流量混淆插件的安装、优化、原理
“如何翻墙”系列:关于 TOR 的常见问题解答
扫盲 Arm——Tor 的界面前端(替代已死亡的 Vidalia)

“如何翻墙”系列:Lantern(蓝灯)——开源且跨平台的翻墙代理
“如何翻墙”系列:扫盲 VPN Gate——分布式的 VPN 服务器
“如何翻墙”系列:简单扫盲 I2P 的使用
“如何翻墙”系列:自由門——TOR 被封之后的另一个选择
“如何翻墙”系列:双管齐下的赛风3
“如何翻墙”系列:新版本无界——赛风3失效后的另一选择
“如何翻墙”系列:扫盲 VPN 翻墙——以 Hotspot Shield 为例
聊聊 GFW 如何封杀 Resilio Sync(BTSync)?以及如何【免翻墙】继续使用?
“如何翻墙”系列:fqrouter——安卓系统翻墙利器(免 ROOT)
“如何翻墙”系列:基于 Skype 翻墙

扫盲 DNS 原理,兼谈“域名劫持”和“域名欺骗/域名污染”
对比4种强化域名安全的协议——DNSSEC,DNSCrypt,DNS over TLS,DNS over HTTPS

多台电脑如何共享翻墙通道
如何用 Privoxy 辅助翻墙?
用图片传播翻墙软件

2017年10月翻墙快报(兼谈用 I2P 突破封锁)
2015年8月翻墙快报
2015年2月翻墙快报
2015年1月翻墙快报
2014年5月翻墙快报(继续补充 VPN Gate 经验)
2013年7月翻墙快报(补充介绍 VPN Gate 经验)
2013年1月翻墙快报
2012年11月翻墙快报(用I2P突破18大期间的封锁)
2012年9月翻墙快报(兼谈复活TOR的方法)
2012年7月翻墙快报
2012年4月翻墙快报
2012年2月翻墙快报

每周转载:关于 GitHub 和 GFW 的 PK(第2季)
每周转载:关于 GitHub 和 GFW 的 PK
面对墙,我们所能做的就是——让 GFW 陷入到人民战争的汪洋大海

★信息安全

“对抗专制、捍卫自由”的 N 种技术力量
每周转载:关于黑客文化和黑客精神
每周转载:EFF 创始人约翰·佩里·巴洛和他的《赛博空间独立宣言》
每周转载:天朝【御用骇客】是如何暴露的?

如何隐藏你的踪迹,避免跨省追捕(系列,已写10篇)
如何防止黑客入侵(系列,已写8篇)
如何保护隐私(系列,已写10篇)
信息安全之社会工程学(系列,已写5篇)
如何对付公司的监控(系列,已写3篇)

如何对付公安部门的“网络临侦”?——“黑暗幽灵(DCM)木马”之随想
勒索软件是骇客攻击的新趋势,兼谈防范措施及各种误解

扫盲文件完整性校验——关于散列值和数字签名

文件加密的扫盲介绍
用图片隐藏信息的技术实现

文件备份技巧:组合“虚拟加密盘”和“网盘”

扫盲 VeraCrypt——跨平台的 TrueCrypt 替代品
扫盲 dm-crypt——多功能 Linux 磁盘加密工具(兼容 TrueCrypt & VeraCrypt)
TrueCrypt——文件加密的法宝
TrueCrypt 使用经验(系列,已写4篇)
分析一下 TrueCrypt 之死(自杀 or 他杀?)——兼谈应对措施

为什么桌面系统装 Linux 可以做到更好的安全性(相比 Windows & macOS 而言)
吐槽一下 Windows 的安全漏洞——严重性超乎想象
扫盲 Tails——专门强化隐匿性的 Linux 发行版

弃用 Chrome 改用 Firefox 的几点理由——关于 Chrome 69 隐私丑闻的随想
基于安全性考虑,如何选择及切换 Firefox 版本?

扫盲 HTTPS 和 SSL/TLS 协议(系列,已写4篇)
数字证书及 CA 的扫盲介绍
CNNIC 证书的危害及清除方法

Startpage——保护隐私的搜索引擎,搜索质量等同 Google
使用 GitHub 的几种方式——兼谈安全性和隐匿性的经验

对 OpenSSL 高危漏洞 Heartbleed 的感慨、分析和建议
CSDN 及人人网的用户密码分析

★软件介绍

关于翻墙软件的介绍,归入“翻墙类”,不放在这一章节;和“信息安全”相关的软件,归入“信息安全”类,也不放这里

扫盲 BTSync(Resilio Sync)——不仅是同步利器,而且是【分布式】网盘

扫盲操作系统虚拟机(系列,已写7篇)

扫盲 Linux:新手如何搞定 Linux 操作系统
扫盲 Linux:如何选择发行版

如何用 ISO 镜像制作 USB 安装盘(通用方法、无需 WinPE)
如何用【内置硬盘】全新安装 Windows 2000/XP/2003/Vista/2008/7/8(无需光驱和 USB)

Windows XP 大限已至——要不要换系统?如何换?
Google Reader 的替代品,哪个比较靠谱?

无需任何插件或扩展,定制 Firefox 外观
如何用 GreaseMonkey 扩展 Google Reader

磨刀不误砍柴功——聊聊个人 IT 基础设施的完善

★经济

股市点评:为啥大多数散户必定亏钱?——心理学层面的分析
股市点评:一头伪装成“改革牛”的“杠杆牛”

为啥急功近利反而赚不到钱——给拜金主义者的忠告
回顾历史上的加州淘金热——给比特币矿工的忠告

每周转载:汇市的三个咒符(人民币汇率、官方外汇储备、中国持有的美国国债)
每周转载:2018年这轮股灾到底有多惨,看了你就知道了

每周转载:经济新常态,“中国模式”开始褪色——汇总2015年各行业萧条的报道
每周转载:天朝近期的宏观经济形势很不妙(国内外各方报道)

每周转载:关于天朝近期的股灾(外媒报道及大量网友评论)
每周转载:关于银行“钱荒”、地方债和理财产品
每周转载:帮你分析天朝的房地产市场
每周转载:关于天朝近期的宏观经济数据
每周转载:关于社保和养老(网文6篇)
解读《郎咸平10月22日在沈阳的演讲》

★企业管理和职场经验

什么是【真正的】兴趣爱好?以及它有啥好处?
成功学批判——简述其危害性及各种谬误
每周转载:关于人生(网文3篇)

每周转载:德鲁克谈【自我管理】——《哈佛商业评论》史上最受欢迎的文章
二八原理在管理中的应用(系列,已写3篇)

硅谷 CEO 们的教父——分享安迪·格鲁夫的管理经验
俺的招聘经验(系列,已写5篇)
招聘的误区

如何成为优秀开发人员(系列,已写7篇)
跳还是不跳,是一个问题——跳槽时该如何权衡?
闲话个人品牌的包装——从李开复离职联想到的
如何包装个人品牌?
唐骏的问题,仅仅是虚荣心那么简单吗?

★环境保护

谈谈环保问题的根源和解决之道
从几个不同的角度聊聊“雾霾的危害”

每周转载:连云港民众抗议核废料处理厂(相关报道及网友评论)
每周转载:上海金山区反 PX 环保抗议活动(大量图片)
每周转载:广东茂名反 PX 环保抗议活动(照片及网友评论)
每周转载:关于毒大米和土壤污染
每周转载:关于宁波镇海的环保抗议(评论若干,照片多张)
每周转载:关于启东的环保抗议(照片多张、视频若干)
会叫的孩子有奶吃——启东人民在行动,上海人民怎么办?
每周转载:关于什邡的环保抗议(网文3篇、照片若干、视频若干)

★科普

科学是什么?——兼谈“非科学、伪科学、反科学”和一些常见谬误
扫盲非洲猪瘟,点评中国疫情
聊聊不同学科中的坑爹翻译

★教育

聊聊麻省理工学院(MIT)的恶作剧文化——阿里巴巴月饼事件随想
每周转载:高考背后的“公平问题、人口问题、腐败问题”(网文3篇)

★时事点评

◇时事点评 / 原创博文

十九大闭幕一个月,点评天朝的几条热点新闻
看看天朝官僚系统多么低效和无能——天津大爆炸随想

你意想不到的恐怖主义帮手——昆明暴力袭击事件随想
点评“台湾服贸问题”和“太阳花学运”
三中全会解读:名为改革,实为集权,天朝或重回个人独裁

闲聊中美文化差异——9·11十周年随想
2016年美国大选的选情分析

行动起来,为了自由和开放的互联网
国际电信世界大会以失败告终——互联网躲过一劫

方校长和方校长
普天同庆金二胖归西

天朝的人命不值钱——动车追尾事故有感
7·23动车追尾事件一周回顾

让拆尼斯的茉莉花绽放
中国茉莉花革命——227集会多图回顾
参加茉莉花集会的注意事项

◇时事点评 / 每周转载

每周转载:携程托儿所虐童事件(各方评论及照片、视频)
每周转载:刘晓波病危,举世关注,各方声援(大量网友评论)
每周转载:魏则西事件、百度广告、莆田系、军队医院(各方报道及网友评论)

每周转载:疫苗之殇,万民遭殃(大量网友评论)
每周转载:关于“全国性疫苗丑闻”的引申阅读(网文5篇)
每周转载:震惊全国的山东疫苗事件(各方报道及网友评论)

每周转载:关于土耳其击落俄罗斯战机(相关照片及网友评论)
每周转载:关于“全面放开二孩”和“奇葩的计生政策”(各方报道及网友评论)
每周转载:关于习呆呆的93大阅兵(各方报道及网友评论)
每周转载:关于“东方之星”沉船事故(外媒报道及大量网友评论)
每周转载:缅甸军机多次越境并炸死多名中国公民(大量网友热议)
每周转载:天朝科研的奇葩——透明计算,相关报道和网友评论
每周转载:上海外滩踩踏事件,相关报道和网友评论
每周转载:关于“俄罗斯卢布崩盘”的媒体报道和网友评论
每周转载:香港雨伞革命的外媒报道和【大量】照片(11-19至12-2)
每周转载:香港占中民主运动的外媒报道和【大量】照片(9-29至10-2)
每周转载:香港占中民主运动的外媒报道和【大量】照片(9-22至9-28)
每周转载:关于苏格兰独立公投的网友评论
每周转载:关于香港和澳门的特首选举(外媒报道和网友评论)
每周转载:关于“一国两制白皮书”和“国台办言论”(大量网友评论和图片)
每周转载:“六四事件”25周年纪念(【大量】照片和网友评论)
每周转载:关于新疆“民族、宗教、恐怖主义”问题的报道和分析(网文8篇)
每周转载:最近半个月的15起大规模罢工/维权事件(上百张照片)
每周转载:幼儿园集体服药事件和相关抗议活动(网文若干,照片多张)

每周转载:网友热议北朝鲜张成泽倒台
每周转载:汇总中石化输油管爆炸事故(图片若干、评论若干)
每周转载:关于三中全会(网文5篇,评论若干)
每周转载:关于埃及近期的政局
每周转载:关于“棱镜门”丑闻的相关报道
每周转载:关于朝廷近期舆论和习近平的嘴脸
每周转载:关于京温女孩袁利亚之死(许多评论和照片)
每周转载:关于朱令铊中毒案(网文5篇)
每周转载:关于雅安地震的种种乱象(大量网友评论和图片)
每周转载:关于禽流感的网友评论
每周转载:关于朝鲜核试验(网文7篇,评论若干)
每周转载:关于权力和笼子(网文5篇)
每周转载:关于《南方周末》事件(网文5篇,照片若干,评论若干)

每周转载:关于莫言的争议(网文4篇)
每周转载:关于西藏日益频繁的自焚事件(网文5篇)
每周转载:“伟光正”的十八大(评论若干,照片多张)
每周转载:网友热议莫言获诺贝尔文学奖
每周转载:关于哈尔滨桥梁垮塌事故(网文3篇,微博若干)
每周转载:关于中国体育的举国体制(网文4篇)

每周转载:全国各地的水灾以及背后的人祸(多图)
每周转载:汇总北京7-21暴雨的照片和评论

回顾2011年重大群体事件(多图)

看看网友如何评论刘晓波得诺贝尔和平奖

★编程

近几年,编程类博文已经写得比较少了——精力都放在“政治”、“翻墙”、“心理学”、“历史”。普及这些领域的知识比普及编程更重要,受益的人更多。

每周转载:IT 大牛谈编程语言(网文3篇)

架构设计:生产者 / 消费者模式(系列,已写4篇)
架构设计:进程还是线程?是一个问题!

C++ 的可移植性和跨平台开发(系列,已写6篇)
C++ 对象是怎么死的?(系列,已写4篇)
书评:《C++ 101编程规范》
C++ 多线程调试和测试的注意事项
C/C++ 中一个简单的 enum 手法(idiom)

Java 新手的通病(系列,已写5篇)
Java 性能优化(系列,已写4篇)
Java 新手进阶,细说引用类型

为什么俺推荐 Python?(系列,已写5篇)

有关封装和信息隐藏的误区
再举几个动态语言 eval 手法的例子
求质数算法的 N 种境界(系列,已写1篇)

聊聊分布式散列表(DHT)的原理——以 Kademlia(Kad) 和 Chord 为例

★开源项目

GitHub 通告:整理了一个 C 和 C++ 开源库的清单(含示例代码)

如何选择开源项目
开源点评:ZeroMQ 简介
开源点评:Protocol Buffers 介绍
开源点评:Sqlite 数据库扫盲
开源实践:Sqlite 的使用场景
开源点评:cURL——优秀的应用层网络协议库
开源点评:源代码版本控制系统介绍
开源项目:【自动】绘图工具 Graphviz——《太子党关系网络》就是用它制作

★软件工程

软件工程进阶之每日构建(系列,已写5篇)
如何开展灰盒测试(系列,已写4篇)
二八原理在软件开发中的应用
书评:《人月神话》

★IT 业界八卦

聊聊大伙儿(包括某些职业围棋手)对 AlphaGo 的误解
每周转载:AlphaGo 超快棋遍虐人类高手(职业棋手讲解及大量网友评论)
每周转载:关于人工智能对人类的影响(网文3篇)

老流氓 CNNIC 的接班人——聊聊“沃通/WoSign”的那些破事儿
CNNIC 干过的那些破事儿

“传统博客”过时了吗?——兼谈各种媒介形态的优缺点
每周转载:Google Reader 之死
Google Reader 之死——原因分析、应对措施、教训

Google 收购摩托罗拉移动,仅仅是为了专利吗?
高处不胜寒的苹果
Oracle 收购 SUN,会有啥影响?
微软需要 Twitter 来对抗 Google
从 Twitter 的突发新闻报道看草根记者的崛起

开博十周年大事记

  最近的两篇博文都超长(尤其那篇《反脆弱》的读书笔记有3~4万字数,是本博有屎以来最长滴),写这两篇把俺累坏了。今天来一篇轻松点的。
  话说还有不到一星期,就是本博客的【十周年庆】。有些读者建议俺要有所表示,所以今天汇总一下这十年来值得纪念的事情,让列位看官(尤其是新读者)了解一下:俺能坚持到现在,也不容易啊!!!

★2009年1月15日,第一篇博文——《博客开张及本博客内容简介》

  那天俺发了本博客【第一篇】博文(链接在“这里”),所以每年的1月15日是“开博纪念日”。

  在第一篇博文中,已经简单说了为啥会在2009年初开博客。几年之后(2013),针对某读者的提问,又专门写了篇博文,从心理学层面谈自己的动机:
为啥俺要写这个博客——动机的自我分析

★2009年2月初,开始启用【CSDN】上的博客镜像

  说起 CSDN,这是国内最有名的程序员网站。而且俺在“开博第一篇”中也说了——当初开这个博客只是为了分享编程经验。所以俺在注册 Blogger 帐号时,也顺手注册了 CSDN 帐号。但是俺一开始并【没有】启用 CSDN 帐号,只是把这个帐号作为某种备份。
  那年2月初的某天,俺收到 CSDN 社区某个知名博主的邮件。他无意间看到俺的博客,觉得不错,就主动来信联系。后来两人(在邮件中)相谈甚欢。他建议俺在 CSDN 搞个“镜像博客”,理由包括:
其一,Blogger 长期 GFW 被封锁,只是因为北京奥运才在2008年解封,以后说不定再度被墙。在 CSDN 上搞个镜像博客,以防万一。
其二,如果俺在 CSDN 上有个镜像博客,他可以向 CSDN 的编辑推荐俺博客,让俺获得【首页推荐】。
  能获得 CSDN 的首页推荐,当然很荣幸。所以俺就听从他的建议,在 CSDN 上开了一个镜像博客。

  今天借这篇《十周年大事记》,表达一下对他的感谢。
  (注:暂时不提他的真名。毕竟俺现在是【朝廷的敌人】,尽量避免给他招来麻烦)

★2009年2月9日,第一次获 CSDN 首页推荐

  话说这位博主果然很有面子——才过了没几天(2月9日),俺博客就获得 CSDN 网站的首页推荐。
  为啥俺记得这个日子捏?因为那天俺发了一条推文,以示留念(链接在“这里”)。
  另,这条也是俺推特(twitter)帐号的【第一推】。

  聊到这里,顺便提一个【重要的】小插曲:
  话说国内有一本《程序员》杂志(在软件开发社区蛮有名滴),也是 CSDN 网站主办滴。那段时间,俺发的技术博文经常上 CSDN 的首页推荐,《程序员》的主编通过邮件向俺约稿。后来《程序员》杂志的某一期发了那篇《架构设计:生产者/消费者模式》。
  为啥说这是个【重要的】小插曲捏?因为在杂志上发了文章,自然就涉及到【稿费】,然后就涉及到【银行转账】,于是就涉及到【真实身份】。
  如果俺当年拿了那笔稿费,银行系统就会有转账记录,“有关部门”将来如果想查,查到俺的真实身份简直易如反掌。最近这些年,俺能够长期抹黑党国,恶毒攻击党和国家领导人,正是因为——当年【没】领那笔稿费 🙂
  反过来【假设】一下:如果当年俺领了那笔稿费,当然就有顾忌,自然不会再写敏感的政治博文,那么这个博客就会是另外一种完全不同的样子(甚至俺的人生也会是另外一种样子)。

  可能有些同学会问——那时候还【没】开始写政治内容,为啥如此小心?
  还有另一个多次被问到的问题是——既然刚开始只是想写编程方面的博客(所以才叫“编程随想”),为啥要保持匿名?
  这两个问题可以归结为一个答案,那就是——【职业习惯】(在信息安全的圈子混了这么多年,俺养成了一些好习惯)

★2009年5月16日,Blogger/Blogspot 全站被墙,开始写【翻墙教程】

  前面提到:Blogger 在那之前很多年就是被墙的。到了2008年,因为要开奥运会,届时会有很多老外来天朝,为了照顾朝廷的面子,暂时【解封】了一大批国外网站,其中也包括 Blogger/Blogspot。
  但是到了2009年5月中旬,Blogger/Blogspot 又重新被封杀了,而且是【全站】屏蔽哦(在俺的印象中,当时 GFW 用的是“域名污染”)。那些翻墙经验丰富的网民,一看“5月中旬”这个时间点,马上就猜到——因为临近“六四”了。
  这个事情直接促使俺开始写【翻墙教程】,第一篇的标题就叫《如何翻墙?——写在 BlogSpot 被封之后》,是一篇比较系统性的扫盲教程。在这篇教程发出后很长一段时间(好几年),用 Google 搜索“翻墙”二字,搜索结果的第一页都能看到俺这篇教程。有段时间,这篇博文甚至能排到【第一页的前三名】。
  所以那几年里,有相当一部分读者是因为要找翻墙工具,无意中来到俺的博客,之后就成了长期读者。

★2009年5月25日,开始启用【Live Spaces】上的镜像博客

  估计年轻的网民可能都没听说过“Live Spaces”这个玩意儿——这是当年微软旗下的博客平台,而且一度是【免翻墙】滴!
  既然俺已经在 CSDN 上创建了一个镜像博客,为啥还要再搞一个捏?因为俺在 CSDN 上发布的【翻墙教程】被 CSDN 网管给删了(当然啦,考虑到天朝是个奇葩的国度,咱也不能怪 CSDN 网管)。所以,俺必须找一个【既没有被墙又能发布翻墙教程】的网站。(因为“翻墙教程”是写给【不懂】翻墙的网民看滴,如果发布教程的地方本身被墙,就没有意义啦)。
  于是俺寻寻觅觅,终于选中了微软的 Live Spaces 平台,在那上面又创建了一个【镜像博客】,以方便那些【不懂翻墙】的读者。当时申请到的域名是:program-think.spaces.live.com
  有了这个镜像,从2009年5月25日开始,每次俺发布新的博文,都会同步复制到 Live Spaces。为啥俺记得这个日子捏?因为那天正好发了一条推文(链接在“这里”)

★2009年6月11日,开始写【政治博文】

  本来俺最多也就是写写“翻墙”博文,仅此而已。毕竟“翻墙类”的文章(对网监部门而言)还只是算“擦边球”,其性质不如政治文章那么严重。
  但是那年的6月,发生了好多让人不爽的事情(那年正好“六四事件”20周年)。其它的事情也就算了,最让俺忍无可忍的是——工信部(信产部)在那年6月9日发了一个通知,打算强制推行一项“绿坝计划”(维基百科的介绍在“这里”)。通俗地说就是——强制要求在中国大陆销售的电脑统一预装政府指定的某个监控软件(绿坝)。该软件可以监控电脑的上网行为。
  就是因为这事儿,俺下定决心——开始讨论政治,开始抹黑党国。两天后(6月11日),俺发了【第一篇】政治博文《是该写点技术以外的东西了》。
  (注:由于遭到太多的反对,工信部的“绿坝计划”后来夭折啦,真是大快人心!)

★2010年1月23日,俺的【Google Code】上线(提供翻墙工具下载)

  一般来说,Google Code 是用来开发“开源软件”滴。但俺当时开通 Google Code 属于“动机不纯”——是为了“分享翻墙工具”。因为 Blogger/blogspot 博客平台本身【没有】提供“文件下载”或类似的功能,所以俺就在 Google Code 身上做文章。
  在1月23日那天,俺在 Google Code 上创建了第一个 wiki 页面(Software.wiki),上面列出了俺分享的翻墙工具。
  之后的几个月,又陆续创建了其它几个 wiki 页面,分别用来分享“电子书”和“各种网址”。
  (注:由于 Google Code 已经在 2016年被关闭,这些 wiki 页面现在已经看不到了)

★2010年8月初,俺的【微软网盘】上线(提供翻墙工具下载)

  刚才说到:俺起先是通过 Google Code 提供翻墙工具的下载。
  但是在2010年8月初的某天(具体是哪天,已经忘了),Google Code 管理员认为俺这种做法违反了 Google Code 的服务条款,把俺用来共享翻墙工具的 project 给封杀了。所以俺就转移阵地,改用微软网盘来分享各种翻墙工具。
  当初为啥选择“微软网盘”捏?主要基于如下考虑:
1、【国内】的网盘肯定不考虑(排除掉一大批)
2、【小】公司运营的网盘不考虑(又排除掉一大批)
3、剩下少数几个选项中,微软网盘(当时叫 SkyDrive)的容量最大(25GB),就选它了。

  有很多读者觉得俺应该用 Google 的网盘(GDrive)来分享文件。但恰恰是因为——当时俺已经非常依赖 Google 帐号(Gmail、Blogger、Google Code……),为了避免【单点故障】,反而应该使用一个【非】Google 的网盘。

★2010年9月27日,用“自动回复邮件”的方式分享翻墙教程

  从2009年5月开始写翻墙教程之后,俺时常收到读者来信,询问翻墙方面的问题。回复这类邮件是非常机械滴——每次都是“复制/粘贴”。
  由于俺比较懒,为了尽可能省事儿,就想了一招——利用电子邮件的【自动回信功能】。
  一开始俺注册了一个 Gmail 邮箱(help.gfw@gmail.com)用来进行自动回信,并在博客上发了一篇通告。谁曾想,大约一天之后,该邮箱就被 Google 封杀了,理由是 SPAM(垃圾邮件)。因为有太多网友向这个邮箱发信,导致该邮箱在短时间内发出太多的“自动回信”,于是 Google 的邮件系统自动判定该邮箱在发送垃圾邮件。
  但是俺没有放弃,本着“打一枪换一个地方”的精神,两天后又开通了一个雅虎邮箱(help_gfw@yahoo.com),然后再发一篇博文进行通告。这个雅虎邮箱正常工作了好多年,累计自动回复了大约十几万封邮件。
  很多年以后(具体哪一年,已经忘了),有热心读者反馈说:无法从这个雅虎邮箱获取自动回复。不过没关系,它已经完成了自己的历史使命 🙂

★2010年11月14日,位于【Live Spaces】的镜像博客废弃

  (关于“Live Spaces 平台”上的镜像博客,前面提到过)
  话说到了2010年9月,微软宣布要关闭 Live Spaces 平台(将在2011年3月下线整个网站)。为了照顾原有的博主,微软提供了自动迁移到 WordPress 的功能。所以,俺注册了 WordPress 帐号,并完成了迁移。但是俺在完成迁移之后,在 WordPress 上只留了一篇《博客迁移重要通知》。
  为啥捏?因为 WordPress 平台在那之前很多年就已经撞墙了。所以它无法像 Live Spaces 那样提供【免翻墙】的好处。
  (注:如今访问 https://programthink.wordpress.com/ 依然能看到那篇《博客迁移重要通知》)

★2011年2月24日,开始写【煽颠性质】的政治博文

  先给大伙儿扫盲一下——啥是“煽颠性质”?
  朝廷的有关部门(国保、网监)对网上的政治内容,还是会区别对待滴。如果粗略地划分,可分两大类:一类是“批评性质”,一类是“煽颠性质”。
  “煽颠”一词出自“煽动颠覆国家政权”这个罪名。这个罪名以前叫做“反革命罪”。改革开放之后,伟光正觉得“反革命罪”太难听啦,就改叫“煽动颠覆国家政权”。
  如果你写的政治文章仅仅指出政府有哪些缺点,这个属于“批评性质”;但如果你不光指出缺点,还号召大伙儿推翻政府,那就属于“煽颠性质”。
  举个例子:
  10多年前,韩寒的博客很红,老网民应该都记得。他写了很多政治方面的文章。但如果你仔细观察,会发现他【所有的】政治文章都仅仅停留在“批评性质”。韩寒很聪明,他知道如何把握分寸,绝对不会越过红线。

  (扫盲结束,言归正传)
  在2011年2月之前,俺虽然已经写了十多篇政治博文,但这些政治博文的【敏感度】还不够高,还仅仅停留在“批评性质”,还够不上“煽颠性质”。
  话说那年的2月份,发生了一个震动朝廷的事件,俗称“茉莉花集会”,也有人称为“中国茉莉花革命”(不了解此事的同学可以看维基百科的“这个链接”)
  此事让朝廷震动,主要原因包括:
其一,2010年末到2011年初,中东多个国家正好在经历【阿拉伯之春】,很多独裁政权被推翻(比如:卡扎菲)。
其二,在天朝发生的集会,同时出现在【多个】城市,而且还包括了北京和上海这两个最大的一线城市。

  而俺偏偏就挑选这个高度敏感的时期,在10天内连发4篇博文(如下)。很显然,俺这4篇博文完完全全够得上【煽颠性质】了。
让拆尼斯的茉莉花绽放》(注:“茉莉花革命”一词最早源自突尼斯,“拆尼斯”是 chinese 的谐音)
中国茉莉花革命——227集会多图回顾
热烈迎接茉莉花革命的第三轮散步
参加茉莉花集会的注意事项

  从那时候到俺写这篇《十周年大事记》,已经过去了将近【8年时间】。这些年,俺又写了很多足以定性为“煽颠性质”的博文,但网监部门好像拿俺没辙。这至少说明:俺采取的信息安全防范措施,还是比较靠谱滴 🙂

  再顺便跑题一下:
  信息安全界有句名言(其实也是句废话),叫做:没有绝对的安全
  如果用“矛/盾”来比喻“攻防双方”,那么这句话也可以翻译成——没有完美的盾。但是反过来也可以说——没有完美的矛
  既然攻防双方都不可能完美,那么问题的【焦点/难点】就在于——如何评估/预判双方的“强弱对比”。那些能做到这点的人,也就是《孙子兵法》所说的【知己知彼,百战不殆】。

★2011年某月,第一次收到 Gmail 的警告——“政府资助的攻击者正试图入侵你的帐号”

  俺不记得具体的月份,但肯定是在“茉莉花集会”之后。
  这种警告意味着【国家级】的入侵威胁。当俺第一次在 Gmail 界面上看到这个警告,颇有一种【受宠若惊】的感觉。
  俺早就知道有一些政府背景的骇客(称之为“御用骇客”)会专门针对政治敏感人士发动网络攻击。但当自己也享受到这种待遇,还是颇有惊喜之感。
  就在那一天,俺写博客的动力又增加了许多 🙂
  (注:这种【国家级入侵】,后来又出现过,参见后续的“2017年5月”)

★2012年4月14日,开始用 Google Plus 分享【每周转载】

  其实俺这个“编程随想”的身份很早就注册了 G+,但一直【没有】公开使用。因为 G+ 有一个很蛋疼的“用户名规则”,要求 G+ 的用户名必须【看上去像】真实的(也就是说,不能使用明显的【化名】)。而“编程随想”这个名字一看就是【化名】。之所以没有公开使用 G+ 帐号,就是担心这个用户名违规,可能会被管理员封杀。
  后来这个 G+ 帐号果然被 Google 管理员冻结了(在2012年3月)。幸亏俺的读者里面有 Google 的员工,而且他还是个很热心的读者,帮俺去找 Google 的相关部门交涉,终于让俺的 G+ 帐号解封,并且还可以继续使用“编程随想”这个网名,再次感谢这位热心读者
  G+ 帐号解封之后,俺就开始用 G+ 来分享《每周转载》的文章。当时的做法是:把转载文章的【内容】贴到 G+ 上,然后在每一篇《每周转载》的博文里面包含这些 G+ 的链接。

★2012年9月5日,定制版的博客评论区上线

  最早想要去定制 Blogger 的评论界面,是因为博客的评论越来越多,而【默认的】评论界面只显示(每篇博文)最早的200条评论。如果要显示200条之后的评论,需要在界面底部点击一个“加载更多”的按钮。而且按钮比较弱智,每点击一次只加载50条。也就是说,假设某篇博文有350条评论,你就要点击该按钮3次。以此类推。
  那年,俺的评论数开始猛增,动不动就是几百条评论。有些老读者喜欢完整地看完所有评论,就得频繁点击这个“加载更多”的按钮,搞得很多人怨声载道。(其实俺自己也嫌烦)
  既然要定制评论区界面,俺除了实现【自动加载全部评论】,还顺便实现了常用的【BBCode 语法】——经常逛 BBS 的同学,应该听知道 BBCode 是啥玩意儿。
  之后几年,俺继续完善评论区,包括实现了【免刷新功能】——也就是说,别人发的留言会【自动】出现,读者无需刷新页面。

★2013年6月20日,博客开通【邮件订阅】

  就在 Google Reader 正式关闭的前10天,俺博客开通了【邮件订阅】功能(参见“这篇博文”)。
  当年有很多【不懂翻墙】的读者依靠 Google Reader 实现【免翻墙】订阅/浏览博客。有了“邮件订阅功能”,就可以继续照顾这些读者。
  顺便说一下:
  俺有时候会在博文发布之后,继续对内容做一些补充或润色。但是用“邮件订阅”的读者就【无法】看到修改后的博文了。

★2013年7月19日,俺的【Dropbox 网盘】上线

  由于很多读者要求“再增加一个网盘”,俺自己也考虑到——多一个网盘也就多一个备份(避免“单点故障”)。于是(2013年5月)在博客上征求了读者意见,最后选了读者呼声最高的 Dropbox 作为“第二网盘”。
  之后俺把微软网盘上的电子书全都挨个上传到 Dropbox(纯体力活)。还好那时候电子书还不多(当时大概 1.5 GB 左右)。如今(十周年之际)网盘上的电子书已经超过 11GB 了。

★2014年4月25日,开始提供【博客打包下载】

  所谓的“打包下载”就是把整个博客中【所有的】博文以及博文中的图片都打包成一个电子书(当时支持 epub 和 chm 两种格式),然后放到微软网盘让读者下载。
  但是这种方式有一个很大的【弊端】,那就是打包的电子书【太大】(几百兆),而微软网盘又【不】支持断点续传。结果就导致:一方面,俺上传很难;另一方面,读者下载也很难。(那一年,GFW 开始干扰微软网盘,传输很不稳定)
  更深层次的弊端在于——由于俺定期要上传几百兆的文件到微软网盘,存在【暴露身份】的风险。
  简单解释一下:
  虽然俺为了隐匿身份,【全程】采用“基于 TOR 的多重代理”来进行网络操作。但由于“上传几百兆文件”这种行为比较少见,其“网络流量”的特征自然比较明显。如果朝廷方面对国际出口的流量进行统计/分析(技术上是可以做到滴),会增加“身份暴露”的风险。
  为了解决这个弊端,后来改用 BT Sync,以【增量】的方式进行自动同步(参见“2015年3月25日”)。所谓的【增量方式】,就是每次更新博文的时候,只上传新增加的博文和新增加的图片文件。如此一来,流量的特征就【不】明显啦 🙂

★2015年2月17日,俺的【BT Sync 网盘】上线,【Dropbox 网盘】废弃

  再次唠叨一下:“BitTorrent Sync”简称“BT Sync”,如今改名叫“Resilio Sync”,但俺还是习惯叫它“BT Sync”。
  “BT Sync 网盘”不同于传统的网盘,它本质上是 P2P 形式的网盘,【没有】中央服务器,因此具备如下很多好处:
1. 【没有】存储空间的限制——真要说空间限制,那就是参与节点的硬盘容量(如今【TB 级】的硬盘已经不稀奇了)
2. 【没有】下载流量的限制——与之对比,大部分商业网盘都有这个限制。
3. 【没有】文件大小限制——与之对比,大部分商业网盘对“单个文件大小”都作了限制。
4. 【没有】审查——俺想在上面分享啥,就分享啥——咱们朝廷管不了,美国的版权法也管不了(一想到这点,心里那个爽啊)。
5. 【没有】费用——老读者都明白,俺是很讨厌付费服务的——其实俺不缺钱,俺是担心身份暴露(即使“比特币”支付,也【不是】彻底“匿名”滴)
6. 【很难】被封杀——与之对比,国外的商业网盘,GFW 说封杀就封杀

  上线“BT Sync 网盘”最大的难点在于——找到一些【志愿者】作为 P2P 网络的【初始种子】。俺在博客上打了招呼,很多热心读者踊跃报名。为了照顾到志愿者的安全性,俺只挑选了【身在墙外】的志愿者作为初始种子。
  今天借此机会,再次向这几位热心读者表示感谢!
  注:“初始种子”只需要在开头那几天保持在线,以帮助新加入的节点同步数据。由于参与同步的读者很多,几天之后,即使这几个初始种子全部下线,也【不】影响这个 P2P 网络的运作了。

  引申阅读:
扫盲 BTSync(Resilio Sync)——不仅是同步利器,而且是【分布式】网盘
聊聊 GFW 如何封杀 Resilio Sync(BTSync)?以及如何【免翻墙】继续使用?

  在“BT Sync 网盘”上线的同时,俺也放弃继续使用 Dropbox 了(那天,“电子书清单”移除了 Dropbox 的下载链接)。
  因为 Dropbox 网盘存在【流量限制】。当参与下载的读者多了之后,必定超出流量的限额。最后根本就没法用。
  俺的体会是:像 Dropbox 网盘这类网盘,个人私底下使用还可以,但【不适合】大规模公开分享文件。

★2015年3月25日,用 BT Sync 提供【博客离线浏览】

  由于俺已经开始用 BT Sync 分享电子书,再用它来【自动同步】博客的离线浏览,也就顺理成章了。
  为了跟原来的“打包电子书”保持兼容,俺还特地写了一个【打包脚本】。那些喜欢在移动设备上看电子书的同学,可以运行俺写的“打包脚本”,把离线浏览的网页和图片打包成一个 EPUB 或 CHM 格式的文件,就可以放到手机或平板上阅读。

★2015年6月11日,俺的【Github 帐号】上线,【Google Code】废弃

  由于 Google 宣布在2016年关闭 Google Code 网站。俺花了点时间把 Google Code 上的内容(主要是 wiki 页面)搬运到俺的 Github 帐号。这个 Github 帐号是在之前几年(2013年愚人节)就注册滴,作为 Google Code 的备份(也就是俺常说的“B 计划”)。
  搬运完之后,发了一篇博文,通告俺的【Github 帐号】正式上线。
  为了保持兼容性(也为了 SEO),俺在 Google Code 上进行了相应设置,把 Google Code 帐号的链接(https://code.google.com/p/program-think)重定向到“俺的 Github 帐号”。

★2015年10月4日,博客全站启用【HTTPS】

  自从开博之后,就一直有读者抱怨说——俺博客【不】支持 HTTPS,缺乏安全性。其实俺也觉得很不爽,但又没办法。因为“对 HTTPS 的支持”需要 blogger/blogspot 博客平台提供才行。
  俺盼星星盼月亮,一直等到2015年10月初,终于看到 blogger 官方通告说——博客平台已经开始支持 HTTPS,但需要每个博主【手动开启】。俺当然毫不犹豫地开启 HTTPS 选项。
  那几天,俺又做了一些简单的兼容性测试,然后在那年10月4日发布了通告(链接在“这里”)。
  之后几年,俺陆陆续续把博客的【所有内链】从 http:// 改为 https:// (不得不说,这又是一个体力活)

★2016年2月29日,《太子党关系网络》开源到 Github

  在那之前,俺一直是把《太子党关系网络》做成 PDF 文件,然后放到俺的微软网盘给大伙儿下载。后来有一些读者强烈要求俺把数据(人物和家族的资料)开源出来。
  那年春节前,俺承诺2月份在 Github 上线。2016正好是闰年,俺在2月29日发布了上线通告
  对这个开源项目感兴趣的同学,请猛击如下链接:
https://github.com/programthink/zhao
  (注:项目名叫 zhao,寓意“赵家人”)
  那阵子,朝廷正要开两会,俺在博客上说——这是专门给2016年“两会”的献礼 🙂

★2016年6月初,《太子党关系网络》开源项目率先获得朝廷认证——发表获奖感言

  Github 官方在那年6月8日发布的公告称:收到来自中国政府的删除令,要求 github 删除俺这个 zhao 项目(Github 官方公告的链接在“这里”)
  还好 Github 的运营方比较有骨气,没有向天朝妥协,依然保留了这个项目。但是 Github 方面也做了一点妥协——本来 Github 上所有项目都是免翻墙可以访问的。后来 Github 官方针对“来自中国大陆的 IP 地址”屏蔽了该项目。也就是说,如果你在【墙内】直接访问这个项目的网址,会看到一个错误提示。但如果用翻墙工具访问该项目,就一切正常。
  俺特别荣幸的是——针对俺项目的政府删除令,是 GitHub 历史上的第6个,也是来自中国政府的【第一个】。
  朝廷方面对俺的工作高度认可,鄙人不胜荣幸之至,特地写了一段“获奖感言”,链接在“这里”。

★2017年5月,本博客获得【更高级别朝廷认证】

  如果说,2016年6月发生的事情,只是针对《太子党关系网络》这个开源项目;到了2017年5月份,朝廷方面开始针对俺博客本身了。那个月发生了很多事情,俺就不细聊了,大伙儿可以参见如下博文:
庆贺本博荣获【更高级别朝廷认证】——谈谈近期的“帐号入侵、刷屏、钓鱼”

  在上述这篇博文中,俺特地引用了尼采的名言:

那不能杀死我的,使我更强。
What does NOT kill me, makes me stronger.

★2018年12月6日,(G+ 即将关闭)把 G+ 上转载的文章搬回博客主站

  这事儿就发生在上个月(参见“这个链接”),大伙儿应该都记得吧。
  (对俺博客而言)最近几年,G+ 已经用得很少——仅仅用来发布“新博文通知”。老早就有读者建议俺——把 G+ 上转载的文章搬运回博客主站。但是俺比较懒,一直没动手。这次 Google 宣布 G+ 即将关闭,终于迫使俺动手完成这个搬运的体力活。
  把这些转载的文章搬运会博客主站后,有如下好处:
其一,搬运之后,【博客离线浏览】中也会包含早期所有转载的文章的【全文】。对那些习惯看“离线浏览”的读者,有好处。
其二,搬运之后,浏览那些早期的转载文章,可以【少一次】链接跳转(无需再跳到 G+ 界面,就可以看到全文)。
其三,搬运之后,使用博客界面右侧栏的【站内搜索】,可以搜到早期的那些转载内容(搬运前,这些内容是搜不到滴)。

★结尾

  这篇仅凭俺个人记忆来整理,难免有疏漏,欢迎各位读者补充。
  下一次发布《大事记》,那得等到2029年的博客【20周年庆】啦。希望那时候俺还在,列位看官也还在。
  另外,也希望俺能和诸位读者一起迎来【天朝的黎明】。用下面这句话与大伙儿共勉。

成功不必在我,功成其中有我。

俺博客上,和本文相关的帖子(需翻墙)
博客开张及本博客内容简介
架构设计:生产者/消费者模式
如何翻墙?——写在 BlogSpot 被封之后
是该写点技术以外的东西了
邮件订阅功能发布——免翻墙的“Google Reader 替代品”
扫盲 BTSync(Resilio Sync)——不仅是同步利器,而且是【分布式】网盘
博客全程启用 HTTPS 加密
热烈庆贺“太子党关系网络”开源项目率先获得朝廷认证
庆贺本博荣获【更高级别朝廷认证】——谈谈近期的“帐号入侵、刷屏、钓鱼”
告别 Google Plus——早年在 G+ 上的“每周转载”已搬运到博客主站