Autentizace: Zařízení uživatele jako další faktor?

Je možné nahlížet na samotné zařízení, ze kterého uživatel přistupuje do aplikace, jako na autentizační faktor, kdy uživatel „něco má“?

Na internetu lze narazit na několik firem, které prosazují myšlenku využít samotného zařízení, ze kterého se uživatel hlásí, jako dalšího autentizačního faktoru. Bohužel většina z nich řešení, které nabízí, nazývá různě. Setkat se tak lze např. s pojmem Virtual token nebo CDI. Informace o tom, jak přesně jejich řešení fungují, však tyto firmy tají. Je zde patrný „security by obscurity“ přístup. Přitom princip, na jakém tato řešení fungují, je velice jednoduchý.

Na zařízení uživatele se spustí kód, který zjistí specifické informace o konfiguraci daného zařízení a vytvoří z nich jakýsi otisk. Ten se pak přenese na server, kde se uloží do DB. V okamžiku, kdy uživatel na server opětovně přistoupí, proběhne kontrola, zda uživatel přistupuje ze stejného zařízení či nikoliv. Je zřejmé, že algoritmus, který posuzuje míru shody aktuální konfigurace zařízení s konfigurací uloženou, musí zohlednit možnou změnu konfigurace zařízení v čase.

V okamžiku, kdy algoritmus vyhodnotí stávající zařízení jako zařízení, jehož otisk má uložen ve své DB, je uživateli po zadání jména a hesla umožněn přístup do aplikace. V okamžiku, kdy algoritmus vyhodnotí zařízení jako jiné, může být uživateli přístup odepřen, povolen přístup jen k vybraným funkcím nebo po něm může být požadováno, aby prokázal svoji totožnost jiným způsobem.

Dodavatelé, které toto řešení nabízejí, o něm hovoří jako o dalším autentizačním faktoru. Jedná se však opravdu o skutečnou vícefaktorovou autentizaci? Pokud jste pozorně četli příspěvek, ve kterém jsem se detailně věnoval vícefaktorové autentizaci, tak vám jistě neuniklo, že v tomto případě nemusí být vždy splněna podmínka „něco má a jen on to má“, a proto nelze hovořit o dvoufaktorové autentizaci. Pojďme se společně zamyslet nad tím, jak bezpečné toto řešení vlastně je.

Dodavatelé těchto řešení předpokládají, že zadáním jména a hesla spolu s kontrolou zařízení, ze kterého uživatel do aplikace přistupuje, by mělo být zajištěno, že se hlásí opravdu oprávněný uživatel. Útočník by totiž musel ukrást jak credentials (jméno a heslo), tak i samotné zařízení, aby se mohl za uživatele vydávat. Opravdu se musí útočník fyzicky zmocnit daného zařízení? Nemusí.

Pomineme nyní skutečnost, že by se uživatel hlásil např. do aplikace z internetové kavárny. V takovém případě by se totiž za daného uživatele mohl vydávat prakticky každý, kdo by usedl ke stejnému počítači. A nemusela by to být jen internetová kavárna, k obdobné situaci by mohlo dojít i v kterékoliv firmě, kde je v jednom prostoru umístěno více počítačů a pracuje více uživatelů. Stejně tak se nebudeme zabývat situací, kdy by si k počítači, který má uživatel někde v obýváku sedla jeho manželka, která zná jeho přihlašovací údaje. To jsou situace, kterým se uživatel může snadno vyhnout.

Budeme se zabývat situacemi, kdy jsou přihlašovací údaje uživatele získány prostřednictvím malwaru a phishingu, neboť to jsou nejčastější případy, jak dochází ke krádeži identity (identity theft). V takovém případě pak dojde k přihlášení útočníka z jiného počítače, než ze kterého se běžně hlásí oprávněný uživatel a pokud by daná společnost používala pro autentizaci kromě jména a hesla i řešení identifikující samotné zařízení uživatele, nesouhlasil by potom otisk, protože útočník by nebyl schopen stejný otisk vygenerovat, protože neví jak. Je tomu ale opravdu tak? Není.

