Gå til indhold
atlas

Kryptografisk nøgle

Også kendt som: nøgle, krypteringsnøgle

Den hemmelige værdi, der styrer, hvordan data krypteres og gøres læsbare igen - den, der har den, kan læse de beskyttede data.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En lang, tilfældigt valgt værdi, der indgår i en krypterings- eller signeringsmetode. Selve metoden er offentlig, så al beskyttelse hviler på, at den rette nøgle holdes hemmelig og er for lang til at blive gættet.

Forklaret enkelt

Som nøglen til en hængelås - alle ved, hvordan hængelåse virker, men kun den med den rette nøgle kan åbne netop denne.

I praksis

Den IT-driftsansvarlige i en pensionskasse opbevarer nøglerne til de krypterede backups i et separat, aflåst system, så en angriber, der får fat i backuppene, ikke også får nøglerne.

Hvorfor det betyder noget

Kryptering er aldrig bedre end omhuen med nøglerne; en mistet nøgle betyder mistede data, og en lækket nøgle betyder ingen beskyttelse overhovedet.

Teknisk uddybning

Kerckhoffs' princip (1883) er designreglen bag begrebet: et kryptosystem skal forblive sikkert, selv om alt andet end nøglen er offentligt. Sikkerhed måles derfor i bits nøglestyrke, dvs. totalslogaritmen af det arbejde, en angriber skal udføre. For symmetriske nøgler er det blot nøglelængden (AES-128 giver 128 bit, så længe algoritmen ikke er brudt strukturelt); for asymmetriske nøgler er det langt mindre end længden på grund af matematiske genveje. NIST SP 800-57 Part 1 Rev. 5 sidestiller RSA-2048 med ca. 112 bit og RSA-3072 eller ECC P-256 med ca. 128 bit og betragter 112 bit som minimum i dag.

Nøgler findes i forskellige typer med hver deres regler: symmetriske hemmelige nøgler, private/offentlige nøglepar, nøglekrypteringsnøgler (KEK), der pakker datakrypteringsnøgler (DEK) ind, MAC-nøgler og flygtige sessionsnøgler, der kun lever i én udveksling. God praksis er én nøgle til ét formål; genbruges en RSA-nøgle til både signering og dekryptering eller samme AES-nøgle i to protokoller, åbnes der for krydsprotokolangreb. Afledte nøgler laves med en KDF som HKDF (RFC 5869) eller dem i NIST SP 800-108, og det er sådan TLS 1.3 gør én fælles hemmelighed til separate trafiknøgler i hver retning.

Generering er det mest undervurderede trin. Nøgler skal komme fra en kryptografisk sikker tilfældighedsgenerator (DRBG'er efter NIST SP 800-90A seedet fra en ægte entropikilde, tilgængelig som getrandom() på Linux eller BCryptGenRandom på Windows); SP 800-133 beskriver godkendte genereringsmetoder. Historien viser, hvad der ellers sker: Debians OpenSSL-fejl fra 2008 (CVE-2008-0166) reducerede seedet til proces-id'et, så der kun fandtes ca. 32.768 mulige nøgler pr. type og størrelse, og ROCA-fejlen fra 2017 (CVE-2017-15361) i et Infineon-bibliotek gav RSA-moduli, der kunne faktoriseres, hvilket tvang Estland til at tilbagekalde certifikater på nationale ID-kort. Indlejrede enheder, der genererer nøgler ved første opstart, før entropipuljen er fyldt, har gentagne gange givet RSA-nøgler på internettet med fælles faktorer.

En nøgle er ikke en adgangskode. En adgangskode har lav entropi, er valgt af et menneske og skal strækkes med en bevidst langsom KDF (Argon2id, scrypt, PBKDF2), før den kan bruges som nøglemateriale, og selv da er styrken begrænset af, hvor let den er at gætte. Nøgler er heller ikke certifikater: et certifikat indeholder en offentlig nøgle og knytter den til en identitet, mens den private nøgle aldrig forlader ejeren. I praksis ligger nøgler som PEM/DER-filer, i en PKCS#12-container, som objekter i en HSM eller cloud-KMS tilgået via PKCS#11 eller et API, eller i en TPM eller secure enclave, hvor de er markeret som ikke-eksporterbare. Hvor nøglen fysisk ligger, afgør, hvad en kompromitteret maskine kan stjæle: en fil kan kopieres, en ikke-eksporterbar HSM-nøgle kan kun misbruges, så længe adgangen varer.

Relationer

Forveksl ikke med
Adgangskode

Kilder og videre læsning

Lærebøger

  • Paar & Pelzl, Understanding Cryptography

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.