国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显。而在信息化时代,太空安全与信息安全紧密地结合在一起。2020年9月4日,美国白宫发布了首份针对太空网络空间安全的指令——《航天政策第5号令》,其为美国首个关于卫星和相关系统网络安全的综合性政策,标志着美国对太空网络安全的重视程度达到新的高度[1]。随后美国空军组织了“黑一颗卫星(Hack A Sat)”[2]太空安全挑战赛,该赛事涵盖多个领域的知识,本文使用AES缓存碰撞攻击给出了该赛事其中一个挑战的解决方案。
从2020年起,美国空军已经连续两年举办太空安全挑战赛。该赛事分为资格赛、决赛两个阶段,资格赛采用积分制,资格赛中积分前8名的参赛队进入决赛,最终角逐出前三名。以2021年为例,在6月26日至27日为期30小时的资格赛中,有75个以上国家近3000名竞争对手组成的1000多支队伍参加。资格赛由5个类别的24个挑战组成,侧重于不同的技能组合,包括卫星操作、逆向工程和射频通信等。12月11日至12日决赛期间,8个团队参加了持续24小时的决赛,决赛项目是攻防对抗式的夺旗赛,包括争夺虚拟地面站、通信子系统、“平卫星”物理卫星硬件,以及用于模拟和测试命令的数字孪生软件。各团队被要求同时操作和防御自己具有脆弱性的系统,同时攻击对手相同的系统来得分。系统中存在许多可利用的漏洞,团队必须修补或以其他方式减轻自己漏洞所产生的影响,以防止系统被攻击,同时保持系统正常运行[3]。
在2020年第一届太空安全挑战赛中,在“载荷模块(Payload Module)”这个类别下有一个挑战是“密码泄露(Leaky Crypto)”,主办方给出的挑战信息如下:
有一颗卫星在通信过程中,会对每个消息使用ECB(Electronic Codebook;电码本)模式的AES-128(Advanced Encryption Standard;高级加密标准)算法[4-6]进行加密。攻击者由于不知道密钥,无法正常加密,那么当攻击者向卫星发送消息后,卫星就会发现消息不对,从而丢弃该伪造消息。攻击者已经截获了一段密文,需要参赛者给出对应的明文,并且已知如下一些信息:
(1)知道密钥的前6个字节是“0xc35c7a9947fe”。
(2)知道截获密文对应明文的前几个字节是“flag{ksjkglhwsjd”。
(3)提供了100000行尝试攻击数据,每个数据包括两部分:明文、加密明文时间,部分数据如下所示。
ed74cd51ab28e765d1e98965e86ba749,10584
ea0c914e1ff97edbe3bd46228f53771e,10656
3e8d4ed226d2ffea86fcf8be22af3e33,10704
3bd7f7bb63745fc45940220e417a116d,10632
99c5843576a344f0d8ec990795912a38,10632
34239b24eef47313a14e0a55767810dd,10632
7b9ae4bdb410862d12de1d94cd40853a,10656
f54c322e63f3b169fdfb4b161decc9b6,10680
91359a6820ecadafd2e616aa2c0baa42,10680
c4ce053a2df7f883d24905856df2b180,10656
从给出的挑战信息可知,这是已知加解密算法、部分明文、全部密文,并且有大量明文及其加密时间的数据,要求得出加密密钥的挑战。本文利用AES缓存碰撞攻击方法给出解决方案。
AES是美国联邦政府采用的一种区块加密标准,是一种对称加密算法[7-8],对称加密即加密与解密用的是同样的密钥。AES因其运算速度快、安全性高的优点,用来替代原先的DES(Data Encryption Standard;数据加密标准),已经被广泛使用[9-12]。其加密、解密基本过程如图1所示,左边是加密过程,右边是解密过程,加密、解密是对称的。从图中可以发现,加密、解密需要进行多轮计算,密钥长度不同,导致计算轮数不同,根据密钥长度不同AES分为AES-128、AES-192[13]、AES-256[14]。对于AES-128,加密、解密过程有10轮运算。