3 Detailed Procedure Specifications
3.1 Profile Download and Installation
3.1.1 ISD-P Creation
在远程配置和管理eUICC(嵌入式通用集成电路卡)的系统中,详细的过程规范定义了如何实现各个步骤。以下是远程配置和管理系统的详细过程规范,特别是配置文件下载和安装的四个主要步骤:
1. **ISD-P在eUICC上的创建**
2. **使用首个密钥集对ISD-P进行个性化设置,称为密钥建立过程**
3. **下载并安装配置文件到eUICC**
4. **(可选)启用新安装的配置文件**
此外,SM-SR可以选择发送命令ES5.UpdateSMSRAddressingParameters来更新TP-DestinationAddress列表,并为这个新加载的配置文件定义一个特定的TP-DA。该命令可以在第一步(ISD-P创建)之后和第四步(启用配置文件)之前随时发送。
### ISD-P创建过程:
1. **下载配置文件**:拥有要下载配置文件的运营商将调用“ES2.DownloadProfile”函数,并提供相关输入数据(运营商需要提供SM-SR的识别和地址)。通过提供所需的最终状态,运营商可以要求SM-DP在过程结束时启用新下载的配置文件。否则,默认情况下,配置文件将处于禁用状态。
2. **获取EIS**:接收到请求的SM-DP将调用“ES3.GetEIS”函数,并提供相关输入数据。
3. **检索EIS**:SM-SR将根据EID检索eUICC的EIS。如果eUICC在其系统中是未知的,SM-SR可能会返回一个错误。错误最终将返回给运营商,过程将结束。
4. **返回EIS**:如果EIS指示ISD-P处于'Created'状态,并且'smdp-id'将其与呼叫的SM-DP关联,则SM-DP将删除此配置文件,无论其ICCID是否相同,如第3.1.5节所述,然后尝试安装新配置文件。
5. **资格检查**:SM-DP将根据要下载的配置文件的特性对eUICC进行资格检查。SM-DP执行的确切检查超出了此规范的范围,但可能包括的检查包括:
- 目标配置文件是否与此类eUICC兼容并经过验证?
- 是否有足够的内存?
- eUICC是否已认证?
6. **创建ISD-P**:SM-DP将调用“ES3.CreateISDP”函数,并提供相关输入数据。
7. **SM-SR验证**:SM-SR将验证SM-DP的请求是否可接受,并创建一个新的配置文件条目,状态为“InCreation”。
8. **触发HTTPS会话**:如果没有与eUICC的现有HTTPS会话,SM-SR将触发HTTPS会话。
9. **返回CreateISDP响应**:SM-SR将返回包含“ES5.CreateISDP”的HTTP POST响应。
10. **ISD-R创建ISD-P**:ISD-R将创建ISD-P。如果出错,ISD-R将在下一个POST请求中返回错误。
11. **eUICC返回响应**:eUICC将在POST请求中返回“ES5.CreateISDP”函数的执行响应。
12. **状态更新**:假设ISD-P创建成功,SM-SR将在EIS中更新配置文件的状态为“Created”。
13. **返回CreateISDP响应**:SM-SR将返回“ES3.CreateISDP”函数的执行响应给SM-DP。
13a. **错误处理**:如果SM-SR没有从eUICC收到函数执行响应(例如,由于连接中断),SM-SR将触发目标ISD-P上的ES5.DeleteISDP函数,并相应地从EIS中删除状态为“In Creation”的新配置文件条目。
在本示例过程中,假设SM-DP在“ES5.CreateISDP”调用中指示了“more to do”。如果SM-DP没有指示“more to do”,则SM-SR可以选择结束HTTPS会话。
### 注意:
- 在实际实现中,函数和通知的发送或接收顺序可能与本节中定义的不同。
- 每个步骤中可能发生的错误和异常情况需要被妥善处理,以确保系统的稳定性和数据的完整性。
- 运营商、SM-DP和SM-SR之间的交互需要遵循GSMA远程配置架构和GlobalPlatform安全规范,以确保整个过程的安全性和可靠性。
3.1.2 Key Establishment with Scenario#3-Mutual Authentication
在eUICC的远程配置和管理系统中,配置文件下载和安装过程的第二步是密钥建立,其中定义了一个新的场景,称为“Scenario#3-Mutual Authentication”(场景#3-双向认证)。这个序列使用基于GlobalPlatform卡规范修正案E [11]中定义的ECKA EG(ElGamal)方案,并增加了SM-DP(订阅管理数据准备器)的认证步骤。
以下是“Scenario#3-Mutual Authentication”的概述:
1. **双向认证场景**:此场景旨在建立一个安全的通信通道,其中涉及的双方(SM-DP和eUICC)可以相互验证对方的身份。
2. **使用ECKA EG方案**:ElGamal加密方案是一种基于离散对数难题的非对称加密算法,常用于挑战-响应认证机制中。
3. **SM-DP认证步骤**:在GlobalPlatform规范的基础上,增加了对SM-DP进行认证的步骤,以确保eUICC正在与一个可信的SM-DP通信。
4. **密钥建立过程**:此过程涉及多个步骤,包括但不限于生成密钥、交换密钥、认证和验证等,以确保双方可以安全地通信。
5. **安全性**:通过双向认证,提高了通信的安全性,防止了中间人攻击和其他潜在的安全威胁。
6. **GlobalPlatform规范**:整个过程遵循GlobalPlatform卡规范,确保了与GlobalPlatform生态系统的兼容性和互操作性。
7. **SM-DP和eUICC的互动**:SM-DP和eUICC在认证和密钥交换过程中将交换多个消息,以完成密钥的建立。
8. **错误处理**:如果在密钥建立过程中发生错误,如认证失败、密钥生成错误等,系统将采取适当的错误处理措施。
9. **后续步骤**:一旦密钥建立过程成功完成,将为后续的配置文件下载和安装过程提供一个安全的通信环境。
“Scenario#3-Mutual Authentication”为eUICC的远程管理提供了一个安全的基础,确保了运营商和eUICC之间的通信是安全和可信的。通过这种机制,可以保护用户的敏感信息,防止未授权的访问和篡改。
在eUICC的远程配置和管理系统中,密钥建立过程是确保安全通信的关键步骤,特别是在使用“Scenario#3-Mutual Authentication”(场景#3-双向认证)时。以下是该过程的详细步骤,包括开始条件和程序流程:
### 开始条件:
- ISD-P(发行安全域-准备器)必须按照3.1.1节中定义的方式创建。
- eUICC/ECASD(控制权威安全域)必须支持场景#3-双向认证,并且必须配备SK.ECASD.ECKA(ECASD的ElGamal密钥)和PK.CI.ECDSA(CI的ECDSA公钥)。
### 程序流程:
1. **SM-DP调用函数**:SM-DP调用“ES3.SendData”函数,指定目标eUICC、ISD-R,并包含“ES8.EstablishISDPKeySet”函数的数据,以及标识SM-DP的证书(由SM-DP证书颁发者颁发)。
2. **SM-SR验证请求**:SM-SR验证SM-DP的请求是否可接受(具体验证步骤在5.4.4节中描述)。如果条件不满足,SM-SR返回失败响应,程序停止。
3. **触发HTTPS会话**:如果尚未打开,SM-SR根据2.4.4.5节的定义触发与ISD-R的HTTPS会话。
4. **SM-SR返回响应**:SM-SR返回包含由SM-DP在步骤(1)提供的“ES8.EstablishISDPKeySet”函数的HTTP POST响应。
5. **ISD-R转发数据**:ISD-R将HTTP响应中包含的STORE DATA命令的内容转发给ISD-P。
6. **ISD-P验证证书**:ISD-P验证SM-DP证书。
7. **ISD-P转发证书**:ISD-P将CERT.DP.ECDSA转发给ECASD进行验证。
8. **ECASD验证并生成挑战**:ECASD使用PK.CI.ECDSA验证CERT.DP.ECDSA,如果有效,提取并存储PK.DP.ECDSA,生成随机挑战(RC),长度为16或32位。
9. **返回随机挑战**:将随机挑战(或错误)返回给ISD-P,然后转发给ISD-R。
10. **ISD-R返回执行响应**:ISD-R在新的HTTP POST请求中将执行响应(RC或错误)返回给SM-SR。
11. **SM-SR返回内容**:SM-SR将收到的HTTP POST的内容(RC或错误)返回给SM-DP。
12. **SM-DP生成密钥对**:SM-DP生成与目标ICCID相关的临时密钥对(ePK.DP.ECKA和eSK.DP.ECKA),使用SK.DP.ECDSA对接收到的随机挑战(RC)和生成的ePK.DP.ECKA进行签名。
13. **SM-DP调用函数**:SM-DP再次调用“ES3.SendData”函数,发送包含“ES8.EstablishISDPKeySet”函数的数据,包括ePK.DP.ECKA和之前计算的签名。
14. **SM-SR返回响应**:SM-SR返回包含由SM-DP在步骤(10)提供的“ES8.EstablishISDPKeySet”函数的HTTP POST响应。
15. **ISD-P和ECASD处理数据**:ISD-P将数据转发给ECASD进行验证,如果签名有效,ECASD计算ShS(共享秘密)。
16. **ISD-P计算密钥集**:ISD-P可能选择计算派生随机数(DR),从ShS(和可选的DR)派生密钥集,计算要返回给SM-DP的收据。
17. **ISD-P返回收据**:ISD-P将计算的收据(和可选的DR)或错误返回给ISD-R。
18. **ISD-R返回执行响应**:ISD-R将执行响应(收据(可选DR)或错误)在新的HTTP POST请求中返回给SM-SR。
19. **SM-DP验证收据**:SM-DP使用eSK.DP.ECKA和PK.ECASD.ECKA计算ShS,从ShS(和可选DR)派生密钥集,并验证收据以确保密钥集派生与ISD-P执行的一致。
### 注意:
- eUICC应支持带或不带DR的密钥建立。SM-DP决定使用哪种选项。
- BSI TR-03111 [49]包含有关生成和验证临时密钥的建议和要求。此外,NIST SP 800-56A [50]提供了有关在临时密钥和其他中间秘密数据使用后销毁它们的需求。
此过程确保了SM-DP和eUICC之间的通信是安全的,并且双方都能够验证对方的身份,从而为后续的配置文件下载和安装过程提供了一个安全的密钥集。
3.1.3 Download and Installation of the Profile
在eUICC的远程配置和管理系统中,配置文件的下载和安装过程是实现远程订阅管理的关键步骤。以下是该过程的详细步骤,包括开始条件和程序流程:
### 开始条件:
- ISD-P(发行安全域-准备器)已根据3.1.1和3.1.2节中的定义创建并个性化设置。
### 程序流程:
1. **SM-DP发送数据**:SM-DP调用“ES3.SendData”函数,指定目标eUICC、ISD-P,并提供要下载的配置文件数据作为输入数据。
2. **SM-SR验证请求**:SM-SR验证SM-DP的请求是否可接受,并根据5.4.4节描述的步骤执行验证。
3. **触发HTTPS会话**:如果尚未打开,SM-SR根据2.4.4.5节的定义触发与ISD-R的HTTPS会话。
4. **SM-SR返回响应**:SM-SR返回包含由SM-DP提供的加密数据的HTTP POST响应。X-Admin-Targeted-Application字段包含ISD-P-AID。
5. **ISD-R转发数据**:ISD-R将接收到的加密数据转发给由X-Admin-Targeted-Application字段标识的ISD-P。
6. **ISD-P处理数据**:ISD-P处理接收到的数据安全性。如果安全处理失败,错误将在下一个POST请求中返回给SM-SR,最终返回给SM-DP,并根据错误情况决定是否结束过程。
7. **ISD-P处理命令TLV**:ISD-P处理接收到的命令TLV(标签-长度-值),并将响应返回给ISD-R。
8. **ISD-R返回响应**:ISD-R在下一个POST请求中将ISD-P的响应返回给SM-SR。
9. **SM-SR返回执行状态**:SM-SR将“ES3.SendData”函数的执行状态返回给SM-DP。
10. **可选步骤**:如果配置文件的下载和安装需要多个步骤,SM-DP可以再次调用“ES3.SendData”函数。这个可选步骤可以根据需要重复多次。
11. **下载完成**:下载完成后,SM-DP调用“ES3.ProfileDownloadCompleted”函数,指示SM-SR配置文件已下载和安装。SM-DP可以选择为配置文件定义POL2(策略操作2)。
12. **启用配置文件**:如果运营商最初请求启用配置文件,SM-DP将请求SM-SR按照3.3节中的过程启用新安装的配置文件。
13. **SM-DP返回响应**:SM-DP将“ES2.DownloadProfile”函数调用的响应返回给运营商。如果配置文件已成功下载,但可选步骤12失败或在完成配置文件启用之前过期,函数执行响应应包括“Executed-WithWarning”执行状态,表示配置文件已下载。
14. **发送下载通知**:如果配置文件成功下载并安装,SM-SR将向M2M SP(机器对机器服务提供商)发送“ES4.HandleProfileDownloadedNotification”,如果运营商授权的话,并指示是否根据可选步骤12启用了配置文件。
### 注意:
- 在配置文件下载和安装过程中,安全性是关键考虑因素,特别是在传输可能包含敏感信息的配置文件数据时。
- 该过程可能涉及多个步骤和往返通信,以确保配置文件的完整性和正确性。
- 如果M2M SP被设置为接收“配置文件下载通知”,它可能会比启动配置文件下载的运营商更早地收到成功下载配置文件的信息。
- 运营商直到执行了3.3节中描述的配置文件启用过程后,才会收到配置文件下载的结果。
通过这个详细的过程,运营商能够安全地将配置文件下载和安装到eUICC上,实现远程订阅的灵活管理。
3.1.4 Error Management Sub-Routine
在eUICC的远程配置和管理系统中,如果在密钥建立过程或配置文件下载过程中发生错误,将执行错误管理子程序以清理或删除相关的ISD-P(发行安全域-准备器)。以下是错误管理子程序的详细步骤:
### 程序流程:
1. **调用DeleteISDP函数**:SM-DP(订阅管理数据准备器)在密钥建立过程或下载配置文件过程中发生错误时,将调用“ES3.DeleteISDP”函数,并提供相关的输入数据。
2. **触发HTTP会话**:如果尚未打开与ISD-R(发行安全域-接收器)的HTTP会话,SM-SR(订阅管理-服务器)将根据2.4.4.5节的定义触发会话。
3. **返回DeleteProfile响应**:SM-SR将返回一个HTTP POST响应,其正文包含带有ICCID的“ES5.DeleteProfile”函数。由于命令针对的是ISD-R,因此应省略X-Admin-Targeted-Application参数。
4. **执行POL1**:如果配置文件已完全安装,ISD-R将执行策略操作1(POL1)。如果POL1阻止了目标配置文件的删除,则ISD-R将跳过步骤4。
5. **删除ISD-P**:ISD-R将删除目标ISD-P。
6. **返回删除执行响应**:ISD-R将在一个新的HTTP POST请求中,将“ES5.DeleteProfile”的执行响应发送给SM-SR。
7. **转发删除状态**:SM-SR将“ES3.DeleteISDP”的状态转发给SM-DP。
8. **返回下载失败的响应**:如果ISD-P的删除成功,将向运营商返回指示下载失败的响应消息。如果“ES5.DeleteProfile”超时,则下载状态将被报告为‘Expired’(已过期)。
9. **POL1阻止删除**:如果由于POL1阻止了ISD-P的删除,SM-DP将认为配置文件下载和安装在eUICC上成功,并将继续执行3.1.3节中描述的程序。
### 注意:
- 如果ISD-P的删除失败或超时(例如,因为eUICC不在覆盖范围内),或者SM-DP没有收到删除的确认(例如,因为发送结果的步骤5失败),SM-DP将在对同一eUICC进行后续配置文件下载过程的开始时,有机会删除ISD-P和可能不完整的配置文件,如3.1.5节所述。
- 此错误管理子程序的目的是确保在发生错误时,系统能够恢复到一致的状态,避免部分完成的操作导致的系统不稳定。
- 使用RAM over HTTP作为传输协议的例子,说明了如何通过HTTP协议安全地传输错误处理命令和数据。
- 根据错误的严重性和性质,错误管理子程序可能会结束当前过程,或者在恢复后继续执行。
通过这个错误管理子程序,eUICC的远程配置和管理系统能够以安全和可控的方式处理错误情况,确保系统的稳定性和数据的完整性。
3.1.5 ISD-P Cleanup Sub-Routine
在eUICC的远程配置和管理系统中,如果SM-DP(订阅管理数据准备器)之前未能删除一个ISD-P(发行安全域-准备器),它将遵循一个替代流程来执行ISD-P的清理。以下是ISD-P清理子程序的详细步骤:
### 开始条件:
- 此流程是在之前尝试删除ISD-P失败的情况下执行的,但不包括由于策略操作1(POL1)导致清理失败的情况。
- 此流程不包括具有相同ICCID的配置文件未能在不同eUICC上完成下载的情况。
### 程序流程:
1. **SM-DP调用GetEIS**:SM-DP调用“ES3.GetEIS”函数来检索eUICC的EIS(扩展信息服务)。
2. **SM-SR检索并返回EIS**:SM-SR根据EID(设备ID)检索eUICC的EIS,并将其返回给SM-DP。
3. **SM-DP验证EIS**:SM-DP检查EIS以确认ISD-P的状态,确认它是否为之前未能删除的ISD-P。
4. **SM-DP调用CreateISDP**:SM-DP调用“ES3.CreateISDP”函数,尝试重新创建ISD-P条目。
5. **SM-SR处理CreateISDP请求**:SM-SR处理SM-DP的请求,并在EIS中为ISD-P创建一个新的条目,状态为“InCreation”。
6. **SM-SR触发HTTPS会话**:如果尚未建立,SM-SR触发与ISD-R(发行安全域-接收器)的HTTPS会话。
7. **SM-SR发送CreateISDP命令**:SM-SR向ISD-R发送“ES5.CreateISDP”命令。
8. **ISD-R创建ISD-P**:ISD-R在eUICC上尝试创建ISD-P。如果失败,将返回错误。
9. **ISD-R返回创建结果**:ISD-R在HTTPS会话中将ISD-P的创建结果返回给SM-SR。
10. **SM-SR更新EIS**:如果ISD-P创建成功,SM-SR在EIS中更新ISD-P的状态为“Created”。
11. **SM-SR返回CreateISDP响应**:SM-SR将“ES3.CreateISDP”函数的执行响应返回给SM-DP。
12. **SM-DP验证响应**:SM-DP验证响应以确认ISD-P是否成功创建。
13. **SM-DP调用DeleteISDP**:如果ISD-P成功创建,SM-DP调用“ES3.DeleteISDP”函数来删除ISD-P。
14. **SM-SR处理DeleteISDP请求**:SM-SR处理SM-DP的请求,并触发与ISD-R的HTTPS会话(如果需要)。
15. **SM-SR发送DeleteISDP命令**:SM-SR向ISD-R发送“ES5.DeleteISDP”命令。
16. **ISD-R删除ISD-P**:ISD-R在eUICC上执行删除ISD-P的操作。
17. **ISD-R返回删除结果**:ISD-R将ISD-P的删除结果返回给SM-SR。
18. **SM-SR更新EIS并返回响应**:SM-SR在EIS中更新ISD-P的状态以反映删除操作,并将“ES3.DeleteISDP”函数的执行响应返回给SM-DP。
19. **错误处理**:如果在任何步骤中发生错误,SM-DP将执行错误管理程序,确保系统能够妥善响应,并在必要时停止或回滚操作。
### 注意:
- 此流程是用于清理之前未能成功删除的ISD-P实例。
- 如果由于POL1或其他原因导致清理失败,可能需要额外的错误处理或操作。
- 此流程确保了eUICC上的配置文件和订阅管理的整洁和一致性,防止了残留的配置文件占用空间或引起冲突。
通过这个清理子程序,SM-DP能够确保eUICC上不再需要的ISD-P被妥善删除,维护了系统的整洁和安全性。