Ad ČSOB a přihlášení přes QR kód, očividně jsem už dlouho nepoužil tu banku přes prohlížeč.
K tomu, jak to funguje: Detaily nám banky neřeknou, ale hodně zjednodušeně a analogicky řečeno, tyhle způsoby přihlašování (obvykle) fungují jako kdyby to bylo uložené heslo s vynuceným ověřením na povolené domény, ke kterým ty, jako uživatel, nemáš přístup. Technicky pak jde o kombinaci privátních a veřejných klíčů místo hesel. Takže se ti prostě nemůže stát, že bys to heslo zadal do falešného formuláře při phishingu, prože když heslo nemáš, nemáš co vyzradit.
Server ukáže QR kód nebo pošle požadavek přímo do potvrzovací aplikace, a ten požadavek je zašifrovaný tak, že jen tvoje aplikace se svým privátním klíčem ho dokáže rozšifrovat. Ty musíš projevit souhlasnou aktivitu (naskenovat, odkliknout), aplikace ověří, že pro tuto doménu má opravdu uložené klíče, vytvoří odpověď, zase podepsanou/zašifrovanou tím svým privátním klíčem, a pošle ji sama na předem určený server. To mimo jiné znamená, že server nikdy nezná to skutečné "heslo", to se nikam nepošle. Ty jen serveru prokážeš, že ty ho znáš.
Tyhle bankovní aplikace nejspíš mají nějaké odchylky - například součástí požadavku je informace o tom, co přesně potvrzuješ, a můžou tam teoreticky být nějaké oboustranné podpisy (ve standardním passkey se ověření serveru deleguje na ověření ssl certifikátu pro komunikaci s tím serverem).
Passkey taky brání MITM útokům, nejen phishingu, protože to ověření certifikátu probíhá už na začátku (tj. pokud nejsi opravdu na správné stránce se správným ssl certifikátem, nepůjde se přihlásit), zatímco u tohohle skenování QR kódu mě nenapadá, jak by se tomu mitm útoku branilo - aplikace neví, kde jsi ten kód naskenoval. Ale pořád je tam oproti heslu ta výhoda, že jak sezení vyprší, musí celý útok proběhnout znova, nejde zneužít odchycené heslo a ukrást SMSku.