ASN.1 DER 编码的 Profile 安装包/Profile 实例

失去的东西,其实从来未曾真正地属于你,也不必惋惜,始终真心真意

Posted by yishuifengxiao on 2026-09-05

ASN.1 DER 编码的 Profile 安装包/Profile 实例

整体结构

该二进制数据不是单个 ASN.1 根对象,而是多个 ProfileElement 的 TLV 流:

ProfileElement ::= CHOICE {
header ProfileHeader,
genericFileManagement PE-GenericFileManagement,
pinCodes PE-PINCodes,
pukCodes PE-PUKCodes,
akaParameter PE-AKAParameter,
cdmaParameter PE-CDMAParameter,
securityDomain PE-SecurityDomain,
rfm PE-RFM,
application PE-Application,
nonStandard PE-NonStandard,
end PE-End,
mf PE-MF,
usim PE-USIM,
df-5gs PE-DF-5GS,
df-saip PE-DF-SAIP,
...
}

顶层标签含义(由 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 {
major-version UInt8,
minor-version UInt8,
profileType UTF8String OPTIONAL,
iccid OCTET STRING (SIZE (10)),
pol OCTET STRING OPTIONAL,
eUICC-Mandatory-services ServicesList,
eUICC-Mandatory-GFSTEList SEQUENCE OF OBJECT IDENTIFIER,
connectivityParameters OCTET STRING OPTIONAL,
eUICC-Mandatory-AIDs SEQUENCE OF SEQUENCE { ... } OPTIONAL
}

从 hex 中可识别:

  • major-version = 2
  • minor-version = 1(示例可能使用早期版本号)
  • profileType = "TestSim Profile"
  • iccid 为 10 字节,本例编码为 89 00 01 23 45 67 89 01 23 41
  • eUICC-Mandatory-services 包含:
    • usim
    • milenage
    • javacard
    • get-identity
    • profile-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 PEHeader,
templateID OBJECT IDENTIFIER,
mf File,
ef-pl File OPTIONAL,
ef-iccid File,
ef-dir File,
ef-arr File,
ef-umpc File OPTIONAL
}
  • mf-header.identification = 1
  • templateID = {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 PEHeader,
pukCodes SEQUENCE (SIZE (1..16)) OF PUKConfiguration
}
  • puk-Header.identification = 2
  • 定义了 3 个 PUK:
    • pukAppl1:PUK 值 00000000,重试次数 9/9
    • pukAppl2:PUK 值 12345678
    • secondPUKAppl1:PUK 值 12345678,重试次数 8/8

作用:为 PIN 提供解锁密钥(PUK),当 PIN 被锁定时用于解锁。


pinCodes(A2)

对应 ASN.1 类型:

PE-PINCodes ::= SEQUENCE {
pin-Header PEHeader,
pinCodes CHOICE {
pinconfig SEQUENCE (SIZE (1..26)) OF PINConfiguration,
filePath OCTET STRING
}
}
  • 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 PEHeader,
templateID OBJECT IDENTIFIER,
adf-usim File,
ef-imsi File,
ef-arr File,
ef-keys File OPTIONAL,
...
}
  • usim-header.identification = 4
  • templateID = {2 23 143 1 2 4},表示 USIM 模板
  • 创建 ADF_USIM,AID 为:
    • A0000000871002FF33FF018900000100
  • 主要文件:
    • EF_IMSI:IMSI 值
    • EF_ARR:链接到 MF 下的 EF_ARR
    • EF_UST:USIM 服务表,包含服务拨号、短消息、SUCI 隐私支持等
    • EF_SPN:服务提供商名称,本例为 "SIMalliance"
    • EF_EST:启用服务表,本例为 00
    • EF_ACC:接入控制类,本例为 0040
    • EF_ECC:紧急呼叫号码,本例包含 911

作用:创建 3G/4G 网络接入应用(USIM)所需的文件系统,包含 IMSI、服务表、SPN 等。


df-5gs(BC)

