Wat is een digitale handtekening?

Delen
Copied to clipboard!
Wat is een digitale handtekening?
Luister naar het artikel
00:00 / 00:00

Een digitale handtekening is een cryptografisch mechanisme dat wordt gebruikt om de authenticiteit en integriteit van digitale gegevens te verifiëren. We kunnen het beschouwen als een digitale versie van de gewone handgeschreven handtekeningen, maar met een hoger niveau van complexiteit en veiligheid.

In eenvoudige woorden kunnen we een digitale handtekening omschrijven als een code die bij een bericht of document wordt gevoegd. Na het genereren fungeert de code als bewijs dat er onderweg van de verzender naar de ontvanger niet met het bericht is geknoeid.

Hoewel het concept van het beveiligen van communicatie met behulp van cryptografie dateert uit de oudheid, werden digitale handtekeningen in de jaren zeventig werkelijkheid dankzij de ontwikkeling van Public-Key Cryptography (PKC). Om te leren hoe digitale handtekeningen werken, moeten we dus eerst de basisprincipes van hash-functies en public key-cryptografie begrijpen.


Hash-functies

Hashing is een van de kernelementen van een digitaal handtekeningensysteem. Het proces van hashing houdt in dat gegevens van willekeurige grootte worden omgezet in een uitvoer van vaste grootte. Dit wordt gedaan door speciale algoritmes die bekend staan als hash-functies. De output die gegenereerd wordt door een hash-functie staat bekend als een hash-waarde of message digest.

In combinatie met cryptografie kunnen de zogenaamde cryptografische hash-functies worden gebruikt om een hash-waarde (digest) te genereren die fungeert als een unieke digitale vingerafdruk. Dit betekent dat elke verandering in de invoergegevens (het bericht) zou resulteren in een compleet andere uitvoer (hash-waarde). Om die reden worden cryptografische hash-functies veel gebruikt om de authenticiteit van digitale data te verifiëren.


Public key-cryptografie (PKC)

Public key-cryptografie of PKC verwijst naar een cryptografisch systeem dat gebruik maakt van een sleutelpaar: een publieke sleutel en een private sleutel. De twee sleutels zijn wiskundig aan elkaar gerelateerd en kunnen gebruikt worden voor zowel data-encryptie als het genereren van digitale handtekeningen.

Als encryptietool is PKC veiliger dan meer rudimentaire methodes zoals symmetrische encryptie. Terwijl oudere systemen op dezelfde sleutel vertrouwen om informatie te versleutelen en te ontsleutelen, biedt PKC de mogelijkheid om gegevens te versleutelen met de publieke sleutel en te ontsleutelen met de bijbehorende private sleutel.

Daarnaast kan PKC ook worden toegepast voor het genereren van digitale handtekeningen. In essentie bestaat het proces uit het hashen van een bericht (of digitale gegevens) in combinatie met de private sleutel van de ondertekenaar. Vervolgens kan de ontvanger van het bericht controleren of de handtekening geldig is door gebruik te maken van de door de ondertekenaar verstrekte openbare sleutel.

In sommige situaties kunnen digitale handtekeningen versleuteld zijn, maar dat is niet altijd het geval. De Bitcoin-blockchain maakt bijvoorbeeld gebruik van PKC en digitale handtekeningen, maar in tegenstelling tot wat veel mensen geloven wordt er geen gebruik gemaakt van encryptie. Technisch gezien gebruikt Bitcoin het zogenaamde Elliptic Curve Digital Signature Algorithm (ECDSA) om transacties te verifiëren.


Zo werkt een digitale handtekening

In de context van cryptovaluta bestaat een digitaal handtekeningsysteem vaak uit drie basisstappen: hashing, ondertekening en verificatie.

Hashen

De eerste stap is om het bericht of de digitale gegevens te hashen. Dit wordt gedaan door de gegevens door een hashing-algoritme te laten gaan, waarmee een hash-waarde wordt gegenereerd (d.w.z. de message digest). Zoals gezegd kunnen de berichten aanzienlijk variëren in grootte, maar wanneer ze gehashed zijn is de hash-waarde altijd van dezelfde lengte. Dit is de basiseigenschap van een hash-functie.

Het hashen van de gegevens is echter niet noodzakelijk voor het produceren van een digitale handtekening, omdat men ook een private sleutel kan gebruiken om een bericht te ondertekenen dat helemaal niet gehashed was. Voor cryptovaluta wordt de data echter altijd gehashed, omdat het gebruik van digests van vaste lengte het hele proces vergemakkelijkt.

Ondertekenen

Na het hashen van de informatie moet de afzender het bericht ondertekenen. Dit is het moment waarop public key-cryptografie een rol gaat spelen. Er zijn verschillende soorten algoritmes voor digitale handtekeningen, elk met eigen functionaliteiten, maar in wezen wordt het gehashte bericht altijd ondertekend met een private sleutel. De ontvanger van het bericht kan dan de geldigheid ervan controleren met behulp van de corresponderende publieke sleutel (geleverd door de ondertekenaar).

Met andere woorden, als de private sleutel niet inbegrepen is bij het genereren van de handtekening zal de ontvanger van het bericht niet in staat zijn om de corresponderende publieke sleutel te gebruiken om de geldigheid ervan te verifiëren. Zowel publieke als private sleutels worden gegenereerd door de afzender van het bericht, maar alleen de publieke sleutel wordt gedeeld met de ontvanger.

Het is het vermelden waard dat digitale handtekeningen direct gerelateerd zijn aan de inhoud van elk bericht. In tegenstelling tot handgeschreven handtekeningen, die meestal hetzelfde zijn ongeacht het bericht, zal elk digitaal ondertekend bericht dan ook een andere digitale handtekening hebben.

