TakéBank iD, Bankovní iD, přihlášení bankovní identitouPokročilý

Definice

Bankovní identita je způsob ověření totožnosti člověka na internetu pomocí přihlašovacích údajů do jeho internetového bankovnictví. Banka jako ověřený zdroj potvrdí poskytovateli služby jméno, datum narození, adresu či číslo dokladu klienta, který k tomu dal souhlas. V Česku funguje pod obchodní značkou Bank iD a je uznávaným prostředkem elektronické identifikace vůči státu.

Kategorie: KyberbezpečnostAktualizováno

Než se na to spolehnete: Konkrétní ceník, seznam zapojených bank a přesné názvy endpointů Bank iD se v čase mění, proto je text drží obecně; před publikací doporučuji ověřit formulaci o pokrytí bank. Odkaz na wikipedii i openid.net je vhodné nechat ověřit serverem.

Proč vznikla bankovní identita

Ověřit totožnost člověka na dálku bylo dlouho drahé a nepohodlné: kurýr s občankou, notářsky ověřený podpis, videohovor s operátorem. Banky přitom svoje klienty musí identifikovat ze zákona při uzavření smlouvy a udržují jejich údaje aktuální kvůli AML povinnostem. Bankovní identita tuhle už existující a prověřenou znalost zpřístupňuje třetím stranám: pojišťovně, e-shopu s alkoholem, úřadu nebo poskytovateli půjčky.

Průběh přihlášení krok za krokem

Přihlášení bankovní identitou technicky stojí na standardech OAuth 2.0 a OpenID Connect, takže vývojáři, kteří znají přihlašování přes Google, se orientují okamžitě.

  1. Uživatel klikne na tlačítko poskytovatele služby a vybere svou banku.
  2. Prohlížeč ho přesměruje na autorizační server banky, kde se přihlásí stejně jako do internetového bankovnictví, obvykle včetně potvrzení v mobilní aplikaci.
  3. Banka zobrazí souhlasnou obrazovku s výčtem údajů, které si služba vyžádala (rozsah se předává jako scope).
  4. Po souhlasu se uživatel vrací zpět s autorizačním kódem, který server služby vymění za access token a id_token.
  5. Server služby zavolá endpoint s uživatelskými údaji a dostane strukturovaná data: jméno, datum narození, adresu trvalého bydliště, případně údaje o dokladu totožnosti.

Klíčové je, že poskytovatel služby nikdy nevidí přihlašovací údaje do banky ani zůstatek na účtu. Dostane jen to, co si vyžádal a co uživatel odklikl.

Čím se liší od přihlášení přes Google nebo Facebook

Sociální přihlášení potvrzuje, že někdo ovládá daný účet. Bankovní identita potvrzuje, kdo ten člověk je, protože banka jeho doklady fyzicky nebo ověřeně viděla. Rozdíl je právní, ne technický: data z bankovní identity lze použít jako podklad pro uzavření smlouvy na dálku, data z Facebooku nikoli.

Bankovní identita zároveň slouží jako prostředek elektronické identifikace vůči státu. Přes ni se občan dostane do Portálu občana, datové schránky nebo daňové informační schránky, aniž by potřeboval čipovou občanku a čtečku.

Co to znamená pro provozovatele služby

Integrace vyžaduje smlouvu s provozovatelem schématu a registraci aplikace včetně redirect_uri. Neplatí se za uživatele, ale za transakci: každé úspěšné ověření je zpoplatněné, a cena se liší podle rozsahu údajů a podle toho, zda jde o pouhé přihlášení, nebo o plnou identifikaci s podpisem dokumentu.

Z pohledu produktu je největší přínos v konverzi. Formulář, kde uživatel opisuje adresu a číslo občanky, opustí velká část lidí; přihlášení bankou trvá desítky sekund a data přijdou bez překlepů. Praktické omezení je pokrytí: každá banka schéma nepodporuje a část lidí odmítá spojovat banku s nákupem, takže klasickou registraci je potřeba nechat jako alternativu.

Bezpečnostně těží bankovní identita z toho, že banky už provozují dvoufaktorové ověření kvůli požadavkům směrnice PSD2 na silné ověření klienta.

