我需要寻求你的帮助,因为我觉得我的思路有些疏漏。因此,我从一个全新的 docker 中安装了 gr-gsm 及其所有依赖项 https://github.com/uetacog/grgsm_docker 因为我在从源代码设置所有所需版本时遇到了问题,没有冲突。我买了一个便宜的 rtl-sdr,像这样 https://www.amazon.com/RTL-SDR-Receiver-1760MHz-RTL2832U-Antenna/dp/B0BXF1F9ZN/ref=sr_1_13?keywords=rtl-sdr&qid=1693221437&sr=8-13&th=1 我希望我不会因为低成本的选择而错过包裹……
我首先在显示 BCCH 号码的服务模式的帮助下检查了我的 MS(三星 J5)正在使用的 ARFCN,结果是 50。然后我在 arfcn 50 上启动了 gr-gsm livemon,并开始在 wireshark 上接收数据包,然后我检查了系统信息类型 1 以查看参与跳频计划的 ARFCN 列表,它只显示 2(50 和 79)但我注意到在我所在的区域似乎没有任何 79 频道广告,我希望在我的 gr-gsm-scan 或 kalibrate 中看到它(但如果我错了请纠正我,所有跳频频道都应该通过扫描可见吗?),即使查看我所在区域的 BTS 地图,似乎我家附近也没有 79 arfcn 可用,我甚至尝试在 79 下行链路信道上调整我的 rtl-sdr,但似乎该频率上没有传输数据,然后我尝试了上行链路,因为在服务模式下我看到切换传输通道从 50 到 79,但什么也没看到,但在这种情况下,我听到人们谈论没有下行时钟的上行数据同步问题,所以我认为这是正常的,最后说没问题!我基本上有一个单通道传输,我可以用一个 sdr 解码它!
所以我设法找到家里的一个旧读卡器,并向从手机中取出的 SIM 卡发送了一些 APDUS 来读取 TMSI 和 Kc,APDU 是
'A02000010831313131ffffffff' verify pin 1111
'A0A40000027F20' enter folder DFGSM
'A0A40000026F20' file EF 6F20 (which should be the Kc)
'A0B0000008' read 8 bytes
我找到了 GSMACCESS Kc 的其他 EF,但它说在我的 SIM 上找不到,我想这是一个不同的密钥。无论如何,我可以读取 TMSI 和 Kc,并且长度是正确的,甚至 IMSI 也是正确的。但我知道 TMSI 可以在任何电话活动中以及根据网络需求经常更改,只需一个 TMSI 重新分配请求就可以以加密方式完成,因此我可能无法从解码的捕获中发现任何发生这种情况的迹象。但 Kc 应该通过位置更新请求或在身份验证过程中进行更新,但我可以看到用我的读卡器读取 SIM 卡时它总是发生变化而我却没有捕获任何身份验证或位置更新,会发生这种情况吗?或者我错过了一些数据包?即使只有一个可用通道,它是否与跳频协议有关?我看到许多即时分配,一些使用 SDCCH8 和时隙分配,其他不同:
Packet Channel Description
0000 1... = Channel Type: 1
.... .101 = Timeslot: 5
010. .... = Training Sequence: 2
.... .0.. = Spare: 0x00
.... ..00 0000 .... = Hopping channel MAIO: 0
.... 0... = Hopping channel MA_NUMBER_IND: 0
.... ..01 = CHANGE_MARK_1: 1
代替
Channel Description
0111 0... = SDCCH/8 + SACCH/C8 or CBCH (SDCCH/8): 14
Subchannel: 6
.... .001 = Timeslot: 1
010. .... = Training Sequence: 2
...1 .... = Hopping Channel: Yes
Hopping channel MAIO: 0
HSN: 1
我不知道我的手机活动是否在 SDCCH8 以外的其他地方
我的目的是知道密钥后解密我的短信,但我必须将我的读卡器连接到 SIM 卡,同时在手机中查看特定短信中使用的 Kc,但在此之前我想弄清楚为什么当我的手机更改 Kc 时我没有看到一些预期的数据包,如 Auth、位置更新。
我希望有人能给我一些提示或解释,我对 GSM 还很陌生,谢谢!再见!