对应 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-nsi File OPTIONAL,
ef-routing-indicator File OPTIONAL
}
  • df-5gs-header.identification = 100
  • templateID = {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 PEHeader,
templateID OBJECT IDENTIFIER,
df-df-saip File,
ef-suci-calc-info-usim File OPTIONAL
}
  • df-saip-header.identification = 101
  • templateID = {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 PEHeader,
algoConfiguration CHOICE { mappingParameter MappingParameter, algoParameter AlgoParameter },
sqnOptions OCTET STRING,
sqnDelta OCTET STRING,
sqnAgeLimit OCTET STRING,
sqnInit SEQUENCE (SIZE (32)) OF OCTET STRING
}
  • aka-header.identification = 6
  • 算法为 Milenage
  • 参数包括:
    • key:000102030405060708090A0B0C0D0E0F
    • opc:0102030405060708090A0B0C0D0E0F00
    • authCounterMax:010203
    • SQN 参数使用默认值

作用:配置 USIM/ISIM 的 AKA 认证算法参数,用于 3G/4G/5G 网络鉴权。


cdmaParameter(A5)

对应 ASN.1 类型:

PE-CDMAParameter ::= SEQUENCE {
cdma-header PEHeader,
authenticationKey OCTET STRING (SIZE(8)),
ssd OCTET STRING (SIZE (16)) OPTIONAL,
hrpdAccessAuthenticationData OCTET STRING OPTIONAL,
simpleIPAuthenticationData OCTET STRING OPTIONAL,
mobileIPAuthenticationData OCTET STRING OPTIONAL
}
  • cdma-header.identification = 15
  • 包含:
    • authenticationKey:A-Key
    • ssd:共享秘密数据 A/B
    • HRPD、简单 IP、移动 IP 认证参数

作用:为 CDMA 网络接入提供 CAVE 认证密钥和 IP 认证参数。


securityDomain(A6)

示例中出现两个安全域实例:

对应 ASN.1 类型:

PE-SecurityDomain ::= SEQUENCE {
sd-Header PEHeader,
instance ApplicationInstance,
keyList SEQUENCE (SIZE (1..MAX)) OF KeyObject OPTIONAL,
sdPersoData SEQUENCE OF OCTET STRING OPTIONAL,
openPersoData SEQUENCE { ... } OPTIONAL,
catTpParameters SEQUENCE { ... } OPTIONAL
}
  • 第一个安全域(MNO SD):
    • 实例 AID:A000000151000000
    • 支持 SCP80 和 SCP03
    • 包含 ENC/MAC/DEK 密钥集
  • 第二个安全域(SSD):
    • 实例 AID:A00000055910100102736456616C7565
    • 包含另一组 SCP80 密钥

作用:提供 Profile 安装后的安全通道保护、密钥管理、个人化数据,是 eUICC 安全架构的核心。


rfm(A7)

对应 ASN.1 类型:

PE-RFM ::= SEQUENCE {
rfm-header PEHeader,
instanceAID ApplicationIdentifier,
securityDomainAID ApplicationIdentifier OPTIONAL,
tarList SEQUENCE OF OCTET STRING OPTIONAL,
minimumSecurityLevel OCTET STRING,
uiccAccessDomain OCTET STRING,
uiccAdminAccessDomain OCTET STRING,
adfRFMAccess ADFRFMAccess OPTIONAL
}
  • 两个 RFM 实例:
    • UICC RFM:instanceAID = A00000055910100001,TAR = B00000
    • USIM RFM:instanceAID = A00000055910100002,TAR = B00020,并关联 ADF_USIM

作用:定义远程文件管理(Remote File Management)实例,允许通过 CAT/TS 或 OTA 远程管理 Profile 内的文件。


application(A8)

对应 ASN.1 类型:

PE-Application ::= SEQUENCE {
app-Header PEHeader,
loadBlock ApplicationLoadPackage OPTIONAL,
instanceList SEQUENCE (SIZE (1..MAX)) OF ApplicationInstance OPTIONAL
}
  • 两个 Applet 实例:
    • Applet 1:
      • 加载包 AID:A000000559101001
      • 实例 AID:A00000055910100111223301
    • Applet 2:
      • 加载包 AID:A000000559101003
      • 实例 AID:A00000055910100344556601
      • 关联到 SSD 安全域

