SIM 卡 / UICC 的读取与取证分析

SIM 卡是移动设备里最容易被忽视、但单件信息密度最高的证物。

最后更新 2026-10-09版本 v1.0维护 DigiForensics查看历史 0

关键词:SIM、UICC、USIM、ICCID、IMSI、MSISDN、LAI、MCC、MNC、PIN/PUK、SIMCON 难度:进阶 前置知识:Android 数据存储总览、GSM 基本概念、十六进制编辑基础

一、概述

SIM 卡是移动设备里最容易被忽视、但单件信息密度最高的证物。

它不是"存储通讯录的小芯片",而是一张遵循 GSM 11.11 标准的智能卡(smart card)。

智能卡在网络侧的身份是唯一凭证——没有它,手机连不上任何基站。运营商必须靠它完成鉴权,于是它得把三件事存下来:这张卡属于哪个国家、哪家网络、哪个用户、最近在哪些小区出现过。

这份清单是运营商在网络侧写下来的,不是用户能编辑的。

没有把它纳入检材会怎样:位置类结论会失去最可靠的一条独立旁证。手机本机的定位缓存,应用能覆盖,系统日志能清理。而 SIM 卡上的驻留位置列表由网络侧驱动写入,用户正常操作清不掉。

只有手机本机数据时,"这台设备当时在哪个区域"往往只有一个来源。SIM 卡数据一进来,整个结论的强度就变了。

在取证流程中的位置:本篇属于独立的证据线,与设备取证平行,不从属于它。

特点是几乎不受设备状态影响。手机锁屏、加密、应用数据全在 FBE 密钥后面,SIM 卡照样能读。设备侧全面受阻的时候,这往往是最后的出口。

它同时是身份关联的枢纽。IMSI 与 ICCID 是把卡的记录、手机本机的账号、流量会话串成同一个人的关键标识。

SIM 卡取证的三个特点:

  1. 物理尺寸极小,信息密度极高。25mm × 15mm 的卡片里装着几十个结构化文件,涵盖身份标识、网络参数、联系人、短信,以及近期的驻留位置。
  2. 它是"运营商视角的设备快照"。手机本机日志可能被用户清理、可能被应用覆盖,但卡内位置值由网络侧驱动写入,用户无法正常清除——这使它成为位置类证据里可靠度较高的一类。但它只有一个值,没有历史,所以"快照"这个词比"轨迹"准确。
  3. 它只反映"插卡的那张卡",不反映设备全貌。eSIM、双卡双待、换卡换机都会让 SIM 卡证据与设备证据脱节,必须与其他工件交叉验证。

涉及的证据形态里,有几个标识符必须按原样写进报告:

形态 具体位置 结构特征
物理载体 UICC 卡的 8 触点(ISO/IEC 7816) C4 是 I/O 数据通道,剪掉就读不出任何数据
文件树 MF(3F00)→ ADF(USIM 用 AID A0000000871004)→ DF → EF 树形,遵循 ISO 7816-4
应用目录 USIM 应用 AID = A0000000871004,SIM 应用 AID = A0000000871002 现代 4G/5G 读的是 USIM,不是老的 SIM
身份标识 ICCID(卡号)、IMSI(用户标识)、MSISDN(手机号) 归属判断与交叉关联的入口
网络标识 MCC / MNC / LAI / TMSI LAI = 小区 ID + LAC,位置分析的载体
联系人与短信 EF 下的联系人文件、短信文件(SMS 在 SIM/USIM 应用下) 读取受访问保护约束
访问保护 PIN / PUK / CHV 错误次数超限会永久锁卡——这是本篇最重要的一条不可逆风险
物理转储 卡片的完整物理镜像 用于留存与复核,见 3.7

能回答什么:这张卡属于哪个国家、哪家运营商、哪个用户、最近在哪些小区出现过(对应哪个区域)、卡内联系人与短信、这张卡与手边这台设备是否匹配。

