wetzoeker

B.2 — Het sturen van commando’s met Secure Messaging Regeling specificaties en typegoedkeuring boordcomputer taxi

Het sturen van commando’s met Secure Messaging

Na het opzetten van de secure messaging verbinding, moeten alle volgende commando's met secure messaging uitgevoerd worden. Dit staat beschreven in 4.1 t/m 4.5.

Hierbij worden de SK_ENC, SK_MAC en SSC gebruikt die na het opzetten van de secure messaging verbinding te berekenen zijn (zie hierboven).

Om te komen van een normaal commando tot een commando onder secure messaging, moeten de volgende stappen doorlopen worden:

1. Verhoog de SSC met 1.

2. De Cla byte 'xx' wordt 'xC' (Cla').

3. Als het commando data bevat (Lc > 0), dan moet deze data encrypt worden. Bereken de encrypted waarde van de data met CBC Triple DES encryptie, ICV '00'h en de encryptie sleutel SK_ENC:

ENC = CBCTDes('00', data || '80', SK_ENC).

Ook hier moet weer de padding met '80 ...' gebruikt worden.

4. De SecuredData waarover een Retail MAC berekend moet worden is afhankelijk van Lc en Le:

• Lc > 0, Le > 0

SSC || Cla || Ins || P1 || P2 || '80' || '87' || Length(ENC)+1 || '01' || ENC || '97' || Length(Le) || Le || '80'

• Lc > 0, Le = 0

SSC || Cla || Ins || P1 || P2 || '80' || '87' || Length(ENC)+1 || '01' || ENC || '80'

• Lc = 0, Le > 0

SSC || Cla || Ins || P1 || P2 || '80' || '97' || Length(Le) || Le || '80'

• Lc = 0, Le = 0

SSC || Cla || Ins || P1 || P2 || '80'

Let op dat er padding met '80 ...' gebruikt moet worden na P2 en, indien Lc > 0 of Le > 0, aan het eind van de data.

De te gebruiken ICV is '00'h en de te gebruiken sleutel is SK_MAC.

5. Het te versturen commando ziet er dan als volgt uit:

Cla' || Ins || P1 || P2 || Length(SecuredData) + 10 || SecuredData || '8E 08'|| MAC || '00'

6. Het formaat van de response onder secure messaging is afhankelijk van het terug krijgen van data:

• data terug (even Ins)

'87' || Length(EncryptedData) + 1 || '01'|| EncryptedData || '99 02' || SW || '8E 08' || MAC || SW

• data terug (oneven Ins)

'85' || Length(EncryptedData) || EncryptedData || '99 02' || SW || '8E 08' || MAC || SW

• geen data terug

'99 02' || SW || '8E 08' || MAC || SW

7. Verhoog de SSC met 1.

8. Bereken een Retail MAC over de volgende data, afhankelijk van het formaat van de response:

• data terug (even Ins)

SSC || '87' || Length(EncryptedData) + 1 || '01'|| EncryptedData || '99 02' || SW || '80'

• data terug (oneven Ins)

SSC || '85' || Length(EncryptedData) || EncryptedData || '99 02' || SW || '80'

• geen data terug

SSC || '99 02' || SW || '80'

In alle gevallen wordt er op het eind padding met '80' gebruikt.

De te gebruiken ICV is '00'h en de te gebruiken sleutel is SK_MAC.

9. Vergelijk de berekende Retail MAC met de MAC uit de response. Deze moeten gelijk aan elkaar zijn.

10. Zijn de ontvangen en berekende MAC gelijk aan elkaar, dan kan de EncryptedData, indien aanwezig, decrypted worden.

Bereken de decrypted waarde van EncryptedData met Inverse CBC Triple DES encryptie, ICV '00'h en de encryptie sleutel SK_ENC:

DecryptedData = InvCBCTDes('00', EncryptedData, SK_ENC).

Zie de tabel hieronder voor een voorbeeld van een commando, het commando met secure messaging en het antwoord met secure messaging.

Regeling
Regeling specificaties en typegoedkeuring boordcomputer taxi
Soort
Ministeriële regeling
Geldend vanaf
19-12-2020
BWB-id
BWBR0027945
Versie
2020-12-19_0

In de hele regeling · Officiële tekst op wetten.overheid.nl