作用:在 Profile 中安装 Java Card 小程序,扩展 UICC 功能。


nonStandard(A9)

对应 ASN.1 类型:

PE-NonStandard ::= SEQUENCE {
nonStandard-header PEHeader,
issuerID OBJECT IDENTIFIER,
content OCTET STRING
}
  • nonStandard-header.identification = 13
  • issuerID = {2 23 143 1 2 1}
  • content = 02000100

作用:承载厂商或组织专有数据,本例为 GSMA 定义的专有内容。


end(AA)

对应 ASN.1 类型:

PE-End ::= SEQUENCE {
end-header PEHeader
}
  • end-header.identification = 99
  • 无其他数据

作用:标记 ProfileElement 列表结束,表示该 Profile 安装包解析完成。

实例数据解读

A052800102810101820C6553494D2050726F66696C65830A20260807131700000006A506810084008B00A628060667810F010201060667810F010203060667810F010204060667810F010205060667810F010207B08201F1A0058000810101810667810F010201A207A105C60301020AA40C830A02628070317100000060A527A109820442210026800198831A61184F10A0000000871002FF33FF01890000010050045553494DA682019EA10A8204422100258002022B831B8001019000800102A406830101950108800158A40683010A95010882010A8316800101A40683010195010880015AA40683010A95010882010F830B80015BA40683010A95010882011A830A800101900080015A970082011B8316800103A406830101950108800158A40683010A95010882010F8316800111A40683010195010880014AA40683010A95010882010F8321800103A406830101950108800158A40683010A950108840132A4068301019501088201048321800101A406830101950108800102A406830181950108800158A40683010A950108820104831B800101900080011AA406830101950108800140A40683010A95010882010A8310800101900080015AA40683010A95010882011583158001019000800118A40683010A95010880014297008201108310800101A40683010195010880015A97008201158316800113A406830101950108800148A40683010A95010882010F830B80015EA40683010A95010882011A83258001019000800102A010A406830101950108A406830102950108800158A40683010A950108A337A0058000810102A12E300D80010181083131313131313131300D80010281083131313131313131300E8002008181083131313131313131A25EA0058000810103A155A0533013800101810831323334FFFFFFFF8201018301063010800102810831323334FFFFFFFF820102301480010A81083131313131313131830101840200AA301480010B81083030303030303030830101840200AAB282016CA0058000810104810667810F010203A206A104C602010AA306A104C7022F06A511A10782024121800106830685046553494DAF0AA10883025F3AC602010AB04EA10D82044221003D83024F3080013D833DA81EC0034F5801C4034F6803C6034F9005C5034F6009C9034F8807C1034F5011A905CA034F780FAA14C2034F380CC7034F4014C8034F4815CB034F980EB10CA10A83024F38800182880160B212A11082044221000F83024F4080012D8801A0B312A11082044221000F83024F488001788801A8B402A100B502A100B602A100B712A11082044221000183024F508001C8880188B813A11182044221001E83024F5880021770880108B90DA10B83024F6080020190880148BA13A11182044221000F83024F6880020BB8880118BC13A11182044221002A83024F7880020834880178BE0DA10B83024F8880020190880138BF1F13A11182044221000883024F9080020640880128BF2012A11082044221000F83024F9880014B880170B382013DA0058000810105810667810F010204A21DA11B83027FF18410A0000000871002FF33FF018900000100C60301810AA30B8309081900000000000010A406A104C7022F06A523832107FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA623832107FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA703830105A828A1118202412183026F388B0102800113880120831302001C1C233400000000100000000000000000A913A11182044221002283026F3B8B010880020154AD1CA107820241218001118311005459FFFFFFFFFFFFFFFFFFFFFFFFFFFFAE0CA10782024121800101830100AF088306F00000F00000B0058303FFFFFFB20483020040B317A10783026F7B80011E830CFFFFFFFFFFFFFFFFFFFFFFFFB506830400000002B6068304FFFFFF00A21FA0058000810106A116A014301280020081810830303030FFFFFFFF82020081B481F1A0058000810107810667810F010205A705A1038B0105AF33A10783026F608001288328FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000B033A10783026F618001648328FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000B110A10783026F6280010583051300144000BF2618A10D82044221001083026FC580011083044302545982010BBF271BA10D82044221000883026FC6800110830A13001440000000FFFE01BF3A23A10783026FD980013C831864F010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB81CA0058000810108810667810F010207A207A105C60301810AA300A400A438A005800081010BA12CA12A80010181010182101111111111111111111111111111111183101111111111111111111111111111111182010EA681BBA005800081010CA1444F07A00000015153504F08A0000001515350414F08A000000151000000820382DC0083010FC90A810280008201F08701F0EA11800F0100010100000202011203B2010000A26C30229501388201018301013017301580018886105280533746DDE10D6F5BFFD6ED3C9D0F302295013482010283010130173015800188861098B135A1093C518BF034CC4FF6C888C930229501C8820103830101301730158001888610B5E7C12830BBB56A339DE8B2935610B4A722A005800081010D4F09A00000055910100001A0050403B00000810116040100040100A73CA005800081010E4F09A00000055910100002A0050403B0002081011604010004010030188010A0000000871002FF33FF018900000100810100820100AA07A0058000810163

