07
Kapitola 07 z 08 · Bezpečnost
DostupnéSMSWhatsApp

Dvoufaktorová autentizace pro banky regulované ČNB: SCA podle PSD2

Banky a fintechy v ČR podléhají regulaci České národní banky a EU směrnici PSD2 (regulace RTS 2018/389). Silné ověření zákazníka (SCA) vyžaduje dva ze tří faktorů a OTP přes SMS zůstává nejpoužívanějším „something you have“ prvkem. 4notify garantuje doručení do 1 sekundy P50, hlasový fallback při selhání SMS a evidenci 90 dní pro audit ČNB.

Problém

Když OTP nedorazí během 30 s, 19 % uživatelů opustí transakci. Banka pak řeší stovky stížností týdně. Standardní agregátor neumí zaručit prioritu pro OTP zpráv, takže o víkendu kvůli marketingovým kampaním sousedů padá latence na 8 s.

Právní rámec
Směrnice (EU) 2015/2366 (PSD2) — RTS 2018/389

SCA vyžaduje dva nezávislé faktory; SMS OTP přijímá ČNB jako „possession“ prvek, pokud je kanál spolehlivý.

Zákon č. 370/2017 Sb. o platebním styku

Český transpoziční zákon PSD2; § 223 a násl. detailují technické standardy SCA aplikovatelné v ČR.

Opatření ČNB č. 4/2017 o vnitřním řídicím systému banky

Vyžaduje logování všech bezpečnostních událostí 5 let; OTP události 4notify exportuje v ČNB-kompatibilním formátu.

Architektura
01

Prioritní OTP kanál

OTP zprávy mají oddělený trakt s prioritou nad marketingem; SLA garantuje P95 latenci pod 3 s i o víkendu.

02

Generování a TTL

6místný číselný OTP generuje 4notify (CSPRNG), TTL 90 s; po expiraci automaticky invaliduje a klient musí požádat o nový.

03

Hlasový fallback

Pokud SMS nedorazí během 20 s (operátor potvrzení), 4notify automaticky vytočí číslo a robotem nadiktuje OTP.

04

Audit log pro ČNB

Každé OTP má strukturovaný záznam: čas dispatche, doručení, využití, IP klienta, fingerprint zařízení; export v JSON, CSV a XAdES.

Kód
bash
# 1. Banka požádá o vygenerování OTP:
curl -X POST https://api.4notify.net/v1/otp/issue \
  -H "Authorization: Bearer $OTP_API_KEY" \
  -H "X-Idempotency-Key: $TRANSACTION_ID" \
  -d '{
    "channel": "sms",
    "fallback_channel": "voice",
    "recipient": "+420777123456",
    "ttl_seconds": 90,
    "template": "psd2_payment_authorization",
    "variables": { "amount": "1248 Kc", "merchant": "VasFirma" }
  }'
# 200 OK
# { "otp_id": "otp_abc123", "delivered_at": "2026-05-29T14:01:02.481Z" }

# 2. Banka ověří OTP zadané uživatelem:
curl -X POST https://api.4notify.net/v1/otp/verify \
  -d '{ "otp_id": "otp_abc123", "code": "284913" }'
# 200 OK { "verified": true, "used_at": "2026-05-29T14:01:34.812Z" }
Ukázková zpráva
SMS

VasBanka: Overovaci kod pro platbu 1248 Kc obchodnikovi VasFirma je 284913. Nepredavajte nikomu. Plati 90 s.

Před spuštěním
  • Audit Privacy by Design (DPIA) podle ČNB šablony
  • Smlouva o zpracování osobních údajů (DPA) s 4notify
  • SLA s P95 ≤ 3 s pro OTP kanál
  • Aktivovat hlasový fallback (voiceOTP)
  • Otestovat audit export v JSON, CSV a XAdES
  • Penetrační test OTP TTL a brute-force ochran
Co dělá 4notify jinak

Prioritní OTP trakt s P95 ≤ 3 s, hlasový fallback a kontrola SIM-swap přes MNP databázi tří českých operátorů — připraveno pro audit ČNB.

Časté dotazy
Akceptuje ČNB SMS jako prvek SCA?

Ano, za předpokladu spolehlivosti kanálu. Doporučuje paralelně push notifikaci jako primární a SMS jako fallback. 4notify obě cesty obstarává.

Co s číslem mimo ČR?

OTP do 240 zemí přes mezinárodní A2P propojku; latence se zhorší (P95 6–8 s), proto pro mezinárodní zákazníky vždy zapínáme push primary.

Jak řešíte SIM-swap útoky?

4notify se napojí na MNP databázi tří českých operátorů; každý OTP požadavek kontroluje datum poslední změny SIM a varuje banku, pokud byla v posledních 24 hodinách.

Začněte testem zdarma

14 dní, žádná karta. Český support.

Další kapitoly