-
-
[原创]卫星互联网最难的不是加密,是几百万把钥匙怎么管(一)
-
发表于: 6天前 195
-
冷战时期,美军保护卫星通信的办法之一,是派人把密钥送到每一个节点。这个办法很笨,但它成立——前提是节点只有几百个。
延伸阅读:RFC 5280(X.509 证书与撤销机制标准)|下篇会用到 OpenSSL 做实测
卫星互联网的安全短板不在算法,在密钥的生命周期。几千颗卫星在动、上千万台终端散在用户手里,密钥怎么生成、怎么分发、多久轮换一次、丢了多久能拉黑——这几个问题的答案,比"用了 AES 还是国密"更能说明一个星座到底安不安全。
这是上下两篇里的上篇,先把问题讲清楚:密码学到底在解决什么,冷战时那套办法为什么成立,以及它在低轨星座面前是怎么失效的。下篇进入具体的五个环节,并用 OpenSSL 把"撤销窗口"这类抽象说法量成真实数字。
先对齐三个词:加密、签名、哈希
后面会反复出现对称密钥、私钥、签名、根信任这些词。它们不难,但混着用容易糊,先花两分钟对齐。
一个常见的误解是把密码当成"暗语"——两个人约定"天气真好"表示"明天见面"。实际上密码是一套规则,而秘密不在规则里,在密钥里。
AES 怎么工作是公开的,RSA 的原理写在教科书上。全世界都知道算法长什么样,安全性依然成立,因为拿不到密钥就还原不出原文。所以一句话可以记住:算法可以公开,密钥不能。
密码学在通信里主要干三件不同的事,分别对付三种不同的坏事。
对称加密:解决"别人能看到"
同一把钥匙既上锁也开锁。像一个信封,锁和开用的是同一把钥匙。
优点是快,适合大流量。缺点很致命——双方得先有同一把钥匙,而"怎么把钥匙安全地交到对方手上"本身就是个难题。AES 是这一类里最常见的。
拿 OpenSSL 走一遍就很直观:
# 用一把口令加密(-a 表示输出成可打印的 Base64)
echo "明天下午三点开会" | openssl enc -aes-256-cbc -pbkdf2 -a -pass pass:demo-key-123
# 输出类似:U2FsdGVkX1/JaXQOvPw2d9f7dg7MTQZPJBnQiyRXYTEXhpiRy5xWyc7GaYzd2jrH
# 换成 -d 解密,口令必须一模一样
echo 'U2FsdGVkX1/JaXQOvPw2d9f7dg7MTQZPJBnQiyRXYTEXhpiRy5xWyc7GaYzd2jrH' \
| openssl enc -d -aes-256-cbc -pbkdf2 -a -pass pass:demo-key-123
# 还原出:明天下午三点开会加密和解密用的是同一个 demo-key-123,这就是"对称"的意思。把口令改一个字符,解密就会失败——算法一直是公开的 AES,真正决定成败的是那把口令。
非对称加密:解决"钥匙怎么送过去"
两把钥匙成对出现:公钥可以随便给人,私钥自己死守。公钥加密的东西只有私钥能解开,反过来也成立。
像一个邮箱,谁都能往里投信(用公钥),只有你能打开取信(用私钥)。好处是不必事先交换秘密。代价是慢,不适合直接加密大量数据。
所以真实系统里两者是配合用的:用非对称的方式把一把对称密钥安全地交给对方,之后的正式通信全走对称加密。记住这个分工,第一节里冷战方案为什么"绕开协商"就好理解了。
反过来用私钥,就得到数字签名:我用私钥签一下,任何人都能用我的公钥验证这确实出自我手。它证明的不是"内容保密",而是"来源可信"。
哈希:解决"内容被人改过"
哈希函数把任意长的内容压成一个固定长度的指纹,而且是单向的——从指纹回推不出原文,内容改一个字节,指纹就完全变样。
这个可以直接在终端里试,只差一个零:
# 取前 16 位便于对比(macOS 用 shasum,Linux 用 sha256sum)
printf '请转账 1000 元' | shasum -a 256 | cut -c1-16
printf '请转账 10000 元' | shasum -a 256 | cut -c1-16输出:
f95a74da6a30cd65
a0876be4e3e8ba45多一个零,指纹面目全非,两者没有任何相似之处。所以对方拿到内容和指纹一比,就知道路上有没有被人动过手。
哈希本身不保密任何东西,它保的是没被改。实际用法是和签名搭在一起:发送方对内容的哈希值签名,接收方验签,同时得到"确实是他发的"和"内容没被篡改"两个结论。
三件事对应三种坏事,缺一个都不行:
手段 | 防的是 | 典型算法 |
|---|---|---|
加密 | 被人看到 | AES(对称)、RSA(非对称) |
签名 | 被人冒充 | RSA、椭圆曲线 |
哈希 | 被人篡改 | SHA-256 |
打个比方:加密是把信装进信封,签名是在信上落款,哈希是加盖火漆——三件事互不替代。这一点在文章后面还会再撞上一次。
至于本文的主角,是这套体系里最不起眼的一环:上面所有手段都建立在"密钥没出事"这个前提上。而密钥会不会出事,不由算法决定。
1960 年代的笨办法
1960 年代,美国国防部需要和分布在全球的力量保持通信:欧洲的北约部队、太平洋的舰队、地下的导弹发射基地。内容是最高级别的机密。
之前用电话线和报文,缺陷很直接——线可以被搭,报文可以被截。卫星通信解决了覆盖问题,却带来一个更难受的性质:信号是无线的,无线意味着任何地方都能收。
对手不需要接触你的线路,一个接收机就够了。更糟的是你不知道对方在哪里收、什么时候开始收,甚至不知道自己已经被截获。
所以加密是必须的。但当时的工程师撞上一个很实际的障碍。
地球同步轨道高度约 36000 公里,光速每秒 30 万公里,信号一个往返大约 0.24 秒。
这 0.24 秒意味着,任何需要多轮往返的密钥协商都变得昂贵。想在通信开始前先协商一把临时密钥,那几轮握手的时间成本,放在一条本来就不稳、还容易丢包的信道上,不划算。
于是方案反过来了:不在信道上协商密钥,提前把密钥放好。
• 通信两端各放一台密码设备,负责加密和解密
• 密钥事先通过物理安全的渠道同步到两端,不在开放信道上交换
• 用对称加密,因为速度快,符合实时性要求
• 密钥是长周期的,提前分配而非临时生成
• 加上签名验证和纠错,因为卫星信号会被干扰、会丢包
每一条都对应一个具体约束,没有一条是为了好看。
对照前面那个分工就能看出这套方案的特别之处:它把"用非对称加密交换对称密钥"这一步整个删掉了,改用人腿代替。押运密钥,本质上是用物理世界的安全,换掉了数学世界的那一次握手。
它很笨,但它对。
这套方案的四个隐含前提
押运密钥能成立,靠的不是密码学,而是四个当时理所当然的前提:
• 节点数量少——几百个通信点,派人跑一趟是可接受的成本
• 位置固定——基地、舰队指挥所、地面站,都有明确的物理地址
• 可物理触达——需要换密钥时,人能到现场
• 生命周期长——一套设备服役十几年,密钥换得不频繁也能接受
低轨星座把这四条全部打破了。
节点数量不再是几百。OneWeb 规划的是 6372 颗 LEO 卫星加 GEO 混合组网。用户侧规模更大——截至 2025 年底,中国支持卫星直连的手机累计出货已超过 2500 万台(这组数据的完整背景在本号 2026-05-29 那篇里)。押运的对象从几百个机房,变成了上千万个消费者的口袋。
位置固定也不成立了。低轨卫星每 90 分钟左右绕地球一圈,终端跟着用户走。没有"现场"可以去。
可物理触达这一条甚至反了过来。冷战时它的隐含意思是"只有我们能碰到设备"。现在是设备就在用户手里,也可能装在海上的浮标里、无人机上——攻击者拿到实物的门槛,比运营方派人去维护还低。
生命周期被大幅压缩。消费级终端两三年一换,固件几周就可能更新一次。
所以结论不是"老算法不安全了"。AES 该有的强度一点没少。过时的是分发和轮换的假设。
左边是冷战的办法,右边是今天的办法。真正被替换掉的不是算法,而是"怎么把信任送到对面"这件事——从一个人提着箱子跑一趟,变成一份根信任加一条签名链。

人工押运与证书体系的对比:几百个固定节点,对上千万台移动终端
上篇小结
三句话可以带走:
• 算法可以公开,密钥不能。加密、签名、哈希分别对付"被看到""被冒充""被篡改",三件事互不替代,而它们全都建立在"密钥没出事"这个前提上
• 冷战的押运方案不是落后,是当时的最优解。它用物理世界的安全,换掉了高延迟信道上那次昂贵的握手
• 它依赖四个前提:节点少、位置固定、可物理触达、生命周期长。低轨星座把这四条同时打破了,所以过时的不是算法,是分发和轮换的假设
留一个问题给下篇:当密钥从"押运几百把"变成"管理几百万把",具体是哪几个环节会断?
下篇会把密钥管理拆成生成、存储、分发、轮换、撤销五个环节,指出难点集中在最后两环,并用 OpenSSL 实际量一次"一张被盗证书最长能被滥用多久"——那个数字比想象的大。
参考资料
• RFC 5280:X.509 证书与 CRL profile
• 本号相关文章:2026-05-29(卫星互联网四条路线)、2026-08-21(Starlink IoT 的加密与身份认证)
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。