Profile 头部(ProfileHeader,标签 A0)

ASN定义

ProfileHeader ::= SEQUENCE {
major-version UInt8, -- set to 3 for this version of the specification TAG 80
minor-version UInt8, -- set to 3 for this version of the specification TAG 81
profileType UTF8String (SIZE (1..100)) OPTIONAL, -- Profile type TAG 82
iccid OCTET STRING (SIZE (10)), -- ICCID of the Profile TAG 83
pol OCTET STRING OPTIONAL,
eUICC-Mandatory-services ServicesList, -- TAG 'A5'
eUICC-Mandatory-GFSTEList SEQUENCE OF OBJECT IDENTIFIER, -- TAG 'A6'
connectivityParameters OCTET STRING OPTIONAL,
eUICC-Mandatory-AIDs SEQUENCE OF SEQUENCE {
aid ApplicationIdentifier,
version OCTET STRING (SIZE(2))
} OPTIONAL,
iotOptions IotOptions OPTIONAL -- details for IoT Minimal Profile, mandatory for IoT Minimal Profiles
}

对应的实例数据

A0 52
80 01 02
81 01 01
82 0C 6553494D2050726F66696C65
83 0A 20260811124500000000
A5 06
81 00
84 00
8B 00
A6 28
06 06 67810F010201
06 06 67810F010203
06 06 67810F010204
06 06 67810F010205
06 06 67810F010207

这是 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 {
mf-header PEHeader, -- TAG 'A0'
templateID OBJECT IDENTIFIER, -- TAG '81'
mf File, -- TAG 'A2'
ef-pl File OPTIONAL, -- TAG 'A3'
ef-iccid File, -- TAG 'A4'
ef-dir File, -- TAG 'A5'
ef-arr File, -- TAG 'A6'
ef-umpc File OPTIONAL -- TAG 'A7'
}

对应的数据实例为

