Vylepšení pro bezpečnější přihlašování do mojeID a další novinky

Dnes v noci jsme v rámci odstávky mojeID a několika dalších systémů nasadili několik novinek a oprav. Zajímavé jsou především pro uživatele a implementátory služby mojeID.

Nejdůležitější novinkou je zcela určitě zavedení další možnosti pro bezpečnější přihlašování pomocí mojeID. Fakt, že přihlašování pouhým heslem není dostatečně bezpečné, je obecně znám. Proto ve službě mojeID dlouhodobě aktivně podporujeme možnost zabezpečení přihlašování pomocí tzv. druhého faktoru, tj. podporujeme dvoufaktorové přihlašování. Kromě zadání hesla uživatel prokazuje, že se skutečně jedná o něho, a to schopností ovládat nějaký další prostředek ověření. V našem případě šlo dosud o možnost zasíláním jednorázových hesel na mobilní telefon (tzv. OTP, z anglického One Time Password) a potvrzování přihlášení ve speciální aplikaci telefonu, kterou jsme vyvinuli (MojeID Autentikátor).

Dnes v noci jsme, prozatím v pilotním režimu, přidali další možnost, ke které již mobilní telefon nepotřebujete. Jedná se o metodu, v níž se využívá FIDO2, což je otevřený standard pro autentizaci, která umožňuje dvoufaktorové ověření pomocí specializovaných USB / NFC / Bluetooth zařízení (jsou pak bezpečnostním/autentizačním tokenem) v kombinaci s podporou webových prohlížečů. Při implementaci jsme zavedli podporu pro nejnovější FIDO2 protokol, u kterého lze využívat druhého faktoru bez dalšího hesla a který je zpětně kompatibilní se starším FIDO Universal 2nd Factor (U2F).

Kdo se tuto moderní a bezpečnou metodu přihlašování rozhodne využívat společně s mojeID, nechť si ke svému účtu připojí zařízení, které lze jednoduše najít pomocí hledání klíčových slov „fido2 usb“ nebo „fido2 nfc“. Jsou běžně dostupná i na českém trhu za cenu dvou obědů (USB varianta). Další informace naleznete přímo ve svém profilu mojeID nebo v nápovědě.

Další novinkou, která souvisí s druhým přihlašovacím faktorem, je možnost jeho odstranění. To jde samozřejmě poměrně jednoduše přímo v účtu mojeID, pokud prostředek druhého faktoru máte v ruce. Když však přístup k němu ztratíte, bylo jeho odstranění do dneška poměrně komplikované.

O odstranění druhého faktoru jste dosud mohli požádat pomocí datové schránky, úředně ověřené žádosti nebo při osobní návštěvě, ale tento postup celé řadě uživatelů příliš nevyhovoval. Proto jsme dnes přidali další možnost, kterou je odebrání ověřováno zadáním ověřovacích kódů zaslaných e-mailem a SMS a heslem k účtu.

V profilu mojeID jsme také udělali několik změn, které by měly zjednodušit jeho správu. Editaci osobních údajů jsme rozdělili do dvou záložek a optimalizujeme způsob vytváření žádosti o validaci z profilu mojeID. Pro generování PDF žádostí (o validaci nebo o převod kontaktu z registru do mojeID se změnou údajů) nyní používáme výhradně nový nástroj (weasyprint). Takže budou nyní všechny žádosti ve standardizovaném PDF, opouštíme jejich HTML verze, u kterých bylo velmi složité zajistit jejich stejné zobrazení v různých webových prohlížečích.

Dále optimalizujeme zobrazení doménového prohlížeče v mobilních zařízeních a doplňujeme nápovědu pro skrývání adresy v doménovém prohlížeči. Také odstraňujeme chybu, díky níž viděl uživatel při přihlašování k některým službám varování: „Tento požadavek na přihlášení přes mojeID o sobě tvrdí, že přichází z jiné stránky, než tomu ve skutečnosti je. Zvažte, zda vůbec chcete pokračovat s předáváním údajů ze svého mojeID.“

Opravujeme také předávání offline údajů v OpenID Connect (řešíme specifický případu, kdy dojde při použití autentizační metody client_secret_basic bez client_id v POST k selhání logování v hlavičkách) a správu klíčů v OpenID (klíče předávané přímo při registraci klienta přes parametr jwks).

Zkrátka připravili jsme několik změn, které stojí za to vyzkoušet. Jsme velmi zvědaví na vaše zkušenosti, zejména s novou možností využití druhého faktoru pro přihlášení.

Autor:

