Hvad er en digital signatur?
Hjem
Artikler
Hvad er en digital signatur?

Hvad er en digital signatur?

Let øvet
Offentliggjort Aug 19, 2019Opdateret Jan 31, 2023
7m

En digital signatur er en kryptografisk mekanisme, der bruges til at verificere ægtheden og integriteten af digitale data. Vi kan betragte det som en digital version af de almindelige håndskrevne signaturer, men med højere niveauer af kompleksitet og sikkerhed.

Enkelt sagt kan vi beskrive en digital signatur som en kode, der er tilknyttet en meddelelse eller et dokument. Efter generering fungerer koden som bevis på, at meddelelsen ikke er blevet manipuleret undervejs fra afsender til modtager.

Selvom konceptet med at sikre kommunikation ved hjælp af kryptografi går tilbage til oldtiden, blev digitale signatursystemer en mulig realitet i 1970'erne takket være udviklingen af Public-Key Cryptography (PKC). Så for at lære, hvordan digitale signaturer fungerer, skal vi først forstå det grundlæggende i hash-funktioner og kryptografi med offentlig nøgle.


Hash-funktioner

Hashing er ét af kerneelementerne i et digitalt signatursystem. Hashing-processen involverer omdannelse af data af enhver størrelse til et output i fast størrelse. Dette gøres af en særlig slags algoritmer, der er kendt som hash-funktioner. Det output, der genereres af en hash-funktion, kaldes en hash-værdi eller et message digest.

Når de kombineres med kryptografi, kan de såkaldte kryptografiske hash-funktioner bruges til at generere en hashværdi (digest), der fungerer som et unikt digitalt fingeraftryk. Dette betyder, at enhver ændring i inputdataene (meddelelsen) vil resultere i et helt andet output (hash-værdi). Og det er grunden til, at kryptografiske hash-funktioner i vid udstrækning bruges til at verificere ægtheden af digitale data.


Kryptografi med offentlig nøgle (Public-key cryptography, PKC)

Kryptografi med offentlig nøgle eller PKC refererer til et kryptografisk system, der gør brug af et par nøgler: en offentlig nøgle og en private key. De to nøgler er matematisk relaterede og kan bruges til både datakryptering og digitale signaturer.

Som et krypteringsværktøj er PKC mere sikker end de mere rudimentære metoder til symmetrisk kryptering. Mens ældre systemer er afhængige af den samme nøgle til at kryptere og dekryptere information, giver PKC mulighed for datakryptering med den offentlige nøgle og datadekryptering med den tilsvarende private key.

Bortset fra det kan PKC-systemet også anvendes til generering af digitale signaturer. I bund og grund består processen i at hashe en meddelelse (eller digitale data) sammen med underskriverens private key. Dernæst kan modtageren af meddelelsen kontrollere, om signaturen er gyldig ved hjælp af den offentlige nøgle, som underskriveren har tilvejebragt.

I nogle situationer kan digitale signaturer involvere kryptering, men det er ikke altid tilfældet. F.eks. bruger Bitcoin-blockchainen PKC og digitale signaturer, men i modsætning til hvad mange tror, er der ingen kryptering i processen. Teknisk set implementerer Bitcoin den såkaldte Elliptic Curve Digital Signature Algorithm (ECDSA) til at godkende transaktioner.


Sådan fungerer digitale signaturer

I forbindelse med kryptovalutaer består et digitalt signatursystem ofte af tre grundlæggende trin: hashing, signering og verifikation.

Hashing af dataene

Det første skridt er at hashe meddelelsen eller digitale data. Dette gøres ved at indsende dataene gennem en hashing-algoritme, så der genereres en hash-værdi (dvs. message digest). Som nævnt kan meddelelser variere betydeligt i størrelse, men når de hashes, har alle deres hash-værdier samme længde. Dette er den mest grundlæggende egenskab ved en hash-funktion.

Hashing af dataene er dog ikke et must for at producere en digital signatur, fordi man kan bruge en private key til at underskrive en meddelelse, der slet ikke blev hashet. Men for kryptovalutaer er dataene altid hashet, fordi håndtering af oversigter (digest) med fast længde letter hele processen.

Signering

Når oplysningerne er blevet hash-krypteret, skal afsenderen af meddelelsen underskrive den. Dette er det øjeblik, hvor kryptografi med offentlig nøgle kommer i spil. Der er flere typer digitale signaturalgoritmer, der hver har sin egen særlige mekanisme. Men i bund og grund vil den hashede meddelelse blive underskrevet med en private key, og modtageren af meddelelsen kan derefter kontrollere dens gyldighed ved hjælp af den tilsvarende offentlige nøgle (leveret af underskriveren).

Sagt på en anden måde, hvis den private key ikke er inkluderet, når signaturen genereres, vil modtageren af meddelelsen ikke være i stand til at bruge den tilsvarende offentlige nøgle til at verificere dens gyldighed. Både offentlige nøgler og private keys genereres af afsenderen af meddelelsen, men kun den offentlige nøgle deles med modtageren.