B0 8201F1
A0 05
80 00
81 01 01
81 06 67810F010201
A2 07
A1 05
C6 03 01020A
A4 0C
83 0A 02628011215400000000
A5 27
A1 09
82 04 42210026
80 01 98
83 1A
61 18
4F 10 A0000000871002FF33FF018900000100
50 04 5553494D
A6 82019E
A1 0A
82 04 42210025
80 02 022B
83 1B
80 01 01
90 00
80 01 02
A4 06
83 01 01
95 01 08
80 01 58
A4 06
83 01 0A
95 01 08
82 01 0A
83 16
80 01 01
A4 06
83 01 01
95 01 08
80 01 5A
A4 06
83 01 0A
95 01 08
82 01 0F
83 0B
80 01 5B
A4 06
83 01 0A
95 01 08
82 01 1A
83 0A
80 01 01
90 00
80 01 5A
97 00
82 01 1B
83 16
80 01 03
A4 06
83 01 01
95 01 08
80 01 58
A4 06
83 01 0A
95 01 08
82 01 0F
83 16
80 01 11
A4 06
83 01 01
95 01 08
80 01 4A
A4 06
83 01 0A
95 01 08
82 01 0F
83 21
80 01 03
A4 06
83 01 01
95 01 08
80 01 58
A4 06
83 01 0A
95 01 08
84 01 32
A4 06
83 01 01
95 01 08
82 01 04
83 21
80 01 01
A4 06
83 01 01
95 01 08
80 01 02
A4 06
83 01 81
95 01 08
80 01 58
A4 06
83 01 0A
95 01 08
82 01 04
83 1B
80 01 01
90 00
80 01 1A
A4 06
83 01 01
95 01 08
80 01 40
A4 06
83 01 0A
95 01 08
82 01 0A
83 10
80 01 01
90 00
80 01 5A
A4 06
83 01 0A
95 01 08
82 01 15
83 15
80 01 01
90 00
80 01 18
A4 06
83 01 0A
95 01 08
80 01 42
97 00
82 01 10
83 10
80 01 01
A4 06
83 01 01
95 01 08
80 01 5A
97 00
82 01 15
83 16
80 01 13
A4 06
83 01 01
95 01 08
80 01 48
A4 06
83 01 0A
95 01 08
82 01 0F
83 0B
80 01 5E
A4 06
83 01 0A
95 01 08
82 01 1A
83 25
80 01 01
90 00
80 01 02
A0 10
A4 06
83 01 01
95 01 08
A4 06
83 01 02
95 01 08
80 01 58
A4 06
83 01 0A
95 01 08
子项 解码值 说明
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 {
/*
Any PUKKeyReferenceValue shall only be defined once within PE-PUKCodes.
*/
keyReference PUKKeyReferenceValue,
pukValue OCTET STRING (SIZE (8)),
maxNumOfAttemps-retryNumLeft UInt8 DEFAULT 170
/* maxNumOfAttemps-retryNumLeft is encoded as follows: max Number of Attempts is encoded in the high nibble of this value (Bits b8 to b5) and the Number of retry left is encoded in the low nibble of this value (Bits b4 to b1)*/
}

PE-PUKCodes ::= SEQUENCE {
puk-Header PEHeader,
pukCodes SEQUENCE (SIZE (1..16))OF PUKConfiguration
}

实例数据为

A3 37
A0 05
80 00
81 01 02
A1 2E
30 0D
80 01 01
81 08 3131313131313131
30 0D
80 01 02
81 08 3131313131313131
30 0E
80 02 0081
81 08 3131313131313131
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 {
/*
For every value defined in PINKeyReferenceValue only one entry may be included per PE-PINCodes.
Within the PE-PINCodes sent in the context of the MF only global PIN key references shall be used. For PINs in any ADF/DF only local PINs shall be defined: secondPINAppl1 secondPINAppl8. It is allowed to define the same PINKeyReferenceValue in multiple directories (e.g. secondPINAppl1 may be defined in the ISIM NAA and within the USIM NAA). Provided they are not linked they shall be handled as two independent PIN values which also may reference different PUK references.
*/
keyReference PINKeyReferenceValue,
pinValue OCTET STRING (SIZE (8)),
/*
In case no unblockingPINReference is set, no PUK applies for the corresponding PIN.
In case a PUKKeyReferenceValue is defined the related PUKKeyReferenceValue shall exist within the PE-PUKCodes list.
Any value defined in PUKKeyReferenceValue may be applied for any PINKeyReferenceValue.
*/
unblockingPINReference PUKKeyReferenceValue OPTIONAL,
pinAttributes UInt8 DEFAULT 7,
maxNumOfAttemps-retryNumLeft UInt8 DEFAULT 51
/* maxNumOfAttemps-retryNumLeft is encoded as follows: max Number of Attempts is encoded in the high nibble of this value (Bits b8 to b5) and the Number of retry left is encoded in the low nibble of this value (Bits b4 to b1)*/
}