O tom, jaké informace o konfiguraci vašeho počítače prosakují na internet, se můžete sami přesvědčit, když zavítáte na stránky Panopticlick a spustíte si příslušný test. Uvidíte, že i to málo informací, které lze přes web získat, může kolikrát stačit k vaší spolehlivé identifikaci (žádná cookie není potřeba). Jasná je jedna věc a to, že přes HTTP lze zjistit poměrně detailní informace o vašem počítači.

Vězte, že zjistit, jaký používáte operační systém, prohlížeč včetně pluginů, rozlišení obrazovky a barevnou hloubku, IP adresu, časovou zónu, jazyk, nainstalované fonty, vybrané programy a dokonce i navštívené weby, není vůbec žádný problém. Podrobně je tato problematika popsána na webu BrowserSpy. Tyto informace o uživateli resp. jeho systému se stávají de facto veřejně dostupnými a snadno je může získat i útočník, pokud zavítáte na web, který je pod jeho kontrolou.

Identifikace zařízení však nemusí být založena jen JS, ale může využívat ActiveX komponenty nebo JAVA appletu, který umožňuje zjistit více informací o daném zařízení např. o HW, což jsou informace, které na internet při běžném surfování neprosakují. Je zřejmé, že zde již bude nutná, nějaká interakce uživatele a bude záležet na nastavení prohlížeče, jestli se uživatele zeptá, zda má spuštění dané komponenty povolit či nikoliv.

Vzhledem k tomu, že k autentizaci je jako druhý faktor použito samotné zařízení, je třeba zdůraznit, že uživatel není chráněn před útokem typu MITB (Man In The Browser). Můžete sice namítnout, že mnohem častějším útokem je zcizení identity, kdy útočník získá přihlašovací údaje za pomocí phishingu nebo malwaru, ale je otázka, jak dlouho tomu tak ještě bude a zda má z tohoto pohledu řešení založené identifikaci zařízení nějakou budoucnost.

Kromě toho se spousta uživatelů obává možné ztráty soukromí a v některých zemích jsou v tomto směru velice aktivní i některé instituce. Může se tak snadno stát, že informace, které dnes v podstatě bez vědomí uživatelů na internet prosakují, budou v budoucnu blokovány a nebudou tak moci být za tímto účelem používány. V současné době však uživatelé nemají v podstatě žádný nástroj, jak by mohli úniku těchto informací zabránit. Tedy pokud nepočítáme zakázání samotného JS. Ale ten asi v praxi zakazuje málokdo, protože potom by mu spousta věcí, na které je zvyklý, přestala fungovat.

Poznámka: Otiskem se v tomto případě nemyslí přímo hash, který by byl výsledkem nějaké hashovací funkce, ale spíše řetězec, který v sobě nese informace o konfiguraci daného zařízení. Z hashe by se nedalo zjistit, v čem se konfigurace změnila, zda došlo ke změně významného nebo naopak nevýznamného parametru, protože v okamžiku jakékoliv změny, by se generoval úplně jiný otisk.

Závěr: Autentizace založená na identifikaci zařízení uživatele spoléhá na “security by obscurity“ přístup k zajištění požadované úrovně bezpečnosti. V okamžiku, kdy by se útočník dozvěděl, které informace applet z počítače získává a jak je zpracovává, mohl by provést tzv. „replay attack“. Je otázka, zda nabízená řešení jsou „secure by design“, implementují správně kryptografii pro zajištění bezpečného přenosu otisku a přidávají i jedinečný identifikátor platný pouze pro dané sezení. Samotné zařízení, ze kterého se uživatel přihlašuje, nelze považovat za druhý autentizační faktor, avšak při budování vícevrstvé ochrany a prevenci podvodů může identifikace zařízení sehrát významnou roli.

Pokud vás tento článek zaujal, můžete odkaz na něj sdílet.

Štítky: ,

  1. Miroslav Čermák

    Nově lze uživatele identifikovat i podle Canvas fingerprinting, vizte https://securehomes.esat.kuleuven.be/~gacar/persistent/the_web_never_forgets.pdf.


K článku “Autentizace: Zařízení uživatele jako další faktor?” se zde nachází 1 komentář.

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.

Přihlášeným uživatelům se tento formulář nezobrazuje - zaregistrujte se.

Jméno:(požadováno)
E-mail:(požadováno - nebude zobrazen)
Web:

Text vaší reakce: