Mange kommunikationsprotokoller bruger kryptering for at sikre, at din forbindelse er sikker. Det er en god idé at forstå, hvad kryptering faktisk gør, og hvorfor det er vigtigt for alle, så du ved, hvad det kan beskytte dig mod, og hvad det ikke kan.
Kryptering er en matematisk proces med krypteringsdata ved hjælp af en krypteringskrypteringskode og en krypteringsnøgle. De krypterede data eller chiffertekst kan kun dekrypteres tilbage til dens oprindelige "plaintext" form ved brug af en dekrypteringsnøgle.
Med en god krypteringsalgoritme bør chifferteksten ikke kunne skelnes fra tilfældig støj eller meningsløse værdier. Dette gør det umuligt at sige, om data overhovedet er en chiffertekst, eller om det bare er støj. Dette design gør det betydeligt sværere at analysere chifferteksten i et forsøg på at dekryptere den uden at skulle bruge dekrypteringsnøglen gennem en proces kaldet kryptoanalyse.
Tip: Støj er tilfældig statisk baggrund, ligesom sneen eller statisk elektricitet, der ses på nogle gamle tv'er, når de ikke har et signal.
Symmetrisk vs asymmetrisk
For nogle klasser af krypteringsalgoritmer vil dekrypteringsnøglen være den samme som krypteringsnøglen, i andre er de to nøgler forskellige. Når dekrypteringsnøglen er den samme som krypteringsnøglen, er den kendt som symmetrisk kryptering. I dette tilfælde kan krypteringsnøglen opfattes som en adgangskode, og enhver med adgangskoden kan kryptere eller dekryptere data. AES er et godt eksempel på en symmetrisk krypteringsalgoritme, da en af dens anvendelser er at sikre HTTPS-kommunikation på internettet.
Tip: HTTPS eller Hypertext Transfer Protocol Secure er den primære krypterede kommunikationsprotokol, der bruges på internettet.
Asymmetrisk kryptering bruger en separat krypterings- og dekrypteringsnøgle, det omtales også almindeligvis som offentlig nøglekryptering. Krypteringsnøglen er kendt som en offentlig nøgle, den er udgivet for alle at bruge til at kryptere data. Dekrypteringsnøglen er dog kendt som den private nøgle, og som navnet antyder, holdes den privat.
Denne form for kryptering kan bruges til at sikre, at kun den påtænkte modtager kan dekryptere og læse den krypterede besked. Et almindeligt eksempel på en offentlig nøglekrypteringsalgoritme er RSA. RSA er også almindeligt brugt i HTTPS-forbindelser, men kun så de to computere sikkert kan blive enige om en symmetrisk krypteringsnøgle, der skal bruges.
Tip: Asymmetriske krypteringsalgoritmer er langsommere at bruge end symmetriske, der giver lignende sikkerhedsniveauer. Derfor bruges asymmetrisk kryptering kun til at aftale en symmetrisk krypteringsnøgle i protokoller, der kræver hastighed og effektivitet såsom HTTPS.
Tip: En ting, HTTPS ikke gør, er at garantere, at du opretter forbindelse til det websted, du havde til hensigt. Hvad det gør, er at garantere, at du forbinder det websted, du indtastede i søgefeltet. Hvis du lavede en tastefejl og ved et uheld surfer til exanple.com i stedet for example.com, bekræfter HTTPS, at du er sikkert forbundet til exanple.com. HTTPS bekræfter kun, at din forbindelse til webserveren er sikker. HTTPS indebærer heller ikke, at det websted, du opretter forbindelse til, ikke indeholder vira eller anden skadelig software.
Sikkerhedsniveauer
Sikkerheden af en krypteringsalgoritme måles i bits. Bits of security refererer til størrelsen af den anvendte krypteringsnøgle og derfor hvor svært det er at gætte. Desværre er det ikke muligt direkte at sammenligne sikkerheden af symmetriske og asymmetriske algoritmer på denne måde.
Symmetriske krypteringsalgoritmer såsom AES skal bruge mindst en 128-bit krypteringsnøgle for at blive betragtet som sikre, selvom en 256-bit nøgle anbefales. Asymmetriske algoritmer skal bruge mindst en 2048-bit nøgle for at blive betragtet som sikre.
En 256-bit krypteringsnøgle har 2^256 mulige kombinationer, det er to ganget med sig selv 256 gange. Skrevet i sin helhed er der: 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936 mulige kombinationer af en 256-bit krypteringsnøgle. Dette tal er så stort, at det er nogenlunde lig med antallet af atomer, som videnskabsmænd forudsiger eksisterer i det synlige univers.
Det er ubegribeligt svært at gætte den nødvendige nøgle til at dekryptere data krypteret med en 256-bit nøgle korrekt. Selv hvis du havde dedikeret adgang til de hurtigste supercomputere og århundreder af tid, ville du stadig være statistisk usandsynligt at gætte dekrypteringsnøglen korrekt.
Hvorfor er det vigtigt?
Når du logger ind på en hjemmeside, sender du dit brugernavn og adgangskode eller dine bankoplysninger. Disse oplysninger er private og følsomme, hvis en anden har dem, kan de få adgang til dine konti, efterligne dig, stjæle penge fra dig og meget mere.
Når du bruger almindelig tekst HTTP-protokollen, kan enhver på netværket mellem dig og webserveren opsnappe og læse den kommunikation, du sender og modtager. Dette inkluderer dine adgangskoder og andre følsomme detaljer. Andre brugere på dit hjemmenetværk, din internetudbyder og andre brugere på alle offentlige Wi-Fi-hotspots, du opretter forbindelse til, kan være i stand til at udføre denne type angreb.
Hvis du bruger HTTPS beskytter kommunikation til og fra webserveren, er dine oplysninger krypteret og kan ikke læses af andre. Denne kryptering vil holde dine adgangskoder og andre private data sikre, når du surfer på internettet.
Kryptering er dog ikke kun vigtig for private eller følsomme data; det er også et nyttigt værktøj til beskyttelse af personlige oplysninger. For eksempel kan det forhindre din internetudbyder i at snuse i dine vaner med at surfe på nettet.
Kryptering af så meget af din kommunikation som muligt gør det mindre indlysende, hvor følsomme data er skjult, som angribere måske vil prøve at stjæle. Som sådan anbefales det generelt, at du bruger kryptering, hvor det er muligt for at sikre alt, hvad du gør.
Med moderne hardware og krypteringsalgoritmer tilføjer kryptering kun en umærkelig forsinkelse, så du behøver heller ikke bekymre dig om, at det bremser din internetforbindelse.