本文主要用于 GSM、软件无线电(SDR)和无线通信安全研究,重点介绍 GSM 信号捕获、协议分析以及加密机制的工作原理。
涉及无线电接收、通信数据分析或主动发射时,应遵守所在地的法律法规,并仅在自有、隔离或明确获得授权的实验环境中进行。
一、前言#
GSM(Global System for Mobile Communications)是第二代移动通信系统。虽然许多国家和地区已经陆续关闭 2G 网络,但 GSM 仍然具有重要的研究价值。
对于无线通信安全研究人员来说,GSM 是一个非常适合学习的软件无线电案例。
它同时涉及:
- 无线电通信
- 数字信号处理
- 软件无线电
- TDMA
- GSM 协议
- 蜂窝网络信令
- 身份认证
- 空口加密
- 密码学
经典的 GSM SDR 研究流程可以概括为:
GSM 网络
│
▼
无线信号
│
▼
SDR
│
▼
IQ Samples
│
▼
GSM 信号处理
│
▼
GSM Burst
│
▼
TDMA Frame
│
▼
GSM Channel
│
▼
GSMTAP
│
▼
Wireshark
│
▼
协议分析
│
▼
A5/x 加密分析需要注意的是,这并不是一个简单的“SDR 破解 GSM”的过程。
SDR 主要负责接收和处理无线信号,而 GSM 解调工具负责从 IQ 数据中恢复 GSM 数据,Wireshark 负责协议分析,密码学部分则负责处理 GSM 的空口加密。
二、GSM 是什么?#
GSM 是一种数字蜂窝移动通信标准。
与 LTE、5G 等现代移动通信系统相比,GSM 的无线接口结构相对简单,主要建立在:
- FDMA
- TDMA
- GMSK
- GSM 逻辑信道
- GSM 物理信道
- GSM 专用信令协议
之上。
GSM 使用 TDMA(Time Division Multiple Access,时分多址)。
一个 GSM TDMA Frame 可以简单表示为:
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ TS0 │ TS1 │ TS2 │ TS3 │ TS4 │ TS5 │ TS6 │ TS7 │
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘每一个时隙(Timeslot)都可以承载 GSM 的一个 Burst。
不同的逻辑信道会使用不同的物理资源。
因此,GSM 并不是简单的连续数据流,而是一套具有严格时间结构的无线通信系统。
三、GSM SDR 的基本工作原理#
使用 SDR 研究 GSM 时,可以将整个过程分为几个层次。
无线电信号
│
▼
IQ 数据
│
▼
GMSK 解调
│
▼
GSM Burst
│
▼
TDMA Frame
│
▼
信道解码
│
▼
GSM 协议数据
│
▼
GSMTAP
│
▼
Wireshark每一层解决的问题都不一样。
例如:
SDR:
如何把无线电信号转换成计算机能够处理的数据?
GSM 解调:
如何从 IQ 数据中恢复 GSM Burst?
协议解析:
这些 Burst 属于什么 GSM 信道和协议?
Wireshark:
如何进一步观察 GSM 协议字段?
A5/x:
如果空口数据启用了加密,该如何理解其安全机制?
四、SDR 与 IQ 数据#
SDR(Software Defined Radio,软件无线电)的核心思想,是尽可能把传统无线电设备中的信号处理过程交给软件完成。
一个简化的 SDR 结构如下:
天线
│
▼
射频前端
│
▼
ADC
│
▼
I/Q Samples
│
▼
计算机SDR 输出的数据通常是 I/Q(In-phase / Quadrature)采样。
需要注意:
IQ 数据本身并不是短信、电话号码或者语音。
例如:
IQ 数据
≠
SMS
≠
电话号码
≠
语音IQ 更接近于无线电波形的数字化记录。
后续还需要进行:
- 频率处理
- 同步
- 解调
- Burst 检测
- 信道解码
- 协议解析
才能逐渐恢复 GSM 数据。
五、GMSK 调制#
GSM 主要使用 GMSK(Gaussian Minimum Shift Keying,高斯最小频移键控)调制。
可以简单理解为:
数字数据
│
▼
GMSK 调制
│
▼
无线电波形接收过程则相反:
无线电波形
│
▼
IQ 数据
│
▼
GMSK 解调
│
▼
符号 / Bit因此 SDR GSM 研究本质上也涉及数字信号处理。
六、ARFCN#
GSM 使用 ARFCN(Absolute Radio Frequency Channel Number)标识无线信道。
可以简单理解为:
GSM 频段
│
▼
ARFCN
│
▼
对应无线频率在授权实验环境中,分析 GSM 信号时通常需要关注:
- ARFCN
- BSIC
- BCCH
- TDMA Frame Number
- Timeslot
- Channel Type
- Frequency Hopping
ARFCN 只是其中一个参数。
因此:
“找到一个 GSM 频率”并不等于已经完全理解了一个 GSM 小区。
七、FCCH、SCH 与 BCCH#
GSM 小区存在多种重要的控制信道。
其中比较重要的包括:
- FCCH
- SCH
- BCCH
它们承担不同的功能。
一个简化的理解方式是:
FCCH
│
▼
频率同步
│
▼
SCH
│
▼
同步 / 小区相关信息
│
▼
BCCH
│
▼
系统广播信息BCCH(Broadcast Control Channel)尤其重要。
基站会通过 BCCH 广播小区相关的信息,使移动设备能够了解当前小区的配置。
因此 GSM SDR 接收机通常需要先解决:
- 频率同步;
- 时间同步;
- 小区识别;
- 系统信息获取。
八、GSM Burst#
GSM 的无线数据不是直接以普通 IP Packet 的形式发送。
在物理层,它以 Burst 的形式进行传输。
一个普通 Burst 可以抽象为:
┌──────────┬──────────────┬──────────┬──────────┐
│ Payload │ Training Seq │ Payload │ Guard │
└──────────┴──────────────┴──────────┴──────────┘实际 Burst 类型会有所不同。
Training Sequence(训练序列)对于同步和信道估计非常重要。
因此 SDR 软件需要从无线波形中寻找正确的 Burst,并恢复其时间关系。
九、TDMA Frame Number#
GSM 使用 TDMA Frame Number 标识时间结构。
它并不是简单的网络数据包编号。
Frame Number 在 GSM 的无线通信和安全机制中都具有重要作用。
例如在 GSM 空口加密过程中,Frame Number 就是重要的输入参数之一。
可以简单表示为:
TDMA Frame
│
├── Timeslot 0
├── Timeslot 1
├── Timeslot 2
├── ...
└── Timeslot 7因此,在 GSM SDR 研究中,正确恢复 TDMA 时间结构非常重要。
十、gr-gsm#
gr-gsm 是一个基于 GNU Radio 的 GSM 软件无线电工具集。
它位于:
SDR
│
▼
GNU Radio
│
▼
gr-gsm
│
├── 同步
├── GSM 解调
├── Burst 处理
├── 信道解码
└── GSM 数据输出因此,gr-gsm 并不是简单的“抓包工具”。
它实际上承担了从:
IQ到:
GSM 数据之间的大量处理工作。
十一、GSMTAP#
GSMTAP 是 GSM SDR 分析流程中非常重要的一层。
它可以理解成:
将已经解码的 GSM 信息以适合协议分析工具处理的形式传递出去。
典型结构:
┌──────────────┐
│ SDR │
└──────┬───────┘
│
▼
┌──────────────┐
│ gr-gsm │
└──────┬───────┘
│
▼
┌──────────────┐
│ GSMTAP │
└──────┬───────┘
│
▼
┌──────────────┐
│ Wireshark │
└──────────────┘因此:
Wireshark 所看到的 GSM 数据,已经不是最初的无线电 IQ 数据。
它已经经历了多个处理阶段。
十二、Wireshark#
Wireshark 是一个网络协议分析工具。
在 GSM SDR 环境中,它可以用于分析已经解码的 GSM 协议数据。
可能涉及的协议包括:
GSM
│
├── RR
│
├── MM
│
├── CC
│
├── DTAP
│
└── SMSWireshark 的作用主要是:
- 协议解析
- 字段查看
- 数据包过滤
- Frame 分析
- 信令分析
- 协议层关联
因此需要明确:
Wireshark 本身不是 GSM 破解工具。
它更适合作为 GSM 协议分析器。
十三、GSM 信令#
GSM 包含多个重要的信令协议层。
13.1 RR#
RR(Radio Resource)主要负责无线资源管理。
例如:
- 无线信道管理
- 小区相关操作
- 无线测量
- 移动性相关信令
13.2 MM#
MM(Mobility Management)主要处理移动性管理和用户身份相关过程。
13.3 CC#
CC(Call Control)主要用于电路交换呼叫相关信令。
13.4 SMS#
SMS 相关消息可以通过 GSM 信令信道传输。
因此:
SMS并不是一个独立于 GSM 协议体系之外的东西。
十四、GSM 空口加密#
GSM 可以对无线接口上的通信进行加密。
简单表示:
明文
│
▼
GSM Ciphering
│
▼
密文
│
▼
无线传输因此 SDR 捕获到无线信号之后,即使已经完成:
同步
↓
解调
↓
Burst 解码也不一定直接得到明文。
可能得到的是:
GSM Frame
│
▼
Ciphered Payload这就是 SDR 和密码学之间的分界点。
十五、Kc 是什么?#
Kc 是 GSM 空口加密过程中使用的会话密钥。
需要注意几个容易混淆的概念:
| 参数 | 作用 |
|---|---|
| IMSI | 用户永久身份标识 |
| TMSI | 临时用户身份标识 |
| Ki | 与用户认证相关的长期秘密 |
| Kc | GSM 会话相关的加密密钥 |
| A5/x | GSM 空口加密算法 |
因此:
IMSI ≠ TMSI
TMSI ≠ Kc
Ki ≠ Kc知道 IMSI 或 TMSI 并不意味着自动知道 Kc。
十六、A5/x 加密算法#
GSM 并不存在一个唯一的“GSM 加密算法”。
A5 家族包含多个不同的算法。
常见的包括:
A5/0
A5/1
A5/2
A5/3
A5/4可以简单理解为:
| 算法 | 说明 |
|---|---|
| A5/0 | 不进行空口加密 |
| A5/1 | 早期 GSM 加密算法 |
| A5/2 | 历史上的弱化算法 |
| A5/3 | 基于 KASUMI 的加密方案 |
| A5/4 | A5 系列的扩展方案 |
因此不能简单认为:
GSM = A5/1。
实际使用的算法取决于具体网络和会话。
十七、为什么老 GSM Hacking 教程经常讲 A5/1?#
A5/1 是 GSM 安全研究历史中非常重要的算法。
原因包括:
- 历史部署范围较广;
- 存在大量公开密码分析研究;
- 存在针对 A5/1 的时间-空间权衡研究;
- 曾出现 Rainbow Table 等研究工具;
- 被广泛用于 GSM 安全教学。
因此很多经典教程都会把:
GSM
↓
A5/1
↓
Kc
↓
解密作为演示流程。
但这个流程不能代表所有 GSM 网络。
十八、Kc 与 Frame Number#
GSM 空口加密不是简单的:
密文 + Kc加密过程还涉及:
- Kc
- Frame Number
- 通信方向
- A5/x 算法
可以抽象为:
Kc
│
▼
┌─────────────┐
│ A5/x │
└──────┬──────┘
│
Frame Number
│
Direction
│
▼
Cipher Stream因此,正确的 GSM 同步和 Frame Number 恢复对于安全分析也非常重要。
十九、Frequency Hopping#
GSM 支持 Frequency Hopping(频率跳变)。
例如:
Frame 1 → F1
Frame 2 → F4
Frame 3 → F2
Frame 4 → F7
Frame 5 → F3如果 SDR 始终只监听一个频率:
SDR
│
▼
F1就可能无法获得完整的通信过程。
因此研究复杂 GSM 网络时,还需要考虑:
宽带 IQ
│
▼
信道化
│
├── ARFCN 1
├── ARFCN 2
├── ARFCN 3
└── ...
│
▼
频率跳变分析这也是实际 GSM SDR 分析比简单“调到一个频率”复杂的原因之一。
二十、语音和 SMS 的区别#
“成功解码 GSM”并不意味着可以直接得到电话录音。
SMS 和语音使用不同的协议和信道。
语音大致涉及:
语音
│
▼
Speech Codec
│
▼
GSM Traffic Channel
│
▼
Ciphering
│
▼
无线传输因此,即使完成 GSM 信令分析,也还需要进一步处理语音 Traffic Channel 和对应的语音 Codec。
二十一、经典三星 Modem 方法#
一些经典 GSM 安全研究文章使用过特定三星手机的 Modem 调试接口。
其历史结构大致可以理解为:
三星手机
│
▼
USB Modem Interface
│
▼
Modem / Diagnostic Interface
│
▼
调试信息
│
▼
GSM 会话相关参数在特定历史设备和固件环境下,研究人员可以利用这些接口获取基带相关信息。
这些信息随后可以用于研究 GSM 会话和空口加密。
二十二、为什么这个方法现在已经过时?#
这是旧教程中最需要注意的一部分。
这种方法高度依赖:
- 特定三星型号;
- 特定基带;
- 特定固件;
- 特定 USB 接口;
- 特定调试功能;
- 当时存在的漏洞或设计缺陷。
因此不能理解为:
任何 Android 手机
↓
USB
↓
AT 命令
↓
Kc现代手机通常采用更加封闭的基带架构:
┌──────────────────────┐
│ Application Processor│
└──────────┬───────────┘
│
│ IPC
▼
┌──────────────────────┐
│ Baseband │
└──────────┬───────────┘
│
▼
SIM / eSIM因此,老款三星手机的 Modem 调试方法更适合被视为:
GSM 安全研究历史中的一个案例。
而不是现代 GSM 的通用 Kc 获取方法。
二十三、2016 年 GSM Hacking 教程哪些内容已经过时?#
可以总结如下:
| 技术 / 方法 | 2026 状态 | 说明 |
|---|---|---|
| SDR 捕获 IQ | 🟢 仍然有效 | SDR 基础技术 |
| GSM GMSK | 🟢 仍然有效 | GSM 物理层 |
| TDMA Frame | 🟢 仍然有效 | GSM 核心结构 |
| ARFCN | 🟢 仍然有效 | GSM 信道标识 |
| BCCH | 🟢 仍然有效 | 广播信道 |
| BSIC | 🟢 仍然有效 | 小区识别 |
| GSMTAP | 🟢 仍然有效 | GSM 数据分析接口 |
| Wireshark | 🟢 仍然有效 | 协议分析 |
| Frequency Hopping | 🟢 仍然有效 | GSM 技术的一部分 |
| A5/x | 🟢 仍然有效 | GSM 加密体系 |
| Kc | 🟢 仍然有效 | 会话密钥概念 |
| A5/1 研究 | 🟡 主要用于历史研究 | 不代表所有 GSM |
| 老版 GNU Radio | 🔴 已过时 | API 和依赖变化 |
| 老版 gr-gsm 安装方法 | 🔴 已过时 | 软件环境发生变化 |
| 三星 Modem 获取 Kc | 🔴 高度过时 | 强依赖特定历史设备 |
| 默认附近存在 GSM | 🔴 不成立 | 各地区退网情况不同 |
| GSM 默认使用 A5/1 | 🔴 错误 | 可能使用其他 A5 算法 |
二十四、2026 年 GSM 网络的现状#
GSM 并没有在全球同时消失。
不同国家和运营商的 2G 退网时间不同。
因此:
地区 A
→ GSM 已经关闭
地区 B
→ GSM 仍然运行
地区 C
→ GSM 主要用于部分遗留设备或 M2M 场景在进行 GSM SDR 实验之前,首先需要确认:
实验地点是否存在合法、可研究的 GSM 测试环境。
如果 SDR 扫描不到 GSM,不一定意味着 SDR 配置错误。
也可能只是当地已经没有 GSM 网络。
二十五、2026 年推荐的 GSM SDR 学习路线#
与其直接复制十年前的 GSM Hacking 教程,更推荐按照下面的顺序学习。
第一阶段:GSM 基础#
学习:
- GSM 频段
- ARFCN
- GMSK
- TDMA
- Timeslot
- Burst
- Frame Number
- FCCH
- SCH
- BCCH
第二阶段:SDR 基础#
学习:
- Sampling
- I/Q
- Center Frequency
- Sample Rate
- Bandwidth
- Gain
- Frequency Offset
- SNR
重点不是记住某个 SDR 工具的命令,而是理解:
SDR 到底采集到了什么。
第三阶段:GSM 物理层#
理解:
IQ
│
▼
同步
│
▼
Burst Detection
│
▼
TDMA
│
▼
Channel完成这一阶段后,GSM 无线信号就不再是完全不可理解的波形。
第四阶段:gr-gsm#
再学习:
SDR
│
▼
GNU Radio
│
▼
gr-gsm
│
▼
GSMTAP此时 gr-gsm 不再是一个黑盒工具。
第五阶段:Wireshark#
学习:
GSMTAP
│
▼
GSM
│
├── RR
├── MM
├── CC
├── DTAP
└── SMS重点放在理解 GSM 协议,而不是单纯寻找“可以利用的字段”。
第六阶段:GSM 安全#
最后学习:
- GSM Authentication
- Ciphering
- Kc
- A5/0
- A5/1
- A5/2
- A5/3
- A5/4
- Cipher Mode
这样能够建立完整的 GSM 安全知识体系。
二十六、推荐的实验环境#
如果只是学习 GSM SDR,推荐使用:
- 自己的测试设备;
- 自己搭建的实验网络;
- 隔离的射频实验环境;
- 蜂窝网络模拟器;
- 公开的 GSM 测试数据;
- 明确授权的实验信号。
一个理想的实验架构可以表示为:
┌──────────────────────────────────┐
│ GSM 实验环境 │
│ │
│ 测试网络 / 蜂窝模拟器 │
│ │ │
│ ▼ │
│ 测试设备 │
│ │ │
│ ▼ │
│ SDR │
│ │ │
│ ▼ │
│ gr-gsm │
│ │ │
│ ▼ │
│ GSMTAP │
│ │ │
│ ▼ │
│ Wireshark │
│ │
└──────────────────────────────────┘这种方式能够避免把真实第三方通信作为实验对象。
同时也更容易重复实验、排查问题和验证不同 GSM 配置。
二十七、从旧教程到现代 GSM SDR#
经典 GSM Hacking 教程最大的价值,并不是某个已经无法复现的脚本。
真正值得保留的是它展示出来的研究思路:
无线信号
│
▼
物理层
│
▼
Burst / TDMA
│
▼
GSM 信道
│
▼
GSM 协议
│
▼
安全机制
│
▼
密码学其中:
SDR解决:
如何获得无线信号?
gr-gsm解决:
如何从无线信号恢复 GSM 数据?
GSMTAP / Wireshark解决:
如何分析 GSM 协议?
A5/x / Kc则属于:
GSM 空口安全机制。
二十八、旧教程最应该保留和删除的部分#
应该保留#
SDR
↓
IQ
↓
GSM
↓
Burst
↓
TDMA
↓
GSM Channel
↓
GSMTAP
↓
Wireshark
↓
Ciphering
↓
A5/x这些内容具有长期学习价值。
应该谨慎对待#
A5/1 破解它具有重要的历史研究价值,但不能代表现代 GSM 网络的全部安全状况。
应该作为历史资料处理#
特定三星手机
↓
老 Modem 接口
↓
旧 AT / Diagnostic Interface
↓
获取 GSM 会话参数这类方法高度依赖历史硬件和软件环境,不应被当成现代 Android 手机的通用技术。
二十九、完整的 GSM SDR 思维模型#
理解 GSM SDR 最重要的不是记住某个命令,而是建立下面这个模型:
GSM
│
┌───────────┴───────────┐
│ │
物理层 安全层
│ │
▼ ▼
SDR A5/x
│ │
▼ ▼
IQ Kc
│
▼
GMSK
│
▼
Burst
│
▼
TDMA Frame
│
▼
GSM Channel
│
▼
GSMTAP
│
▼
Wireshark
│
▼
协议分析掌握这个结构之后,再去学习具体工具会容易很多。
三十、总结#
GSM SDR 是一个非常典型的无线通信安全研究领域。
它同时涉及:
无线电工程
+
软件无线电
+
数字信号处理
+
蜂窝通信协议
+
网络安全
+
密码学SDR 负责解决:
无线信号能否被捕获?
GSM 解调负责解决:
IQ 数据能否恢复成 GSM Burst 和 Frame?
GSMTAP 和 Wireshark 负责解决:
GSM 协议能否被进一步分析?
A5/x 和 Kc 则负责解释:
GSM 如何保护空口通信?
因此,理解 GSM SDR 最好的方式不是简单地把它理解成:
“用 SDR 破解 GSM。”
而应该理解成:
无线电信号
↓
数字信号处理
↓
GSM 物理层
↓
GSM 信道
↓
GSM 协议
↓
安全机制
↓
密码学经典 GSM Hacking 教程虽然已经有相当一部分内容过时,但它们仍然能够帮助我们理解 GSM 安全研究的发展过程。
到了 2026 年,更合理的方法是:
保留协议原理,更新软件环境,淘汰过时的设备依赖,并使用授权的实验环境进行研究。
三十一、安全与法律说明#
GSM 无线电分析可能涉及受到监管的无线电频段,也可能涉及敏感通信数据。
因此:
- 不应截获第三方通信;
- 不应分析未经授权的用户数据;
- 不应在未经许可的频段进行主动发射;
- 不应将本文作为窃听真实移动通信的操作指南。
建议使用:
- 自有设备;
- 自有测试网络;
- 隔离实验环境;
- 蜂窝网络模拟器;
- 公开测试数据;
- 明确授权的无线电信号。
本文中的安全分析内容以协议理解、历史研究和授权实验为前提。
三十二、文档状态#
最后更新: 2026-08-13
本文主要用于 GSM、SDR 和无线通信安全技术研究。
由于 GSM 网络部署、软件工具和移动设备基带架构持续发生变化,十年前的 GSM Hacking 教程中的具体命令、设备和漏洞不应直接视为现代 GSM 环境下的通用方法。
本文将优先维护:
- GSM 协议原理
- SDR 技术
- GSM 物理层
- GSMTAP
- Wireshark 分析
- A5/x 安全机制
- GSM 安全研究历史
- 现代 GSM 网络环境变化