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.