Chris Mode51
3 min readNov 24, 2022

--

eSIM RSP SM-DP+ Common Mutual Authentication Part 2: GetEUICCInfo & GetEUICCChallenge

Part 2 of this series of articles follows the triggering of the Common Mutual Authentication process by one of the activation methods listed in part 1.

ES10b.GetEUICCInfo is the initial request between the Local Profile Assistant for Device (LPAd) and the eUICC, followed by the subsequent ES10b.GetEUICChallenge.

ES10b.GetEUICCInfo

SGP.22 v2.4 Common Mutual AuthenticationES10b.GetEUICCInfo

The ES10b interface between the LPAd and the eUICC is indicated by the red marker:

About ASN.1

We will explore actual payloads that are sent between the system’s components. According to Wiki, “Abstract Syntax Notation One (ASN.1) is a standard interface description language for defining data structures that can be serialized and deserialized in a cross-platform way.”

Check the ITU’s list of ASN.1 tools.

eUICCInfo1 ASN.1 DER Payload Response

In this example the eUICC responds with the version of the SGP.22 spec that it supports and lists of the certificate issuers it trusts for verification and for signing, presented in ASN.1 formatting with annotations:

// TAG BF20 for EUICCInfo1, 61 is length = 97 bytes
BF20 61

// SGP.22 version = length 3 bytes, v2.2.0
82 03 020200

// TAG A9 is euiccCiPKIdListForVerification, 2C is length = 44 bytes
A9 2C

// brainpool cert subjectKeyIdentifier used for verification
04 14 C0BC70BA36929D43B467FF57570530E57AB8FCD8

// prime256v1 cert subjectKeyIdentifier used for verification
04 14 F54172BDF98A95D65CBEB88A38A1C11D800A85C3

// TAG AA is euiccCiPKIdListForSigning, 2C is length
AA 2C

// brainpool cert subjectKeyIdentifier used for signing
04 14 C0BC70BA36929D43B467FF57570530E57AB8FCD8

// prime256v1 cert subjectKeyIdentifier used for signing
04 14 F54172BDF98A95D65CBEB88A38A1C11D800A85C3

// APDU successful, not part of the ASN.1 payload, not included in length
90 00

Presented in a more common ASN.1 formatting without annotations:

// eUICCInfo1 from a Comprion test eSIM

BF20 61
82 03 020200
A9 2C
04 14 C0BC70BA36929D43B467FF57570530E57AB8FCD8
04 14 F54172BDF98A95D65CBEB88A38A1C11D800A85C3
AA 2C
04 14 C0BC70BA36929D43B467FF57570530E57AB8FCD8
04 14 F54172BDF98A95D65CBEB88A38A1C11D800A85C3
90 00

Compare with the following response from a Pixel 6 Pro’s eUICC.

In this example the GSMA live CI is listed as a trusted issuer 81:37:0F:51:25:D0:B1:D4:08:D4:C3:B2:32:E6:D2:5E:79:5B:EB:FB and there is also a trusted unknown CI identified by the subjectKeyIdentifier 18:1B:F2:59:4C:C2:E1:11:FF:A3:F6:88:6E:10:11:32:12:EC:4E:41:

// eUICCInfo1 from a Pixel 6 Pro

BF20 61
82 03 020202
A9 2C
04 14 81370F5125D0B1D408D4C3B232E6D25E795BEBFB
04 14 181BF2594CC2E111FFA3F6886E10113212EC4E41
AA 2C
04 14 81370F5125D0B1D408D4C3B232E6D25E795BEBFB
04 14 181BF2594CC2E111FFA3F6886E10113212EC4E41

Download the GSMA live CI from and then use OpenSSL to check the subjectKeyIdentifier:

openssl x509 -in ~/Downloads/Symantec_GSMA_RSPv2-Root-CI1.txt -text

The Subject Key Identifier is:

X509v3 Subject Key Identifier: 
81:37:0F:51:25:D0:B1:D4:08:D4:C3:B2:32:E6:D2:5E:79:5B:EB:FB

ES10b.GetEUICCChallenge

SGP.22 v2.4 Common Mutual AuthenticationES10b.GetEUICCChallenge

The euiccChallenge is also retrieved from the eUICC by the LPAd as it is included along with euiccInfo1 in the next step, part 3, in which the LPAd sends InitiateAuthentication to the SM-DP+.

--

--