Passkeys jsou novým hitem ve světě vývojářů, alespoň to tak vypadá, protože používám dvě služby, které mi to vnucují, a povolím to jen jedné, a to z dobrého důvodu. V tomto příspěvku se dozvíte, co to passkeys jsou, proč to není tak jednoduché a proč si myslím, že Magic Links je lepší alternativa.
Co jsou to pasové klíče?
Lidé jsou zapomnětliví a nechtějí/nemohou si pamatovat dlouhá a složitá hesla. Přestože existují služby, jako je KeePass nebo LastPass, kde si můžete hesla zabezpečit pomocí hlavního hesla, je to pro některé lidi stále příliš složité.
Stručně řečeno: krátká hesla nejsou bezpečná a dlouhá hesla se špatně pamatují.
Passkeys by zde měl nabízet řešení, a to, že můžete použít WebAutn API prohlížeče prostřednictvím mobilního zařízení, například pomocí otisku prstu. Pak už stačí jen e-mailová adresa a můžete se přihlásit. Žádné další heslo už není potřeba.
Důmyslné, že?
Pasové klíče nejsou snadné
Teorie sice zní neuvěřitelně skvěle a geniálně, ale praktická realizace je všechno, jen ne snadná, protože kromě odborných znalostí v oblasti implementace JavaScriptu, kybernetické bezpečnosti a možných děr při vývoji, protože přece jenom by to mělo být bezpečné, ale aby to bylo bezpečné, musíte to také umět bezpečně implementovat ve vlastní aplikaci. Protože bez hesla se uživatel v případě problému ke svým datům již nedostane.
Corbadokteré pomáhají implementovat pasové klíče, říkají, že začlenit pasové klíče do produktivního provozu je stokrát obtížnější, než ukazuje jednoduchá ukázka pasových klíčů.
Existují totiž různá úskalí, která se mohou stát problémem, například zda musí přístupový klíč fungovat i na novém zařízení nebo co když se staré zařízení ztratilo? Co když si vyžádáte přihlášení pomocí pasového klíče přes webovou aplikaci, ale na mobilním zařízení se neobjeví žádný požadavek na ověření (to se mi stalo několikrát u jedné služby, takže používám možnost pasového klíče a hesla)?
Implementace přístupových klíčů
Ne, nebudu vám zde dávat žádné návody, protože toto téma je složité a jako vývojář se raději přikláním k odborníkům na bezpečnost, kteří vědí, jak to dělat správně.
Odborníci ze společnosti Corbado zde zveřejnili návod, který vysvětluje, jak jej implementovat:
Výukový program Passkey: Jak implementovat přístupové klíče ve webových aplikacích
Magic Link jako alternativa
Existuje však bezpečná a jednodušší alternativa k pasovým klíčům? Ano, existuje, a na internetu je lze najít pod dvěma různými názvy, buď Magic Link, ale někdy také Magic Login, oba znamenají totéž, ale jen se liší názvy.
Co je Magic Link?
Jedná se o outsourcing ověřování; uživatel se již nepřihlašuje k webové službě, ale ke svému poskytovateli e-mailu. Webová služba tedy neukládá heslo uživatele.
Jak to funguje?
V zásadě je to poměrně jednoduché a přitom bezpečné, protože u webové služby zadáváte pouze svou registrovanou e-mailovou adresu prostřednictvím postupu Magic Link. Služba pak uživateli zašle e-mail s odkazem a ověřovacím tokenem.
Abyste se mohli přihlásit k webové službě, musíte se přihlásit k poskytovateli e-mailu, u kterého máte přístup k e-mailu, takže se ověříte tím, že budete mít heslo k vlastnímu e-mailovému účtu, jehož e-mailovou adresu chcete přihlásit k webové službě. Po kliknutí na odkaz budete přihlášeni k webové službě a můžete ji normálně používat.
Jaké jsou tedy výhody a jaké nevýhody?
Výhody Magic Links
- Jednoduchost a uživatelská přívětivost:
- Uživatelé si nemusí pamatovat ani vytvářet hesla.
- Proces registrace je rychlý a nekomplikovaný.
- Zabezpečení:
- Minimalizuje riziko krádeže hesla a phishingových útoků, protože se nepoužívají žádná pevná hesla.
- Odkazy jsou často časově omezené a lze je použít pouze jednou.
- Omezená správa hesel:
- Uživatelé nemusí vytvářet ani měnit složitá hesla.
- Není třeba provádět procesy resetování hesla.
- Přístupnost:
- Uživatelé se mohou přihlásit z jakéhokoli zařízení pomocí své e-mailové adresy, aniž by potřebovali další informace.
Nevýhody kouzelných odkazů
- Závislost na e-mailu:
- Uživatelé musí mít přístup ke svému e-mailu, aby se mohli přihlásit.
- V případě problémů s e-mailovou službou může dojít k narušení procesu přihlášení.
- Bezpečnostní rizika e-mailových účtů:
- Pokud je e-mailový účet uživatele kompromitován, mohou se útočníci snadno přihlásit.
- Pokud není zaručeno zabezpečení e-mailu, lze e-mailové odkazy zachytit nebo přeposlat.
- Přijetí uživatelem:
- Někteří uživatelé nemusí být s Magic Links obeznámeni a dávají přednost tradičním metodám přihlašování.
- Může být vnímán jako méně důvěryhodný, pokud si uživatelé nejsou jisti, jak funguje.
- Zpoždění e-mailu:
- Zpoždění při přijímání e-mailů může proces registrace zpomalit.
- E-maily by mohly skončit ve složce nevyžádané pošty, což by ztížilo přístup k nim.
Nabízí tedy jednoznačně výhody, ale také nevýhody, přičemž nevýhody lze silně ovlivnit, takže byste měli svůj e-mailový účet vždy chránit pomocí 2FA (dvoufaktorové autentizace) a používat velkého poskytovatele e-mailu, jako je například Gmail, který nabízí know-how a bezpečnostní funkce pro minimalizaci hackerských útoků. Zpoždění e-mailů je v nejhorším případě 1-5 minut v závislosti na poskytovateli e-mailu, ale podle mých zkušeností jsou přijímány během několika sekund.
Problémem je samozřejmě uživatelská přijatelnost, protože kdo s ní dosud nemá zkušenosti, hůře se s ní sžívá, protože chce používat webovou službu, ale zároveň musí mít otevřený e-mailový účet. Nicméně si ušetříte riziko odcizení hesla k webové službě prostřednictvím hackerů a jeho zneužití, protože pokud heslo neexistuje, nelze žádné odcizit. A nemusíte si pamatovat ani spravovat několik hesel.
Proto bych rád implementoval Magic Links jako možnost přihlášení do svých vlastních služeb, které vyvíjím.
Z vývojářského hlediska jsou magické odkazy technicky jednodušší a rychlejší k realizaci, a to v různých programovacích jazycích, zatímco passkeys lze, pokud vím, realizovat pouze pomocí Javascriptu, protože dotaz musí být proveden v okně prohlížeče na straně klienta.
Další zdroje: