← Zpět na blog
13. května 2026·4 min čtení·Tým TopSMS

2FA přes SMS vs TOTP: bezpečnost a UX

Kdy stačí SMS, kdy potřebujete TOTP nebo hardware klíč. Reálná bezpečnostní rizika, NIST doporučení a co to znamená pro vaši aplikaci.

V roce 2017 vydalo americké NIST kontroverzní guideline: "SMS jako 2FA se nedoporučuje". Od té doby se v komunitě bezpečnosti diskutuje, jestli je SMS pro autentizaci dost. Realita je nuancovaná. Tento článek vysvětluje kdy SMS stačí a kdy ne.

Tři druhy 2FA

  1. Něco, co víte — heslo
  2. Něco, co máte — telefon, hardware klíč
  3. Něco, čím jste — biometrie (otisk, obličej)

SMS, TOTP a hardware klíče jsou všechny kategorie 2 (máte telefon nebo zařízení). Liší se v tom, jak se ověřuje, že máte to zařízení.

MetodaJak funguje
SMS OTPServer pošle 6-místný kód SMSkou
TOTPAplikace (Authy, Google Auth, 1Password) generuje kód každých 30 s
Push notifikaceAplikace přijme push, uživatel ťukne "Schválit"
Hardware klíčYubiKey, Titan — fyzický klíč v USB nebo NFC

Bezpečnostní slabiny SMS

SIM swap

Útočník přesvědčí mobilního operátora, že je vy a chce přenést SIM kartu na nový telefon. Operátor číslo přesune. Útočník přijímá vaše SMS = bypassuje 2FA.

Prevalence v ČR: vzácné, ale stoupající. Operátoři mají proces přenosu zpřísněný (osobní návštěva s OP), ale insider attacks na zaměstnance se objevují.

Reálný případ 2024: Útočník v ČR získal SIM oběti přes podplaceného technika T-Mobile (vyřízeno přes "ztrátu" SIM), pak ukradl 800k Kč z bankovního účtu. Banka soud prohrála, klient peníze dostal zpět.

SS7 attack

SS7 je signalizační protokol z 80. let, který telefonní operátoři používají pro routing. Má strukturální slabiny — kdo má přístup do SS7 (= operátor v nějaké zemi), může přesměrovat SMS z jiných operátorů. Útok stoji ~$500-2000 na darknetu.

Prevalence v ČR: velmi vzácné, ale teoreticky možné. Cílí typicky na high-value targets (CEO, politici, novináři).

Phishing OTP

Falešná stránka simuluje login. Vy zadáte heslo + SMS OTP. Útočník v reálném čase přihlašuje s vašimi credentials.

Prevalence: velmi častá. Bankovní phishing v ČR je týdenní záležitost.

Malware na telefonu

Vir na Androidu čte všechny příchozí SMS. Banking trojany typu Cerberus, Anubis to dělají systematicky.

Prevalence: roste s každým rokem. iOS výrazně bezpečnější, Android náchylný.

Bezpečnost TOTP

TOTP je generován lokálně na telefonu. Útočník musí mít:

  • Fyzicky telefon a
  • Odemčený telefon a
  • Přístup k authenticator aplikaci

Žádné odposlechy přes síť, žádný SIM swap nepomůže. Bezpečnější než SMS.

Slabiny TOTP:

  • Ztráta telefonu = problém. Bez backup kódů jste odříznutí.
  • Phishing TOTP funguje stejně jako SMS — uživatel zadá kód do falešné stránky
  • Malware může číst obrazovku TOTP aplikace

Co říká NIST 2024

NIST Special Publication 800-63B (2024 revize) říká:

"SMS-based authentication is NOT prohibited but should be evaluated for risk. For applications handling sensitive financial or health data, prefer TOTP, push notification, or hardware token."

Tedy: SMS NENÍ zakázané, je třeba ho vážit s rizikem aplikace.

Praktická doporučení

Použijte SMS 2FA, když:

  • Aplikace je běžná SaaS (CRM, e-shop admin, web hosting)
  • Hodnota účtu je < 100 000 Kč typicky
  • Uživatelé jsou smíšení tech-savvy (TOTP by je odradil)
  • Compliance neříká jinak

Příklady: TopSMS dashboard, většina B2B SaaS, většina e-shopů

Použijte TOTP, když:

  • Aplikace má vyšší privilegia (admin, server access)
  • Pracujete s citlivými daty (zdravotní, finanční, právní)
  • Uživatelé jsou technicky zdatní (zvládnou nastavit aplikaci)
  • Máte MFA strategy sjednocenou

Příklady: AWS, GitHub, internal admin paneluy, finanční apky

Použijte hardware key (FIDO2), když:

  • High-value uživatelé (admini, CEO, finance)
  • Compliance vyžaduje (PCI-DSS Level 1, bankovní)
  • Aplikace má kritickou infrastrukturu

Příklady: root admin AWS, banking, kryptové burzy

Best practices pro SMS 2FA

Pokud SMS 2FA implementujete:

  1. OTP s expirací 5-10 minut — kratší = bezpečnější (ale UX pain)
  2. Rate limiting — max 3 OTP requesty per uživatel/15 min
  3. Backup kódy — uživatel může 8-10 jednoraz. kódů vytisknout
  4. Bind OTP k IP/session — kód vygenerovaný pro session X nelze použít pro session Y
  5. Notifikace každého použití — push/email "Přihlášení z X v Y"
  6. Žádné OTP přes URL parameters — POST request only
  7. Krátký OTP — 6 cifer (10^6 = 1M kombinací, s rate limitem dost)

TopSMS pro 2FA implementaci

V TopSMS máme všechno potřebné:

  • OTP endpoint — generujeme kód, posíláme přes přímé routování s nejnižší latencí (typicky 1-3 sekundy do telefonu)
  • Webhook delivery reporty — víte, že OTP skutečně dorazila
  • Auto-retry při failure — pokud první neproide, automaticky druhý pokus
  • TOTP backup (na naší straně dashboard) — pro admin přístup máme SMS + backup kódy

Pokud staví aplikaci s 2FA, REST API dokumentace má kompletní příklad OTP flow.


V příštím článku: 5 konkrétních use cases, kdy SMS šetří hodiny v call centru.

2FAbezpečnostauthsms
Otestujte TopSMS zdarma

10 SMS na start, bez závazku, registrace minuta.

Registrovat zdarma →