Bezpečná, levná a uživatelsky přívětivá dvoufaktorová autentizace – 3. díl
V tomto příspěvku se zamyslíme nad tím, zda by bylo možné tento bezpečný, levný a uživatelsky přívětivý způsob dvoufaktorové autentizace zavést pro přihlašování do jakékoliv webové aplikace, aniž bychom ji museli upravovat.
Je zřejmé, že pokud bychom chtěli tento způsob autentizace, spoléhající na smartphone jako na druhý faktor, použít pro přihlášení do jakékoliv webové aplikace, bez toho aniž bychom v ní museli provádět nějakou úpravu, což často ani není možné, museli bychom na počítač, ze kterého se chceme autentizovat, nainstalovat nějaký plugin, který by heslo v podstatě zadával za nás.
Vzhledem k tomu, že nelze zajistit přímé spojení mezi smartphonem a pluginem, neboť oba se zpravidla nacházejí za NATem, potřebujeme ještě server, který bude dostupný přes internet. Aby byla zajištěna vysoká dostupnost tohoto serveru, můžete zvolit i cloudové řešení.
Spárování pluginu, který se nachází na desktopu a aplikace nainstalované ve smartphone, můžeme snadno provést pomocí QR kódu, který plugin zobrazí poté, co vygeneruje pár klíčů, kdy veřejný klíč je použit k šifrování dat vyměňovaných mezi pluginem a serverem. Aplikace ve smartphone po sejmutí QR kódu zkontaktuje server a předá mu otisk pluginu.
Celý proces autentizace pak může fungovat velice jednoduše, stačí, když uživatel spustí prohlížeč, a zadá adresu služby, ke které se chce přihlásit. Plugin, podle toho jak je nakonfigurován, nabídne uživateli buď výběr identity, pod kterou chce vystupovat nebo automaticky volí posledně použitou a generuje požadavek na přihlášení.
Požadavek je zasílán na server, který vygeneruje výzvu a zašle ji uživateli do smartphone, kde tuto výzvu zpracuje nainstalovaná aplikace. Ta nedělá nic jiného, než že zobrazí uživatelské jméno, pod kterým se chce uživatel na desktopu přihlásit, jméno dané aplikace a případně další údaje. Uživatel buď tento požadavek schválí, nebo ho zamítne.
Samotné schválení nebo zamítnutí může být realizováno různými způsoby. Je potřeba však počítat i s tím, že by se někdo mohl smartphonu fyzicky zmocnit, a v takovém případě je vhodné vyžadovat autentizaci i do samotné aplikace. Ta může být založena na rozpoznávání tváře pomocí přední kamery, přiložení otisku prstu ke snímači, nebo na znalosti PINu či nakreslení gesta na dotykovém displeji smartphonu.
V okamžiku, kdy uživatel na smartphone požadavek na přihlášení do aplikace schválí, je mu zaslána část klíče. Ta se ve smartphone spojí s částí, která je tam uložena, dojde k sestavení privátního klíče, kterým se podepíše výzva. Ta se odešle na server, kde se podpis ověří. Tím je bezpečně, dvoufaktorově a jiným kanálem, tzv. out-of-band ověřeno, že se oprávněný uživatel chce autentizovat do aplikace.
Plugin se v pravidelných intervalech dotazuje serveru, zda již byl uživatel bezpečně ověřen a pokud ano, tak máme několik možností. Server může pluginu poskytnout část klíče, kterým jsou hesla šifrována (v pluginu je uložena druhá část a po spojení je k dispozici celý kompletní klíč), celý klíč nebo heslo do dané aplikace zašifrované veřejným klíčem. V zásadě mohou být hesla uložena v zašifrované podobě na serveru, anebo v lokálním úložišti pluginu.
Netřeba snad dodávat, že i plugin naváže bezpečné spojení se serverem, a proběhne mutual autentizace. Slabinou tohoto řešení je skutečnost, že heslo zadávané do aplikace je pořád stejné, a tak bezpečnost závisí na tom, jakým způsobem je heslo pluginem předáváno do samotné aplikace.
Existuje zde riziko MITB a replay attack, kdy malware nainstalovaný na desktopu začlení svůj kód přímo do aplikace natažené v prohlížeči a heslo zasílané pluginem odchytí.
Štítky: autentizace, dvoufaktorová autentizace
K článku “Bezpečná, levná a uživatelsky přívětivá dvoufaktorová autentizace – 3. díl” se zde nenachází žádný komentář - buďte první.
Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.