OSO:2022/beveiliging/versleuteling bsn

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen

Versleuteling persoonsgebonden nummer (de zoeksleutel)

In het onderwijs wordt een persoonsgebonden nummer (PGN) gebruikt, meestal het BSN. In sommige gevallen hebben leerlingen (nog) geen BSN, bijvoorbeeld asielzoekers of leerlingen die niet in Nederland wonen. In dit geval krijgen ze een tijdelijk onderwijsnummer.

In dit stuk van de wet staat:

persoonsgebonden nummer (PGN):

het burgerservicenummer (BSN), bedoeld in artikel 1, onder b, van de Wet algemene bepalingen burgerservicenummer, dan wel het door Onze Minister uitgegeven onderwijsnummer, bedoeld in artikel 27b, vierde lid


Een BSN moet voldoen aan een variant op de 11-proef. Het bsn kan op de volgende wijze gecontroleerd worden: (9*p1 + 8*p2 + 7*p3 + 6*p4 + 5*p5 + 4*p6 + 3*p7 + 2*p8 - p9) MOD11 = 0.

Een onderwijsnummer moet ook voldoen aan een variant op de 11-proef. Het onderwijsnummer kan op de volgende wijze gecontroleerd worden: (9*p1 + 8*p2 + 7*p3 + 6*p4 + 5*p5 + 4*p6 + 3*p7+ 2*p8) MOD11 = p9 + 5. Het onderwijsnummer begint altijd met een 1.

In de Overstapservice is het niet toegestaan om het PGN te versturen naar het Traffic Center. Daarom bevatten interacties met het Traffic Center nooit het PGN, maar een afgeleide identificatie, de zoeksleutel genaamd. De zoeksleutel wordt afgeleid uit het PGN van de leerling. Om te voorkomen dat onbevoegden deze zoeksleutel weer tot het PGN kunnen herleiden is de zoeksleutel altijd asymmetrisch versleuteld. De versleuteling is gebaseerd op het RSA algoritme en er wordt dus gebruik gemaakt van een sleutelpaar. Er is een publieke sleutel welke bekend is bij elke leverancier en een privé sleutel welke alleen bekend is bij Kennisnet. Kennisnet kan de zoeksleutel ontsleutelen tot het PGN om te kunnen voldoen aan de zorgplicht (=> waar is een leerling heen gegaan?). Leveranciers kunnen de publieke sleutel verkrijgen bij OSO-support.

De zoeksleutel is de versleutelde combinatie van het prefix van 4 cijfers en het PGN van 9 cijfers.

typenummer/prefix betekenis
2318 dit typenummergeeft aan dat het om een burgerservicenummer (BSN) gaat.

Een voorbeeld van een BSN is 173999529. Het getal 2318173999529 moet versleuteld worden tot de zoeksleutel.

3872 dit typenummer geeft aan dat het om een tijdelijk onderwijsnummer gaat.

Een voorbeeld van een onderwijsnummer is 101211151. Het getal 3872101211151 moet versleuteld worden tot de zoeksleutel.

Voorbeeld: leerling heeft BSN 111222333, dan moet de combinatie 2318111222333 versleuteld worden tot zoeksleutel.

Hieronder volgt een voorbeeld van een (nep) RSA publieke sleutel.

  <RSAKeyValue>
  <Modulus>0EVKqqr5JyI4tYnOO1sDbazqyJY78rpBcvrcmbimjRkcwkpQ1knwVKURccH5oaSdhaXptg+9QcBqbC0p3SLym7f3hyeLCJvxNEV4JPZ7L5GbnsC8Ux5HxLinW/B6mF8jMYh5du5X7OKytNA2qlGdwe7qM</Modulus>
  <Exponent>AQA2</Exponent>
  </RSAKeyValue>

De uitkomst van de versleuteling is de zoeksleutel. Deze sleutel wordt in het overdrachtsrequest meegestuurd. Bijvoorbeeld:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://xml.eld.nl/schemas/Overstapservice/VERSIENUMMER">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:overdrachtRequest>
         <ns:bronBrin>00YY</ns:bronBrin>
         <ns:bronRouteringsKenmerk>0000000700000YY00331</ns:bronRouteringsKenmerk>
         <ns:doelBrin>00YY</ns:doelBrin>
         <ns:doelRouteringsKenmerk>0000000700000YY00531</ns:doelRouteringsKenmerk>
         <ns:zoeksleutel>xz/Zn95R9aSdJ/BeNSQs231pogl9evDlUO8NIuAEKhfHWjV...dT4BA7MkT3EBuYUEtPcRtBXY=</ns:zoeksleutel>
         <ns:overdrachtsoort>overdrachtbinnenbrin</ns:overdrachtsoort>
      </ns:overdrachtRequest>
   </soapenv:Body>
</soapenv:Envelope>
Info.gif De zoeksleutel moet base64 encoded worden doorgegeven in het overdrachtsrequest en in het sessiecontrolerequest. In OSO moet hiervoor de 'standaard' Base64 content-transfer-encoding (zoals beschreven in RFC 4648, hoofdstuk 4), worden toegepast. NB: Deze encoding wijkt af van die toegepast in bijlagen(!).
Info.gif Een bronsysteem moet ervoor zorgen dat de zoeksleutel zoals deze wordt ontvangen van het doelsysteem wordt doorgegeven aan het TC. Er mogen GEEN bewerkingen of conversies toe worden gepast op de inhoud op het formaat van de zoeksleutel om te voorkomen dat het TC de sessie onterecht ongeldig verklaard.