今天在社区里看到一个传闻,说的是 Linus Torvalds 参与了$zailgo 项目,还带上了 github 的链接 https://github.com/notwedtm/zailgo
看到这条消息还挺让我惊讶的,Linus Torvalds 是何许人也?我们来看看 wiki 上的介绍:
Linus Torvalds 是 linux 内核的作者,开源项目 git 也是他的,这种上古巨神怎么会来web3参与一个小项目,实在让人费解,真相永远只有一个,让我们来找出它。
我们先点开“commit”,看看巨神提交了些什么内容:
点开后会发现这条 commit 的状态是“Unverified”,标明这条提交并没有被验证。
我们通过点这个状态也能看到提示,Linus Torvalds 并没有用他的公钥进行签名。
那这种提交是怎么伪造的呢?其实也很简单,github 记录提交信息的所有人只需要 GIT_AUTHOR_NAME、GIT_AUTHOR_EMAIL 等字段即可,那我们是不是可以伪造这些信息呢?
我们来做个实验,设置相关的几个环境变量,这些都是 Linus Torvalds 公开信息:
export GIT_AUTHOR_NAME="Linus Torvalds"
export GIT_AUTHOR_EMAIL="torvalds@linux-foundation.org"
export GIT_COMMITTER_NAME="Linus Torvalds"
export GIT_COMMITTER_EMAIL="torvalds@linux-foundation.org"
然后我们随便在源文件中改一些内容,然后 commit,让我们看看 log 是什么:
最上面那一条是我测试的信息,可以看出在 log 中的作者信息变成了 Linus Torvalds,这时候如果我要提交的话,在 github 上显示的就是 Linus Torvalds 参与了这项目。第二条信息是我们目前在 github 上看到的伪造信息。
那么针对这种伪造的提交该怎么判断呢?有以下几种方法:
1、我们点开 commit,看当前提交的状态是什么,如果是真实的提交,状态那里什么都不会有,如果是伪造的,就会出现上面的“Unverified”
2、我们也可以去 Linus Torvalds 的 github 主页上,看他的活动提交都有哪些项目。他的 github 是 https://github.com/torvalds, 在“Contribution activity”里可以看到他参与的项目中并没有 zailgo。
3、项目的管理员可以看到详细的提交日志,这时候伪造者的信息也能发现,不过咱们也没有管理权限。
zailgo 项目是好项目,为了宣传而伪造信息可要不得,大家也得注意不要被这种假消息欺骗。