Prihlásenie bez frustrácie: passkeys, magic link a 2FA vo web aplikácii
Prihlásenie je prvé miesto, kde web aplikácia ľudí buď pustí dnu, alebo ich stratí. Zabudnuté heslo, e-mail na obnovu, ktorý neprišiel, pravidlá typu „aspoň jedno veľké písmeno, číslica a špeciálny znak“ — každá takáto prekážka znamená používateľa, ktorý to vzdá. A paradoxne, zložité pravidlá bezpečnosť ani nezvyšujú. Poďme sa pozrieť, ako navrhnúť prihlásenie, ktoré je pohodlné a zároveň bezpečnejšie než klasické heslo.
Čo si z článku odnesiete
- Passkeys nahrádzajú heslo odtlačkom prsta alebo tvárou — a nedajú sa vylákať phishingom.
- Magic link alebo kód e-mailom sa hodí do appiek, kam ľudia chodia len občas.
- Pri heslách kontrolujte uniknuté heslá namiesto nútenia k zložitým pravidlám.
- 2FA cez aplikáciu je lepšia než SMS — a obnovu účtu chráňte rovnako ako prihlásenie.
Prečo heslá zlyhávajú
Heslo má dve zásadné slabiny. Ľudia ich opakujú — keď unikne heslo z jedného webu, útočník ho vyskúša všade inde. A ľudia ich zadávajú kamkoľvek — aj na podvodnú stránku, ktorá vyzerá presne ako vaša. Žiadne pravidlo o špeciálnych znakoch nezabráni ani jednému.
K tomu pridajte ľudskú stránku veci: kto sa prihlasuje raz za mesiac, heslo si nepamätá. Každé „Zabudli ste heslo?“ je malá skúška trpezlivosti — a časť ľudí ňou neprejde. Moderné prihlásenie preto rieši obe strany naraz: bezpečnosť aj pohodlie.
Passkeys: prihlásenie odtlačkom prsta
Passkey je dvojica kľúčov. Súkromný kľúč zostane v telefóne či počítači používateľa (alebo v jeho správcovi hesiel) a odomkne sa odtlačkom prsta, tvárou či PIN-om zariadenia. Váš server má uložený len verejný kľúč — a ten útočníkovi nie je na nič, ani keby ukradol celú databázu.
- Odolné voči phishingu. Passkey je naviazaný na vašu doménu. Na podvodnej stránke s podobnou adresou sa jednoducho neponúkne.
- Nič sa nedá zopakovať ani uniknúť. Žiadne heslo necestuje sieťou, nič sa nedá odpočuť ani zneužiť na inom webe.
- Rýchlejšie než heslo. Prihlásenie je jeden dotyk prsta — bez písania, bez hľadania.
- Široká podpora. Fungujú na iPhone, Androide, Macu aj Windows a vo všetkých hlavných prehliadačoch. Synchronizujú sa cez iCloud, účet Google alebo správcu hesiel.
Technicky stojí passkey na štandarde WebAuthn a prehliadač všetku kryptografiu urobí za vás. Na strane prehliadača je prihlásenie prekvapivo krátke — server pošle výzvu, zariadenie ju podpíše a server podpis overí verejným kľúčom:
const json = await fetch('/auth/passkey/options').then(r => r.json());
const publicKey = PublicKeyCredential.parseRequestOptionsFromJSON(json);
const credential = await navigator.credentials.get({ publicKey });
await fetch('/auth/passkey/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(credential)
});Passkey ponúknite hneď po úspešnom prihlásení heslom: „Chcete sa nabudúce prihlásiť odtlačkom prsta?“ Človek práve zažil, aké je heslo otravné, a súhlas je jedno ťuknutie. Heslo pritom ponechajte ako zálohu.
Magic link a jednorazový kód
Pre aplikácie, kam ľudia chodia raz za čas — zákaznícky portál, rezervácie, objednávky —, je často najlepšie heslo žiadne. Používateľ zadá e-mail a dostane odkaz alebo šesťmiestny kód, ktorým sa prihlási. Nič si nepamätá a nič nezabudne.
- Krátka platnosť a jedno použitie. Odkaz či kód nech platí 10 až 15 minút a po použití prestane fungovať.
- Náhodný, dlhý token. V databáze ukladajte len jeho odtlačok (hash), nie samotný token — rovnako ako pri heslách.
- Pozor na „klikajúce“ e-mailové filtre. Firemné antivírusy a e-mailové služby otvárajú odkazy v správach vopred, aby ich skontrolovali — a jednorazový odkaz tak spotrebujú skôr, než naň klikne človek. Odkaz preto nech otvorí stránku s tlačidlom „Prihlásiť sa“ a až to tlačidlo prihlásenie dokončí.
- Ponúknite aj kód. Kto si otvorí e-mail v telefóne, ale prihlasuje sa na počítači, ocení šesť číslic, ktoré prepíše, namiesto odkazu, ktorý sa otvorí na nesprávnom zariadení.
Ak heslá, tak rozumne
Heslá nezmiznú zo dňa na deň a pre mnohé aplikácie zostanú aspoň ako záloha. Moderné odporúčania — napríklad od amerického inštitútu NIST — sa však od starých zvykov výrazne líšia:
- Dĺžka pred zložitosťou. Dlhá fráza je silnejšia a ľahšie zapamätateľná než krátke heslo s povinným výkričníkom. Zložité pravidlá vedú k heslám typu „Heslo123!“.
- Kontrolujte uniknuté heslá. Služba Pwned Passwords z Have I Been Pwned povie, či sa heslo objavilo v niektorom úniku — a to tak, že na ňu pošlete len prvých päť znakov odtlačku hesla, nie heslo samotné.
- Nevynucujte pravidelnú zmenu. Povinná zmena každé tri mesiace vedie k heslám „Jar2026“, „Leto2026“. Meniť heslo treba pri podozrení na únik, nie podľa kalendára.
- Nechajte pracovať správcov hesiel. Nezakazujte vkladanie hesla zo schránky a správne označte polia, aby ich prehliadač a správca hesiel vedeli vyplniť.
Správne atribúty autocomplete robia veľký rozdiel. Hodnota webauthn pri mene navyše ponúkne uložený passkey priamo v ponuke automatického dopĺňania, one-time-code zase vloží kód z SMS či e-mailu jedným ťuknutím:
<input type="email" name="email" autocomplete="username webauthn">
<input type="password" name="password" autocomplete="current-password">
<input type="text" name="code" inputmode="numeric" autocomplete="one-time-code">Pri registrácii použite autocomplete="new-password" — prehliadač vtedy sám navrhne silné heslo. A o tom, ako heslá bezpečne ukladať a chrániť sedenia, píšem v článku o bezpečnosti web aplikácie.
Dvojfaktor bez bolesti
Druhý faktor zastaví väčšinu útokov s ukradnutým heslom. Nie každý druhý faktor je však rovnako silný:
| Metóda | Bezpečnosť | Pohodlie | Kedy použiť |
|---|---|---|---|
| Kód cez SMS | Nižšia — výmena SIM, phishing | Vysoké | Lepšie než nič, pre bežných zákazníkov |
| Overovacia aplikácia (TOTP) | Dobrá | Stredné | Administrácia, firemné účty |
| Passkey alebo bezpečnostný kľúč | Najvyššia — odolná voči phishingu | Vysoké | Všade, kde sa dá |
- Pre administrátorov povinne. Účet s prístupom ku všetkým dátam musí mať druhý faktor vždy.
- Záložné kódy hneď pri zapnutí. Kto stratí telefón, nesmie stratiť aj účet.
- Dôveryhodné zariadenie. Voľba „zapamätať toto zariadenie na 30 dní“ výrazne zníži otravnosť.
- Druhý faktor pri citlivých akciách. Nie pri každom kliknutí, ale pri zmene e-mailu, hesla, platobných údajov či exporte dát.
Ak sa dvojfaktor dá vypnúť jedným e-mailom, útočník nebude lámať prihlásenie — pôjde cez obnovu. Obnovu chráňte rovnako prísne: záložné kódy, overenie totožnosti a upozornenie na pôvodný e-mail pri každej zmene prihlasovacích údajov.
Ktorú kombináciu zvoliť
Neexistuje jedno správne prihlásenie pre všetko. Rozhoduje, kto aplikáciu používa a ako často:
- Interný firemný nástroj: prihlásenie cez firemný účet (Google Workspace, Microsoft 365) alebo heslo s povinným druhým faktorom či passkey.
- Zákaznícky portál, kam sa chodí raz za čas: magic link alebo kód e-mailom, passkey ako voliteľná skratka.
- Aplikácia na denné používanie: passkey ako hlavná cesta, heslo ako záloha, druhý faktor voliteľne a pri citlivých akciách.
Najlepšie prihlásenie je to, ktoré si používateľ ani nevšimne — a útočník cez neho neprejde. Zásada návrhu autentifikácie
Časté otázky
Sú passkeys naozaj bezpečnejšie než heslo?
Áno. Súkromný kľúč nikdy neopustí zariadenie používateľa, server pozná len verejný kľúč a passkey funguje iba na vašej doméne. Nedá sa teda uhádnuť, vylákať na podvodnej stránke ani zneužiť po úniku databázy.
Čo ak používateľ stratí telefón s passkey?
Passkeys sa synchronizujú cez iCloud, účet Google alebo správcu hesiel, takže sa obnovia na novom zariadení. Aj tak ponúknite záložnú cestu — prihlásenie e-mailom, ďalší passkey alebo záložné kódy.
Musím kvôli passkeys prerobiť celé prihlasovanie?
Nie. Passkeys sa dajú pridať vedľa existujúcich hesiel — používateľ si ich zapne po prihlásení. Postupne ich začne používať väčšina a heslá zostanú ako záloha.
Zhrnutie
Kľúčové poznatky
- Passkeys sú rýchlejšie aj bezpečnejšie než heslo a odolajú phishingu.
- Pre občasné používanie zvoľte magic link alebo kód — s krátkou platnosťou a potvrdzovacím tlačidlom.
- Heslá kontrolujte proti únikom, nie proti zložitým pravidlám; nevynucujte pravidelnú zmenu.
- Nastavte správne autocomplete, aby prihlásenie vyplnil prehliadač a správca hesiel.
- Druhý faktor povinne pre adminov a obnovu účtu chráňte rovnako ako prihlásenie.
Chcete prihlásenie, ktoré ľudí nevyháňa?
Staviam web aplikácie s moderným prihlásením — passkeys, prihlásenie e-mailom, dvojfaktor aj firemné SSO —, navrhnutým tak, aby bolo bezpečné a zároveň pohodlné. Pozrite si, ako pristupujem k tvorbe web aplikácií, alebo mi napíšte o svojom projekte.
Čítajte ďalej
Ďalšie články
Bezpečnosť web aplikácie: 10 chýb, ktoré útočníci milujú
SQL injection, XSS, IDOR aj slabé sedenia. Desať najčastejších dier podľa OWASP a presné kroky, ako každú z nich zavrieť.
Čítať článokAko navrhnúť REST API, ktoré prežije roky a vývojári ho pochvália
Verziovanie, stránkovanie, konzistentné chyby a idempotencia. Pravidlá, vďaka ktorým sa vaše API používa ľahko aj po piatich rokoch.
Čítať článokVytvorte si vlastný AI marketingový tím
AI nástroje, ktoré nahradia časť marketingového oddelenia. Ako si krok po kroku poskladať vlastný AI tím a ušetriť desiatky hodín.
Čítať článok