Verifiëren

Laten we een voorbeeld gebruiken om het hele proces tot aan de laatste stap van de verificatie te illustreren. Stel je voor dat Alice een bericht schrijft aan Bob, het vervolgens hasht en daarna de hashwaarde combineert met haar private sleutel om een digitale handtekening te genereren. De handtekening zal werken als een unieke digitale vingerafdruk van dat specifieke bericht.

Wanneer Bob het bericht ontvangt, kan hij de geldigheid van de digitale handtekening controleren met behulp van de door Alice verstrekte openbare sleutel. Op deze manier kan Bob er zeker van zijn dat de handtekening is gemaakt door Alice, omdat alleen Alice de private sleutel heeft die overeenkomt met die publieke sleutel (althans, dat is wat we verwachten).

Het is dus van cruciaal belang voor Alice om haar private sleutel geheim te houden. Als een andere persoon de private sleutel van Alice in handen krijgt, kan hij of zij digitale handtekeningen aanmaken en zich voordoen als Alice. In de context van Bitcoin betekent dit dat iemand de persoonlijke sleutel van Alice kan gebruiken om haar bitcoins te verplaatsen of uit te geven zonder haar toestemming.


Waarom zijn digitale handtekeningen belangrijk?

Digitale handtekeningen worden vaak gebruikt om drie resultaten te bereiken: de integriteit van data, authenticatie en onweerlegbaarheid.

  • De integriteit van data. Bob kan verifiëren dat er niet is geknoeid met het bericht van Alice. Een aanpassing aan het bericht zou namelijk resulteren in een compleet andere handtekening.
  • Authenticiteit. Zolang de private sleutel van Alice geheim blijft, kan Bob haar publieke sleutel gebruiken om te bevestigen dat de digitale handtekeningen door Alice zijn gegenereerd en door niemand anders.
  • Onweerlegbaarheid. Als de handtekening eenmaal is gegenereerd, kan Alice in de toekomst niet meer ontkennen dat ze een bericht heeft ondertekend - tenzij haar persoonlijke sleutel op de een of andere manier wordt gecompromitteerd.


Toepassingen

Digitale handtekeningen kunnen worden gebruikt voor verschillende soorten digitale documenten en certificaten. Ze hebben verschillende toepassingen; enkele van de meest voorkomende toepassingen worden hieronder genoemd.

  • Informatietechnologie. Verbeteren van de veiligheid van internetcommunicatiesystemen.
  • Financieel. Digitale handtekeningen kunnen worden geïmplementeerd in audits, onkostendeclaraties, leenovereenkomsten en nog veel meer.
  • Juridisch. Digitale ondertekening van allerlei zakelijke contracten en juridische overeenkomsten, inclusief overheidspapieren.
  • Gezondheidszorg. Digitale handtekeningen kunnen fraude met recepten en medische dossiers voorkomen.
  • Blokketen. Digitale handtekeningen zorgen ervoor dat alleen de rechtmatige eigenaars van cryptovaluta in staat zijn om een transactie te ondertekenen waarmee fondsen worden verplaatst (zolang hun private sleutels niet zijn gecompromitteerd).


Beperkingen

De belangrijkste uitdagingen voor digitale handtekeningen zijn een gevolg van de drie onderstaande elementen.

  • Algoritme. De kwaliteit van de algoritmes die voor digitale handtekeningen worden gebruikt, is belangrijk. Hieronder vallen bijvoorbeeld keuzes voor betrouwbare hash-functies en cryptografische systemen.
  • Implementatie. Als de algoritmes goed zijn maar de implementatie niet, zal de digitale handtekening waarschijnlijk gebreken vertonen.
  • Private sleutel. Als de private sleutels gelekt of op een of andere manier gecompromitteerd worden, zullen de eigenschappen van authenticiteit en onweerlegbaarheid van de digitale handtekening ongeldig worden. Voor gebruikers van cryptocvaluta kan het verlies van een private sleutel resulteren in aanzienlijke financiële schade.


Elektronische handtekeningen vs. digitale handtekeningen

Simpel gezegd hebben digitale handtekeningen betrekking op één bepaald soort elektronische handtekening - waarmee elke elektronische manier van ondertekenen van documenten en berichten wordt bedoeld. Alle digitale handtekeningen zijn dus elektronische handtekeningen, maar het tegendeel is niet altijd waar.

Het belangrijkste verschil is de authenticatiemethode. Digitale handtekeningen gebruiken cryptografische systemen, zoals hash-functies, public key-cryptografie en encryptietechnieken.


Tot slot

Hash-functies en public key-cryptografie vormen de kern van digitale handtekeningssystemen die worden toegepast op een breed scala aan gebruiksmogelijkheden. Indien goed geïmplementeerd kunnen digitale handtekeningen de veiligheid verhogen, de integriteit waarborgen en de authenticatie van allerlei soorten digitale gegevens vergemakkelijken.

In blockchains worden digitale handtekeningen gebruikt voor het ondertekenen en autoriseren van cryptografische transacties. Ze zijn vooral belangrijk voor Bitcoin, omdat de handtekeningen ervoor zorgen dat fondsen alleen kunnen worden uitgegeven door de personen die de corresponderende private sleutels bezitten.

Hoewel we al jaren gebruik maken van zowel elektronische als digitale handtekeningen, is er nog veel ruimte voor groei. Een groot deel van de huidige bureaucratie is nog steeds gebaseerd op papierwerk, maar we zullen waarschijnlijk steeds meer gebruik gaan maken van digitale handtekeningen naarmate we steeds meer naar een gedigitaliseerd systeem migreren.

Loading