国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1]。而在信息化时代,太空安全与信息安全紧密地结合在一起。
2020年9月4日,美国白宫发布了首份针对太空网络空间安全的指令——《航天政策第5号令》,其为美国首个关于卫星和相关系统网络安全的综合性政策,标志着美国对太空网络安全的重视程度达到新的高度。在此背景下,美国自2020年起,连续两年举办太空信息安全大赛“黑掉卫星(Hack-A-Sat)”,在《Hack-A-Sat太空信息安全挑战赛深度解析》一书中有详细介绍,本文介绍了Hack-A-Sat黑掉卫星挑战赛的定位卫星Jackson这道赛题的解题过程。
题目介绍
Let's start with an easy one, I tell you where I'm looking at a satellite, you tell me where to look for it later.
主办方告诉参赛者在哪里看到了一颗卫星,需要参赛者告诉主办方在哪里还可以看到这个卫星。给出的资料有:
(1)压缩包stations.zip,其中文件就是一个stations.txt文件,是TLE文件,关于TLE文件的格式说明在前文已有介绍,为了便于读者阅读,本节会再次给出简要介绍。
(2)给出了一个链接地址,使用netcat连接到题目给的链接后,会给出进一步提示,如图7-1所示(其中的坐标是随机的,时间也是随机的)。

图7-1 jackson题目的提示信息
连接后,会告诉参赛者当前看到这个卫星的时刻、卫星的地心惯性坐标系(ECI)坐标,接着会依次给出3个新的时刻,要求参赛者给出在哪里还可以看到这个卫星,输入具体的经纬度坐标。3次都输入正确后,会给出flag值。
编译及测试
这道挑战题的代码位于jackson目录下,查看challenge、solver目录下的Dockerfile,发现其中用到的是python:3.7-slim,为了加快题目的编译进度,在jackson目录下新建一个文件sources.list,内容如下:
deb https://mirrors.aliyun.com/debian/deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/deb-src https://mirrors.ali