PE-PINCodes ::= SEQUENCE {
pin-Header PEHeader,
pinCodes CHOICE {
pinconfig SEQUENCE (SIZE (1..26))OF PINConfiguration,
filePath OCTET STRING (SIZE (0..8)) /* temporary File ID for ADF, coding according to section 8.3.5 */
}
/* PIN can be either defined in the current context or shared
with another DF/ADF
Up to 26 PIN could be defined according to TS 102 221 [102 221]
*/
}

实例数据为

A2 5E
A0 05
80 00
81 01 03
A1 55
A0 53
30 13
80 01 01
81 08 31323334FFFFFFFF
82 01 01
83 01 06
30 10
80 01 02
81 08 31323334FFFFFFFF
82 01 02
30 14
80 01 0A
81 08 3131313131313131
83 01 01
84 02 00AA
30 14
80 01 0B
81 08 3030303030303030
83 01 01
84 02 00AA
密钥引用 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 {
telecom-header PEHeader,
templateID OBJECT IDENTIFIER,
df-telecom File,
ef-arr File OPTIONAL,
ef-rma File OPTIONAL,
ef-sume File OPTIONAL,
ef-ice-dn File OPTIONAL,
ef-ice-ff File OPTIONAL,
ef-psismsc File OPTIONAL,
df-graphics File OPTIONAL,
ef-img File OPTIONAL,
ef-iidf File OPTIONAL,
ef-ice-graphics File OPTIONAL,
ef-launch-scws File OPTIONAL,
ef-icon File OPTIONAL,
df-phonebook File OPTIONAL,
ef-pbr File OPTIONAL,
ef-ext1 File OPTIONAL,
ef-aas File OPTIONAL,
ef-gas File OPTIONAL,
ef-psc File OPTIONAL,
ef-cc File OPTIONAL,
ef-puid File OPTIONAL,
ef-iap File OPTIONAL,
ef-adn File OPTIONAL,
ef-pbc File OPTIONAL,
ef-anr File OPTIONAL,
ef-puri File OPTIONAL,
ef-email File OPTIONAL,
ef-sne File OPTIONAL,
ef-uid File OPTIONAL,
ef-grp File OPTIONAL,
ef-ccp1 File OPTIONAL,
df-multimedia File OPTIONAL,
ef-mml File OPTIONAL,
ef-mmdf File OPTIONAL,
df-mmss File OPTIONAL,
ef-mlpl File OPTIONAL,
ef-mspl File OPTIONAL,
ef-mmssmode File OPTIONAL,
df-mcs File OPTIONAL,
ef-mst File OPTIONAL,
ef-mcs-config File OPTIONAL,
df-v2x File OPTIONAL,
ef-vst File OPTIONAL,
ef-v2x-config File OPTIONAL,
ef-v2xp-pc5 File OPTIONAL,
ef-v2xp-Uu File OPTIONAL
}

数据实例为