Komentáře (11)

  1. Ondřej Caletka říká:

    Podpora FIDO2 je skvělá zpráva, mojeID je asi první webovou aplikací, kterou znám, která FIDO2 implemenutuje. Ale velká chyba je omezení pouze na jeden způsob vícefaktorové autentizace a pouze na jeden token. Běžně používám dva různé tokeny, jeden s USB-A a NFC, druhý s USB-C. Žádná jiná webová služba implementující FIDO takovéto podivné omezení nemá.

    Praktická implementace FIDO2 je taky zbytečně komplikovaná, musím zadat uživatelské jméno, heslo, pak se dotknout tokenu, zadat PIN a znovu se dotknout tokenu. To ale znamená, že samotné heslo už je zcela nadbytečné, protože použití FIDO2 s PINem v sobě samo kombinuje faktor držení a faktor znalosti.

    No a nakonec, to jednoduché vypnutí vícefaktorového ověření pomocí SMS a e-mailu bezpečnost zase poměrně snižuje. Asi by měla existovat možnost toto jednoduché vypnutí vypnout, zejména v případě, bude-li k účtu přiřazeno víc nezávislých ověření (třeba dva různé tokeny a OTP).

  2. Zdeněk Brůna říká:

    Ondřeji, moc díky za podněty k dalším zlepšením. Dovolím si zareagovat jen stručně. Omezení na využití pouze jednoho druhého faktoru uvažujeme zrušit, stále ale platí, že pro drtivou většinu uživatelů je nemyslitelné, že zvládnou jeden, natož dva nebo více druhých faktorů. Proto to pro nás není prioritou. S tím souvisí i spuštěná možnost odstranění druhého faktoru, souhlasím s tím, že to bezpečnost snižuje, ale ze zkušeností s uživateli služby, jsme něco takového zavést museli. Možnost zakázání této možnosti nás nenapadla, můžeme ji zařadit do zpracování. Díky! Ohledně implementace FIDO2 jsem nepochopil, v čem je problém. Heslo necháváme zadávat, aby někdo nepřipojil druhý faktor nechtěně. PIN žádný nezadávám … respektive, možná máš nějaký typ tokenu, který se chová jinak než ty, co jsme zkoušeli. Můžeš prosím nasdílet, jaký připojuješ? A ještě jednou díky za podnětné připomínky!

    • Ondřej Caletka říká:

      Používám YubiKey 5, v režimu FIDO2 umožňuje i chránění PINem. Ověření v mojeID probíhá tak, že mě prohlížeč vyzve k zapojení tokenu a dotyku plošky, potom mě vyzve k zadání PINu a pak znovu k dotyku plošky. Předchozí verze FIDO U2F, kterou implementoval třeba YubiKey 4, žádný PIN neměla a stačil tam jen jeden dotyk.

      Domnívám se, že u FIDO2 je možné na straně aplikace nastavit, jakou úroveň ověření bude používat, tedy zda bude stačit pouze dotyk, nebo dotyk + PIN. Ale detaily jsem moc nestudoval, jsem spíš jen uživatel.

  3. Lukáš Beran říká:

    Dobrý den. Podpora FIDO2 je super, ale také mám trochu rozporuplné pocity z implementace. FIDO2 by mělo sloužit jako metoda pro tzv password-less sign-in, tedy přihlášení bez hesla. Reálná implementace se pak chová tak, že na přihlašovací stránce vyberu možnost přihlášení přes token, zasunu/přiložím token, dotknu se, zadám PIN k certifikátů a jsem přihlášený. Nezadávám vůbec heslo a běžně nezadávám ani uživatelské jméno, je to totiž zbytečné, certifikát je vždy unikátní pro každého uživatele a díky znalosti PIN pro certifikát jsem splnil požadavek na dva faktory ověření – něco co mám (USB token) a něco co znám (PIN). Podívejte se například, jak to má implementované Microsoft pro Azure AD (Office 365).

    • Zdeněk Brůna říká:

      Dobrý den a velmi děkuji za Vaši reakci! Kolega Lhotka má pravdu, záleží na typu zařízení, případně jeho nastavení. Testovali jsme s defaultně nastaveným https://www.yubikey.cz/product/security-key/, tam jsme na zabezepčení PINem nenarazili. Můžete mi prosím sdělit, jaké zařízení používáte? Děkuji moc!

  4. Ladislav Lhotka říká:

    Já tedy používám Yubikey NEO a pro přihlášení do mojeID s FIDO2 nemusím žádný PIN zadávat. Zadávám ho jen, pokud používám např. PGP klíče na něm uložené.

    Jinak si myslím, že volba mezi heslo+FIDO2 nebo jen FIDO2 je otázkou politiky. Udělat se dá obojí.

  5. Lukáš Beran říká:

    Já mám Yubikey 5 NFC. Neznám technicky možnosti implementace, ale asi to lze nějak zvolit, protože když tento token použiji pro přihlášení k firemní identitě v Azure AD (Office 365), tak se to právě chová jak popisuji – na přihlašovací obrazovce zvolím jen přihlášení přes token, nezadávám jméno ani heslo, jen zasunu token do USB, zadám PIN k certifikátu, dotknu se FIDO2 tokenu a jsem přihlášený.

    • Ladislav Lhotka říká:

      A jste si jistý, že se v tomto případě opravdu používá FIDO 2? K tomu není žádný uživatelský certifikát potřeba. Yubikey podporuje i další protokoly.

  6. Lukáš Beran říká:

    Jo a bylo by možné povolit současně jak OTP, tak i FIDO2? Někdy je pro mne pohodlnější použít OTP z mobilu, jindy zase FIDO2. Přijde mi to jako zbytečné omezení. S tím, že by to právě fungovalo jak jsem popisoval – když mám token k dispozici, zvolím přihlášení přes token, zadám jen PIN, potvrdím a je to. Když token nemám u sebe, zadám jméno, heslo a OTP a jsem přihlášen.

    • Ladislav Lhotka říká:

      Ano, toto je prostor pro další vylepšení. Zrovna tak by bylo užitečné mít možnost registrovat více tokenů.

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.

This site uses Akismet to reduce spam. Learn how your comment data is processed.