wetzoeker

5.4 — Digitale handtekening Regeling specificaties en typegoedkeuring boordcomputer taxi

Digitale handtekening

Om de integriteit van gegevens te waarborgen, worden digitale handtekeningen gebruikt. Er worden twee soorten digitale handtekeningen onderscheiden:

1. De handtekening die door de chauffeurskaart over de gegevens van de kaartsessie gezet wordt in de boordcomputer.

2. De handtekening die door de boordcomputer gezet wordt over de kaartsessie gegevens op de chauffeurskaart.

In dit document gaat het om de tweede soort, waarbij de handtekeningen op de chauffeurskaart worden opgeslagen. De handtekeningen die op de boordcomputer opgeslagen worden, worden hier verder buiten beschouwing gelaten.

De digitale handtekening wordt berekend over het DriverCardNumber, de DayRecordDate en een deel van het SessionRecord (zie 5.1.2) en wordt opgeslagen in het veld SessionSignature in het betreffende SessionRecord. Daarbij worden de mogelijke vorige SignatureDateTime en handtekening in dit SessionRecord overschreven. Het te ondertekenen DriverCardNumber is een 16-karakter PrintableString zoals die aansluitend op het inloggen van de chauffeur door de boordcomputer uit de eerste 16 bytes van het subject.serialNumber van het authenticiteitcertificaat van de chauffeurskaart is gelezen. De kopie van het DriverCardNumber die is opgeslagen in bytes ‘00 04’H t/m ‘00 13’H van EF.Driver_Activity_Data mag NIET worden gebruikt bij de berekening van de handtekening.

Om het verlies van gegevens zoveel mogelijk te voorkomen wanneer de chauffeurskaart voortijdig uitgenomen wordt, wordt er na iedere toevoeging van een ActivityRecord (zie 5.1.3) een digitale handtekening berekend en opgeslagen.

Bij de berekening van de handtekening wordt van het laatst toegevoegde ActivityRecord alleen de kop van 3 bytes meegenomen. De reden hiervoor is gelegen in de activiteiten “Start werk” en “Start pauze”. De 6 respectievelijk 3 gegevensbytes die bij deze activiteitsoorten horen worden te vaak bijgewerkt (voor het telkens herberekenen van handtekeningen) en de laatste 3 gegevensbytes worden sowieso overschreven door de vervolgactiviteit. De rijtijdteller van een “Start werk” activiteit wordt hiermee pas meegenomen in de handtekening nadat een vervolgactiviteit wordt gestart.

Om een handtekening te kunnen berekenen, moet eerst de SignatureDateTime worden bijgewerkt met de huidige datum en tijd volgens BCT-klok, dan moet een hashcode berekend worden. Deze hashcode wordt dan gebruikt als input voor het berekenen van de handtekening. De gegevens voor het berekenen van de hashcode moeten in de hieronder genoemde volgorde staan:

1. DriverCardNumber | 16 bytes ASCII

2. DayRecordDate | 4 bytes BCD

3. SessionCreationDateTime | 4 + 3 bytes BCD

4. SystemCardNumber | 4½ + 2½ bytes BCD

5. Kenteken | 6 bytes ASCII

6. CompanyCardNumber | 6 + 2½ bytes BCD

7. Pnummer | 3½ bytes BCD

8. ActivityRecords*) | variable

9. PointerLastActivityRecord | 2 bytes INTEGER

10. PointerLastPWActivityRecord | 2 bytes INTEGER

11. SignatureDateTime | 4 + 3 bytes BCD

*) Van het laatste ActivityRecord wordt alleen de kop (3 bytes) meegenomen.

De berekening van de handtekening wordt volledig door de boordcomputer uitgevoerd en gebeurt als volgt:

• Over de gegevens, als hierboven vermeld, wordt met behulp van de private sleutel voor authenticiteit van de boordcomputer een handtekening gegenereerd volgens PKCS#1 v1.5 met SHA-256.

• De handtekening wordt opgeslagen in het SessionSignature veld van het huidige SessionRecord.

NB. Telkens bij het berekenen van de SHA-256 hash dient de boordcomputerlogica het eerste en grootste deel van de berekening (de hash over de data vanaf het DriverCardNumber t/m de ActivityRecords) uit te voeren, waarna het laatste deel van de hashberekening (over de PointerLastActivitityRecord t/m de SignatureDateTime) door de systeemkaart dient te worden berekend. Ook de PKCS#1 v1.5 handtekening dient door de systeemkaart te worden berekend.

NB2. Met behulp van het certificaat behorende bij de private sleutel voor authenticiteit van de boordcomputer (het boordcomputercertificaat) kan gecontroleerd worden of de gegevens in een SessionRecord authentiek zijn. Behalve het boordcomputercertificaat en het SessionRecord zelf, zijn voor zo’n validatie het DriverCardNumber en de DayRecordDate benodigd. Die twee gegevens staan elders in EF.Driver_Activity_Data opgeslagen. Welk boordcomputercertificaat voor een bepaalde SessionRecord-validatie moet worden gebruikt, kan worden achterhaald door het SystemCardNumber in de SessionRecord-kop uit te lezen.

NB3. Indien bij het valideren van de SessionRecord-data de betreffende EF.BCT_Certificates aanwezig is en het betreffende boordcomputercertificaat is daarin ook (nog) aanwezig, kan de validatie direct worden uitgevoerd. Indien het betreffende boordcomputercertificaat niet (meer) in EF.BCT_Certificates is opgeslagen of indien EF.BCT_Certificates niet voorhanden is, dan kan het betreffende boordcomputercertificaat via de Kaartuitgever worden verkregen.

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