B2 82016C
A0 05
80 00
81 01 04
81 06 67810F010203
A2 06
A1 04
C6 02 010A
A3 06
A1 04
C7 02 2F06
A5 11
A1 07
82 02 4121
80 01 06
83 06
85 04 6553494D
AF 0A
A1 08
83 02 5F3A
C6 02 010A
B0 4E
A1 0D
82 04 4221003D
83 02 4F30
80 01 3D
83 3D
A8 1E
C0 03 4F5801
C4 03 4F6803
C6 03 4F9005
C5 03 4F6009
C9 03 4F8807
C1 03 4F5011
A9 05
CA 03 4F780F
AA 14
C2 03 4F380C
C7 03 4F4014
C8 03 4F4815
CB 03 4F980E
B1 0C
A1 0A
83 02 4F38
80 01 82
88 01 60
B2 12
A1 10
82 04 4221000F
83 02 4F40
80 01 2D
88 01 A0
B3 12
A1 10
82 04 4221000F
83 02 4F48
80 01 78
88 01 A8
B4 02
A1 00
B5 02
A1 00
B6 02
A1 00
B7 12
A1 10
82 04 42210001
83 02 4F50
80 01 C8
88 01 88
B8 13
A1 11
82 04 4221001E
83 02 4F58
80 02 1770
88 01 08
B9 0D
A1 0B
83 02 4F60
80 02 0190
88 01 48
BA 13
A1 11
82 04 4221000F
83 02 4F68
80 02 0BB8
88 01 18
BC 13
A1 11
82 04 4221002A
83 02 4F78
80 02 0834
88 01 78
BE 0D
A1 0B
83 02 4F88
80 02 0190
88 01 38
BF1F 13
A1 11
82 04 42210008
83 02 4F90
80 02 0640
88 01 28
BF20 12
A1 10
82 04 4221000F
83 02 4F98
80 01 4B
88 01 70
子项 解码值 说明
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定义为:


PE-USIM ::= SEQUENCE {
usim-header PEHeader,
templateID OBJECT IDENTIFIER,
adf-usim File,
ef-imsi File,
ef-arr File,
ef-keys File OPTIONAL,
ef-keysPS File OPTIONAL,
ef-hpplmn File OPTIONAL,
ef-ust File, /* The content of UST file shall be modified by the eUICC during profile installation according to the functionality supported by the eUICC platform i.e. in the case where a service is not supported (and not indicated as required) the related bit(s) will be set to zero */
ef-fdn File OPTIONAL,
ef-sms File OPTIONAL,
ef-smsp File OPTIONAL,
ef-smss File OPTIONAL,
ef-spn File,
ef-est File,
ef-start-hfn File OPTIONAL,
ef-threshold File OPTIONAL,
ef-psloci File OPTIONAL,
ef-acc File,
ef-fplmn File OPTIONAL,
ef-loci File OPTIONAL,
ef-ad File OPTIONAL,
ef-ecc File,
ef-netpar File OPTIONAL,
ef-epsloci File OPTIONAL,
ef-epsnsc File OPTIONAL
}

对应的数据实例为

B3 82012A
A0 05
80 00
81 01 05
81 06 67810F010204
A2 1D
A1 1B
83 02 7FF1
84 10 A0000000871002FF33FF018900000100
C6 03 01810A
A3 0B
83 09 081911111111111111
A4 06
A1 04
C7 02 2F06
A5 23
83 21 07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
A6 23
83 21 07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
A7 03
83 01 05
A8 28
A1 11
82 02 4121
83 02 6F38
8B 01 02
80 01 13
88 01 20
83 13 02001B1C230400000000100000000000000000
A9 13
A1 11
82 04 42210022
83 02 6F3B
8B 01 08
80 02 0154
AD 09
A1 07
82 02 4121
80 01 11
AE 0C
A1 07
82 02 4121
80 01 01
83 01 00
AF 08
83 06 F00000F00000
B0 05
83 03 FFFFFF
B2 04
83 02 0040
B3 17
A1 07
83 02 6F7B
80 01 1E
83 0C FFFFFFFFFFFFFFFFFFFFFFFF
B5 06
83 04 00000002
B6 06
83 04 FFFFFF00

这是 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)等应用查询。

信息的来源与生命周期

