Mange kommunikasjonsprotokoller bruker kryptering for å sikre at tilkoblingen din er sikker. Det er en god idé å forstå hva kryptering faktisk gjør og hvorfor det er viktig for alle, slik at du vet hva det kan beskytte deg mot, og hva det ikke kan.
Kryptering er en matematisk prosess for å kryptere data ved hjelp av en krypteringssiffer og en krypteringsnøkkel. De krypterte dataene eller chifferteksten kan bare dekrypteres tilbake til sin opprinnelige "rentekst"-form ved bruk av en dekrypteringsnøkkel.
Med en god krypteringsalgoritme bør chifferteksten ikke kunne skilles fra tilfeldig støy, eller meningsløse verdier. Dette gjør det umulig å si om dataene til og med er en chiffertekst, eller om det bare er støy. Denne utformingen gjør det betydelig vanskeligere å analysere chifferteksten i et forsøk på å dekryptere den uten å trenge dekrypteringsnøkkelen gjennom en prosess som kalles kryptoanalyse.
Tips: Støy er tilfeldig statisk bakgrunn, akkurat som snøen eller statisk elektrisitet sett på noen gamle TV-er når de ikke har et signal.
Symmetrisk vs asymmetrisk
For noen klasser av krypteringsalgoritmer vil dekrypteringsnøkkelen være den samme som krypteringsnøkkelen, i andre er de to nøklene forskjellige. Når dekrypteringsnøkkelen er den samme som krypteringsnøkkelen, er den kjent som symmetrisk kryptering. I dette tilfellet kan krypteringsnøkkelen betraktes som et passord, og alle med passordet kan kryptere eller dekryptere data. AES er et godt eksempel på en symmetrisk krypteringsalgoritme, da en av dens bruk er å sikre HTTPS-kommunikasjon på internett.
Tips: HTTPS eller Hypertext Transfer Protocol Secure, er den primære krypterte kommunikasjonsprotokollen som brukes på internett.
Asymmetrisk kryptering bruker en separat krypterings- og dekrypteringsnøkkel, det er også ofte referert til som offentlig nøkkelkryptering. Krypteringsnøkkelen er kjent som en offentlig nøkkel, den er publisert for alle å bruke til å kryptere data. Dekrypteringsnøkkelen er imidlertid kjent som den private nøkkelen, og som navnet antyder, holdes den privat.
Denne formen for kryptering kan brukes til å sikre at kun den tiltenkte mottakeren kan dekryptere og lese den krypterte meldingen. Et vanlig eksempel på en offentlig nøkkelkrypteringsalgoritme er RSA. RSA brukes også ofte i HTTPS-tilkoblinger, men bare slik at de to datamaskinene sikkert kan bli enige om en symmetrisk krypteringsnøkkel som skal brukes.
Tips: Asymmetriske krypteringsalgoritmer er tregere å bruke enn symmetriske som gir lignende sikkerhetsnivåer. Derfor brukes asymmetrisk kryptering kun for å avtale en symmetrisk krypteringsnøkkel i protokoller som krever hastighet og effektivitet som HTTPS.
Tips: En ting HTTPS ikke gjør, er å garantere at du kobler til nettstedet du mente til. Det den gjør er å garantere at du kobler til nettstedet du skrev inn i søkefeltet. Hvis du har skrevet en feil og ved et uhell blar til exanple.com i stedet for example.com, vil HTTPS bekrefte at du er sikkert koblet til exanple.com. HTTPS bekrefter kun at tilkoblingen til webserveren er sikker. HTTPS innebærer heller ikke at nettstedet du kobler til ikke inneholder virus eller annen skadelig programvare.
Sikkerhetsnivåer
Sikkerheten til en krypteringsalgoritme måles i biter. Sikkerhetsbiter refererer til størrelsen på krypteringsnøkkelen som brukes og dermed hvor vanskelig det er å gjette. Dessverre er det ikke mulig å direkte sammenligne sikkerheten til symmetriske og asymmetriske algoritmer på denne måten.
Symmetriske krypteringsalgoritmer som AES må bruke minst en 128-bits krypteringsnøkkel for å anses som sikre, selv om en 256-bits nøkkel anbefales. Asymmetriske algoritmer må bruke minst en 2048-bits nøkkel for å anses som sikre.
En 256-bits krypteringsnøkkel har 2^256 mulige kombinasjoner, det er to ganget med seg selv 256 ganger. Det er skrevet i sin helhet: 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 kombinasjoner av en 256-bits krypteringsnøkkel. Dette tallet er så stort at det er omtrent lik antallet atomer som forskerne spår eksisterer i det synlige universet.
Det er ubegripelig vanskelig å gjette riktig nøkkelen som trengs for å dekryptere data kryptert med en 256-bits nøkkel. Selv om du hadde dedikert tilgang til de raskeste superdatamaskinene og århundrer av tid, ville du fortsatt være statistisk usannsynlig å gjette riktig dekrypteringsnøkkelen.
Hvorfor er det viktig?
Når du logger inn på en nettside, sender du brukernavn og passord, eller bankopplysningene dine. Disse opplysningene er private og sensitive, hvis noen andre har dem, kan de få tilgang til kontoene dine, utgi seg for deg, stjele penger fra deg og mer.
Når du bruker vanlig HTTP-protokollen, kan alle på nettverket mellom deg og webserveren fange opp og lese kommunikasjonen du sender og mottar. Dette inkluderer passordene dine og andre sensitive detaljer. Andre brukere på hjemmenettverket ditt, Internett-leverandøren din og andre brukere på alle offentlige Wi-Fi-hotspots du kobler til kan være i stand til å utføre denne typen angrep.
Hvis du bruker HTTPS beskytter kommunikasjon til og fra nettserveren, er opplysningene dine kryptert og kan ikke leses av noen andre. Denne krypteringen vil holde passordene dine og andre private data sikre når du surfer på internett.
Kryptering er imidlertid ikke bare viktig for private eller sensitive data; det er også et nyttig personvernverktøy. For eksempel kan det stoppe Internett-leverandøren din fra å snoke på nettsurfing-vanene dine.
Kryptering av så mye av kommunikasjonen som mulig gjør det mindre åpenbart hvor sensitive data er skjult som angripere kanskje vil prøve å stjele. Som sådan anbefales det generelt at du bruker kryptering der det er mulig for å sikre alt du gjør.
Med moderne maskinvare og krypteringsalgoritmer tilfører kryptering kun en umerkelig forsinkelse, så du trenger ikke å bekymre deg for at internettforbindelsen din heller vil tregere.