ASN.1 DER 编码的 Profile 安装包/Profile 实例
整体结构
该二进制数据不是单个 ASN.1 根对象,而是多个 ProfileElement 的 TLV 流:
ProfileElement ::= CHOICE { |
顶层标签含义(由 AUTOMATIC TAGS 分配):
| Tag | ProfileElement 类型 |
|---|---|
A0 |
header → ProfileHeader |
B0 |
mf → PE-MF |
A3 |
pukCodes → PE-PUKCodes |
A2 |
pinCodes → PE-PINCodes |
B3 |
usim → PE-USIM |
BC |
df-5gs → PE-DF-5GS |
BD |
df-saip → PE-DF-SAIP |
A4 |
akaParameter → PE-AKAParameter |
A5 |
cdmaParameter → PE-CDMAParameter |
A6 |
securityDomain → PE-SecurityDomain |
A7 |
rfm → PE-RFM |
A8 |
application → PE-Application |
A9 |
nonStandard → PE-NonStandard |
AA |
end → PE-End |
各 ProfileElement 解析及含义
header(A0)
对应 ASN.1 类型:
ProfileHeader ::= SEQUENCE { |
从 hex 中可识别:
major-version = 2minor-version = 1(示例可能使用早期版本号)profileType = "TestSim Profile"iccid为 10 字节,本例编码为89 00 01 23 45 67 89 01 23 41eUICC-Mandatory-services包含:usimmilenagejavacardget-identityprofile-a-x25519
eUICC-Mandatory-GFSTEList包含多个模板 OID,例如:{2 23 143 1 2 1}(MF 模板){2 23 143 1 2 4}(USIM 模板){2 23 143 1 2 5}{2 23 143 1 2 7}
作用:描述该 Profile 的版本、类型、ICCID、eUICC 必须支持的服务,以及必须支持的 GFSTE(Generic File System Template Element)模板 ID。
mf(B0)
对应 ASN.1 类型:
PE-MF ::= SEQUENCE { |
mf-header.identification = 1templateID = {2 23 143 1 2 1},表示使用规范定义的 MF 模板- 创建了 MF 下的文件:
EF_PL:优先 PLMN 列表EF_ICCID:集成电路卡标识符EF_DIR:目录文件,包含 USIM AID:A0000000871002FF33FF018900000100
EF_ARR:访问规则参考文件,定义了 15 条访问规则EF_UMPC:可选文件
作用:创建 UICC 主文件(MF)及其基础文件系统,是 Profile 文件系统树的根。
pukCodes(A3)
对应 ASN.1 类型:
PE-PUKCodes ::= SEQUENCE { |
puk-Header.identification = 2- 定义了 3 个 PUK:
pukAppl1:PUK 值00000000,重试次数 9/9pukAppl2:PUK 值12345678secondPUKAppl1:PUK 值12345678,重试次数 8/8
作用:为 PIN 提供解锁密钥(PUK),当 PIN 被锁定时用于解锁。
pinCodes(A2)
对应 ASN.1 类型:
PE-PINCodes ::= SEQUENCE { |
pin-Header.identification = 3- 定义了 3 个全局 PIN:
pinAppl1:PIN =1234,由pukAppl1解锁pinAppl2:PIN =0000,由pukAppl2解锁adm1:ADM 密钥 =5678
作用:定义 PIN 和 ADM 密钥,用于保护文件访问、EF 更新、激活/去激活等操作。
usim(B3)
对应 ASN.1 类型:
PE-USIM ::= SEQUENCE { |
usim-header.identification = 4templateID = {2 23 143 1 2 4},表示 USIM 模板- 创建
ADF_USIM,AID 为:A0000000871002FF33FF018900000100
- 主要文件:
EF_IMSI:IMSI 值EF_ARR:链接到 MF 下的EF_ARREF_UST:USIM 服务表,包含服务拨号、短消息、SUCI 隐私支持等EF_SPN:服务提供商名称,本例为"SIMalliance"EF_EST:启用服务表,本例为00EF_ACC:接入控制类,本例为0040EF_ECC:紧急呼叫号码,本例包含911
作用:创建 3G/4G 网络接入应用(USIM)所需的文件系统,包含 IMSI、服务表、SPN 等。
df-5gs(BC)
对应 ASN.1 类型:
PE-DF-5GS ::= SEQUENCE { |
df-5gs-header.identification = 100templateID = {2 23 143 1 2 13}- 包含 5G 相关文件:
EF_5GS3GPPLOCI/EF_5GSN3GPPLOCI:5G 位置信息EF_5GAUTHKEYS:5G 认证密钥EF_UAC-AIC:UAC 接入标识符EF_SUCI-CALC-INFO:SUCI 计算信息EF_OPL5G:5G 运营商 PLMN 列表EF_NSI:网络切片指示EF_ROUTING-INDICATOR:路由指示器
作用:为 5G 网络接入提供必要文件,支持 SUCI 隐私保护、网络切片、5G 位置更新等。
df-saip(BD)
对应 ASN.1 类型:
PE-DF-SAIP ::= SEQUENCE { |
df-saip-header.identification = 101templateID = {2 23 143 1 2 14}- 包含
EF_SUCI-CALC-INFO-USIM:USIM 侧 SUCI 计算所需参数
作用:提供 SUCI(Subscription Concealed Identifier)计算参数,支持 5G 用户标识隐私保护。
akaParameter(A4)
对应 ASN.1 类型:
PE-AKAParameter ::= SEQUENCE { |
aka-header.identification = 6- 算法为
Milenage - 参数包括:
key:000102030405060708090A0B0C0D0E0Fopc:0102030405060708090A0B0C0D0E0F00authCounterMax:010203- SQN 参数使用默认值
作用:配置 USIM/ISIM 的 AKA 认证算法参数,用于 3G/4G/5G 网络鉴权。
cdmaParameter(A5)
对应 ASN.1 类型:
PE-CDMAParameter ::= SEQUENCE { |
cdma-header.identification = 15- 包含:
authenticationKey:A-Keyssd:共享秘密数据 A/B- HRPD、简单 IP、移动 IP 认证参数
作用:为 CDMA 网络接入提供 CAVE 认证密钥和 IP 认证参数。
securityDomain(A6)
示例中出现两个安全域实例:
对应 ASN.1 类型:
PE-SecurityDomain ::= SEQUENCE { |
- 第一个安全域(MNO SD):
- 实例 AID:
A000000151000000 - 支持 SCP80 和 SCP03
- 包含 ENC/MAC/DEK 密钥集
- 实例 AID:
- 第二个安全域(SSD):
- 实例 AID:
A00000055910100102736456616C7565 - 包含另一组 SCP80 密钥
- 实例 AID:
作用:提供 Profile 安装后的安全通道保护、密钥管理、个人化数据,是 eUICC 安全架构的核心。
rfm(A7)
对应 ASN.1 类型:
PE-RFM ::= SEQUENCE { |
- 两个 RFM 实例:
- UICC RFM:
instanceAID = A00000055910100001,TAR =B00000 - USIM RFM:
instanceAID = A00000055910100002,TAR =B00020,并关联ADF_USIM
- UICC RFM:
作用:定义远程文件管理(Remote File Management)实例,允许通过 CAT/TS 或 OTA 远程管理 Profile 内的文件。
application(A8)
对应 ASN.1 类型:
PE-Application ::= SEQUENCE { |
- 两个 Applet 实例:
- Applet 1:
- 加载包 AID:
A000000559101001 - 实例 AID:
A00000055910100111223301
- 加载包 AID:
- Applet 2:
- 加载包 AID:
A000000559101003 - 实例 AID:
A00000055910100344556601 - 关联到 SSD 安全域
- 加载包 AID:
- Applet 1:
作用:在 Profile 中安装 Java Card 小程序,扩展 UICC 功能。
nonStandard(A9)
对应 ASN.1 类型:
PE-NonStandard ::= SEQUENCE { |
nonStandard-header.identification = 13issuerID = {2 23 143 1 2 1}content = 02000100
作用:承载厂商或组织专有数据,本例为 GSMA 定义的专有内容。
end(AA)
对应 ASN.1 类型:
PE-End ::= SEQUENCE { |
end-header.identification = 99- 无其他数据
作用:标记 ProfileElement 列表结束,表示该 Profile 安装包解析完成。
实例数据解读
A052800102810101820C6553494D2050726F66696C65830A20260807131700000006A506810084008B00A628060667810F010201060667810F010203060667810F010204060667810F010205060667810F010207B08201F1A0058000810101810667810F010201A207A105C60301020AA40C830A02628070317100000060A527A109820442210026800198831A61184F10A0000000871002FF33FF01890000010050045553494DA682019EA10A8204422100258002022B831B8001019000800102A406830101950108800158A40683010A95010882010A8316800101A40683010195010880015AA40683010A95010882010F830B80015BA40683010A95010882011A830A800101900080015A970082011B8316800103A406830101950108800158A40683010A95010882010F8316800111A40683010195010880014AA40683010A95010882010F8321800103A406830101950108800158A40683010A950108840132A4068301019501088201048321800101A406830101950108800102A406830181950108800158A40683010A950108820104831B800101900080011AA406830101950108800140A40683010A95010882010A8310800101900080015AA40683010A95010882011583158001019000800118A40683010A95010880014297008201108310800101A40683010195010880015A97008201158316800113A406830101950108800148A40683010A95010882010F830B80015EA40683010A95010882011A83258001019000800102A010A406830101950108A406830102950108800158A40683010A950108A337A0058000810102A12E300D80010181083131313131313131300D80010281083131313131313131300E8002008181083131313131313131A25EA0058000810103A155A0533013800101810831323334FFFFFFFF8201018301063010800102810831323334FFFFFFFF820102301480010A81083131313131313131830101840200AA301480010B81083030303030303030830101840200AAB282016CA0058000810104810667810F010203A206A104C602010AA306A104C7022F06A511A10782024121800106830685046553494DAF0AA10883025F3AC602010AB04EA10D82044221003D83024F3080013D833DA81EC0034F5801C4034F6803C6034F9005C5034F6009C9034F8807C1034F5011A905CA034F780FAA14C2034F380CC7034F4014C8034F4815CB034F980EB10CA10A83024F38800182880160B212A11082044221000F83024F4080012D8801A0B312A11082044221000F83024F488001788801A8B402A100B502A100B602A100B712A11082044221000183024F508001C8880188B813A11182044221001E83024F5880021770880108B90DA10B83024F6080020190880148BA13A11182044221000F83024F6880020BB8880118BC13A11182044221002A83024F7880020834880178BE0DA10B83024F8880020190880138BF1F13A11182044221000883024F9080020640880128BF2012A11082044221000F83024F9880014B880170B382013DA0058000810105810667810F010204A21DA11B83027FF18410A0000000871002FF33FF018900000100C60301810AA30B8309081900000000000010A406A104C7022F06A523832107FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA623832107FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA703830105A828A1118202412183026F388B0102800113880120831302001C1C233400000000100000000000000000A913A11182044221002283026F3B8B010880020154AD1CA107820241218001118311005459FFFFFFFFFFFFFFFFFFFFFFFFFFFFAE0CA10782024121800101830100AF088306F00000F00000B0058303FFFFFFB20483020040B317A10783026F7B80011E830CFFFFFFFFFFFFFFFFFFFFFFFFB506830400000002B6068304FFFFFF00A21FA0058000810106A116A014301280020081810830303030FFFFFFFF82020081B481F1A0058000810107810667810F010205A705A1038B0105AF33A10783026F608001288328FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000B033A10783026F618001648328FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000B110A10783026F6280010583051300144000BF2618A10D82044221001083026FC580011083044302545982010BBF271BA10D82044221000883026FC6800110830A13001440000000FFFE01BF3A23A10783026FD980013C831864F010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB81CA0058000810108810667810F010207A207A105C60301810AA300A400A438A005800081010BA12CA12A80010181010182101111111111111111111111111111111183101111111111111111111111111111111182010EA681BBA005800081010CA1444F07A00000015153504F08A0000001515350414F08A000000151000000820382DC0083010FC90A810280008201F08701F0EA11800F0100010100000202011203B2010000A26C30229501388201018301013017301580018886105280533746DDE10D6F5BFFD6ED3C9D0F302295013482010283010130173015800188861098B135A1093C518BF034CC4FF6C888C930229501C8820103830101301730158001888610B5E7C12830BBB56A339DE8B2935610B4A722A005800081010D4F09A00000055910100001A0050403B00000810116040100040100A73CA005800081010E4F09A00000055910100002A0050403B0002081011604010004010030188010A0000000871002FF33FF018900000100810100820100AA07A0058000810163 |
Profile 头部(ProfileHeader,标签 A0)
ASN定义
ProfileHeader ::= SEQUENCE { |
对应的实例数据
A0 52 |
这是 Profile 的元数据,必须位于数据流最前面。
| ASN.1 字段 | 解码值 | 含义与作用 |
|---|---|---|
major-version |
2 |
符合 Profile Interoperability V2.x 规范 |
minor-version |
1 |
规范小版本号(示例数据使用了早期版本) |
profileType |
"USIM Profile" |
Profile 类型名称,用于人机交互界面 |
iccid |
20260807131700000006 |
集成电路卡标识符,20 位数字,用于识别物理/逻辑卡,是运营商管理的关键标识 |
eUICC-Mandatory-services |
usim, milenage, javacard |
eUICC 平台必须支持的服务:USIM 应用、Milenage 鉴权算法、Java Card 运行环境 |
eUICC-Mandatory-GFSTEList |
模板 OID:1, 3, 4, 5, 7 |
eUICC 必须支持的文件系统模板:MF、TELECOM、USIM、OPT-USIM、GSM-ACCESS |
pol(可选) |
不存在 | 未提供策略标识 |
connectivityParameters(可选) |
不存在 | 未提供连接参数 |
主文件(PE-MF,标签 B0)
ASN结构为
PE-MF ::= SEQUENCE { |
对应的数据实例为
B0 8201F1 |
| 子项 | 解码值 | 说明 |
|---|---|---|
| PE 头 | mandated 存在,identification=1 |
该 ProfileElement 为强制安装 |
| 模板 ID | {2 23 143 1 2 1} |
使用规范定义的 MF 默认模板 |
MF 文件(mf) |
pinStatusTemplateDO='01020A'H |
MF 目录启用 PIN1 验证,后续访问 MF 下的文件需验证 PIN1 |
EF_DIR(目录文件) |
包含一条记录: AID: A0000000871002FF33FF018900000100标签: USIM |
向终端注册 USIM 应用,终端通过该 AID 选择 USIM |
EF_ARR(访问规则参考) |
15 条记录(每条 37 字节) 规则示例: [读取: 始终] [更新/创建EF: PIN1/PIN2] [去激活/激活: ADM1] |
定义文件系统的访问控制矩阵,是本 Profile 安全模型的基石 |
EF_UMPC(可选) |
不存在 | 未创建 |
PUK 码(PE-PUKCodes,标签 A3)
asn结构为
PUKConfiguration ::= SEQUENCE { |
实例数据为
A3 37 |
| PUK 引用 | PUK 值 | 最大尝试/剩余次数 | 作用 |
|---|---|---|---|
pukAppl1 (1) |
11111111 |
10/10 | 解锁全局 PIN1 |
pukAppl2 (2) |
11111111 |
10/10 | 解锁全局 PIN2 |
secondPUKAppl1 (129) |
11111111 |
10/10 | 解锁 USIM 本地 PIN |
含义:当 PIN 连续输错被锁定时,使用对应的 PUK 进行解锁。本 Profile 中所有 PUK 初始值均为
11111111。
PIN 码(PE-PINCodes,标签 A2)
ASN结构为
PINConfiguration ::= SEQUENCE { |
实例数据为
A2 5E |
| 密钥引用 | PIN/ADM 值 | 关联 PUK | 属性 | 含义 |
|---|---|---|---|---|
pinAppl1 (1) |
1234 |
pukAppl1 |
已启用(属性=1) | 全局 PIN1,用于保护 EF 更新、文件创建等操作 |
pinAppl2 (2) |
1234 |
pukAppl2 |
默认(属性=7) | 全局 PIN2,用于特定安全操作 |
adm1 (10) |
11111111 |
无 | 已启用(属性=1) | 管理员密钥 1,用于激活/去激活/删除 Self 等高危操作 |
作用:PIN 是用户级凭证,ADM 是管理级凭证。本 Profile 中全局 PIN 统一为
1234,ADM 为11111111。
TELECOM 专用文件(PE-TELECOM,标签 B2)
ASN定义为
PE-TELECOM ::= SEQUENCE { |
数据实例为
B2 82016C |
| 子项 | 解码值 | 说明 |
|---|---|---|
| PE 头 | mandated 存在,identification=4 |
强制安装 |
| 模板 ID | {2 23 143 1 2 3} |
使用 TELECOM 默认模板 |
DF_TELECOM |
pinStatusTemplateDO='010A'H |
启用 PIN1 验证 |
EF_ARR |
链接路径 '2F06'H(指向 MF 下的 EF_ARR) |
共享 MF 的访问规则,避免重复定义 |
其他 EF(如 EF_RMA、EF_SUME 等) |
均未提供实际内容,按模板创建空文件或使用默认填充模式 | 为后续可选功能预留文件空间 |
USIM 应用(PE-USIM,标签 B3)
ASN定义为:
|
对应的数据实例为
B3 82012A |
这是 3G/4G/5G 网络接入的核心部分。
| 子项 | 解码值 | 说明 |
|---|---|---|
| PE 头 | mandated 存在,identification=5 |
强制安装 |
| 模板 ID | {2 23 143 1 2 4} |
使用 USIM 默认模板 |
ADF_USIM AID |
A0000000871002FF33FF018900000100 |
USIM 应用标识,终端通过该 AID 选择 USIM |
EF_IMSI |
填充内容:07FFFFFFFFFFFFFFFFFFFF...(全 F 占位符) |
IMSI 未写入实际值,仅预留存储空间,等待运营商后期写入 |
EF_UST(服务表) |
0A2E178CE732040000... |
支持的服务:服务拨号、短消息存储、SUCI 隐私支持等 |
EF_SPN(服务提供商名称) |
"USIM"(ASCII) |
终端显示的网络名称 |
EF_EST(启用服务表) |
00 |
无额外服务启用 |
EF_ACC(接入控制类) |
0040 |
仅允许接入等级 2 |
EF_ECC(紧急呼叫码) |
19F1FF01 |
包含紧急号码 911 |
EF_ARR |
链接路径 '2F06'H |
共享 MF 的 EF_ARR |
EF_KEYS / EF_HPPLMN 等 |
使用 fillPattern 或 repeatPattern 填充为特定值(如 FFFF...) |
为 CK/IK 密钥、HPLMN 选择器等预留存储空间 |
关键点:
EF_IMSI为全FF,说明该 Profile 尚未个性化,属于测试或模板 Profile。
字段解释:
| 字段 | 类型 | 含义与作用 |
|---|---|---|
usim-header |
PEHeader |
通用头部,包含 mandated(强制安装标志)和 identification(PE 唯一标识) |
templateID |
OBJECT IDENTIFIER |
标识使用的文件系统模板(如 {2 23 143 1 2 4}) |
adf-usim |
File |
创建 ADF_USIM(应用专用文件),包含 dfName(AID,如 A0000000871002FF33FF018900000100)和 pinStatusTemplateDO 等控制参数 |
ef-imsi |
File |
创建 EF_IMSI,存储国际移动用户识别码(IMSI),是网络鉴权的核心标识 |
ef-arr |
File |
创建 EF_ARR(访问规则参考文件),定义该 ADF 下的文件访问权限(通常链接到 MF 下的 EF_ARR) |
ef-keys |
File(可选) |
创建 EF_KEYS,用于存储 3G/4G 鉴权密钥(CK、IK) |
ef-keysPS |
File(可选) |
创建 EF_KEYSPS,用于存储 PS(分组交换)域鉴权密钥 |
ef-hpplmn |
File(可选) |
创建 EF_HPPLMN,存储 HPLMN 选择器(归属 PLMN) |
ef-ust |
File(必选) |
创建 EF_UST(USIM 服务表),指示 USIM 支持的服务(如服务拨号、短消息、SUCI 隐私等),eUICC 安装时会根据平台能力修改其内容 |
ef-fdn |
File(可选) |
创建 EF_FDN(固定拨号号码),用于限制拨出号码 |
ef-sms |
File(可选) |
创建 EF_SMS,存储短消息 |
ef-smsp |
File(可选) |
创建 EF_SMSP,存储短消息参数 |
ef-smss |
File(可选) |
创建 EF_SMSS,存储短消息状态 |
ef-spn |
File(必选) |
创建 EF_SPN(服务提供商名称),用于在终端显示网络名称(如“中国移动”) |
ef-est |
File(必选) |
创建 EF_EST(启用服务表),指示哪些服务已启用 |
ef-start-hfn |
File(可选) |
创建 EF_START-HFN,存储起始 HFN(超帧号)用于加密 |
ef-threshold |
File(可选) |
创建 EF_THRESHOLD,存储阈值参数 |
ef-psloci |
File(可选) |
创建 EF_PSLOCI,存储 PS 域位置信息 |
ef-acc |
File(必选) |
创建 EF_ACC(接入控制类),定义终端允许的接入等级 |
ef-fplmn |
File(可选) |
创建 EF_FPLMN(禁止 PLMN),存储禁止的 PLMN 列表 |
ef-loci |
File(可选) |
创建 EF_LOCI,存储 CS 域位置信息 |
ef-ad |
File(可选) |
创建 EF_AD(管理数据),包含运营商标识等 |
ef-ecc |
File(必选) |
创建 EF_ECC(紧急呼叫码),存储紧急号码列表(如 911) |
ef-netpar |
File(可选) |
创建 EF_NETPAR,存储网络参数 |
ef-epsloci |
File(可选) |
创建 EF_EPSLOCI,存储 EPS(LTE)位置信息 |
ef-epsnsc |
File(可选) |
创建 EF_EPSNSC,存储 EPS 网络特定信息 |
作用:PE-USIM 是 3G/4G/5G 网络接入的核心,它创建了 USIM 应用所需的所有文件,包括用户身份、密钥存储、位置信息、服务表等,是 Profile 中最关键的 PE 之一。
PE-OPT-USIM(标签 B4)—— 可选 USIM 文件
ASN.1 定义(节选):PE-OPT-USIM ::= SEQUENCE {
optusim-header PEHeader,
templateID OBJECT IDENTIFIER,
ef-li File OPTIONAL,
ef-acmax File OPTIONAL,
ef-acm File OPTIONAL,
ef-gid1 File OPTIONAL,
ef-gid2 File OPTIONAL,
ef-msisdn File OPTIONAL,
ef-puct File OPTIONAL,
...
ef-eaka File OPTIONAL
}
字段含义(仅列出常用字段):
| 字段 | 含义与作用 |
|---|---|
ef-gid1 |
组标识 1,用于运营商分组管理 |
ef-gid2 |
组标识 2,类似 GID1 |
ef-msisdn |
存储用户的 MSISDN(手机号码) |
ef-spn |
可选覆盖 SPN |
ef-pnn |
PLMN 网络名称,用于显示 |
ef-opl |
运营商 PLMN 列表,用于网络选择 |
ef-ehplmn |
等效 HPLMN 列表 |
ef-iccid |
可选存储 ICCID |
| … | 其他文件用于 GBA、MMS、IMS 等增强功能 |
作用:提供 USIM 的可选文件,用于扩展功能,如电话号码、GBA(通用引导架构)、IMS 配置等。并非所有 Profile 都包含此 PE。
PE-ISIM(标签 B5)—— ISIM 应用(IMS)
ASN.1 定义:PE-ISIM ::= SEQUENCE {
isim-header PEHeader,
templateID OBJECT IDENTIFIER,
adf-isim File,
ef-impi File,
ef-impu File,
ef-domain File,
ef-ist File,
ef-ad File OPTIONAL,
ef-arr File
}
字段解释:
| 字段 | 含义与作用 |
|---|---|
adf-isim |
创建 ADF_ISIM,AID 为 ISIM 应用标识 |
ef-impi |
存储私有用户标识(IMPI),用于 IMS 鉴权 |
ef-impu |
存储公共用户标识(IMPU),用于 IMS 注册 |
ef-domain |
存储归属域名(如 ims.mncxxx.mccxxx.3gppnetwork.org) |
ef-ist |
ISIM 服务表,指示支持的服务,eUICC 会根据平台能力修改其内容 |
ef-ad |
管理数据(可选) |
ef-arr |
访问规则参考(链接到 EF_ARR) |
作用:为支持 VoLTE、VoWiFi 等 IMS 业务提供必要的鉴权和注册信息。
PE-OPT-ISIM(标签 B6)—— 可选 ISIM 文件
ASN.1 定义(节选):PE-OPT-ISIM ::= SEQUENCE {
optisim-header PEHeader,
templateID OBJECT IDENTIFIER,
ef-pcscf File OPTIONAL,
ef-sms File OPTIONAL,
ef-smsp File OPTIONAL,
ef-smss File OPTIONAL,
ef-smsr File OPTIONAL,
ef-gbabp File OPTIONAL,
ef-gbanl File OPTIONAL,
ef-nafkca File OPTIONAL,
ef-uicciari File OPTIONAL,
ef-frompreferred File OPTIONAL,
ef-imsconfigdata File OPTIONAL,
ef-xcapconfigdata File OPTIONAL,
ef-webrtcuri File OPTIONAL,
ef-mudmidconfigdata File OPTIONAL
}
字段含义:
| 字段 | 含义与作用 |
|---|---|
ef-pcscf |
代理 CSCF 地址,用于 IMS 注册 |
ef-sms 等 |
短消息存储 |
ef-gbabp |
GBA(通用引导架构)引导参数 |
ef-imsconfigdata |
IMS 配置数据 |
ef-webrtcuri |
WebRTC URI |
作用:扩展 ISIM 功能,支持 IMS 配置、GBA、短消息等可选特性。
PE-PHONEBOOK(标签 B7)—— 电话本文件
ASN.1 定义(节选):PE-PHONEBOOK ::= SEQUENCE {
phonebook-header PEHeader,
templateID OBJECT IDENTIFIER,
df-phonebook File,
ef-pbr File OPTIONAL,
ef-adn File OPTIONAL,
ef-iap File OPTIONAL,
ef-email File OPTIONAL,
...
}
字段含义:
| 字段 | 含义与作用 |
|---|---|
df-phonebook |
创建电话本专用目录 DF_PHONEBOOK |
ef-pbr |
电话本参考文件,定义每个联系人的记录结构 |
ef-adn |
存储姓名和号码(ADN) |
ef-email |
存储电子邮件地址 |
ef-iap |
索引文件,关联 ADN 和其他扩展文件 |
作用:在 UICC 上创建独立的电话本存储空间,支持联系人管理。
PE-DF-5GS(标签 BC)—— 5GS 专用文件
ASN.1 定义(节选):PE-DF-5GS ::= SEQUENCE {
df-5gs-header PEHeader,
templateID OBJECT IDENTIFIER,
df-df-5gs File,
ef-5gs3gpploci File OPTIONAL,
ef-5gsn3gpploci File OPTIONAL,
ef-5gs3gppnsc File OPTIONAL,
ef-5gsn3gppnsc File OPTIONAL,
ef-5gauthkeys File OPTIONAL,
ef-uac-aic File OPTIONAL,
ef-suci-calc-info File OPTIONAL,
ef-opl5g File OPTIONAL,
ef-supinai File OPTIONAL,
ef-routing-indicator File OPTIONAL,
ef-ursp File OPTIONAL,
ef-tn3gppsnn File OPTIONAL,
ef-cag File OPTIONAL,
ef-sor-cmci File OPTIONAL,
ef-dri File OPTIONAL,
ef-5gsedrx File OPTIONAL,
ef-5gnswo-conf File OPTIONAL,
ef-mchpplmn File OPTIONAL,
ef-kausf-derivation File OPTIONAL
}
字段含义(核心):
| 字段 | 含义与作用 |
|---|---|
df-df-5gs |
创建 5GS 目录 |
ef-5gs3gpploci |
5G 3GPP 位置信息 |
ef-5gsn3gpploci |
5G 非 3GPP 位置信息 |
ef-5gauthkeys |
存储 5G AKA 相关密钥 |
ef-uac-aic |
UAC(统一接入控制)接入标识符 |
ef-suci-calc-info |
SUCI(订阅隐藏标识符)计算所需参数(如公钥、加密方案) |
ef-opl5g |
5G 运营商 PLMN 列表 |
ef-supinai |
SUPI(永久订阅标识符)的 NAI 格式 |
ef-routing-indicator |
路由指示器 |
ef-ursp |
UE 路由选择策略 |
ef-cag |
封闭接入组 |
ef-sor-cmci |
5G 安全上下文管理 |
ef-kausf-derivation |
KAUSF 派生参数 |
作用:为 5G SA(独立组网)提供必需的文件,支持 5G 鉴权、位置更新、隐私保护(SUCI)、网络切片(URSP)等 5G 核心功能。
PE-RFM(标签 A7)—— 远程文件管理
ASN.1 定义:PE-RFM ::= SEQUENCE {
rfm-header [0] PEHeader,
instanceAID [APPLICATION 15] ApplicationIdentifier,
securityDomainAID [APPLICATION 15] ApplicationIdentifier OPTIONAL,
tarList [0] SEQUENCE (SIZE (1..MAX)) OF OCTET STRING (SIZE(3)) OPTIONAL,
minimumSecurityLevel [1] OCTET STRING (SIZE (1)),
uiccAccessDomain OCTET STRING,
uiccAdminAccessDomain OCTET STRING,
adfRFMAccess ADFRFMAccess OPTIONAL
}
字段解释:
| 字段 | 含义与作用 |
|---|---|
rfm-header |
PE 头部,标签为 [0],ID 和强制标志 |
instanceAID |
RFM 实例的 AID,用于选择该 RFM 应用 |
securityDomainAID |
关联的安全域 AID,用于安全通道 |
tarList |
TAR(工具包应用参考)列表,用于 CAT_TP 寻址 |
minimumSecurityLevel |
最低安全级别(如加密、校验和) |
uiccAccessDomain |
UICC 访问域(权限) |
uiccAdminAccessDomain |
管理访问域 |
adfRFMAccess |
指定默认 ADF 选择信息(AID 和访问域) |
作用:创建一个远程文件管理应用,允许通过 CAT_TP 或 OTA 远程管理 Profile 内的文件(创建、更新、删除)。是 Profile 远程维护的重要组件。
PE-Application(标签 A8)—— 应用/小程序加载
ASN.1 定义:PE-Application ::= SEQUENCE {
app-Header PEHeader,
loadBlock ApplicationLoadPackage OPTIONAL,
instanceList SEQUENCE (SIZE (1..MAX)) OF ApplicationInstance OPTIONAL
}
ApplicationLoadPackage ::= SEQUENCE {
loadPackageAID [APPLICATION 15] ApplicationIdentifier,
securityDomainAID [APPLICATION 15] ApplicationIdentifier OPTIONAL,
nonVolatileCodeLimitC6 [PRIVATE 6] OCTET STRING OPTIONAL,
volatileDataLimitC7 [PRIVATE 7] OCTET STRING OPTIONAL,
nonVolatileDataLimitC8 [PRIVATE 8] OCTET STRING OPTIONAL,
hashValue [PRIVATE 1] OCTET STRING OPTIONAL,
loadBlockObject [PRIVATE 4] OCTET STRING
}
ApplicationInstance ::= SEQUENCE {
applicationLoadPackageAID [APPLICATION 15] ApplicationIdentifier,
classAID [APPLICATION 15] ApplicationIdentifier,
instanceAID [APPLICATION 15] ApplicationIdentifier,
extraditeSecurityDomainAID [APPLICATION 15] ApplicationIdentifier OPTIONAL,
applicationPrivileges [2] OCTET STRING,
lifeCycleState [3] OCTET STRING (SIZE(1)) DEFAULT '07'H,
applicationSpecificParametersC9 [PRIVATE 9] OCTET STRING,
systemSpecificParameters [PRIVATE 15] ApplicationSystemParameters OPTIONAL,
applicationParameters [PRIVATE 10] UICCApplicationParameters OPTIONAL,
processData SEQUENCE (SIZE (1..MAX)) OF OCTET STRING OPTIONAL,
controlReferenceTemplate [16] ControlReferenceTemplate OPTIONAL
}
字段解释:
| 字段 | 含义与作用 |
|---|---|
loadBlock |
加载包信息,包含 CAP 文件(小程序字节码)的二进制对象 |
instanceList |
小程序实例列表,每个实例可独立安装 |
loadPackageAID |
加载包的 AID(通常是 CAP 文件的标识) |
securityDomainAID |
关联的安全域,用于加载时的安全通道 |
nonVolatileCodeLimitC6 |
非易失性代码存储限制 |
volatileDataLimitC7 |
易失性数据存储限制 |
nonVolatileDataLimitC8 |
非易失性数据存储限制 |
hashValue |
CAP 文件的哈希值,用于完整性校验 |
loadBlockObject |
CAP 文件实际二进制数据 |
applicationLoadPackageAID |
引用已加载的包 |
classAID |
小程序的类 AID |
instanceAID |
实例 AID,用于选择该小程序实例 |
extraditeSecurityDomainAID |
委派的安全域 AID(如果该小程序被委派给另一个 SD) |
applicationPrivileges |
应用特权(如安全域、信任路径等) |
lifeCycleState |
生命周期状态(如安装、锁定、激活) |
applicationSpecificParametersC9 |
应用特定参数(如 SCP 支持、TAR) |
systemSpecificParameters |
系统参数(如内存配额、联系less 参数) |
applicationParameters |
UICC 应用参数(如 CAT 应用参数) |
processData |
处理数据(如初始化数据) |
controlReferenceTemplate |
控制引用模板(如应用提供商标识) |
作用:允许在 Profile 中嵌入 Java Card 小程序,扩展 eUICC 功能(如支付、安全认证、增值业务)。多个小程序可共享同一个加载包。
PE-NonStandard(标签 A9)—— 非标准专有扩展
ASN.1 定义:PE-NonStandard ::= SEQUENCE {
nonStandard-header PEHeader,
issuerID OBJECT IDENTIFIER,
content OCTET STRING
}
字段解释:
| 字段 | 含义与作用 |
|---|---|
nonStandard-header |
PE 头部 |
issuerID |
颁发者 OID,用于标识该专有数据的定义者(如 {2 23 143 1 2 1} 表示 GSMA) |
content |
任意字节流,内容由颁发者定义 |
作用:为厂商或组织提供可扩展的专有数据存储机制,用于实现规范未覆盖的特殊功能(如测试参数、私有协议)。
根据您的要求,下面详细介绍顶级目录下的 A6 (PE-SecurityDomain)、AA (PE-End) 和 B8 (PE-GSM-ACCESS) 这三个 ProfileElement 结构。
PE-SecurityDomain(标签 A6)—— 安全域
ASN.1 定义(来自您提供的规范):PE-SecurityDomain ::= SEQUENCE {
sd-Header PEHeader,
instance ApplicationInstance, -- see section 8.7.3
keyList SEQUENCE (SIZE (1..MAX)) OF KeyObject OPTIONAL,
sdPersoData SEQUENCE (SIZE (1..MAX)) OF OCTET STRING OPTIONAL,
openPersoData SEQUENCE {
restrictParameter [PRIVATE 25] OCTET STRING (SIZE(1)) OPTIONAL,
contactlessProtocolParameters OCTET STRING OPTIONAL
} OPTIONAL,
catTpParameters SEQUENCE {
catTpMaxSduSize UInt16,
catTpMaxPduSize UInt16
} OPTIONAL
}
PE-SecurityDomain 用于在 eUICC 上创建 安全域(Security Domain, SD),这是 GlobalPlatform(GP)卡规范的核心组件,负责密钥管理、安全通道建立和 Profile 的加密保护。它分为 ISD-P(Profile 专属安全域) 或 SSD(辅助安全域)。
各字段含义与作用:
| 字段 | 类型 | 含义与作用 |
|---|---|---|
sd-Header |
PEHeader |
通用头部,包含 mandated(是否强制安装)和 identification(该 PE 的唯一 ID,用于错误定位)。 |
instance |
ApplicationInstance |
安全域实例信息。定义该安全域的 AID、生命周期、特权等。这是必须字段,具体子字段见下文。 |
keyList |
SEQUENCE OF KeyObject (可选) |
密钥列表。包含该安全域用于安全通道(如 SCP03、SCP80)的加密、MAC、解密密钥。每个 KeyObject 包含密钥用途、标识符、版本、组件(密钥类型和密钥数据)。 |
sdPersoData |
SEQUENCE OF OCTET STRING (可选) |
安全域个性化数据。包含运营商或 SM-DP+ 用于初始化安全域的特定数据,例如证书、计数器或特定算法参数。 |
openPersoData |
SEQUENCE (可选) |
开放个性化数据。包含: - restrictParameter:限制参数,用于控制非接触式协议的启用。- contactlessProtocolParameters:非接触式协议参数(如 SWP/HCI 配置)。 |
catTpParameters |
SEQUENCE (可选) |
CAT_TP(Card Application Toolkit Transport Protocol)参数。包含: - catTpMaxSduSize:最大 SDU(服务数据单元)大小。- catTpMaxPduSize:最大 PDU(协议数据单元)大小。用于支持通过 CAT_TP 进行的远程文件管理(RFM)或数据传输。 |
ApplicationInstance 子字段详解(用于安全域实例):
| 子字段 | 标签 | 含义与作用 |
|---|---|---|
applicationLoadPackageAID |
[APPLICATION 15] |
加载包 AID,通常指向提供该安全域运行时的加载文件。 |
classAID |
[APPLICATION 15] |
类 AID,标识该安全域的应用类。 |
instanceAID |
[APPLICATION 15] |
实例 AID,这是安全域在 eUICC 中的唯一标识符(如 A000000151000000),用于选择该安全域进行安全通道建立。 |
extraditeSecurityDomainAID |
[APPLICATION 15] (可选) |
委派安全域 AID,当该实例需要委派权限给另一个 SD 时使用(如 SSD 委派给 ISD-P)。 |
applicationPrivileges |
[2] |
应用特权,指示该安全域拥有的权限(如安全域权限、信任路径权限、联系人权限)。编码符合 GP 规范。 |
lifeCycleState |
[3] |
生命周期状态(默认 '07'H,即“已个性化”)。常见状态包括:01(安装)、03(可操作)、07(已锁定)等。 |
applicationSpecificParametersC9 |
[PRIVATE 9] |
应用特定参数,用于指示支持的安全协议和算法(如 SCP80、SCP03、密钥长度等)。例如 810280008201F0 表示支持 SCP80。 |
systemSpecificParameters |
[PRIVATE 15] (可选) |
系统特定参数,如内存配额、非接触式参数、CAT 参数等(GP Amd C/D)。 |
applicationParameters |
[PRIVATE 10] (可选) |
UICC 应用参数,用于该安全域的 TAR(工具包应用参考)和 MSL(最大安全级别)等。 |
KeyObject 子字段详解:
| 子字段 | 标签 | 含义与作用 |
|---|---|---|
keyUsageQualifier |
[21] |
密钥用途限定符,定义密钥用途(如 38 表示 C-ENC + R-ENC,34 表示 C-MAC + R-MAC)。 |
keyAccess |
[22] |
密钥访问权限,指示密钥是否可由应用使用(默认 '00'H 表示可由 SD 和关联应用使用)。 |
keyIdentifier |
[2] |
密钥标识符(KID),1 字节,用于在安全通道协议中引用该密钥(如 01、02)。 |
keyVersionNumber |
[3] |
密钥版本号(KVN),1 字节,用于密钥轮换和版本管理。 |
keyCounterValue |
[5] (可选) |
密钥计数器值,用于限制密钥使用次数(如 SCP03 计数器)。 |
keyComponents |
SEQUENCE |
密钥组件,包含: - keyType:密钥类型(如 80 表示 DES,88 表示 AES)。- keyData:密钥实际数据(十六进制字节串)。- macLength:MAC 长度(默认 8 字节)。 |
PE-End(标签 AA)—— 结束标记
ASN.1 定义:PE-End ::= SEQUENCE {
end-header PEHeader
}
PE-End 是最简单也最关键的 PE,用于 标记 ProfileElement 列表的终结。
各字段含义与作用:
| 字段 | 类型 | 含义与作用 |
|---|---|---|
end-header |
PEHeader |
通用头部,通常包含 mandated(可省略)和 identification(例如常用 ID 99)。该头部不携带其他数据。 |
作用:
- 当 eUICC 解析到
PE-End时,会停止解析后续数据,并认为 Profile 安装包已经结束。 - 如果 Profile 包中没有
PE-End,eUICC 可能会因为数据流未正确终止而报错。 - 位置限制:
PE-End必须是最后一个顶级元素。任何放在它后面的数据都将被忽略或导致解析错误。
PE-GSM-ACCESS(标签 B8)—— GSM 接入文件
ASN.1 定义(来自您提供的规范):PE-GSM-ACCESS ::= SEQUENCE {
gsm-access-header PEHeader,
templateID OBJECT IDENTIFIER,
df-gsm-access File,
ef-kc File OPTIONAL,
ef-kcgprs File OPTIONAL,
ef-cpbcch File OPTIONAL,
ef-invscan File OPTIONAL
}
PE-GSM-ACCESS 用于在 UICC 上创建 DF_GSM_ACCESS(GSM 接入目录),该目录包含 2G(GSM)和 GPRS 网络接入所需的文件。虽然现代网络以 3G/4G/5G 为主,但此 PE 保证了设备的向后兼容性。
各字段含义与作用:
| 字段 | 类型 | 含义与作用 |
|---|---|---|
gsm-access-header |
PEHeader |
通用头部,包含 mandated 和 identification。 |
templateID |
OBJECT IDENTIFIER |
标识所使用的模板 ID(如 {2 23 143 1 2 8},对应 PE-GSM-ACCESS 的默认模板)。 |
df-gsm-access |
File |
创建 DF_GSM_ACCESS 目录。该 File 结构通常包含一个 fileDescriptor(指定目录类型和访问控制)和一个 pinStatusTemplateDO(启用 PIN 验证)。 |
ef-kc |
File (可选) |
创建 EF_KC(GSM 加密密钥文件)。存储 GSM 网络鉴权中使用的 Kc(加密密钥),用于 A5 加密算法。 |
ef-kcgprs |
File (可选) |
创建 EF_KCGPRS(GPRS 加密密钥文件)。存储 GPRS 网络鉴权中使用的 KcGPRS 密钥,用于 GEA 加密算法。 |
ef-cpbcch |
File (可选) |
创建 EF_CPBCCH(CP BCCH 信息文件)。存储 GSM 小区广播控制信道(CBCH)的参数,用于小区广播服务。 |
ef-invscan |
File (可选) |
创建 EF_INVSCAN(扫描间隔文件)。存储 GSM 网络搜索的扫描间隔参数,用于优化小区选择。 |
作用:
- 为仅支持 2G 或需要回退到 2G 网络的场景提供鉴权密钥和网络参数。
- 虽然大多数现代 Profile 可能省略此 PE,但在一些 IoT(物联网)或低带宽场景下仍有价值。
- 该 PE 通常在
PE-USIM之后出现,因为 USIM 文件系统内部有时会引用DF_GSM_ACCESS或共享其文件。
缺失字段(MSISDN / profileOwner / MCC/MNC)
| 字段 | 是否包含 | 原因与说明 |
|---|---|---|
| MSISDN | ❌ 不存在 | 属于 PE-OPT-USIM(标签 B4),本数据未包含该 PE。MSISDN 通常由运营商通过 OTA 或 RFM 后续写入 EF_MSISDN。 |
| profileOwner | ❌ 不存在 | 属于 ProfileInfo(私有标签 E3),这是 eUICC 本地存储的元数据(如 ES10c 查询接口返回),不嵌入在 Profile 安装包的 PE 序列中。 |
| MCC / MNC | ❌ 无法提取 | 因 EF_IMSI 为全 FF 占位符,无法从中解析出有效的移动国家码(MCC)和移动网络码(MNC)。 |
全部 ProfileElement 列表汇总
| 标签 | 类型 | PE ID | 核心信息摘要 |
|---|---|---|---|
A0 |
ProfileHeader |
- | ICCID=20260807131700000006,类型=USIM Profile,强制服务=usim/milenage/javacard |
B0 |
PE-MF |
1 | MF 模板;EF_DIR 注册 USIM AID;EF_ARR 含 15 条访问规则 |
A3 |
PE-PUKCodes |
2 | PUK1/PUK2/PUK3 均为 11111111 |
A2 |
PE-PINCodes |
3 | PIN1/PIN2=1234,ADM1=11111111 |
B2 |
PE-TELECOM |
4 | 共享 ARR,启用 PIN1,预留可选文件 |
B3 |
PE-USIM |
5 | ADF_USIM AID 已设置,EF_IMSI 为占位符(全 F),EF_SPN="USIM" |
| 标签 | PE 类型 | 核心作用 | 关键字段 |
|---|---|---|---|
A6 |
PE-SecurityDomain |
创建安全域(ISD-P/SSD),提供安全通道和密钥管理 | instance(实例 AID)、keyList(ENC/MAC 密钥)、sdPersoData |
AA |
PE-End |
标记 Profile 安装包结束,终止解析 | end-header(仅标识) |
B8 |
PE-GSM-ACCESS |
创建 GSM/GPRS 接入目录和文件(2G 兼容) | df-gsm-access、ef-kc、ef-kcgprs |
这三个 PE 分别覆盖了 eUICC 的安全性(A6)、完整性控制(AA)和网络兼容性(B8),是 Profile 组成中的重要环节。
整体数据作用与业务含义
该二进制流是一个 预置测试/模板 Profile,用于 eUICC 的 Profile 安装过程。它的作用是:
- 创建基础文件系统:在 eUICC 中建立 MF、TELECOM、USIM 目录及关键 EF(如 EF_DIR、EF_ARR、EF_UST、EF_SPN)。
- 配置安全策略:通过 PIN/PUK/ADM 建立分层访问控制(用户级、管理员级)。
- 预留网络参数空间:为 IMSI、鉴权密钥(CK/IK)、PLMN 列表等分配文件,但内容为占位符,等待后续个性化写入。
- 声明平台能力:通过头部服务列表告知 eUICC 必须支持 Milenage、Java Card 等能力,确保兼容性。
由于 IMSI 为全 FF,该 Profile 不能直接用于商用网络,必须经过运营商签名、密钥注入和 IMSI 写入后才能激活使用。该数据通常出现在 Profile 开发、测试或模板分发阶段。
这些 ProfileElement 共同构成一个完整的 eUICC Profile:
- B3 (USIM)、B4 (OPT-USIM)、B5 (ISIM)、B6 (OPT-ISIM) 负责网络接入(3G/4G/5G/IMS)。
- B7 (Phonebook) 提供电话本功能。
- BC (DF-5GS) 支持 5G 核心网络特性。
- A7 (RFM) 提供远程文件管理能力。
- A8 (Application) 允许加载第三方小程序。
- A9 (NonStandard) 为专用扩展预留空间。
每个 PE 都包含一组文件创建指令(File 序列),eUICC 解析时按顺序创建和填充文件,最终构建出完整的 UICC 文件系统。所有字段的设计都遵循 ETSI TS 102 221、TS 102 222 及 3GPP/GSMA 相关标准,确保互操作性。
ProfileInfo 结构里的信息来源
ProfileInfo 结构里的信息,主要是在 Profile 下载和安装的流程中,由 SM-DP+ 生成并下发给 eUICC 的,是 Profile 的元数据。
简单来说,它是 SM-DP+(订阅管理器-数据准备)在准备 Profile 包时,从 MNO(移动网络运营商)提供的 Profile 订单和配置信息中提取并组装而成的,最终存储在 eUICC 上,供本地文件助手(LPA)等应用查询。
信息的来源与生命周期
具体来源和流程如下:
MNO 提供订单与配置:当你向运营商(MNO)申请 eSIM 时,MNO 会生成一个订单。这个订单里包含了该 Profile 的所有关键信息,比如:
- 核心身份:
iccid(集成电路卡标识符)。 - 显示信息:
profileName(Profile 名称)、serviceProviderName(运营商名称)、icon(图标)。 - 管理策略:
profilePolicyRules(PPR,Profile 策略规则)、profileClass(Profile 类别,如运营、测试)。 - 通知配置:
notificationConfigurationInfo(当 Profile 被启用、禁用等操作时,eUICC 该向哪个地址发送通知)。 - 专有数据:
dpProprietaryData等。
- 核心身份:
SM-DP+ 生成 Profile Metadata:MNO 将这些信息交给 SM-DP+ 后,SM-DP+ 会将这些信息整合成一份
Profile Metadata(Profile 元数据)。这份元数据是 Profile 包的一部分。下载与安装时写入 eUICC:在执行
ES8+.StoreMetadata命令时,SM-DP+ 会将Profile Metadata发送给 eUICC,其中就包括了ProfileInfo结构里的大部分字段。eUICC 收到后会存储这些信息,以便后续查询。
各字段的补充说明
profileOwner (标签 B7)
- 来源:同样来自 SM-DP+ 下发的 Profile Metadata。
- 生成规则:它的生成有一个重要规则:
- 如果
profilePolicyRules(PPR) 存在,则profileOwner必须存在。 - 如果 Profile 里没有
EF_IMSI文件,则profileOwner不得存在。
- 如果
profilePolicyRules (标签 99)
- 来源:来自 SM-DP+ 下发的
Profile Metadata。 - 内容:它包含了 Profile 的所有策略规则标识符(PPR IDs)。如果这个字段不存在,则视为所有 PPR 位都为 0。
isdpAid (标签 4F)
- 来源:这是 ISD-P(Profile 专用安全域) 的 AID(应用标识符)。
- 生成:在 Profile 下载和安装过程中,SM-DP+ 会为这个 Profile 在 eUICC 上创建一个 ISD-P 实例,这个
isdpAid就是该实例的唯一标识。
serviceSpecificDataStoredInEuicc (标签 BF22)
- 来源:来自 SM-DP+ 下发的
Profile Metadata。 - 存储:eUICC 会存储这个字段的信息。它通常包含运营商自定义的、需要保存在 eUICC 上的特殊数据。
所以,ProfileInfo 中的信息并非凭空产生,而是由运营商(MNO)在创建 Profile 订单时定义,然后由 SM-DP+ 封装到 Profile 元数据中,最终在 Profile 下载安装到 eUICC 的过程中写入 eUICC 的。本地文件助手(LPA)可以通过 ES10c.GetProfilesInfo 命令从 eUICC 读取这些信息。
ASN.1 定义中的 Fcp 和 File 结构
Fcp ::= SEQUENCE { |
这两个结构是 eUICC Profile 安装包中文件系统创建的核心组件,它们共同描述了如何在 eUICC 内部创建、配置和填充文件(MF、DF、ADF、EF)。
Fcp(File Control Parameters)—— 文件控制参数
Fcp 结构用于定义单个文件的属性,相当于 UICC 标准中的 FCP(文件控制参数),但进行了一定的扩展以支持 Profile 安装的灵活控制。它包含以下字段:
fileDescriptor(标签 [2],即 0x82)
- 类型:
OCTET STRING (SIZE(2..4)),可选。 - 含义:文件描述符,编码遵循 ETSI TS 102 222(UICC 文件结构标准)。它包含了文件的基本类型信息,例如:
- 文件类型(MF、DF、EF、ADF)
- EF 的结构(透明、线性固定、循环等)
- 记录长度(对于记录型 EF)
- 访问条件(部分情况)
- 作用:在创建文件时,eUICC 根据此字段确定文件的基础属性。如果不提供,则使用模板中的默认值。
fileID(标签 [3],即 0x83)
- 类型:
OCTET STRING (SIZE(2)),可选(但通常强制)。 - 含义:文件标识符,即 UICC 文件系统中的 FID(File ID)。对于 ADF,此 ID 是临时文件 ID,仅在 Profile 创建期间用于引用,并非最终在 eUICC 中生效的文件 ID(ADF 的实际 ID 由
dfName中的 AID 决定)。对于其他文件(EF、DF),此 FID 是永久性的,用于文件路径引用。 - 作用:唯一标识一个文件,用于路径寻址和文件间引用(如链接路径
linkPath中使用)。
dfName(标签 [4],即 0x84)
- 类型:
ApplicationIdentifier(OCTET STRING, 5~16 字节),可选。 - 含义:专用于 ADF(应用专用文件)的名称,即 AID(应用标识符)。终端通过此 AID 来选择相应的应用(如 USIM、ISIM)。
- 作用:为 ADF 赋予一个全局唯一的应用标识,是网络接入应用(NAA)或安全域(SD)的入口。
lcsi(标签 [10],即 0x8A)
- 类型:
OCTET STRING (SIZE(1)),默认值'05'H。 - 含义:LCSI(Life Cycle Status Information)—— 文件生命周期状态信息,编码遵循 ETSI TS 102 222。它定义了文件的初始生命周期状态(如“创建”、“激活”、“去激活”等),以及是否允许某些操作。
- 作用:在文件创建时设定其初始状态。默认值
'05'H通常表示“创建并激活”。
securityAttributesReferenced(标签 [11],即 0x8B)
- 类型:
OCTET STRING (SIZE(1..3)),可选。 - 含义:安全属性引用,用于指定该文件所引用的 EF_ARR(访问规则参考文件) 中的规则记录。编码方式有两种:
- 只包含记录号(1 字节):此时隐含引用了上下文中的 EF_ARR:
- 若文件位于 MF 下或 ADF 本身,则隐含
EF_ARR文件 ID 为2F06; - 若文件位于其他 DF 下,则隐含
EF_ARR文件 ID 为6F06。
- 若文件位于 MF 下或 ADF 本身,则隐含
- 包含 EF_ARR ID(2 字节)+ 记录号(1 字节):明确指定引用的 EF_ARR 文件 ID 和其中的记录号。
- 只包含记录号(1 字节):此时隐含引用了上下文中的 EF_ARR:
- 作用:将该文件与特定的访问规则关联,从而控制读、写、更新、删除等操作的权限(基于 PIN、ADM 等)。
efFileSize(标签 [0],即 0x80)
- 类型:
OCTET STRING,可选(但 EF 类型文件必选,DF 和链接文件不允许)。 - 含义:对于 EF(基本文件),指定文件的字节大小。编码采用最小字节数表示(无前导零),例如大小 0x98(152字节)编码为
'98'H,而不是'00 98'H。 - 作用:为 EF 分配存储空间。对于透明 EF,它表示文件总长度;对于记录型 EF,它等于 记录数 × 记录长度,具体由
fileDescriptor中的记录长度和记录数决定。
pinStatusTemplateDO(标签 [PRIVATE 6],即 0xC6)
- 类型:
OCTET STRING,可选。 - 含义:PIN 状态模板数据对象,编码遵循 ETSI TS 102 222。它定义了哪些 PIN 或 PUK 是启用的,以及它们的初始状态(如是否已验证、是否启用等)。
- 作用:专用于 DF 和 ADF 文件,用于在文件创建时设置该目录的 PIN 验证规则。EF 文件不允许使用此字段。
shortEFID(标签 [8],即 0x88)
- 类型:
OCTET STRING (SIZE(0..1)),可选。 - 含义:短文件标识符(SFI),用于在 SELECT 命令中简写引用 EF 文件,以减少数据传输。它的编码方式:
- 不提供(字段缺失):对于模板中的文件,eUICC 会根据 Annex A 自动分配 SFI;对于 GenericFileManagement 创建的文件,则根据 FID 计算。
- 提供空字符串(长度为 0):表示该 EF 不支持 SFI。
- 提供 1 字节:该字节的高 5 位(b8~b4)表示 SFI 值,低 3 位固定为
000。
- 作用:允许使用较短的标识符在命令中引用 EF,提高效率。
proprietaryEFInfo(标签 [5],即 0x85)
- 类型:
ProprietaryInfo(一个子结构),可选。 - 含义:包含 EF 的专有信息,用于控制文件的初始化填充模式。
- 子字段:
specialFileInformation:默认'00'H,表示特殊文件信息。fillPattern或repeatPattern:用于初始化文件内容时的填充模式(二者只能选一)。编码遵循 ETSI TS 102 222。
- 作用:允许 Profile 制作者指定 EF 在创建时的初始内容(如用特定字节填充),避免后续逐个写操作。
linkPath(标签 [PRIVATE 7],即 0xC7)
- 类型:
OCTET STRING (SIZE(0..8)),可选。 - 含义:链接路径,用于创建 文件链接(Link File)。它指定该文件所链接到的目标文件的路径。路径编码参考
filePath结构(使用临时文件 ID)。例如,'2F06'H表示链接到 MF 下的EF_ARR。如果提供空字符串(''),则表示该链接文件应转换为独立文件(即不再是链接文件)。 - 作用:实现文件共享或别名,避免在多个目录中重复定义相同的文件内容(如访问规则文件
EF_ARR常被链接使用)。
File —— 文件创建/填充指令序列
File 是一个 SEQUENCE OF CHOICE,即一组交替出现的操作指令,用于描述如何创建或修改一个文件。每个指令按顺序执行,因此可以灵活组合创建、偏移填充、内容填充等操作。指令类型包括:
doNotCreate(NULL 类型)
- 含义:一个标志,指示 eUICC 不要创建该文件。
- 适用场景:用于模板文件中,表示即使模板默认包含该文件,但在本 Profile 中不希望创建(适用于“默认创建”模板)。此标志对 MF 中的文件无效,也不能用于“非默认创建”模板中的文件(因为那些文件本来就不创建)。
- 作用:允许 Profile 制作者根据需求跳过某些可选文件,而不必重写整个文件系统结构。
fileDescriptor(即 Fcp 结构)
- 含义:提供完整的文件控制参数,用于创建新文件。当该指令出现时,eUICC 会根据提供的
Fcp创建文件(如果文件已存在,可能报错或忽略,取决于实现)。 - 作用:这是最常用的指令,用于创建 MF、DF、ADF 或 EF,并设定其所有属性。
fillFileOffset(UInt16 类型)
- 含义:指定后续
fillFileContent写入的起始偏移量(从文件开头算起的字节数)。 - 作用:允许在文件的特定位置写入数据,而不是从开头写起。常用于大文件的分段填充。
fillFileContent(OCTET STRING 类型)
- 含义:要写入文件的实际数据(字节流)。
- 作用:填充文件内容。它可以紧跟在一个
fillFileOffset之后,或者在没有前导偏移时从当前指针位置(默认 0)开始写入。对于透明 EF,直接写入数据;对于记录型 EF,写入的内容长度必须与记录长度匹配,并按顺序填充记录。
整体作用
Fcp 与 File 配合,构成了 Profile 安装包中 文件系统定义 的核心指令集。在 ProfileElement(如 PE-MF、PE-USIM)中,每个文件字段(如 mf、ef-dir、ef-imsi)都是一个 File 序列,通过一组有序的指令控制文件的创建和内容填充。这种设计兼顾了模板复用(通过 templateID 和默认文件)、精细控制(通过显式 Fcp)和灵活填充(通过偏移和内容片段),使得 Profile 制作者可以精确地构建所需的文件系统。
例如,一个典型的 ef-iccid 字段可能包含:
- 一个
fileDescriptor指令(定义文件为透明 EF,大小 10 字节) - 一个
fillFileContent指令(写入 10 字节的 BCD ICCID)
这样就在 eUICC 中创建了EF_ICCID并填充了实际值。
UPP的四个核心组成部分
一个可供下载安装的 eSIM Profile(即 UPP),其内部结构是高度标准化的。它并非一个简单的数据包,而是由 文件系统(File System)、网络接入应用(NAA)、安全域(Security Domain)和个性化数据(Personalisation Data) 这四个核心部分精密协作构成的。
文件系统 (File System):Profile 的“骨架”
文件系统是 Profile 的基础结构,它定义了 eUICC 内部数据的组织和存储方式。这个系统遵循树形结构,其核心组成如下:
- MF (Master File,主文件):文件系统的根目录,是整个UICC文件系统的起点。一个Profile有且只有一个MF。(
mf PE-MF, -- TAG 'B0') - DF (Dedicated File,专用文件):子目录,用于将相关的文件(EF)或子目录(DF)进行逻辑分组。例如,
DF_TELECOM目录下就存放着与电信业务相关的文件。 - ADF (Application Dedicated File,应用专用文件):一种特殊的DF,它是一个网络接入应用(NAA)的根目录。例如,
ADF_USIM就是USIM应用的根。 - EF (Elementary File,基本文件):实际存储数据的文件。所有用户数据和配置信息,如IMSI、密钥、服务表等,都存储在EF中。
在UPP中的体现:UPP 通过
PE-MF、PE-USIM、PE-TELECOM等一系列 Profile Elements (PE) 来描述这个完整的树形文件系统。例如,PE-USIM这个PE内部就详细定义了如何创建ADF_USIM及其下属的所有EF。
网络接入应用 (NAA):Profile 的“灵魂”
NAA 是 Profile 中最核心的功能部分,它负责执行与移动网络的鉴权和密钥协商,是Profile能够连接网络的“灵魂”。
主要类型:最常见的NAA包括:
- USIM (Universal Subscriber Identity Module):用于接入 2G/3G/4G/5G 网络,是绝大多数Profile的必备项。
- ISIM (IMS Subscriber Identity Module):用于 IMS(IP多媒体子系统) 的鉴权,是实现 VoLTE/VoWiFi 等功能的关键。
- CSIM (CDMA Subscriber Identity Module):用于接入 CDMA 网络。
核心功能:NAA 的核心是存储用于鉴权的长期密钥(如Ki),并执行 Milenage 或 TUAK 等鉴权算法。当终端尝试入网时,NAA会利用这些密钥和算法完成与网络的“密码验证”。
在UPP中的体现:在UPP中,每个NAA都对应一个ADF。例如,USIM 对应
ADF_USIM,其具体参数(如算法选择、密钥等)由PE-AKAParameter等PE来配置。
安全域 (Security Domain):Profile 的“保险箱”
安全域是 Profile 的安全管理和执行环境,它基于GlobalPlatform标准,负责密钥管理、安全通道建立等核心安全功能。
主要类型:在eUICC中存在多种安全域:
- ISD-R (Issuer Security Domain - Root):eUICC的根安全域,是Profile生命周期管理的最高权威。
- ECASD (eUICC Controlling Authority Security Domain):存储eUICC证书和私钥,用于与SM-DP+进行双向认证。
- ISD-P (Issuer Security Domain - Profile):为每一个Profile创建的独立安全域。它如同一个加密的容器,将不同运营商的Profile安全隔离。UPP中创建的就是这个ISD-P。
- MNO-SD (Mobile Network Operator Security Domain):运营商在Profile内创建的管理域,用于进行OTA(空中)管理。
核心功能:
- 密钥管理:安全域拥有并管理一组密钥(如ENC/MAC/DEK密钥)。
- 安全通道:通过 SCP(Secure Channel Protocol) 协议(如SCP03、SCP11)与外部实体建立加密和认证的通信通道。
在UPP中的体现:UPP通过
PE-SecurityDomain这个PE来定义和创建安全域(主要是ISD-P和MNO-SD),并在其中预置初始密钥。这些密钥是后续生成受保护的BPP(Bound Profile Package)的基础。securityDomain PE-SecurityDomain, -- TAG 'A6'
个性化数据 (Personalisation Data):让Profile“独一无二”
个性化数据是将一个通用Profile模板转变为特定用户专属Profile的关键信息。
核心数据:
- ICCID (集成电路卡标识符):SIM卡的唯一硬件标识号,通常为20位数字。
- IMSI (国际移动用户识别码):用于在移动网络中唯一标识一个用户的号码。
- 鉴权密钥 (Ki / OPc):这是最敏感的数据。Ki是用户侧的长期密钥,OPc是运营商侧的常数,两者与算法共同完成网络鉴权。泄露Ki和OPc等同于SIM卡被复制。
- 其他数据:还包括MSISDN(手机号码)、SPN(服务提供商名称)、PIN/PUK码等。
生成与注入:这些数据由运营商在SM-DP+ 平台上生成,并作为个性化参数注入到UPP中。SM-DP+随后会利用安全域中的密钥,将包含这些敏感数据的UPP加密、签名,最终生成安全的BPP。
在UPP中的体现:这些个性化数据被填充到文件系统的各个EF中。例如,ICCID存储在
EF_ICCID中,IMSI存储在EF_IMSI中,而Ki和OPc则作为PE-AKAParameter的参数被配置到Profile中。akaParameter PE-AKAParameter, -- TAG 'A4'
一个完整的 UPP 就像一台精密仪器:
- 文件系统 是它的机械结构,定义了所有零件的安装位置。
- NAA 是它的发动机,提供了连接网络的核心动力。
- 安全域 是它的保险柜和加密锁,保护内部核心机密。
- 个性化数据 则是它的唯一序列号和启动密钥,让它成为专属的独特个体。
这四个部分紧密结合,共同构成了一个功能完整、安全且唯一的eSIM Profile。