引言
近年来,随着空间技术的高速发展,卫星在通信、导航、遥感等领域的应用日益广泛,其作为关键基础设施的战略地位也愈发凸显。同时,卫星系统存在一定特殊性,其链路开放性、物理不可达性和资源受限等特点,使得其极易成为攻击的目标。
特别地,卫星指令链路的安全性直接关系到对卫星的控制权。若攻击者能够伪造、篡改或重放合法指令,轻则导致卫星任务偏离、能源浪费,重则可能引发通信瘫痪甚至系统失控,带来不可估量的损失。因此,如何在资源受限、链路高延迟、不可信中继路径等复杂条件下,确保上行指令的机密性、完整性与可验证性,成为一个重要的问题。
传统的加密和认证手段在应用于卫星场景时,常面临无状态设计、多端信息维护限制、时间不同步挑战、链路不可达以及防重放机制复杂性等诸多难题,这导致传统的基于时间或计数的一次性口令(TOTP、HOTP、OTP)难以适应。
本文旨在探究一种基于挑战-响应鉴权模式的卫星指令安全上注方法。该方法将非对称加密技术与一次性随机数(Nonce)机制结合,构建出一套既能有效防止重放攻击,又能满足卫星系统无状态、不依赖时间同步及性能开销小等严苛需求的鉴权体系。
通过引入初步认证环节,本方案能够有效抵御早期阶段的恶意指令注入和潜在的DoS攻击,确保只有通过基本校验的“可疑合法”指令才能触发后续的挑战-响应流程,从而最大限度地保护卫星有限的计算资源。本文将详细阐述该挑战-响应鉴权模式的设计原理、流程以及其在卫星指令上注场景中的实现考量,旨在为构建更安全的未来卫星通信系统提供技术思路。
相关研究综述
已有研究表明,挑战-响应机制因其交互式、一次性和可扩展的特性,广泛应用于分布式认证系统中。
在航天领域,挪威科技大学(NTNU)的 NUTS CubeSat 项目采用哈希消息验证码(HMAC)与序列号相结合的方式实现指令认证,具备一定的防重放能力,但其仍依赖状态同步[1],在多独立地面站与复杂通信链路环境中存在失同步的危险。
此外,针对时钟不同步问题,学术界提出了一些基于椭圆曲线密码学(ECC)的无同步认证方案[2],但这些方案计算复杂度高,难以在资源受限的星载处理器上部署。
标准化机构如 ETSI 也曾在其 BSM 系统中建议采用指令计数或 nonce 策略,以增强抗重放能力[3]。
结合上述思路,本文提出的方案在传统挑战-响应模式的基础上,针对卫星通信的特点进行了优化。具体而言,它克服了现有方案对时间同步的强依赖,并通过引入初步认证流程,在执行计算密集型挑战-响应前,对指令进行快速的合法性筛查。这不仅能有效降低挑战-响应过程所需的计算与链路资源消耗,更能直接提升系统对恶意广播型干扰和拒绝服务(DoS)攻击的防御能力。
方案设计
本方案设计的核心在于通过多阶段的非对称加密鉴权,确保指令来源的合法性与传输的完整性,同时最大限度地降低卫星端的资源消耗。整个流程分为两个主要阶段:初步认证与挑战-响应鉴权机制。
1. 初步认证
本阶段的目的是对地面站发送的指令进行一次快速、轻量级的身份验证,以抵御恶意广播型干扰或 DoS 攻击,保护星上有限计算资源不被消耗。
首先,地面站应在命令上注前,首先生成一个命令标识符 CMD_ID
,并将命令内容 CMD_CONTENT
与 CMD_ID
进行拼接,随后使用其私钥 KPGS
对上述数据的哈希值进行数字签名,最后将 CMD_ID
、 CMD_CONTENT
和签名打包成一个鉴权命令帧发送给卫星。
卫星在接收到该帧后,首先对各字段进行解析,然后使用预置的地面站公钥 KUGS
对该帧进行验证。若验证失败,卫星立即丢弃该命令,不进行任何响应并进入短暂的随机冷却期,以此有效阻断非法指令的后续处理及后续的频繁攻击;若验证成功,卫星则认为该命令可能来自合法来源,将其临时存储,并进入下一阶段。
本阶段仅依赖单次公钥验证,以确保命令未被篡改且确实来源于授权地面站,可以有效阻断大部分伪造与垃圾数据注入。
2. 挑战-响应鉴权机制
该阶段负责验证指令请求是否为“实时、一次性、不可伪造”的合法调用,从而防止中间人攻击与重放攻击。
挑战阶段中,星上端需要生成一个全新且唯一的一次性随机数 NONCE
,随后将之前接收到的 CMD_ID
和新生成的 NONCE
打包成一个挑战帧发送给地面站,并临时存储该 NONCE
及其对应的 CMD_ID
,等待地面站的响应。
地面站收到挑战帧后,进入响应挑战阶段,其解析出 CMD_ID
和 NONCE
,核对 CMD_ID
是否匹配,并对收到的 CMD_ID
和 NONCE
再次计算哈希值,随后使用其私钥 KPGS
对上述哈希值进行数字签名,生成最终签名,最后将 CMD_ID
、 NONCE
和最终签名打包成一个响应帧发送给卫星。最终,卫星收到响应帧后,进入最终验证并执行命令阶段,其解析出所有字段,并核对 CMD_ID
和 NONCE
是否与之前自身发出的挑战帧中存储的值完全一致;若匹配,卫星对 CMD_ID
和 NONCE
再次计算哈希值,并使用预置的地面站公钥 KUGS
对最终签名进行验证;
若验证成功,则确认该指令来源合法、内容完整且为最新请求,最终执行在初步认证阶段临时存储的命令内容。若验证失败,发出 NACK
指示,立即丢弃命令并进入短暂的随机冷却期。
该机制基于非对称密钥体系和一次性随机数,具备无状态设计、时间无关性以及强大的防重放能力,在多个独立地面站协同工作时,不需要跨端维护任何状态信息,适合分布式控制任务。同时,通过管理维护星上公钥列表,可实现针对相应地面站的权限管理。
此外,为支持地面多站并行控制的协作任务,可扩展支持多个地面站公钥并按站区分验证上下文;同时通过挑战帧带入星上当前时标、轨位段信息等元数据,可用于构建上下文感知的链路管理机制。
局限性
本文所探讨的基于挑战-响应的卫星指令鉴权方案看似在安全性与实用性之间取得了良好平衡,但仍存在一些局限性,在后续研究与工程应用中需要进一步探讨与优化。
1. 挑战-响应流程避免的增加了两次往返通信周期,对于超低时延要求的紧急指令可能引入操作迟滞;
2. 当前方案假设星地具备基本双向通信能力,在极端的链路不对等情况下暂不适用。
基于此,笔者认为若采用应用挑战-响应机制,同时应当保留基于OTP等备用的指令安全上注方案,以做极端情况下备用。
一点题外话
在某些情况下,宽松的命令安全上注机制不一定会带来负面的问题。
2009 年,柏林工业大学制造并委托发射了一颗立方体卫星 Beesat-1,主要用于演示为微型卫星开发的新技术。
2011 年, Beesat-1 开始传输无效的遥测数据,操作人员随后切换到了冗余计算机。
2013 年,第二台计算机也发生了故障,柏林工业大学因此停止了卫星运作,只是每隔几年检查下卫星是否响应命令。
由于轨道较高,Beesat-1 没有像其他 Beesat 系列的立方体卫星一样快速再入。发射 15 年后,德国黑客 PistonMiner 对这颗卫星产生了兴趣。他研究了卫星的错误信息、二进制文件和源代码,发现 Beesat-1 的问题不是因为太空辐射造成的硬件损坏,而是软件问题。
2024 年 9 月, PistonMiner 修复了 BeeSat-1 上的许多软件问题,恢复了遥测功能,并首次从相机下载了图像[4]。
参考文献
[1] HJELMSTAD I, BEZEM B, FJELLBY P K J, BIRKELAND R. Authenticated uplink for the small low-orbit student satellite NUTS[C]//2021 IEEE International Conference on Space Operations (SpaceOps). IEEE, 2021: 1-9. DOI: 10.1109/SpaceOps51829.2021.9568936.
[2] TIAN D, DENG Y. A lightweight ECC-based authentication scheme without time synchronization for satellite IoT networks[J]. Wireless Communications and Mobile Computing, 2021, 2021: 1-10. DOI:10.1155/2021/8811970.
[3] ETSI. Satellite Earth Stations and Systems (SES); Broadband Satellite Multimedia (BSM); Security Functional Architecture and Requirements: ETSI TR 102 744 V1.1.1[S]. Sophia Antipolis, France: ETSI, 2010.
[4] Herbrich, M. (2023, December 28). 38C3: Hacker hijacks and repairs Beesat-1 satellites from the ground. Heise XXXXXXXXXtps://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[修改于 6天15时前 - 2025/07/03 20:43:31]