B.1 — Het opzetten van Secure Messaging Regeling specificaties en typegoedkeuring boordcomputer taxi
Het opzetten van Secure Messaging
Voor het opzetten van Secure Messaging, zoals beschreven staat in 4.6, worden de volgende stappen uitgevoerd:
1. Lees de inhoud van EF.SN.ICC door middel van een read binary met SFI '1C'h en een offset '00'h.
De laatste 8 bytes van de response data wordt gebruikt als SN.ICC.
2. Selecteer het te gebruiken algoritme voor de mutual authenticate en de symmetrische sleutel referentie.
Dit wordt gedaan met het commando Manage Security Environment, met P1 de waarde 'C1'h en P2 de waarde 'A4'h. De data bij dit commando is '80 01 8C 83 01 03'h ('8C'h om “symmetric mutual authentication algorithm with SHA-256” aan te duiden en '03'h om het Security Data Object (SDO) van PKI.KS.SM.ICC aan te duiden).
3. Vraag om een random waarde door middel van Get Challenge.
De response data is de RND.ICC.
4. Genereer een random waarde van 8 bytes voor RND.IFD, een random waarde van 32 bytes voor K.IFD en bepaal een serienummer SN.IFD van 8 bytes.
5. Stel het bericht S samen:
S = RND.IFD || SN.IFD || RND.ICC || SN.ICC || K.IFD.
6. Bereken de encrypted waarde van S met CBC Triple DES encryptie, ICV '00'h en de encryptie sleutel ENC.KEY (laatste 16 bytes van transportkey1):
ENC = CBCTDes('00', S, ENC.KEY).
7. Bereken de Retail MAC over de encrypted waarde van S met ICV '00'h en de MAC sleutel MAC.KEY (eerste 16 bytes van transportkey1):
MAC = RMac('00', ENC || '80', MAC.KEY).
NB. Gebruik altijd padding met '80 ...' achter de data.
8. Voer een Mutual Authenticate commando uit met als data ENC || MAC.
9. Wanneer de status van de response '90 00'h is, is er ook response data beschikbaar.
a. Haal de encrypted data ENC_R en de MAC uit deze data.
b. Bereken de Retail MAC over ENC_R met ICV '00'h en de MAC sleutel MAC.KEY:
MAC_R = RMac('00', ENC_R || '80', MAC.KEY).
Ook hier moet weer de padding met '80 ...' gebruikt worden.
c. Bereken de decrypted waarde van ENC_R met Inverse CBC Triple DES encryptie, ICV '00'h en de encryptie sleutel ENC.KEY:
DEC_S = InvCBCTDes('00', ENC_R, ENC.KEY).
10. Wanneer de berekende MAC_R gelijk is aan de MAC uit de response data van de Mutual Authenticate, dan is DEC_S gelijk aan
RND.ICC || SN.ICC || RND.IFD || SN.IFD || K.ICC.
11. Hieruit kunnen de volgende waardes berekend worden:
• K_ICC_IFD = K.IFD xor K.ICC
• SK_ENC = 1e 16 bytes van SHA256(K_ICC_IFD || '00 00 00 01')
• SK_MAC = 1e 16 bytes van SHA256(K_ICC_IFD || '00 00 00 02')
• SSC = laatste 4 bytes RND.ICC || laatste 4 bytes RND.IFD
- Regeling
- Regeling specificaties en typegoedkeuring boordcomputer taxi
- Soort
- Ministeriële regeling
- Geldend vanaf
- 19-12-2020
- BWB-id
- BWBR0027945
- Versie
- 2020-12-19_0