有趣的Hack-A-Sat黑掉卫星挑战赛——解读卫星遥测数据

国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1]。而在信息化时代,太空安全与信息安全紧密地结合在一起。

2020年9月4日,美国白宫发布了首份针对太空网络空间安全的指令——《航天政策第5号令》,其为美国首个关于卫星和相关系统网络安全的综合性政策,标志着美国对太空网络安全的重视程度达到新的高度。在此背景下,美国自2020年起,连续两年举办太空信息安全大赛“黑掉卫星(Hack-A-Sat)”,在《Hack-A-Sat太空信息安全挑战赛深度解析》一书中有详细介绍,本文介绍了Hack-A-Sat黑掉卫星挑战赛的解读卫星遥测数据verizon这道赛题的解题过程。

题目介绍

LaunchDotCom's ground station is streaming telemetry data from its Carnac1.0 satellite on a TCP port. Implement a decoder from the XTCE definition.

本挑战题的背景是LaunchDotCom地面站正在从Carnac1.0卫星接收遥测数据。本挑战题要求根据XTCE定义实现解码器,从而实现对遥测数据的解码。

本挑战题给出了一个链接地址,使用netcat连接到题目给的链接后,会给出进一步提示,如图4-7所示,遥测服务运行在另外一个地址上,继续使用netcat连接该地址,如图4-8所示,显示遥测服务正在发送一系列二进制数据,打印出来是乱码,在此我们没有观察到明显的flag,根据题目信息,参赛者需要对此二进制数据,根据XTCE定义实现解码,才可得到flag值。

图4-7  verizon题目的提示信息

图4-8  连接到遥测服务后,接收到的数据

给出的资料是telemetry.zip,解压缩后就只有一个文件telemetry.xtce,它是一个XTCE格式的文件,XTCE是描述遥测和命令的数据规范(参考下文XTCE背景知识介绍),通过该文件可以解析遥测服务发送的二进制数据的含义。

题目编译及测试

本挑战题的代码位于verizon目录下,查看challenge、solver目录下的Dockerfile,发现其中用到的是python:3.7-slim,为了加快题目的编译进度,在verizon目录下新建一个文件sources.list,内容如下:

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

将sources.list复制到verizon、challenge、solver目录下,修改challenge、solver目录下的Dockerfile,在所有的FROM python:3.7-slim下方添加:

ADD sources.list /etc/apt/sources.list

打开终端,进入verizon所在目录,执行命令:

sudo make build

使用make test命令进行测试,会顺利通过,其输出信息如图4-9所示。

图4-9  verizon挑战题测试输出

相关背景知识

1.CCSDS

CCSDS(Consultative Committee for Space Data Systems,空间数据系统咨询委员会)成立于1982年,是一个国际空间合作组织,自20世纪90年代以来制定了一系列的空间数据系统的协议规范和标准。CCSDS研究和制定的数据标准涵盖了飞行器、空间链路、地面操作控制等。

CCSDS 批准发布的文件如图4-10所示,根据其用途和标准化过程的不同阶段分为8种不同类别,以8种不同的颜色表示:

  • 蓝皮书(Blue):建议的标准文件(Recommended Standards)。
  • 洋红皮书(Magenta):建议的实践文件(Recommended Practices)。
  • 绿皮书(Green):信息报告文件(Informational Reports)。
  • 红皮书(Red):标准或实践文件的草稿(Draft Standards/Practices)。
  • 橙皮书(Orange):试验类文件(Experimental)。
  • 黄皮书(Yellow):管理类文件(Administrative)。
  • 银皮书(Silver):已退出使用的历史文件(Historical)。
  • 粉皮书(Pink):用于评审的修订稿(Draft Revisions For Review)。

图4-10  CCSDS发布的文件

2.XTCE

XTCE(XML Telemetric and Command Exchange)是一套由OMG(Object Management Group)提出的,利用XML语言来描述遥测和命令的数据规范。OMG是国际化的、开放成员的、非营利性的计算机行业协会,其制定XTCE目的是提供一种国际化的新体制与标准,为不同机构和系统在航天任务的各个阶段对卫星数据的有效交换提供支持。XTCE规范的1.0版符合CCSDS绿皮书规范,1.1版已被采纳为CCSDS蓝皮书规范。XTCE的内容和XTCE体系结构的版本以规范的形式在不断地更新。

国际著名的航天机构与卫星制造商(包括美国洛克希德·马丁公司、欧空局、法国航天局、波音公司、美国航天局等)参与了XTCE标准的联合研究,并已经逐步应用到航天项目中。目前,CCSDS XTCE标准在验证和不断完善中,并已经陆续在美国、欧洲研制的卫星系统中得到了较多的应用,如美国的陆地卫星数据连续任务(Landsat Data Continuity Mission,LDCM)等。XTCE已成为一种较通用的卫星数据信息描述和表达方法,一些卫星研制机构和厂商还根据自身的设计需求开发出了相应的XTCE应用软件,用于卫星载荷数据信息的设计中。

XTCE标准中元素节点的结构如图4-11所示。XTCE标准文件以空间系统元素为根元素,其下面包括头部元素、遥测元数据元素、遥控元数据元素、服务元素及子空间系统元素。元数据是描述数据的数据,可以描述数据属性。

图4-11  XTCE 标准中元素节点的结构

头部元素主要描述与 XTCE 文件本身相关的信息,包括来源、日期、版本、作者等信息。服务元素可以对流进行定义。空间系统还可以进行层次划分,称为子空间系统,它的元素与 XTCE 数据文件中的空间系统根元素类型相同,也就是说,每个空间系统下可以包含一个或多个子空间系统,并且它们包含的元素都是相同的。XTCE 数据文件采用分层次的结构对空间系统进行描述,实际上与真实环境下的航天器空间系统的结构是相同的,因此更有利于对真实环境下的空间系统信息进行描述。通过采用这种分层次的结构,一方面由于同一空间系统的信息名称不能重复,因此可以减少空间系统间参数名称的碰撞,另一方面可以对不同的空间系统进行描述,便于管理,避免了集成困难的问题。下面重点对遥测元数据和遥控元数据进行介绍。

(1)遥测元数据是对遥测数据的描述,定义参数类航天器系统参数类型集、参数、容器、消息、数据流、算法等。具体含义如下:

  • ParameterTypeSet(参数类型集):遥测参数的元数据集合,参数类型实例化后即可描述遥测参数。参数类型包含的信息有:数据类型、说明信息、告警阈值、输出数据的工程单元、长度以及在天地传输过程中的编码方式等。
  • ParameterSet(参数集):一组遥测参数及其引用的集合。参数是实例化的参数类型,包含一个名称和一个指向参数类型的引用(ParameterTypeRef)。引用一般指以前在其他ParameterSet中定义的参数引用。
  • SequenceContainer(序列容器):一组有序的参数序列,可以描述包、数据帧、子帧或结构数据项。序列容器可以由基础容器派生,方便数据定义的重用。例如,不同的数据包中有一部分相同的参数序列,可以先建立一个基础容器来描述这些相同的参数序列,然后让描述各个数据包的容器继承这个基础容器࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值