Comprehensive technical knowledge base covering 12 GSMA eSIM specifications. 84+ articles on Remote SIM Provisioning — SGP.02, SGP.22, SGP.32, SGP.41, SGP.29, SGP.23, SGP.25, SGP.26 and more.
🏠 eUICC.tech > SGP.23-1 eUICC Testing > eUICC Security Testing: Certificates, Keys, and Channels
💡 Why this matters: The eSIM security model is built on a chain of trust extending from the GSMA Certificate Issuer (CI) down through the eUICC manufacturer (EUM), the SM-DP+, and finally the eUICC itself. If any link in this chain fails: a certificate doesn’t validate, a key operation produces wrong results, or a secure channel is established with weak parameters: the entire profile delivery system is compromised. SGP.23-1 devotes significant testing to every cryptographic operation the eUICC must perform.
Key takeaways:
- Certificate validation tests verify the eUICC can validate chains from CERT.DPauth.ECDSA → CI → root, and correctly reject expired, mis-signed, or wrong-issuer certificates
- ECDSA operational tests cover signing and verification across four curves: NIST P-256, BrainpoolP256r1, FRP256V1, and SM2
- ECDH key agreement testing verifies the eUICC correctly establishes shared secrets for SCP03t secure channels
- SCP03t channel testing covers key derivation, MAC generation/verification, and encrypted command/response handling
- CRL (Certificate Revocation List) handling tests verify the eUICC loads CRLs correctly and subsequently rejects revoked certificates
- Key generation testing verifies one-time key pair generation for profile binding (
otPK.eUICC.ECKA/otSK.eUICC.ECKA)- The entire test PKI (Annex A.2) is isolated from production: test certificates and keys ensure testing never touches live GSMA infrastructure
Security testing permeates nearly every test case in SGP.23-1, but several test groups focus specifically on cryptographic correctness and secure channel operations.
SGP.23-1 defines a complete parallel PKI in Annex A.2, completely isolated from production GSMA certificates. The key principle: test certificates and test keys ensure conformance testing never touches live GSMA infrastructure.
The test PKI includes:
| Certificate / Key | Role |
|---|---|
CERT_S_CI_ECDSA |
Simulated Certificate Issuer: the root of trust for testing |
CERT_S_EUM_ECDSA |
Simulated EUM certificate: signs the eUICC’s certificates |
CERT_S_SM_DPauth_ECDSA |
SM-DP+ authentication certificate: used in ES9+.InitiateAuthentication |
CERT_S_SM_DPpb_ECDSA |
SM-DP+ profile binding certificate: verified during PrepareDownload |
CERT_S_SM_DP_TLS |
SM-DP+ TLS server certificate |
CERT_S_SM_DS_TLS |
SM-DS TLS certificate |
PK_EUICC_SIG |
eUICC public signature key: used to verify euiccSignPIR and euiccSignRPR |
SK_EUICC_SIG |
eUICC private signature key: held securely within the eUICC |
Test eUICCs are pre-loaded with the test CI’s public key in their euiccCiPKIdListForVerification and euiccCiPKIdListForSigning lists. The test SM-DP+ simulator uses SK.DPauth.SIG and SK.DPpb.SIG to sign its messages, and the eUICC verifies these against the test certificates.
Certificate validation is tested implicitly throughout the specification but concentrated in the AuthenticateServer test case group (Section 4.2.18) and the Mutual Authentication procedures.
The eUICC must validate the SM-DP+’s certificate chain during profile download. The AuthenticateServer test case verifies:
CERT.DPauth.ECDSA is signed by CERT.CI.ECDSA which is signed by the CI root: the eUICC must traverse this chain and accept itnotAfter dates in the past must be rejectedeuiccCiPKIdToBeUsed doesn’t match any key in the eUICC’s euiccCiPKIdListForVerificationThe AuthenticateServer test case (4.2.18) spans ~51 pages (pages 162–213), making it one of the most extensively specified security test groups.
During PrepareDownload, the eUICC receives the SM-DP+’s profile binding certificate (CERT.DPpb.ECDSA). Test cases verify:
ECDSA signing and verification operations are tested across all supported curves:
| Curve | Mnemonic | Test Cases |
|---|---|---|
| NIST P-256 | O_E_NIST |
PrepareDownloadNIST, LoadBoundProfilePackageNIST, plus NIST variants across all ES8+ and ES10b tests |
| BrainpoolP256r1 | O_E_BRP |
PrepareDownloadBRP, LoadBoundProfilePackageBRP, brainpool variants of all signing/verification tests |
| FRP256V1 | O_E_FRP |
PrepareDownloadFRP, LoadBoundProfilePackageFRP : French national curve testing |
| SM2 | O_E_SM2 |
Chinese national algorithm: noted as “for further study” in v3.1.3 |
Every test that involves an eUICC signature: including euiccSignPIR in profile installation results, euiccSignRPR in RPM package results, and the EUICC_SIGNATURE2 in the PrepareDownload response: must be verified against #PK_EUICC_SIG using the appropriate curve.
Five signing variants are tested:
O_VAR_O) : Standard signature formatO_VAR_OV3) : Updated variant O for V3.xThe ES8+ secure channel between the SM-DP+ and the eUICC uses SCP03t (Secure Channel Protocol 03 with TLS-style key agreement) built on ECDH:
During InitialiseSecureChannel, the SM-DP+ sends its ephemeral public key (otPK.SM-DP+.ECKA). The eUICC:
otPK.eUICC.ECKA / otSK.eUICC.ECKA)ShSShS using KDFotPK.eUICC.ECKA and receipt confirmationTest sequences verify:
The SCP03t secure channel protects all subsequent ES8+ commands (ConfigureISDP, StoreMetadata, LoadProfileElements). Test cases verify:
ReplaceSessionKeys rotates session keys mid-session for Perfect Forward SecrecyThe test specification explicitly verifies that the eUICC rejects:
InitialiseSecureChannel requestInitialiseSecureChannel request while a secure session is already activeThe LoadCRL test case (4.2.17) verifies Certificate Revocation List processing:
AuthenticateServer calls with certificates listed in that CRL must be rejectedCRL support is conditional: not all eUICCs are required to support it, but those that do must handle it correctly.
The eUICC generates several types of keys that are verified during testing:
During PrepareDownload, the eUICC generates otPK.eUICC.ECKA / otSK.eUICC.ECKA : the ephemeral key pair used to establish the encrypted download channel. Tests verify:
PrepareDownload callO_E_REUSE_OTPK is supported, the eUICC reuses the previous key pair for retry attempts after a failed downloadThe eUICC’s ECASD (eUICC Controlling Authority Security Domain) holds the eUICC’s long-term identity keys. While not a separate test group, ECASD operations are verified implicitly:
CERT.EUICC.ECDSA) must be accessible and verifiableSK.EUICC.ECDSA) must correctly sign challenges and responsesFor Integrated eUICCs using USB CCID (Annex J), the test interface specification includes security requirements:
euiccSignPIR, euiccSignRPR, EUICC_SIGNATURE2) is verified against the known test public key #PK_EUICC_SIGBased on GSMA SGP.23-1 v3.1.3 (27 January 2025) : RSP Test Specification for the eUICC, Sections 4.2.3, 4.2.10, 4.2.17, 4.2.18, Annexes A.2, J
| ← Previous: Key eUICC Test Cases: ISD-R, ECASD, and Profile Lifecycle | Section Index | Next: eUICC Certification: From SGP.23-1 Tests to SAS-UP Approval → |