以下引用自微博:“据说当年 Ken Thompson 走到任何一台 UNIX 机器,都能用自己的用户名密码登录。后来其它人去掉了 UNIX 内核的后门,又有人重写了编译器,均不管用。后来 Ken Thompson 揭秘,后门在世界上第一个 C 语言编译器里,之后所有的 C 程序都受影响。他之后发了篇论文: via ”这算事情是真的么,如果是真的,如何评价?

  因此,Ken Tompson说过一句话:“不要相信任何——哪怕一行——不是由你写出的代码”

  但很显然,要是所有人都真的这么认为,整个现代互联网的安全性就土崩瓦解了

  是啊,msvc闭源,可能有后门,gcc/clang虽然开源,但是保不准某个旮旯里也被人埋了东西

  但这个问题是可以无限延伸的

  OpenJDK有没有问题?rustc会不会有问题?CPython会不会有问题?Linux会不会有什么还没被找到的后门?还有Harmony呢?你怎么保证没有?

  什么?你说去翻源代码?你怎么能保证开源了就100%不可能有任何后门了?去年xz的教训忘了?

  即使你真的组织人力物力去审计每一行代码,最后打包票说保证没任何问题了。请不要忘了,编程语言的编译器/解释器也是可能藏后门的,即使你用的语言能够自举,即使你把每一次迭代版本的编译器/解释器源码都看一遍,告诉我这下肯定没问题了,我还是建议你再把构建最初版所用语言的编译器/解释器的工具链的源码看一遍,别忘了历代版本都得这么来一遍,反正你不是要追求绝对安全吗?

  更何况,你面前这台设备的底层,也不是100%开放的,Intel CPU底层可搭载着一个Minix系统呢!当然,ARM也好不到哪去,谁知道高通之类的厂有没有在底层做什么手脚

  什么?RISC-V?你要真的用一台RISC-V当主力设备,那我确实也没话说了,可是,单凭现在RISC-V架构的to c设备的保有量来看,能反驳我的人不多

  另外,我得指出,Ken Tompson这台PDP 11(或者PDP 7)根本不是今天通用的x86/arm架构,而x86/arm平台上的C语言编译器肯定是重新实现过的。你可以担心开源工具链有没有被恶意代码污染,但还是别担心Ken Tompson老爷子(或者知道他所留的后门的人)会不会偷偷连上你家的NAS然后rm -rf /了

  如果你真的想追求所谓“绝对安全”,你要做的,不是把你电脑上的系统和软件全部换一轮——那样根本没用,谁知道这些软件是不是心怀鬼胎

  你要做的,是断掉你设备的Internet连接,不联网或者只连内网(考虑到内网服务器说不定也有后门,我建议你选择前者),然后命令几个大汉在你不用设备时,把存放设备的房间的门给守住,不过这帮大汉也有被社工的可能,我建议还是由你亲自来做这件事

  : )