Det er værd at bemærke, at digitale signaturer er direkte relateret til indholdet af hver meddelelse. Så i modsætning til håndskrevne signaturer, der har tendens til at være de samme uanset meddelelsen, vil hver digitalt signeret besked have en anden digital signatur.

Verifikation

Lad os tage et eksempel for at illustrere hele processen indtil det sidste trin i verifikationen. Forestil dig, at Alice skriver en besked til Bob, hasher den og derefter kombinerer hash-værdien med sin private key for at generere en digital signatur. Signaturen vil fungere som et unikt digitalt fingeraftryk af den pågældende meddelelse.

Når Bob modtager beskeden, kan han kontrollere gyldigheden af den digitale signatur ved hjælp af den offentlige nøgle fra Alice. På denne måde kan Bob være sikker på, at signaturen blev oprettet af Alice, fordi kun hun har den private key, der svarer til den offentlige nøgle (det er i det mindste det, vi forventer).

Så det er afgørende for Alice at holde sin private key hemmelig. Hvis en anden person får fat i Alices private key, kan vedkommende oprette digitale signaturer og foregive at være Alice. I forbindelse med bitcoin betyder det, at nogen kunne bruge Alices private key til at flytte eller bruge hendes bitcoins uden hendes tilladelse.


Hvorfor er digitale signaturer vigtige?

Digitale signaturer bruges ofte til at opnå tre resultater: dataintegritet, godkendelse og ikke-afvisning.

  • Dataintegritet. Bob kan verificere, at Alices meddelelse ikke blev ændret undervejs. Enhver ændring i meddelelsen ville give en helt anden signatur.

  • Ægthed. Så længe Alices private key holdes hemmelig, kan Bob bruge sin offentlige nøgle til at bekræfte, at de digitale signaturer blev oprettet af Alice og ingen andre.

  • Ikke-afvisning. Når signaturen er genereret, vil Alice ikke være i stand til at benægte at have underskrevet den i fremtiden, medmindre hendes private key på én eller anden måde bliver kompromitteret.


Use cases

Digitale signaturer kan anvendes på forskellige slags digitale dokumenter og certifikater. Som sådan har de flere anvendelsesområder. Nogle af de mest almindelige use cases inkluderer:  

  • Informationsteknologi. For at forbedre sikkerheden i internetkommunikationssystemer.

  • Finans. Digitale signaturer kan implementeres til revisioner, udgiftsrapporter, låneaftaler og meget mere.

  • Juridisk. Digital underskrivelse af alle former for forretningskontrakter og juridiske aftaler, herunder statslige papirer.

  • Sundhedspleje. Digitale signaturer kan forhindre svindel med recepter og lægejournaler.

  • Blockchain. Digitale signatursystemer sikrer, at kun de retmæssige ejere af kryptovalutaerne er i stand til at underskrive en transaktion for at flytte midlerne (så længe deres private keys ikke kompromitteres).


Begrænsninger

De største udfordringer, digitale signatursystemer står over for, afhænger af mindst tre krav: 

  • Algoritme. Kvaliteten af de algoritmer, der bruges i et digitalt signatursystem, er vigtig. Dette inkluderer valget af pålidelige hash-funktioner og kryptografiske systemer.

  • Implementering. Hvis algoritmerne er gode, men implementeringen ikke er det, vil det digitale signatursystem sandsynligvis præsentere fejl.

  • Private key. Hvis private keys bliver lækket eller på én eller anden måde kompromitteret, vil egenskaberne af ægthed og ikke-afvisning blive ugyldiggjort. For kryptovalutabrugere kan tab af en private key resultere i betydelige økonomiske tab.


Elektroniske signaturer vs. digitale signaturer

Kort sagt vedrører digitale signaturer en bestemt slags elektroniske signaturer – som henviser til enhver elektronisk metode til signering af dokumenter og meddelelser. Således er alle digitale signaturer elektroniske signaturer, men det modsatte er ikke altid sandt.

Den største forskel mellem dem er godkendelsesmetoden. Digitale signaturer implementerer kryptografiske systemer såsom hash-funktioner, kryptografi med offentlig nøgle og krypteringsteknikker.


Sammenfatning

Hash-funktioner og kryptografi med offentlig nøgle er kernen i digitale signatursystemer, som nu anvendes til en lang række use cases. Hvis de implementeres korrekt, kan digitale signaturer øge sikkerheden, sikre integritet og lette godkendelsen af alle slags digitale data.

Inden for blockchain bruges digitale signaturer til at underskrive og godkende transaktioner med kryptovaluta. De er især vigtige for bitcoin, fordi underskrifterne sikrer, at coins kun kan bruges af de personer, der har de tilsvarende private keys.

Selvom vi har brugt både elektroniske og digitale signaturer i årevis, er der stadig meget plads til vækst. En stor del af dagens bureaukrati er stadig baseret på papirarbejde, men vi vil sandsynligvis se mere brug af digitale signatursystemer, når vi migrerer til et mere digitaliseret system.