Příklady z praxe

  1. Uzavření pojištění bez papírů

    Pojišťovna nabízí sjednání povinného ručení online. Místo vyplňování patnácti polí klient klikne na přihlášení bankou, potvrdí souhlas v mobilní aplikaci a formulář se předvyplní jménem, rodným číslem a adresou trvalého bydliště. Smlouvu pak podepíše elektronicky ve stejném toku a dokončení sjednání se zkrátí z minut na desítky sekund.

  2. Zpracování návratu z autorizačního serveru

    Backend e-shopu s alkoholem potřebuje pouze ověřit plnoletost. Vyžádá si proto minimální rozsah údajů a po návratu uživatele vymění autorizační kód za token, ze kterého přečte datum narození. Menší rozsah znamená vyšší míru dokončení souhlasu i nižší cenu za transakci.

    // Node.js: výměna autorizačního kódu za token
    const res = await fetch(TOKEN_ENDPOINT, {
      method: 'POST',
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
      body: new URLSearchParams({
        grant_type: 'authorization_code',
        code,
        redirect_uri: REDIRECT_URI,
        client_id: CLIENT_ID,
        client_secret: CLIENT_SECRET,
        code_verifier: verifier
      })
    });
    
    const { access_token } = await res.json();
    
    const profile = await fetch(USERINFO_ENDPOINT, {
      headers: { Authorization: `Bearer ${access_token}` }
    }).then(r => r.json());
    
    const plnolety = vek(profile.birthdate) >= 18;

Časté omyly

MýtusKdyž se přihlásím bankovní identitou, e-shop uvidí můj účet a kolik mám peněz.
Ve skutečnostiBankovní identita předává jen identifikační údaje, které si služba vyžádala a uživatel odsouhlasil na obrazovce banky. Přístup k zůstatku a historii transakcí je jiná služba postavená na PSD2 a vyžaduje samostatný souhlas i jinou licenci.
MýtusBankovní identita je jen další varianta přihlášení přes Google.
Ve skutečnostiPřihlášení přes Google potvrzuje držení účtu, nikoli totožnost člověka. Bankovní identita se opírá o zákonnou identifikaci klienta bankou, proto ji lze použít jako uznávaný prostředek elektronické identifikace vůči státu i pro smlouvy uzavírané na dálku.
MýtusBankovní identita je pro poskytovatele zdarma, banka na tom vydělá jinde.
Ve skutečnostiNapojení je smluvní a zpoplatněné za jednotlivé ověření. Cena závisí na rozsahu předávaných údajů a na typu operace, takže se vyplatí vyžádat si jen minimum potřebných dat.

Časté dotazy

Jaké údaje bankovní identita předává poskytovateli služby?
Bankovní identita předává rozsah údajů, který si poskytovatel vyžádá a který uživatel odsouhlasí. Typicky jde o jméno a příjmení, datum narození, adresu trvalého bydliště, e-mail a telefon, u plné identifikace i rodné číslo a údaje o dokladu totožnosti. Rozsah se v protokolu OpenID Connect vyjadřuje pomocí scopes a uživatel ho vidí na souhlasné obrazovce banky před potvrzením. Platí zásada minimalizace: čím méně údajů služba požaduje, tím vyšší je míra dokončení a tím nižší bývá cena za transakci.
Co je potřeba k napojení bankovní identity na vlastní web?
K napojení bankovní identity je potřeba smlouva s provozovatelem schématu, registrace aplikace a nastavení povolených návratových adres. Technicky jde o standardní klienta OpenID Connect: aplikace přesměruje uživatele na autorizační server, přijme autorizační kód, vymění ho na serveru za token a načte údaje z userinfo endpointu. Nutností je bezpečné uložení client secret mimo prohlížeč, použití PKCE, ověření state parametru a HTTPS. Pro testování bývá k dispozici sandbox s fiktivními uživateli.
Funguje bankovní identita, když člověk nemá účet u velké banky?
Bankovní identita funguje pouze u bank, které se do schématu zapojily. Pokrytí českého trhu je vysoké, ale nikoli úplné, a někteří lidé banku pro přihlašování k jiným službám používat nechtějí. Provozovatel služby by proto měl vždy nabídnout alternativní cestu, například klasickou registraci s e-mailem, ověření pomocí čipového občanského průkazu nebo mobilního klíče eGovernmentu. Spoléhat se na jediný způsob identifikace znamená ztrácet část zákazníků.
Nahrazuje přihlášení bankovní identitou elektronický podpis?
Přihlášení bankovní identitou samo o sobě elektronický podpis nenahrazuje. Schéma ale nabízí i službu podpisu dokumentů, kdy uživatel po ověření totožnosti potvrdí konkrétní dokument a vznikne podpis s vazbou na ověřenou identitu. Rozdíl mezi pouhým přihlášením, plnou identifikací a podpisem se promítá do smluvních podmínek i do ceny, proto je vhodné si předem ujasnit, jakou právní sílu má výsledný úkon mít.

Zdroje

  1. The OAuth 2.0 Authorization Framework(otevře se v novém okně)RFC Editor, 2012
  2. Zákon č. 250/2017 Sb., o službách vytvářejících důvěru pro elektronické transakce(otevře se v novém okně)Zákony pro lidi, 2017
  3. Zákon č. 21/1992 Sb., o bankách(otevře se v novém okně)Zákony pro lidi, 1992

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.