不能回答什么:用户用这张卡做过什么。它只记录卡侧状态,不记录使用行为。也答不了精确位置——LAI 到小区,不到坐标。答不了持卡人身份,IMSI 属于一个号段,不是一个人。基站侧的通话与上网记录同样答不了,那属于运营商侧数据,需另行授权调取,不在卡上。

本文不做的事:不提供 PIN/PUK 的爆破或绕过方法。错误尝试次数超限会永久锁卡——这既是技术事实,也是法律边界:解锁必须由有权知道密码的人完成,或在有明确授权的前提下进行,并遵循最小化原则。不做卡的克隆或复制,涉及他人通信身份,性质远重于数据取证。

读者前提:需要 GSM 网络的基本概念(基站、小区、鉴权)、ISO 7816 的分层文件模型,以及硬件操作能力(读卡器选择、触点识别)。工具只需一支支持 USIM 的读卡器与对应软件。

强烈建议先读 4.2 解锁操作——这是本领域唯一会永久销毁证据的操作。其余操作错了可以补救,这一项不能。

二、核心原理

2.1 UICC 与 SIM 的关系

严格说,手机里插的是 UICC(Universal Integrated Circuit Card,通用集成电路卡),"SIM 卡"是通俗叫法。UICC 是物理载体,上面可以运行多个应用,其中之一是 SIM(Subscriber Identity Module,用户身份模块)。

UICC(物理卡)
 ├── SIM(GSM 应用)      ← 2G/3G 通用
 ├── USIM(UMTS 应用)    ← 3G/4G 通用,文件名为 USIM
 ├── USIM2(第二张 USIM) ← 双卡设备
 └── 其他应用(出行卡、银行卡等)

这个区分有实际意义:现代 4G/5G 网络读的是 USIM 应用,不是老的 SIM 应用。

工具在读取时先读 ATR 判断卡内有哪些应用,再按 AID 逐个 SELECT。

3G00 与 2G00 不是文件 ID,而是某些工具对 AID 的简写(分别指 USIM 与 SIM 应用)。标准的 AID 是:

应用 AID
SIM(GSM) A0000000871002
USIM A0000000871004

SELECT 之后,DF(GSM) 与 DF(USIM) 都挂在 7F20 下,靠当前选中的 AID 区分看到的内容。

所以读卡工具必须支持 USIM。只支持老 SIM 的工具会读不到现代字段(6FE3 EPSLOCI、6F08/6F09 密钥等),或者只能读到 GSM 时代的 KC。

2.2 物理规格与针脚定义

项目 规格
早期全尺寸卡 85mm × 54mm × 0.76mm
标准卡(ID-1) 25mm × 15mm × 0.76mm
微型卡(ID-000) 15mm × 12mm
卡端 8 个触点(ISO/IEC 7816 定义)
工作电压 1.8V / 3.0V(由复位应答中的电压指示字节决定)

ID-1 卡的 8 触点功能如下,取卡时按触点排布是唯一的物理线索:

触点 名称 功能
C1 VCC 供电(1.8V 或 3.0V)
C2 RST 复位
C3 CLK 时钟
C4 I/O 数据双向通道
C5 VPP 编程电压(现代卡常悬空)
C6 VEE 地
C7 RST2 第二复位(备用)
C8 CLK2 第二时钟(备用)

物理截取 SIM 卡的常见做法是从手机中取出卡,剪成小片保留触点。

剪掉了 C4(I/O),卡就读不出任何数据——这是 SIM 取证最常见的硬件级失败原因。 剪之前必须确认数据触点保留。

2.3 层级文件系统

SIM 卡的内部文件是三层树形结构,遵循 ISO 7816-4:

MF(Master File,主文件,3F00)  ← 根
 ├── DF(Dedicated File,专用文件)  ← 目录
 │    ├── EF(Elementary File,基本文件)  ← 数据实际存放处
 │    └── DF(可嵌套)
 └── EF

常见的专用文件(DF):

