Digitale handtekeningen

Een lakzegel op een gevouwen blad, met daarnaast een lint dat een vinkje vormt.

Een handtekening op papier bewijst niet zoveel: iedereen die de jouwe één keer gezien heeft, kan ze natekenen. Een digitale handtekening is anders. Ze bewijst dat de tekst van jou komt én dat er sindsdien geen letter aan veranderd is — en namaken is even onmogelijk als terugtellen op de kromme van het vorige hoofdstuk. Want dat is precies wat ze gebruikt.

Woorden die je zo nodig hebt

Ondertekenen
Met je private sleutel een soort zegel maken over een tekst. Het zegel is een getal dat bij precies die tekst en precies die sleutel hoort.
Verifiëren
Met de publieke sleutel controleren of het zegel klopt. Iedereen kan dat, want iedereen mag de publieke sleutel hebben. Klopt het: de tekst is echt en ongewijzigd. Klopt het niet: iets is veranderd, of iemand anders heeft getekend.
ECDSA
De naam van het handtekeningsysteem dat op elliptische krommen werkt. De EC staat voor elliptic curve. Dit gebruikt je identiteitskaart.
Certificaat
Een verklaring van een vertrouwde instantie: "deze publieke sleutel hoort bij deze persoon". Zelf ook ondertekend, door die instantie. Zonder certificaat weet je dat iemand getekend heeft, maar niet wie.

Omgekeerd slot

In het hoofdstuk over asymmetrische sleutels sloot iedereen het hangslot met je publieke sleutel, en opende alleen jij het met je private. Een handtekening draait dat om: jij doet iets met je private sleutel, en iedereen kan met je publieke sleutel controleren dat het jij was. Want alleen wie de private sleutel heeft, kan een zegel maken dat met de bijhorende publieke sleutel klopt.

Wat een handtekening wél en niet bewijst

WélNiet
Dat de ondertekenaar de private sleutel in handen had. Wie die persoon is. Daarvoor heb je een certificaat nodig.
Dat de tekst letter voor letter dezelfde is als bij het tekenen. Dat de tekst waar is. Je kan een leugen perfect ondertekenen.
Dat de ondertekenaar het achteraf niet kan ontkennen. Wanneer het gebeurde. Daar dient een tijdstempel voor.

Probeer het zelf

Alles gebeurt in je browser. Er wordt niets naar de server gestuurd.

  1. Klik Maak een sleutelpaar. Merk op hoeveel korter deze publieke sleutel is dan die van RSA — dat is de kromme.
  2. Klik Ondertekenen. Je krijgt een zegel van 64 bytes.
  3. Klik Verifiëren. Geldig.
  4. Verander nu één letter in de tekst — een punt, een hoofdletter — en klik weer Verifiëren, zonder opnieuw te ondertekenen. Ongeldig. Er is geen "bijna goed".
  5. Zet de tekst terug en klik twee keer Ondertekenen. Twee verschillende zegels voor dezelfde tekst — en toch allebei geldig.

Van sleutel naar mens

Een geldige handtekening zegt: "iemand met díe private sleutel heeft dit getekend". Maar wie is dat? Daar komt het certificaat. De Belgische Staat zegt: "deze publieke sleutel hoort bij Koen Thomeer, geboren op die dag" — en ondertekent die verklaring zelf. Wil je zeker zijn dat het de Staat was, dan controleer je díe handtekening tegen de sleutel van de Staat. Zo krijg je een ketting van vertrouwen die eindigt bij één sleutel die je gewoon moet geloven: de wortel. Op je identiteitskaart staan die certificaten in de chip, naast je sleutels.

Twee sleutels op je kaart, met opzet

SleutelWaarvoorWat het betekent
auth Inloggen: bewijzen dat jij het bent Geen handtekening onder een document. Alleen "ja, dit ben ik".
sign Documenten ondertekenen Juridisch even geldig als je handtekening met pen. Onherroepelijk.

Daarom vraagt je kaart soms twee keer je pincode, en daarom is de tweede keer belangrijker. Inloggen bij een website gebruikt auth. Een contract ondertekenen gebruikt sign, en dát kan je nooit meer terugdraaien. In het laatste hoofdstuk doe je beide met je eigen kaart.

Dit is wiskunde: bewijzen dat je iets weet zonder het te zeggen

Je private sleutel is een getal n. Je publieke sleutel is het punt n·P op de kromme. Een handtekening is een berekening waarin n zó verstopt zit dat iedereen met n·P kan controleren dat je n kent — zonder dat n er ooit uitkomt. En die willekeur uit stap 5? Elke handtekening gebruikt een vers toevalsgetal; zonder dat lekt n alsnog. Dat is in 2010 echt gebeurd bij de PlayStation 3, waarvan de hoofdsleutel zo uitlekte. Eén ontbrekend toevalsgetal, en een miljardenbedrijf lag open. Wiskunde vergeeft geen slordigheid.