第4节 ARPANet 第一次意识到“密码不能明着传”

故事从一个深夜开始。

1974 年 6 月,麻省剑桥,BBN 的机房。

空调嗡嗡响,磁带机咔啦转。一个工程师蹲在终端前,用 BBN 自己写的抓包工具盯着流量。

屏幕刷出一行字

复制代码
Packet 1427: UCLA → RAND
NCP Data: login: root  password: admin123

他愣了三秒,揉眼睛,再看------还是明文。 这不是一次偶然。

整个 ARPANet 当时有 46 个节点,从加州 UCLA 的 Sigma 7 到犹他大学的 PDP-10,全靠 50 kbit/s 的租用电话线连起来。

分组用的是 NCP 协议,格式很简单:

复制代码
[1822 报头 96 位] + [任意长数据]

报头明文(路由要看),数据也明文(谁也没想藏)。

一个分组从源到目标,平均经过 5 台 IMP(Honeywell DDP-516 小型机,12KB 内存)。

只要在任意一台 IMP 插根线,或者让运维写个 dump 程序,密码就到手了。

这个工程师立马冒出了冷汗,这网络不能给军方用。

第二天一早,ARPA 的 Larry Roberts 把电话打到 Honeywell:

"你们 Multics 不是搞了个安全内核吗?ARPANet 现在是核指挥的备用链路,密码明着传,苏联人插根线就全完了。给我们整个方案,年底要见原型。"

Honeywell 没废话,回了一封电传:

"收到。明尼阿波利斯,9 月开工。"


明尼苏达的小灰楼:SCTC 诞生

1974 年 9 月 27 日,明尼阿波利斯郊区,一栋单层砖楼。

门口钉了个塑料牌: Secure Computing Technology Center(SCTC)

里面 22 个人,领头的是 Roger Schell ------ Multics 安全内核的原作者,烟斗不离手,桌上堆满穿孔卡。他们的任务只有一个:

让 ARPANet 主机和链路"可信"。

但有个硬约束:

  • 不能动 46 台 IMP 的固件(NCP 已经烧死了)
  • 不能降带宽(50 kbit/s 已经是极限)
  • 主机内存只有 12KB

结论:核心不动,边缘加锁。

第一把锁:PLI 加密盒 ------ 防"路上偷看"

1973 年,BBN 已经造了个原型,叫 PLI(Private Line Interface),像个铁鞋盒,插在 IMP 和主机之间。SCTC 接手后,干了三件事:

  1. 选加密算法:用 IBM 的 Lucifer(56 位密钥,DES 的前身),1973 年刚提交给 NIST。
    密钥烧进 EPROM 芯片,焊死在板子上。
  2. 定加密范围:1822 报头不加密,从第 97 位开始,8 字节一组,硬件加密
  3. 写加载流程:主机启动 → 网卡驱动从 ROM 读密钥 → 存进内核保护区

加密过程是这样的:

复制代码
NCP 交出明文分组 → PLI 硬件
                ↓
       跳过报头,加密负载
                ↓
       报头明文 + 负载乱码 → 进 IMP

1974 年 11 月,MIT 到 RAND 的实测:

未加密 加密后
丢包 0.2% 0.3%
延迟 180 ms 182 ms
嗅探 密码可见 只剩报头

还想半路上偷看?没戏了!

第二把锁:类型强制内核 ------ 防"家里贼"

加密只防路上,主机内部还是裸的。

比如一个日志守护进程(file_daemon)本该只写 /log,但它读了 /data/secret,再通过 NCP 发出去,这时候加密也拦不住。

SCTC 把 Multics 的 类型强制 塞进 12KB 内存,精简成一个评估内核。核心是一张表(384 字节):

进程 文件 允许操作
file_daemon /data/* read
file_daemon /log/* write

每次系统调用,内核查表:

复制代码
read(fd, buf, 100);  // fd 指向 /data/secret
  1. 取进程标签 → file_daemon
  2. 取文件标签 → /data/secret
  3. 查表 → 不允许 → 返回 EPERM,进程被杀

Roger 亲自写了个越界程序测试,机器立刻蓝屏。

他拍桌子:"看!这就叫强制,可不是建议!"

就算家里有贼,也没戏了。


1974 年 12 月:交作业

就这样,SCTC最终提交了一份完整的报告(SCTC-74-12):

  • 链路加密:PLI + Lucifer,负载不可读
  • 主机隔离:类型强制内核,12KB 内存,32 会话
  • 审计:每小时 1KB 日志,压缩后寄 NSA
  • 建议:1975 年把 PLI 推到所有 IMP,关键主机跑类型强制

ARPA 追加 近百万美元合同,Roger 买了箱啤酒,团队在雪地里合影。

后来呢?

  • 1989:SCTC 独立,改名 Secure Computing
  • 1991:Sidewinder 防火墙 ------ PLI 的状态检测 + 类型强制的应用代理
  • 1996:SafeWord 令牌 ------ 动态口令,防明文密码
  • 2003:SmartFilter ------ URL 分类,类型强制的网页版
  • 2008:McAfee 4.65 亿收购,技术进云

就这样,ARPANet 第一次从"能连"变成"能信",靠的是两步:

  1. PLI 加密盒 → 解决 "路上偷看"
  2. 类型强制内核 → 解决 "家里贼"

这两招,分别长成了现代的 IPsec 和 SELinux。

安全这门课,从这间明尼苏达的小灰楼,正式开讲。

相关推荐
sdghterhd8 小时前
WebSocket 快速入门教程(附示例源码)
网络·websocket·网络协议
xy34539 小时前
Wireshark捕获过滤器——语法元素详解
网络·测试工具·渗透测试·wireshark
DLYSB_10 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯
xixixi7777710 小时前
三大 AI 安全里程碑:Akamai 高危风险预警、智能体水印强制落地、PQC 量子安全全产业链统一
大数据·人工智能·安全·ai·大模型·智能体·政策
德福危险11 小时前
富有想象力的XSS盲打:靶机练习之Tempus_fugit5
服务器·网络·xss
哥是强混12 小时前
Means:基于 .NET 10 打造的开源自部署 S3 兼容对象存储服务
网络·数据库·.net
hz5678912 小时前
电子远程评标系统哪家好?安全、合规、易用平台评测指南
安全·云计算·音视频·实时音视频·信息与通信
MartinYeung513 小时前
[论文学习]大语言模型安全综述:攻击、防御、对齐、度量与护栏的深度解析
学习·安全·语言模型
Piko61413 小时前
锐捷 VSU 虚拟化堆叠配置
运维·网络·笔记
2301_7803039013 小时前
网络安全、自动化运维、ERP、CRM、MES
运维·web安全·网络安全·自动化·安全威胁分析