公众号旧文

为什么教程总是用 Alice 和 Bob 作为用户名

作者:胖子阅读 —

在 Linux、网络、密码学或者安全领域,你会发现教程里总有几个人:

  • Alice
  • Bob
  • Eve
  • Mallory

他们像固定演员,扮演教程中的用户角色。

例如:

Alice 给 Bob 发消息,Eve 偷听他们的通信,Mallory 试图篡改数据

或者:

alice 创建了一个文件,bob 尝试访问,但 Permission denied

为什么教程总是用 Alice 和 Bob 作为用户名?

原来这背后是一段非常经典的计算机文化历史。

一、从密码学开始

Alice 和 Bob 最早广泛流行于:密码学(Cryptography)

1970 年代以后,随着现代密码学的发展,研究者发现:

直接用:

  • 用户A
  • 用户B
  • 攻击者C

这样的写法非常枯燥,而且不容易阅读。

于是开始用真实的人名代替,最经典的组合就是:

  • Alice
  • Bob

因为简短、容易区分,而且男女名字不同,同时英语里发音清晰。

从此以后,Alice 和 Bob 就成为了计算机世界最著名的虚拟人物。

二、Alice 和 Bob 分别是谁?

通常:

名字 角色
Alice 发起者
Bob 接收者

例如:Alice 向 Bob 发送加密消息。

或者:Alice 登录服务器,Bob 尝试访问她的文件。

三、其他经典角色

后来,计算机领域又逐渐形成了一套固定演员。

Eve

Eve 来自:Eavesdropper

意思是偷听者

例如:Eve 正在监听 Alice 和 Bob 的通信。

这就是最经典的网络窃听模型。

Mallory

Mallory 来自:Malicious

意思是恶意攻击者

她不仅偷听,还会修改数据、注入攻击、冒充身份

例如:Mallory 篡改了 Alice 发给 Bob 的消息。

Trent

Trent 通常表示:Trusted Third Party

即可信第三方

例如:

  • CA 证书机构
  • 身份认证服务器
  • 公证系统

四、为什么 Linux 教程也爱用 Alice 和 Bob?

因为Linux 从诞生开始就是多用户系统

Unix/Linux 从来不是一个人自己玩的系统。

它最早运行在大学主机、实验室服务器和企业 Unix 终端上。

所以身份隔离,从第一天开始就是核心设计。

五、在Linux 的世界里

Alice 和 Bob 往往是两个普通用户

例如:alice 创建文件,bob 尝试读取

然后系统返回:Permission denied

这样就能非常直观地展示:

  • 文件 owner
  • group
  • rwx 权限
  • 目录 traverse 权限

这些 Linux 核心概念。

六、为什么不用 user1 和 user2?

因为人脑更容易理解人物关系。

例如 Alice 把文件分享给 Bob

会比 UserA 把文件分享给 UserB 自然得多。

这也是为什么计算机教材里经常会拟人化。

七、为什么 Linux 有这么复杂的权限系统?

个人电脑时代的很多用户,默认只有一个人使用机器。

但 Unix/Linux 默认认为:

  • 多个人会同时登录
  • 多个服务会同时运行
  • 不同用户必须互相隔离

所以:

  • UID
  • GID
  • owner
  • group
  • rwx
  • sudo

这些东西不是附加功能,而是整个系统的基础。

八、Alice 和 Bob 不是梗

他们代表了计算机科学中的身份模型

很多现代互联网系统,本质上仍然建立在“谁是谁”这个问题之上。

例如:

  • SSH 登录
  • 网站用户
  • 数据库账号
  • Docker 容器
  • Kubernetes
  • API Token
  • JWT
  • OAuth

本质都在解决

如何识别 Alice?如何验证 Bob?如何防止 Mallory 冒充?

当你下一次再看到 Alice 给 Bob 发消息

你看到的不只是教程里的两个名字。

而是整个现代计算机安全世界的缩影。