I dagens värld, mer än någonsin, måste cybersäkerhet tas på största allvar för att skydda alla (inter)anslutna tillgångar. I den här artikeln diskuterar vi principen om asymmetrisk kryptografi, det enda sättet att garantera äkthet, integritet och konfidentialitet i din verksamhet.
Vad är asymmetrisk kryptografi?
För över 2 000 år sedan skyddade Caesar sina militära meddelanden genom att kryptera dem. Skulle det vara så enkelt idag?
Idag lägger kryptografi till ett extra lager av säkerhet. Symmetrisk kryptografi, även om den garanterar konfidentialitet upp till en viss punkt, är inte tillräcklig för att garantera kommunikationens autenticitet och integritet. Hur kan asymmetrisk kryptografi lösa denna ekvation?
Låt oss ta ett exempel och utse Alice och Bob som de två personer som vill utbyta ett konfidentiellt meddelande. Var och en har en offentlig nyckel och motsvarande privata nyckel. Ett meddelande som krypterats med en offentlig nyckel kan endast dekrypteras med motsvarande privata (hemliga) nyckel. Ett meddelande som krypterats med en privat nyckel kan bara dekrypteras av motsvarande offentliga nyckel (vi kommer att se varför senare i den här artikeln).
I situationen som beskrivs ovan krypterar Alice, som vill skicka ett meddelande till Bob, det med Bobs offentliga nyckel. I det här fallet är det bara Bob som kan dekryptera den med sin egen hemliga nyckel. Detta svarade mot behovet av konfidentialitet.
Men hur kan Bob vara säker på att det var Alice som skickade meddelandet till honom? Hur kan han vara säker på att budskapet inte har ändrats på vägen? För att besvara den här frågan kommer Alice också att använda en signaturmekanism. Alla dessa begrepp (kryptering, signatur) är en del av asymmetrisk kryptografi.
Hash-funktionen och signaturmekanismen
Innan vi pratar om signatur måste vi introducera begreppet "hashfunktion". En "hashfunktion" är en "kvarn" som förvandlar en text till en signatur (även kallad fingeravtryck). Denna "kvarn" har 5 egenskaper:
- För samma funktion är antalet tecken i fingeravtrycket alltid detsamma,
- Fingeravtrycket gör det inte möjligt att rekonstruera originaltexten.
- Ett fingeravtryck är inte förutsägbart,
- Identiska uppgifter ger ett identiskt fingeravtryck,
- Olika data resulterar i ett helt annat fingeravtryck.
"MD5" och "SHA" är två välkända hashfunktioner. Med MD5 konverteras till exempel texten "Ewon: Leading IIoT for 20 years" i kedjan med 32 tecken: "5b184c5cafcad9ef410afbcb0fab5518". Som jämförelse skulle hela innehållet på hela Wikipedia också resultera i en (helt annan) kedja på 32 tecken.
Efter signaturen kommer krypteringsprocessen
Med tanke på ovanstående, låt oss komma tillbaka till vårt exempel: För att signera ett dokument genererar Alice först dokumentets fingeravtryck med hjälp av en hashfunktion (som https://www.md5hashgenerator.com/ eller någon annan du kan hitta på internet . Sedan krypterar hon detta fingeravtryck med sin privata nyckel. Hon får en signatur på sitt dokument som hon kan skicka till Bob tillsammans med originaldokumentet.
Bob dekrypterar sedan signaturen med hjälp av Alices offentliga nyckel. Om det inte fungerar beror det på att dokumentet inte skickades av Alice (som är den enda som har den privata nyckeln). Om detta fungerar kan han vara säker på att det var Alice som undertecknade meddelandet. Han får därför ett första fingeravtryck av handlingen.
När detta steg har uppnåtts kommer Bob att generera fingeravtrycket för det ursprungliga dokumentet som han också fick, med samma hashfunktion som Alice. Om båda fingeravtrycken är identiska är han helt säker på att dokumentet inte har ändrats mellan den tidpunkt då Alice skickade det och det tillfälle då han fick det.
Kombinationen av kryptering och signatur är det enda sättet att samtidigt koda och signera ett dokument och säkerställa meddelandets konfidentialitet, integritet och äkthet.
Det är gott och väl, men det finns kanske ett sista problem: hur kan Alice vara säker på att hon använder Bobs offentliga nyckel när hon krypterar ett meddelande? Faktum är att om en hackare (låt oss kalla honom Eve) skulle producera ett nyckelpar (privat/offentligt) och skicka det vidare till Alice, vilket fick henne att tro att det var Bobs nyckel, skulle Alice fortsätta att kryptera meddelandena och skicka dem vidare till Bob. I det här fallet var det bara Eva som kunde avkoda och läsa meddelandena...
Alice måste därför kunna autentisera Bob innan hon använder den senares offentliga nyckel. För att göra detta kan Bob få sin offentliga nyckel identifierad av en certifikatutfärdare (CA), vilket säkerställer att han verkligen är ägare till den offentliga nyckeln. Den här försäkran har formen av ett certifikat som certifikatutfärdaren tillhandahåller Bob. Det här certifikatet innehåller information som identifierar Bob och hans offentliga nyckel. Den undertecknas i sin tur av certifieringsmyndigheten för att garantera dess legitimitet.
Alice kan sedan kontakta den här myndigheten för att få bekräftelse på att den offentliga nyckeln hon använder verkligen är Bobs. Svårt att göra bättre!
Asymmetrisk och symmetrisk kryptografi kan vara komplementära
Asymmetrisk kryptografi har bara en nackdel jämfört med symmetrisk kryptografi; Det går långsammare. För att öka hastigheten använder en säker anslutning båda typerna av kryptering, symmetrisk och asymmetrisk.När en webbläsare upprättar en säker anslutning till en server genererar den först en asymmetrisk sessionsnyckel (tillfällig). Sedan kommer den att använda serverns offentliga nyckel (vars äkthet och giltighet verifieras tack vare dess certifikat) för att kryptera denna sessionsnyckel och skicka tillbaka den till servern, som efter att ha dekrypterat den kommer att kunna kommunicera med min webbläsare på ett symmetriskt sätt.
Detta tillvägagångssätt är lösningen på Caesars 2000 år gamla problem. Tack vare det kan två enheter som inte känner varandra utbyta en hemlighet utan att behöva komma överens om en krypterings-/dekrypteringsnyckel.