公众号旧文
为什么教程总是用 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 发消息
你看到的不只是教程里的两个名字。
而是整个现代计算机安全世界的缩影。