DF 文件 ID 父目录 用途
EF(DIR) 2F00 MF UICC 上的应用目录,列出卡内装了哪些应用
DF(GSM) 7F20 MF GSM 应用根目录(SIM 与 USIM 各自的 GSM 分支)
DF(TELECOM) 7F10 MF 电话号码簿与短信等业务文件的父目录
DF(PHONEBOOK) 5F3A DF(TELECOM) 联系人目录(USIM 的 PBR 增强结构)
DF(MULTIMEDIA) 5F3B DF(TELECOM) MMS 目录

7F10 和 7F20 是 MF 下的平级兄弟,不是父子。 这一点写错会直接导致 SELECT 路径失败:

MF 3F00
 ├── 7F10 DF.TELECOM
 │    ├── 5F3A DF.PHONEBOOK   (USIM 增强电话簿,内含 4F30 EF.PBR)
 │    ├── 6F3A EF.ADN
 │    ├── 6F3B EF.FDN
 │    └── 6F3C EF.SMS
 ├── 7F20 DF.GSM
 │    ├── 6F07 EF.IMSI
 │    ├── 6F20 EF.Kc        (GSM 侧的 8 字节密钥)
 │    ├── 6F30 EF.PLMNsel
 │    └── 6F7E EF.LOCI
 └── 2FE2 EF.ICCID          ← 注意:ICCID 直接挂在 MF 下,不在上面任何一个目录里

完整路径要写全三段:3F00:7F10:6F3C 才是 EF(SMS) 的定位。写成 3F00:7F20:6F3C 会返回 6A82(文件不存在)——这是排查方向,不是卡损坏。

另一层容易混的地方:USIM 也是一个应用(ADF),选中后它自己有一套根目录,里面同样有 7F20 分支。SIM 应用的 7F20 和 USIM 应用的 7F20 文件 ID 相同、内容不同,靠 SELECT 的 AID 区分。所以工具显示「7F20 下是 SIM 还是 USIM 的文件」取决于当前选中的应用,这是正确行为。

EF 按访问结构分四类,取证价值完全不同:

类型 结构 特点 取证价值
Transparent 固定长度 固定字节数,读一次全出 高,ICCID / IMSI / PLMN / 位置值都在这类
Linear fixed 线性定长记录 每条记录等长 高,ADN/FDN/SMS 属此类,偏移可算
Cyclic 循环记录 覆盖写,只留最近 中,LDN 只保最后一次
TLV / BER 变长 TLV 自描述长度 中,配置类参数如 6F38 UST、6F4E 等能力配置

结构类型本身是取证判据:知道一个 EF 是 linear fixed 还是 cyclic,就知道它的记录数与单条偏移怎么算、哪些位置是空闲槽位(linear fixed 的空闲记录通常是 FF 填充,可据此判断"曾经有过多少条")。

2.4 标识符体系:ICCID / IMSI / MSISDN

这是最容易混淆的一组。三者完全不同,取证时必须分开记录。

标识 全称 长度 存哪 能否唯一定位设备
ICCID Integrated Circuit Card ID 19–20 位 卡内透明文件 否,只是卡序列号
IMSI International Mobile Subscriber Identity 15 位 SIM/USIM 透明文件 是,全球唯一的用户身份
MSISDN Mobile Subscriber ISDN Number 号码 运营商侧为主 否,且卡上未必有

ICCID 的结构(以 89 91 10 1200 00 320451 0 为例):

89 91 10 1200 00 320451 0
│  │  │  │    │  │      └─ Luhn 校验位(1 位)
│  │  │  │    │  └──────── 卡序列号(6 位)
│  │  │  │    └─────────── 交换配置码(2 位)
│  │  │  └──────────────── 生产年月 YYYYMM(4 位)
│  │  └─────────────────── 发行方标识号(2 位)
│  └────────────────────── 国家码(2 位)
└───────────────────────── 主行业标识(MII,2 位)

前 7 位(MII + 国家码 + 发行方标识)组成 IIN(Issuer Identification Number)。

IMSI 的结构:

MCC(3 位) + MNC(2–3 位) + MSIN(其余位数)
│       │          └─ 用户号码,与手机号不同
│       └───────────── 移动网络代码
└───────────────────── 移动国家码

