当前位置: 首页 > article >正文

ES5 (SM-SR-eUICC) 接口上的 OTA 通信笔记

##  ES5 (SM-SR-eUICC) 接口上的 OTA 通信笔记

ES5 接口用于 SM-SR 与 eUICC 之间的通信,主要用于平台管理命令,例如配置文件启用/禁用、POL1 更新等。

### 2.4.1  通用 OTA 要求

-  **通信协议:** 
    -  eUICC 必须支持 SMS,并支持 CAT_TP 或 HTTPS 或两者。
    -  SM-SR 必须支持 SMS、HTTPS 和 CAT_TP。
    -  在 HTTPS 情况下,SM-SR 和 eUICC 可支持 DNS 解析以解析 SM-SR 的 IP 地址。
    -  SM-SR 可根据 eUICC 和设备功能以及要执行的平台或配置文件管理操作选择最合适的协议。
-  **安全通道:**
    -  ES5 功能通过 SM-SR 与 ISD-R 之间建立的安全通道进行寻址。
    -  eUICC 必须支持 SCP80,并可支持 SCP81。
        -  **SCP80:** ISD-R 在发行前由 EUM 使用至少一个密钥集进行个性化,密钥版本号在“01”到“0F”之间。
        -  **SCP81:** ISD-R 使用至少一个密钥集进行个性化,密钥版本号在“40”到“4F”之间。
-  **远程管理协议 (RAM):** 
    -  eUICC 必须支持 ETSI TS 102 226 [5] 中定义的 RAM 和 RFM,特别是扩展远程应用程序数据格式和脚本链接。

### 2.4.3  短信 (SMS)

短信协议可用于以下情况:

-  **HTTPS 会话触发:** 
    -  SM-SR 使用特殊短信触发 eUICC 打开 HTTPS 会话。
    -  短信应符合 GlobalPlatform Card Specification Amendment B [8] 中描述的格式,并包含必要的 TAR 信息。
    -  SM-SR 可以选择是否为此特殊短信请求 PoR,并相应地设置短信的 SPI2 字节。
-  **CAT_TP 会话触发:**
    -  SM-SR 使用特殊短信触发 eUICC 打开 CAT_TP 会话。
    -  短信应符合 ETSI TS 102 226 [5] 中描述的格式,并使用“请求 BIP 通道打开”和“请求 CAT_TP 链接建立”参数。
-  **命令传输:**
    -  当发送到 eUICC 的命令可以放入几条短信时,使用短信可以更有效地处理。
-  **安全要求:**
    -  除 3.15.1 节描述的通知外,短信 (MO 或 MT) 应使用 AES CMAC 模式的 64 位 CC,使用 AES 的 CBC 模式进行加密,并且计数器值较高 (SPI1='16')。
    -  PoR 应使用 AES CMAC 模式的 64 位 CC,使用 AES 的 CBC 模式进行加密,并使用 SMS-SUBMIT 模式发送。
    -  所有这些安全要求也适用于 CAT_TP 会话期间交换的 SCP80 安全数据包。

#### 2.4.3.1  用于 HTTPS 会话触发的短信

-  SM-SR 使用特殊短信触发 eUICC 打开 HTTPS 会话。
-  短信应符合 GlobalPlatform Card Specification Amendment B [8] 中“触发管理会话参数”部分的描述。

#### 2.4.3.2  用于 CAT_TP 会话触发的短信

-  SM-SR 使用特殊短信触发 eUICC 打开 CAT_TP 会话。
-  短信应符合 ETSI TS 102 226 [5] 中描述的格式,并使用“请求 BIP 通道打开”和“请求 CAT_TP 链接建立”参数。

#### 2.4.3.3  短信中的命令格式

-  在短信中的安全脚本中发送到 eUICC 的命令应格式化为 ETSI TS 102 226 [5] 中定义的扩展远程命令结构。
-  eUICC 应提供扩展远程响应结构作为答案。

### 2.4.4  超文本传输协议 (HTTPS)

#### 2.4.4.1  PSK-TLS

-  **密码套件:**
    -  eUICC 必须支持 TLS 协议 v1.2 [15],并至少宣传以下预共享密钥密码套件之一:
        -  TLS_PSK_WITH_AES_128_GCM_SHA256
        -  TLS_PSK_WITH_AES_128_CBC_SHA256
    -  预共享密钥的熵至少为 128 位。
    -  ISD-R 应配置为仅支持 TLS 1.2。
    -  SM-SR 应选择与上述两个密码套件相同或更高安全级别的密码套件。
-  **PSK-ID 值:**
    -  PSK-ID 格式包含 PSK-ID 格式标识符、EID、安全域 AID、密钥标识符和密钥版本。
    -  PSK-ID 示例:
        ```
        8001028110010203040506070809010203040506074F10000102030405060708090A0BOC 0D0E0F820101830140
        ```
