Súkromie na internete je stále omieľaná a nevyčerpateľná téma. Tu či tam sa dozvieme, že niekto nás špehuje, alebo že niekde unikli hromadne dáta. Niektorí vývojári sa na to rozhodli odpovedať formou end-to-end (E2EE) šifrovania komunikačných programov, ku ktorým sa nedávno pripojil aj WhatsApp.
Čo to ale vlastne to end-to-end šifrovanie je a ako sa líši od šifrovania bežných správ? Ako už názov napovedá, správa sa prenáša šifrovaná z jedného konca až na druhý koniec, ktorým je váš kamarát, alebo iný kontakt, s ktorým si práve píšete. Server teda narozdiel od podobných služieb nevidí, čo správy obsahú, pretože cez server tečie len šifrovaný text. Facebook, Hangouts a podobné bežné messengery správy môžu síce tiež šifrovať, ale len po ceste telefón – server a späť. Na serveri sa dáta pred ďalšou cestou rozšifrujú a uložia, takže či k nim bude mať prístup niekto ďalší je už v réžii správcov daného servera.
Ďalšou otázkou je nakoľko môžme takémuto end-to-end šifrovaniu veriť? Hoci vývojári môžu tvrdiť, že takéto dáta nikto neprečíta, úrady v niektorých štátoch môžu vývojárov prinútiť implementovať tzv. zadné vrátka – backdoor – vďaka ktorým môžu byť schopní dáta rozšifrovať.
Okrem šifrovania prenášaných dát nám ale end-to-end šifrovanie prináša vďaka asymetrickej kryptografii aj ďlašie bezpečnostné prvky, ako je dôveryhodnosť správ a ich integrita. Dôveryhodnosť správy znamená, že nám nikto nemôže poslať správu tak, že by sa vydával za niekoho iného. Integrita správ zasa znamená, že počas cesty nedošlo ku zmene obsahu, čo je tiež forma útoku. Niekto dáta po ceste odchytí, upraví a pošle ďalej ich pôvodným smerom.
Ako to ale funguje? Pýtate sa, ako je možné, aby si zariadenia na diaľku dohodli spoločný šifrovací kľúč tak, aby ho nikto nedokázal odchytiť a zneužiť? Odpoveď na túto otázku našli v roku 1976 páni Whitfield Diffie a Martin Hellman, podľa ktorých sa takáto výmena kľúčov aj nazýva. Ukážme si, ako by takáto dohoda na šifrovacom kľúči prebiehla medzi Alicou a Bobom, ktorí si chcú posielať tajné správičky.
Modulo 23 = mod 23 = zvyšok po delení 23
- Alica a Bob sa dohodnú na prvočísle p = 23 a na báze g = 5, čo je primitívny koreň modulo 23.
- Alica si zvolí tajné číslo a = 6 a pošle Bobovi A = ga mod p
A = 56 mod 23 = 8 - Bob si zvolí tajné číslo b = 15 a pošle Alici B = gb mod p
B = 515 mod 23 = 19 - Alica si zráta s = Ba mod p
s = 196 mod 23 = 2 - Bob si tiež zráta s = Ab mod p
s = 815 mod 23 = 2 - Teraz majú Alica a Bob spoločné tajomstvo (číslo 2).
(Zhrnutie: Verejne známe čísla sú p, g, A, B; tajné čísla sú len a, b, s)
Ak sa vám z toľkých čísiel zamotala hlava, možno vám lepšie pomôže nasledujúci ilustračný obrázok (predpokladajme, že rozdelenie farieb je drahé, rovnako tak drahé sú aj zdroje na odhalenie tajných kľúčov).
Tým matematicky zdatnejším sa môže zdať vyrátanie spoločného tajomstva naopak jednoduché, no ide ale o oveľa zložitejší problém, ako sa na prvý pohľad zdá a skúšali ho už vypočítať kadejaké mozgové kapacity. Problém spočíva vo vyriešení tzv. diskrétneho logaritmu, ktorý zatiaľ vieme riešiť len jedným spôsobom, a to hrubou silou. Takže by sme skúšali číslo 5 umocňovať na rôzne čísla a delili ho 23 dokým by sme nenašli také výsledky, ktoré by vyhovovali odchyteným dátam. Problém však nastáva práve tu, pretože keď zvolíme prvočíslo p aspoň 300 číslic dlhé a čísla a a b aspoň 100 číslic dlhé, tak sa s tým v rozumnom čase nedokážu popasovať ani najmodernejšie počítače, hoci tajné sú len a, b a spoločné tajomstvo s. To však neznamená, že jednoduchý spôsob neexistuje, no ak sa vám ho podarí objaviť, tak ste do konca života za vodou.
A akú váhu má úroveň zabezpečenia pri výbere vhodnej aplikácie pre vaše každodenné používanie?