IMSI 与手机号(MSISDN)是两个独立标识。用户可以换号不换卡,也可以补卡不改号。所以:

  • 不能用 IMSI 直接查手机号,必须通过运营商的 HLR 查询(需授权)
  • IMSI 有 15 位,但早期网络存在 14 位的遗留格式,解析时不要假设定长

2.5 网络标识:MCC / MNC / LAI / TMSI

这组参数是 SIM 卡上位置取证的核心。

标识 全称 含义
MCC Mobile Country Code 3 位国家码(中国 = 460)
MNC Mobile Network Code 2–3 位网络码
LAI Location Area Identity MCC + MNC + LAC,共 5–6 位
TMSI Temporary Mobile Subscriber Identity 临时身份,每次开机重新分配
RAI Routing Area Identity LAI + Routing Area ID,粒度更细

LAI 的取证机制是本篇最值得理解的部分——而这里有一个必须先纠正的误解。

SIM/USIM 卡上不保存 LAI 历史列表,只保存「最后一次」的位置。 这一族文件都是单值透明文件,每个接入域一个,覆盖写:

EF(LOCI)  '6F7E'  11 字节  transparent   电路域(CS)
 ├─ 1–4    TMSI(4 字节,按 TS 24.008 编码)
 ├─ 5–9    LAI(5 字节)
 ├─ 10     RFU(GSM 11.11 记为 TMSI TIME)
 └─ 11     Location update status

EF(PSLOCI) '6F73'  14 字节  transparent   分组域(PS)
 ├─ 1–4    P-TMSI
 ├─ 5–7    P-TMSI signature value(3 字节)
 ├─ 8–13   RAI(6 字节 = LAI 5 + RAC 1)
 └─ 14     Routing Area update status

EF(EPSLOCI) '6FE3'  18 字节  transparent   EPS 域(LTE,USIM 侧)
 ├─ 1–12   GUTI(12 字节,取自 TS 24.301 的 EPS mobile identity 部分)
 ├─ 13–17  Last visited registered TAI(5 字节)
 └─ 18     EPS update status

LAI 那 5 字节不是「MCC 3 + MNC 2 + LAC 2」按字节平铺,而是三个标识的紧凑数字打包:MCC 占 2 字节半、MNC 占 1 字节半(末位按 MNC 位长补 F)、LAC 占 2 字节,字节内是数字 BCD、低半字节在前。所以「460-00 + LAC 2A10」在文件里占 5 字节而不是 7 字节。TAI 结构同理,是 MCC + MNC + TAC 的同样打包。

必须记住的否定性事实:卡上没有"位置历史列表"。 「关机重开机不必扫频、只遍历卡上 LAI 列表逐一问询」这个说法在终端侧的缓存/内存优化层面成立, 但那不是卡上存着多条记录。卡上只有一个当前值,每次位置更新是覆盖写入。 任何声称"从 SIM 卡读出了 LAI 历史"的结果,数据一定来自终端或网络侧,不是卡本身。

两个取证特性直接由这个结构推出来:

  1. 覆盖写 → 卡上没有位置历史。想知道"这台卡去过哪些地方",卡本身答不了,需要终端日志(基站信息缓存、Cell ID 记录)或运营商侧数据
  2. 写入由网络侧驱动 → 用户无法正常清除。但"无法清除"只对当前值成立

仍然必须理解的局限:LAI 精度只到"位置区"级,一个位置区可能覆盖整个城市的一片区域。LAI 不是 GPS 坐标,详见 4.3。

TMSI 的取值有独立价值:它在每次开机时重新分配。若设备关机后再未启动,TMSI 是陈旧的;若设备一直运行,TMSI 可能仍然有效——但同样地,卡上只有当前这一份,没有历史。

2.6 访问保护:PIN / PUK / CHV

SIM 卡的访问控制机制,以及必须严格遵守的操作红线:

机制 长度 尝试上限 失败后果
PIN(CHV1) 4 位 3 次 卡被锁定,需 PUK 解锁
PUK(CHV2) 8 位 10 次 卡永久损坏,需更换
PIN2 4 位 3 次 需 PUK2 解锁