-  **TLS 会话管理限制:**
    -  不支持 TLS 会话恢复 (RFC 4507 或 RFC 5077) 也不支持多个并行 TLS 会话。

#### 2.4.4.2  ISD-R 的 HTTP POST 请求

-  ISD-R 使用 POST 请求获取远程 APDU 字符串并传输响应字符串。
-  POST 请求必须严格遵循 GlobalPlatform Card Specification Amendment B [8] 中定义的格式。
-  HTTP POST 标头字段 X-Admin-From 应填充 GlobalPlatform Card Specification Amendment B [8] 中标准化的“代理 ID”信息。
-  eUICC 应使用分块模式 [Transfer-Encoding: chunked CRLF] 进行 POST 请求消息。

#### 2.4.4.3  SM-SR 的 HTTP POST 响应

-  SM-SR 使用 POST 响应将远程 APDU 格式字符串传输到 ISD-R,并可能提供下一个 URI,该 URI 必须用于请求以下管理命令。
-  POST 响应必须严格遵循 GlobalPlatform Card Specification Amendment B [8] 中定义的格式。

#### 2.4.4.4  HTTP 消息中的命令格式

-  在 HTTP 消息中的安全脚本中发送到 eUICC 的命令应格式化为具有不定长度编码的扩展远程命令结构。
-  eUICC 将提供具有不定长度编码的扩展远程响应结构作为答案。

#### 2.4.4.5  HTTPS 会话触发的顺序

-  除非为特定过程另有说明,否则 eUICC 的 HTTPS 会话始终由 SM-SR 通过发送 MT-SMS 触发。
-  序列图描述了 HTTPS 会话触发的基本交换。

### 2.4.5  DNS 解析

-  DNS 解析是一个可选功能,只有在以下情况下才会触发:
    -  eUICC 包含配置为向服务器发起 DNS 查询的 DNS 解析器客户端。
    -  SM-SR 依赖于 DNS 解析器服务器,该服务器能够提供与客户端查询发送的域名相关联的 IP 地址。
    -  eUICC 确定它必须解析 SM-SR 服务器的 IP 地址。

#### 2.4.5.1  确定是否需要 DNS 解析的标准

-  eUICC 被请求打开 HTTPS 会话,并且 eUICC 支持 DNS 解析,并且 ISD-R 在其管理会话触发参数中没有配置 IP 地址,并且 ISD-R 具有 FQDN 和 DNS 服务器的 IP 地址,并且 ISD-R 尚未解析 FQDN 到 IP 地址,或者已解析但有理由认为解析值已过时。

#### 2.4.5.2  DNS 协议功能

-  SM-SR 和 eUICC 的 DNS 解析器必须符合 RFC 1035 和 RFC 3596,定义域名系统及其协议,支持查询类型 A (IPv4) 和 AAAA (IPv6),使用 UDP 协议,仅支持递归模式,并发送简短的响应。

#### 2.4.5.3  DNS 解析的过程流程

-  序列图描述了 DNS 解析的基本交换。

###  总结

该部分详细描述了 ES5 接口上的 OTA 通信,包括通信协议、安全通道、短信和 HTTPS 的使用以及 DNS 解析等内容。  了解这些信息对于 eUICC 远程配置和管理至关重要。


http://www.kler.cn/a/401904.html

相关文章:

  • 小米路由器用外网域名访问管理界面
  • 【Pythonr入门第二讲】你好,世界
  • Ubuntu 22.04 上快速搭建 Samba 文件共享服务器
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04
  • springboot上传下载文件
  • Tailscale 自建 Derp 中转服务器
  • 多目标优化算法:多目标鳗鱼和石斑鱼优化算法(MOEGO)求解DTLZ1-DTLZ9,提供完整MATLAB代码
  • mysql 的乐观锁和 mvcc 是一回事吗
  • Spring Security 中的 UserDetailsService(获取用户详细信息)
  • WebSocket简易聊天室实现(有详细解释)
  • 使用Python语言编写一个简单的网页爬虫,从网站上抓取指定关键词的新闻标题和链接。
  • 简单爬虫的实现
  • 小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现
  • 力扣-Hot100-链表其三【算法学习day.36】
  • 初识arkts-类-接口
  • 关于php Datetime 时区转换因为timezone_version(时区版本)问题造成的时区转换问题
  • k8s默认使用的后端网络模式
  • 基于YOLOv8深度学习的智慧社区建筑外墙破损(裂缝、露筋、剥落)检测系统研究与实现(PyQt5界面+数据集+训练代码)
  • 【Pikachu】PHP反序列化RCE实战
  • Django数据库迁移与反向迁移处理方案分析
  • C#使用App.config读写配置键值的简单示例
  • E45.【C语言】练习:输入10个整数查找找并打印不相同的数字及个数
  • 测试杂文 - linux串口打印
  • Rust宏系列教程—自定义派生宏
  • uniapp开发的陪玩系统该如何实现后端PHP语言的书写?
  • Android集成FCM(Firebace Cloud Messaging )