GSMA eSIM IoT 技术规范 SGP.32 v1.0.1 笔记
本笔记基于 GSMA 发布的 eSIM IoT 技术规范 SGP.32 v1.0.1 文档,对 eSIM 在物联网 (IoT) 设备中的应用架构、流程、安全机制以及相关接口进行了详细梳理。
一、 概述
1.1 文档目的
本规范旨在为 eSIM IoT 架构和需求 SGP.31 提供技术解决方案,涵盖以下内容:
远程配置和管理物联网设备中的 eUICC(嵌入式通用集成电路卡):
eUICC 架构:适用于网络受限和/或用户界面受限的物联网设备。
接口:定义 eSIM IoT 架构中使用的接口,包括 ES2+、ES6、ES8+、ES9+、ES9+’、ES10a、ES10b、ES11、ES11’、ES12、ESep 和 ESipa。
安全功能:确保 eSIM IoT 架构的安全性,包括 TLS/DTLS 协议的使用、证书管理、密钥管理等方面。
实现不同部署场景下全球互操作性:为运营商、eUICC 解决方案提供商、物联网设备供应商、网络基础设施供应商、移动服务提供商和物联网服务提供商等提供统一的技术标准。
1.2 目标受众
运营商
eUICC 解决方案提供商
物联网设备供应商
标准组织
网络基础设施供应商
移动服务提供商
物联网服务提供商
其他相关行业机构
二、 架构概述
2.1 角色定义
运营商 (Operator):负责订购和管理 eUICC 上的配置文件。
订阅管理器数据准备+ (SM-DP+):负责准备和提供配置文件包 (Profile Package)。
订阅管理器发现服务器 (SM-DS):用于发现 SM-DP+ 地址和事件记录。
eSIM IoT 远程管理器 (eIM):负责管理 eUICC 上的配置文件,包括下载、安装、启用、禁用和删除等操作。
eIM 可以位于物联网设备外部,也可以集成到 eUICC 中 (IPAe)。
物联网配置文件助手 (IPA):作为 eIM 和 eUICC 之间的中介,负责处理配置文件下载和状态管理。
IPA 可以位于物联网设备中 (IPAd) 或集成到 eUICC 中 (IPAe)。
IPAe 的实现是可选的,具体取决于 eUICC 制造商。
eUICC:包含一个或多个配置文件,支持远程配置和管理。
2.2 主要接口
接口名称 |
参与者 |
描述 |
ES2+ |
运营商 – SM-DP+ |
运营商用于订购配置文件订单以及执行其他管理功能。 |
ES6 |
运营商 – eUICC |
运营商使用传统 OTA 机制对 eUICC 上的配置文件进行修改。 |
ES8+ |
SM-DP+ – eUICC |
提供 SM-DP+ 和 eUICC 之间的安全端到端通道,用于配置文件的下载和安装。 |
ES9+ |
SM-DP+ – IPA |
为 SM-DP+ 和 IPA 之间提供安全传输,用于传递配置文件包。 |
ES9+’ |
SM-DP+ – eIM |
为 SM-DP+ 和 eIM 之间提供安全传输,用于传递配置文件包。 |
ES10a |
IPA – eUICC |
用于 IPA (位于物联网设备中) 和 eUICC 之间处理配置文件发现。 |
ES10b |
IPA – eUICC |
用于 IPA (位于物联网设备中) 和 IPA 服务之间,将配置文件包传输到 eUICC。 |
ES11 |
IPA – SM-DS |
IPA 用于检索相应 eUICC 的事件记录。 |
ES11’ |
eIM – SM-DS |
eIM 用于检索相应 eUICC 的事件记录。 |
ES12 |
SM-DP+ – SM-DS |
SM-DP+ 用于在 SM-DS 上发出或移除事件注册。 |
ESep |
eIM – eUICC |
eIM 和 eUICC 之间的逻辑端到端接口,用于传输 eUICC 包以进行配置文件状态管理和 eIM 配置。 |
ESipa |
eIM – IPA |
eIM 和 IPA 之间的逻辑接口,用于触发 IPA 上的配置文件下载,并提供安全传输以传递 eUICC 包,除非底层传输提供必要的安全性。 |
2.3 关键组件
eUICC 架构:
ECASD (eUICC 控制机构安全域):负责管理 eUICC 的安全功能。
ISD-R (发行者安全域 – 根):作为 eUICC 的根安全域。
ISD-P (发行者安全域 – 配置文件):用于存储和管理配置文件。
配置文件 (Profile):包含运营商提供的服务和应用程序。
操作配置文件 (Operational Profile):用于提供运营商服务。
配置配置文件 (Provisioning Profile):用于配置 eUICC。
测试配置文件 (Test Profile):用于测试目的。
电信框架 (Telecom Framework):提供标准化的应用程序,并配置算法参数以启用配置文件。
配置文件包解释器 (Profile Package Interpreter):将配置文件包数据转换为特定内部格式的已安装配置文件。
IPA (位于 eUICC 中):提供类似于 IPA (位于物联网设备中) 的功能。
IPA 服务:提供 IPA 所需的服务和数据访问,包括:
提供根 SM-DS 地址和默认 SM-DP+ 地址(如果配置)。
将绑定配置文件包从 IPAd 传输到 ISD-P。
提供已安装配置文件列表及其元数据。
检索 eUICC ID (EID)。
提供配置文件状态管理操作。
提供 eUICC 执行结果和通知。
三、 主要流程
3.1 eIM 和 IPA 通信
eIM 包传输:
eIM 包检索:IPA 从 eIM 检索任何挂起的 eIM 包。
eIM 和 IPA 建立安全连接。
IPA 调用 ESipa.GetEimPackage 函数。
eIM 返回 eIM 包给 IPA。
IPA 处理 eIM 包。
IPA 可选择调用 ESipa.ProvideEimPackageResult 函数以发送 eIM 包结果和/或通知给 eIM。
eIM 包注入:eIM 直接将 eIM 包发送给 IPA。
eIM 和 IPA 建立安全连接。
eIM 调用 ESipa.TransferEimPackage 函数。
IPA 处理 eIM 包。
IPA 返回 eIM 包结果给 eIM。
安全连接建立:
HTTP over TCP with TLS:适用于非网络受限设备。
CoAP over UDP with DTLS:适用于网络受限设备。
底层传输层:使用物联网设备已实现的接口和协议进行传输,需确保 ESipa 消息的机密性、完整性和真实性。
3.2 配置文件下载和安装
直接配置文件下载:
步骤概述:
1.eIM 或 IPA 解析激活代码 (AC) 或从 SM-DS 获取 SM-DP+ 地址和事件 ID。
2.IPA 从 eIM 获取 eIM 包(包含配置文件下载触发器)。
3.IPA 解析 eIM 包以获取配置文件下载触发器。
4.IPA 解析 AC(如果适用)。
5.执行通用相互认证过程。
6.SM-DP+ 验证下载请求的合法性,并执行资格检查。
7.SM-DP+ 可选择通知运营商资格检查结果。
8.如果资格检查失败,SM-DP+ 将配置文件设置为“错误”状态并终止过程。
9.SM-DP+ 将配置文件元数据、签名数据和证书返回给 IPA。
10.IPA 验证配置文件元数据。
11.IPA 和 eUICC 处理 ES10b.PrepareDownload 函数调用。
12.IPA 将配置文件安装到 eUICC。
13.IPA 将配置文件下载触发结果发送给 eIM。
14.SM-DP+ 继续处理配置文件安装结果。
15.IPA 可选择请求自动启用配置文件。
16.eUICC 启用配置文件并生成启用通知。
17.IPA 将新生成的通知发送给通知接收器。
间接配置文件下载:
步骤概述:
1.eIM 解析 AC 或从 SM-DS 获取 SM-DP+ 地址和事件 ID。
2.IPA 从 eIM 获取 eIM 包(包含配置文件下载触发器)。
3.IPA 解析 eIM 包以获取配置文件下载触发器。
4.IPA 解析 AC(如果适用)。
5.IPA 从 eUICC 获取 euiccInfo1。
6.IPA 从 eUICC 请求 eUICC 挑战。
7.如果尚未建立安全连接,则建立安全连接。
8.IPA 调用 ESipa.InitiateAuthentication 函数。
9.eIM 与 SM-DP+ 建立 HTTPS 连接。
10.eIM 和 SM-DP+ 处理 ES9+’.InitiateAuthentication 函数。
11.eIM 将 ESipa.InitiateAuthentication 响应发送给 IPA。
12.IPA 和 eUICC 处理 ES10b.AuthenticateServer 函数调用。
13.IPA 调用 ESipa.AuthenticateClient 函数。
14.eIM 和 SM-DP+ 处理 ES9+’.AuthenticateClient 函数。
15.eIM 将 ESipa.AuthenticateClient 响应发送给 IPA。
16.IPA 和 eUICC 处理 ES10b.PrepareDownload 函数调用。
17.IPA 调用 ESipa.GetBoundProfilePackage 函数。
18.eIM 和 SM-DP+ 处理 ES9+’.GetBoundProfilePackage 函数。
19.eIM 将 ESipa.GetBoundProfilePackage 响应发送给 IPA。
20.IPA 将配置文件安装到 eUICC。
21.SM-DP+ 继续处理配置文件安装结果。
取消会话过程:
当在 ESipa.AuthenticateClient 或 ESipa.GetBoundProfilePackage 响应后发生错误时,IPA 可调用 ESipa.CancelSession 函数以取消间接配置文件下载会话。
eIM 将 ESipa.CancelSession 请求转发给 SM-DP+。
SM-DP+ 处理取消请求并返回结果给 eIM。
eIM 将结果返回给 IPA。
3.3 eUICC 包处理
通用 eUICC 包下载和执行:
步骤概述:
1.eIM 准备 eUICC 包并签名。
2.eIM 将 eIM 包传输给 IPAd。
3.IPAd 调用 ES10b.LoadEuiccPackage 函数将 eUICC 包提供给 eUICC。
4.eUICC 验证 eIM 签名,检查 EID 和重放计数器。
5.eUICC 依次执行 eUICC 包中的 PSMO/eCO。
6.eUICC 生成 eUICC 包执行结果并签名。
7.如果 eUICC 包包含启用/禁用 PSMO,则 eUICC 会刷新设备并启用/禁用相应的配置文件。
8.IPAd 从 eUICC 获取签名的 eUICC 包结果。
9.IPAd 可选择调用 ES10b.RetrieveNotificationsList 函数以检索挂起的通知。
10.IPAd 将包含签名的 eUICC 包结果的 eIM 包结果传输给 eIM。
11.eIM 提取 eUICC 包结果,验证 eUICC 签名并检查序列号以防止重放。
12.eIM 处理 eUICC 包结果。
13.eIM 确认已成功接收签名的 eUICC 包结果和通知(如果有)。
14.eIM 将接收到的通知转发给通知接收器。
15.IPAd 调用 ES10b.RemoveNotificationFromList 函数以删除 eUICC 包结果和挂起的通知。
16.eUICC 从其内存中删除 eUICC 包结果或挂起的通知。
配置文件状态管理:
启用配置文件:IPA 调用 ES10b.LoadEuiccPackage 函数以启用 eUICC 上已下载并安装的配置文件。
禁用配置文件:IPA 调用 ES10b.LoadEuiccPackage 函数以禁用 eUICC 上已下载并安装的配置文件。
删除配置文件:IPA 调用 ES10b.LoadEuiccPackage 函数以删除 eUICC 上已下载并安装的配置文件。
配置自动启用配置文件:
由 eIM 配置:eIM 调用 ES10b.LoadEuiccPackage 函数以激活或停用 eUICC 中的自动配置文件启用,并添加或更新用于自动配置文件启用的默认 SM-DP+ 数据。
由 IPA 配置:IPA 调用 ES10b.ConfigureAutomaticProfileEnabling 函数以激活或停用 eUICC 中的自动配置文件启用,并添加或更新用于自动配置文件启用的默认 SM-DP+ 数据。
eIM 配置:
eIM 配置数据由 eIM 管理:
添加 eIM 配置数据:IPA 调用 ES10b.LoadEuiccPackage 函数以添加新的 eIM 配置数据。
删除 eIM 配置数据:IPA 调用 ES10b.LoadEuiccPackage 函数以删除 eIM 配置数据。
更新 eIM 配置数据:IPA 调用 ES10b.LoadEuiccPackage 函数以更新 eIM 配置数据。
请求关联 eIM 列表:IPA 调用 ES10b.LoadEuiccPackage 函数以请求 eUICC 提供当前配置的关联 eIM 列表。
eIM 配置数据由 IPA 管理:
添加初始 eIM 配置数据:IPA 调用 ES10b.AddInitialEim 函数以将特定 eIM 的 eIM 配置数据添加到尚未包含任何关联 eIM 的 eUICC 中。
删除所有 eIM 配置数据:IPA 调用 ES10b.EuiccMemoryReset 函数以删除 eUICC 中所有关联 eIM 的所有 eIM 配置数据。
读取 eIM 配置数据:IPA 调用 ES10b.GetEimConfigurationData 函数以读取 eUICC 中存储的 eIM 配置数据。
3.4 错误处理
RSP 会话错误处理:
RSP 会话期间发生错误时,IPA 应向外部实体指示此类故障,例如设备管理平台。
发生通信故障时,IPA 可在一定时间内重试失败的 RSP 会话。
RSP 会话失败后,IPA 应重置其会话状态。
发生 RSP 会话失败的其他原因包括:
eUICC 卡片被意外移除。
物联网设备断电。
软件故障导致 IPA、主机物联网设备或基带处理器崩溃。
通知处理:
IPA 可使用 ES10b.RetrieveNotificationsList 函数检索挂起的通知列表。
IPA 可使用 ESipa.HandleNotification 函数将通知发送给 eIM,eIM 再转发给通知接收器。
IPA 可使用 ES10b.RemoveNotificationFromList 函数删除已确认的通知。
四、 数据元素
4.1 IPA 能力
IPA 能力用于指示 eIM 有关 eIM 和 IPA 之间配置文件下载的功能拆分以及在 ESipa 函数中使用紧凑数据对象结构的情况。
支持的功能:
直接配置文件下载。
间接配置文件下载。
eIM 处理下载数据(例如激活代码)。
eIM 生成 ctxParams1。
eIM 执行配置文件元数据验证。
使用紧凑数据对象以最小化传输的 ESipa 字节数。
eIM 包传输支持:
使用 TCP 上的 HTTPs 进行 eIM 包检索。
使用 UDP 上的 CoAP/DTLS 进行 eIM 包检索。
使用 TCP 上的 HTTPs 进行 eIM 包注入。
使用 UDP 上的 CoAP/DTLS 进行 eIM 包注入。
专有传输协议。
4.2 eIM 支持的协议
eimSupportedProtocol指示 eIM 支持的传输协议和 eIM 包传输方法。
使用 TCP 上的 HTTPs 进行 eIM 包检索。
使用 UDP 上的 CoAP/DTLS 进行 eIM 包检索。
使用 TCP 上的 HTTPs 进行 eIM 包注入。
使用 UDP 上的 CoAP/DTLS 进行 eIM 包注入。
专有传输协议。
4.3 eIM 标识符
eimId是 eUICC 列表中唯一的 eIM 标识符。
eimId 类型:
OID:分配给 eIM 的对象标识符。
FQDN:eIM 的完全限定的域名。
专有:eimId 值可以自由选择,但必须符合本规范的要求。
五、 函数
本节详细介绍了 eUICC、IPA、eIM 和 SM-DP+ 之间的各种函数调用,包括请求-响应函数和通知处理函数。
5.1 主要函数
ES2+、ES6、ES8+、ES9+、ES9+’、ES10a、ES10b、ES11、ES11’、ES12、ESep 和 ESipa 接口中定义了多种函数,用于执行配置文件下载、安装、状态管理、eIM 配置等操作。
eIM 包传输:
TransferEimPackage:eIM 调用此函数将 eIM 包传输给 IPA。
GetEimPackage:IPA 调用此函数从 eIM 获取 eIM 包。
ProvideEimPackageResult:IPA 调用此函数将 eIM 包结果返回给 eIM。
eIM 认证:
InitiateAuthentication:eIM 调用此函数以启动 eUICC 和 SM-DP+/SM-DS 之间的相互认证。
AuthenticateClient:IPA 调用此函数以请求 SM-DP+/SM-DS 对 eUICC 进行认证。
配置文件下载:
GetBoundProfilePackage:eIM 调用此函数以请求将配置文件包绑定到 eUICC。
PrepareDownload:IPA 调用此函数以准备配置文件下载。
LoadBoundProfilePackage:IPA 调用此函数以将配置文件包加载到 eUICC。
配置文件状态管理:
Enable:eUICC 调用此函数以启用配置文件。
Disable:eUICC 调用此函数以禁用配置文件。
Delete:eUICC 调用此函数以删除配置文件。
ListProfileInfo:eIM 调用此函数以检索 eUICC 上已安装配置文件的列表。
GetRAT:eIM 调用此函数以检索 eUICC 上的规则授权表 (RAT)。
ConfigureAutoEnable:eIM 或 IPA 调用此函数以配置 eUICC 中配置文件的自动启用。
eIM 配置:
AddEim:eUICC 调用此函数以添加关联 eIM。
UpdateEim:eUICC 调用此函数以更新关联 eIM 的配置数据。
DeleteEim:eUICC 调用此函数以删除关联 eIM。
ListEim:eIM 调用此函数以检索 eUICC 上配置的关联 eIM 列表。
AddInitialEim:IPA 调用此函数以添加初始 eIM 配置数据。
EuiccMemoryReset:IPA 调用此函数以删除 eUICC 上所有 eIM 配置数据。
GetEimConfigurationData:IPA 调用此函数以读取 eUICC 上存储的 eIM 配置数据。
六、 其他重要内容
安全机制:
所有通信均使用 TLS/DTLS 进行加密和认证。
eIM 和 IPA 之间的通信可以使用 HTTPs 或 CoAP/DTLS。
eIM 和 SM-DP+/SM-DS 之间的通信使用 HTTPs。
配置文件包和 eIM 包均经过签名和加密。
eIM 和 IPA 之间的 ESipa 接口支持多种传输协议,包括 TCP 上的 HTTPs 和 UDP 上的 CoAP/DTLS。
物联网设备制造商负责 IPA 发起请求的保护。
通知处理:
eUICC 生成的任何通知均由 IPA 转发给 eIM,eIM 再转发给通知接收器。
eIM 可选择使用 ESipa.HandleNotification 函数将通知发送给 IPA,IPA 再转发给 SM-DP+。
eUICC 内存重置:
允许删除选定的配置文件子集,包括操作配置文件和未预装的测试配置文件。
允许重置默认 SM-DP+ 地址,删除所有 eIM 配置数据,并重置自动配置文件启用配置。
LwM2M 和 MQTT 协议映射:
提供了使用 LwM2M 和 MQTT 实现 ESipa 接口的示例,包括对象定义、资源定义和通信流程。
七、 结论
本规范为 eSIM IoT 架构提供了全面的技术解决方案,涵盖了远程配置和管理 eUICC 的各个方面。通过定义清晰的架构、接口、流程和安全机制,本规范促进了不同物联网设备、eUICC 解决方案和运营商之间的互操作性,推动了物联网生态系统的发展。
作者:SofterICer