这张表是本篇最重要的操作约束:

PUK 连错 10 次,SIM 卡会永久失效(bricking)。这不是软件锁定,是芯片级熔断,运营商也无法恢复。

这意味着:在授权范围不明确时,绝不能尝试 PIN 解锁。 三次错误尝试本身就可能造成不可逆后果——如果委托方手上没有 PUK,这张卡就废了。

正确做法,按这个顺序:

  1. 先确认授权范围(见 4.2),书面确认是否允许解锁
  2. 优先使用卡内已有的可读数据——即使不解锁,很多 Transparent 文件的公开部分仍可读取(ICCID 不需要 PIN)
  3. 如果委托方能提供 PUK 且明确授权,再进行尝试,并记录每次尝试

不要做的事:写脚本暴力枚举 PIN。4 位 PIN 只有 10000 种,但在 3 次尝试限制下毫无意义——平均要试 5000 次才有一次命中,而卡只给你 3 次。本文不提供任何绕过尝试次数限制的方法:这类手段在多数司法辖区属于破坏访问控制的违法行为,即便技术上可行也不应实施。本篇只讨论在有明确授权的前提下,如何用最少次数完成合法解锁。

2.7 eSIM 与物理 SIM 的差异

现代设备越来越多用 eSIM(嵌入式 SIM,UICC 形态的芯片直接焊在主板上,或以封装形式存在)。

取证上的差异是根本性的:

维度 物理 SIM eSIM
可否取出 可取出 不可取出
取证方式 读卡器直接读 只能从设备侧读 eSIM 管理数据
换卡后 旧卡留存,可独立分析 旧配置可能被覆盖
主要风险 物理丢失 与主板绑定,设备销毁即不可恢复

eSIM 的取证路径目前主要靠这几条:

  • 设备系统层暴露的 eSIM 配置(Android 的 euicc 相关服务、iOS 的 CoreTelephony 调试接口)
  • 部分厂商的诊断/工程模式
  • 运营商侧的 eSIM 平台记录(需运营商配合)

也就是说,eSIM 场景下,SIM 卡取证退化为设备取证的一个子任务,没法像物理卡那样独立获取。


三、操作步骤

3.1 硬件准备与读卡器选择

必备器材:

器材 规格要求 说明
SIM 读卡器 支持 ISO 7816,支持 1.8V/3.0V 自动切换 便宜的 USB 读卡器常不支持 3.0V
SIM 卡座 带金属压片,接触可靠 避免松动导致间歇性读失败
防静电袋 — 防止静电损坏
相机 带微距 全程拍照记录
标签 编号 + 日期 封存标识

读卡器选择盯三个指标:

  • 必须支持 UICC 而非只支持旧 SIM。所谓"GSM 手机读卡器"往往是老式,只读 2G 应用
  • 1.8V / 3.0V 双电压。现代 4G USIM 多为 1.8V,老卡是 3.0V
  • 接触式(而非 NFC)。手机用 NFC 模拟读取的方案兼容性差,且不能保证稳定

取卡流程每一步都要拍照:

1. 记录设备开机状态(若设备在开机,先拍照屏幕)
2. 关机 → 取 SIM 卡托
3. 拍照:卡托在设备中的位置
4. 取出卡 → 立即拍照:卡正反面,ICCID 可见
5. 装入读卡器 → 拍照:连接方式
6. 开始读取

注意:很多设备在关机状态下取卡会触发"卡未被正确移除"提示,但这不影响卡的电芯供电状态。若设备在开机状态取卡,部分机型会短暂给卡断电,影响数据完整性——关机取卡是更安全的做法。

3.2 判定是否需要 PIN 解锁

读卡的第一件事是评估锁定状态,不是直接尝试解锁。

# 用 SIM 工具读取卡状态(示例工具名为通用占位)
sim_read --reader /dev/ttyUSB0 --info

典型输出:

安全验证 当前请求需要先完成一次滑块验证。