具体来源和流程如下:

  1. MNO 提供订单与配置:当你向运营商(MNO)申请 eSIM 时,MNO 会生成一个订单。这个订单里包含了该 Profile 的所有关键信息,比如:

    • 核心身份:iccid(集成电路卡标识符)。
    • 显示信息:profileName(Profile 名称)、serviceProviderName(运营商名称)、icon(图标)。
    • 管理策略:profilePolicyRules (PPR,Profile 策略规则)、profileClass (Profile 类别,如运营、测试)。
    • 通知配置:notificationConfigurationInfo(当 Profile 被启用、禁用等操作时,eUICC 该向哪个地址发送通知)。
    • 专有数据:dpProprietaryData 等。
  2. SM-DP+ 生成 Profile Metadata:MNO 将这些信息交给 SM-DP+ 后,SM-DP+ 会将这些信息整合成一份 Profile Metadata(Profile 元数据)。这份元数据是 Profile 包的一部分。

  3. 下载与安装时写入 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 {
/* The fileDescriptor shall be encoded as defined in
ETSI TS 102 222 [102 222]
*/
fileDescriptor [2] OCTET STRING (SIZE(2..4)) OPTIONAL, -- TAG '82'

/* fileID
For ADFs, the fileID is a temporary value (named temporary file ID
in this document) used only during the profile creation. It has to
be unique within a profile and is used for referencing files within
this ADF using the file path.
*/
fileID [3] OCTET STRING (SIZE(2)) OPTIONAL,

/* dfName
Only applies for ADFs
*/
dfName [4] ApplicationIdentifier OPTIONAL,

/* lcsi
Coding according to ETSI TS 102 222 [102 222]
*/
lcsi [10] OCTET STRING (SIZE (1)) DEFAULT '05'H,

/* securityAttributesReferenced
Either containing EF ARR ID[2] + record number[1] or
record number[1] only and EF ARR ID implicitly known from the
context: File ID 2F06 is automatically applied for ADFs,
the MF and all files directly located under the MF
'6F06' for any other files
*/
securityAttributesReferenced [11] OCTET STRING (SIZE (1..3)) OPTIONAL,

/* efFileSize
Mandatory for EF file types
Not allowed for DF files and EF link files
Shall be encoded on the minimum number of octets possible
(i.e. no leading bytes set to '00' are allowed)
*/
efFileSize [0] OCTET STRING OPTIONAL, -- TAG '80'

/* pinStatusTemplateDO
Not allowed for EF files
Mandatory for DF/ADF files
*/
pinStatusTemplateDO [PRIVATE 6] OCTET STRING OPTIONAL,

/* shortEFID
Not allowed for DF files
Optional for EF file types / equivalent to ETSI TS 102 222
shortEFID not provided: in case of a template file, SFI
is set according to Annex A. For files created
by using GenericFileManagement, SFI is calculated from FID
shortEFID provided with no value: no SFI is supported
for this EF
shortEFID available with a length of 1 byte:
The Short File Identifier is coded from bits b8 to b4.
Bits b3,b2,b1 = 000.
*/
shortEFID [8] OCTET STRING (SIZE (0..1)) OPTIONAL,

/* proprietaryEFInfo
Optional for EF file types
Not allowed for DF files
*/
proprietaryEFInfo [5] ProprietaryInfo OPTIONAL,

/* linkPath
Specifies the path to the file to which shall be linked,
also valid for DFs. Files within ADFs are addressed
by the temporary file ID of the respective ADF. For the coding
see filePath. In case of a template link file, an empty linkPath indicates that the link file shall be turned into an independent file.
*/
linkPath [PRIVATE 7] OCTET STRING (SIZE (0..8)) OPTIONAL
}

File ::= SEQUENCE OF CHOICE {
doNotCreate NULL, /* Indicates that this file shall not be created by the eUICC even if present in a PE referencing a "Created by Default" template.This flag has no effect for the creation of files in the MF and shall not be used for all the files listed in a "Not Created by Default" template 表示即使存在于引用“默认创建”模板的PE中,eUICC也不应创建此文件。此标志对MF中的文件创建无效,也不应用于“非默认创建”模板中列出的所有文件*/
fileDescriptor Fcp, -- TAG 'A1'
fillFileOffset UInt16,
fillFileContent OCTET STRING -- TAG '83'
}

这两个结构是 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。
    • 包含 EF_ARR ID(2 字节)+ 记录号(1 字节):明确指定引用的 EF_ARR 文件 ID 和其中的记录号。
  • 作用:将该文件与特定的访问规则关联,从而控制读、写、更新、删除等操作的权限(基于 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。