Spring til indhold

Kryptering i praksis — symmetrisk, asymmetrisk og certifikater

To slags nøgler, hashing og hvordan HTTPS binder det hele sammen

Kryptering handler om at gøre data ulæselige for alle undtagen den, der har den rette nøgle — det er kernen i fortroligheden i it-sikkerhed. Men der findes ikke bare én slags kryptering; forskellige situationer kalder på forskellige teknikker, og en tekniker bør kunne skelne mellem dem.

§Symmetrisk kryptering

Ved symmetrisk kryptering bruges samme nøgle til både at kryptere og dekryptere data. AES (Advanced Encryption Standard) er den mest udbredte algoritme og bruges blandt andet til at kryptere harddiske og store datamængder, fordi den er hurtig. Ulempen er nøglefordelingsproblemet: begge parter skal have samme hemmelige nøgle, og den skal på et tidspunkt sikkert overføres, uden at en tredjepart opsnapper den.

§Asymmetrisk kryptering

Asymmetrisk kryptering — også kaldet public key-kryptografi — bruger et nøglepar: en offentlig nøgle, som frit kan deles, og en privat nøgle, som aldrig forlader ejeren. Data krypteret med den offentlige nøgle kan kun dekrypteres med den tilhørende private nøgle. RSA er en kendt algoritme af denne type. Metoden løser nøglefordelingsproblemet, men er langt mere regnetung end symmetrisk kryptering, og bruges derfor typisk kun til at udveksle en symmetrisk nøgle sikkert, hvorefter selve datastrømmen krypteres symmetrisk.

§Hashing — noget andet end kryptering

Hashing er ikke kryptering, fordi det ikke kan omgøres: en hash-funktion omdanner data til en fast-længde værdi, man ikke kan regne baglæns fra. Det bruges til at kontrollere integritet — er en fil blevet ændret siden sidst — og til at gemme adgangskoder, så en tekniker eller angriber, der ser databasen, ikke ser selve adgangskoden, men kun dens hash.

SymmetriskAsymmetriskHashing
NøglerÉn delt nøgleOffentlig + privat nøgleIngen nøgle
Kan omgøresJa, med nøglenJa, med privat nøgleNej, envejs
Typisk brugKryptere store datamængderNøgleudveksling, signaturerIntegritet, adgangskoder

§TLS/HTTPS og certifikater

Når en browser opretter en HTTPS-forbindelse, bruges alle tre teknikker sammen. Asymmetrisk kryptering bruges indledningsvis til at aftale en fælles, hemmelig nøgle sikkert; derefter krypteres selve datastrømmen symmetrisk, fordi det er hurtigere; og hashing bruges til at sikre, at data ikke er blevet ændret undervejs. Serverens identitet bekræftes med et certifikat, udstedt af en certificeringsmyndighed (Certificate Authority), som binder en offentlig nøgle til et bestemt domænenavn — det er grundlaget for det, man kalder PKI (Public Key Infrastructure).

Kryptering beskytter data på vejen. Den beskytter dig ikke mod at aflevere dem frivilligt til den forkerte.

Faglig grundregel i it-sikkerhed