Ten pruchod pres 2FA je dany tim, ze 2FA pouzivame vsichni uplne spatne
Spravny postup je, ze si overis kam se pripojujes a ten autentifikator ZOBRAZI pro koho te overuje.
Jenze tak daleko nedospeli ani MS, ani G, bohuzel
Soucasny stav je takovy, ze kdyz utocnik dokaze dostatecne dobre napodobit co ma uzivatel na sve obrazovce videt, muze si delat co chce. 2FA nebo bez nej. A co hur, trend je schovat i adresni radku, protoze
1) display je maly
2) enduser stejne netusi co cist. mojebanka.cz.9873452687923456.info nebo mojebanka.cz/nejakeID=9873452687923456 je pro nej totez
Prohlizec by mel JASNE ukazat kam se clovek pripojuje od toho co tam dela aby to kazdy pochopil. Cilova domena by mela byt jasne dana kam se clovek pripojuje (a ne jako v pripade MS na nekterou ze stovek domen jako uplne zamenitelne onmicrosoft, kterych jako varianty mohu vymyslet stovky)
PS: nejdesivejsi variantu 2FA co jsem videl bylo vyplnit TOTP ve vyskakovacim okne (uplne anonimnim ktere dokaze povrhnout prumerny simpanz po prvni lekci lepeni ve Javascriptu)
TOTP je jenom kód odvozený z klíče a času, takže autentizační aplikace nemůže vědět, kam se uživatel přihlašuje. Proprietární autentifikátory jsou jiná věc, ale já osobně mám radši TOTP, protože to je univerzální, nejsem vázaný na konkrétního poskytovatele. Uvidíme, jak to bude s WebAuthn, tam by měla být k dispozici informace, kam se uživatel přihlašuje.
Víte, ono to musím na tom tokenu vidět, co podepisuji
je taková vějička. Ve skutečnosti to totiž před ničím nechrání. Tak, jak nevěříte oknu na obrazovce, neměl byste věřit ani zprávě na tom tokenu - podvrhnout se dá obojí.
Takže je mnohem lepší mít solidní jistotu
, že to, co vidíte, je správné.
Pokud do adresního řádku napíšete https://mojebanka.cz
, nemělo by vás to přehodit na žádnou pochybnou doménu. (Jasně, tohle povede k odskoku na kb.cz
kvůli přihlášení, ale to je tak nějak očekávané chování, přestože to vnímám jako špatně
.)
Stejně tak, pokud už na té stránce jste (pokud nemáte napadený počítač a je to jediné okno/záložka prohlížeče), můžete s velkou jistotou předpokládat, že komunikujete opravdu se stránkou banky.
A pokud tu jistotu ohledně napadení počítače či prohlížeče nemáte - nelezte do banky, ani kdyby to potřebovalo zabezpečení jako ve Fort Knoxu!
Mimochodem: nedávno jsem se setkal se zajímavým útokem: máte hovor s podvodníkem, který vám chce poslat platbu (za prodej na bazaru...) a potřebuje jen číslo účtu; po vás pak chce, abyste se přihlásil do banky a tu platbu (kterou právě odesílá) potvrdil. Fajn: vlezete na stránky banky, bezpečným prohlížečem, v bezpečném prostředí, v bankovní aplikaci potvrdíte, že se hlásíte - ale přihlášení selže. Podvodním vám doporučí zkusit to za chvíli, třeba za 5 minut, a když tam ta platba bude, pošlete mu zboží.
V čem je háček?
Běhen hovoru měl podvodník paralelně hovor s vaší bankou (z podvrženého, vašeho
čísla, kde požádal o úplné ověření aplikací - to byl ten kód, co jste potvrdil - a následně změnil kontaktní telefon a inicializoval si novou potvrzovací aplikaci. (Z pohledu banky: volá klient ze svého čísla, požádá o identifikaci v aplikaci, následně mění číslo mobilu a instaluje novou aplikaci na nový mobil - nic divného.)
Jádro problému je v tom, že ta aplikace v mobilu šetří místem (display je malý...) a vy si neuvědomíte, že místo Přihlášení
tam stálo Ověření přístupu
.
Záleží na tom, čemu říkáte „token“. Pokud mobilní aplikaci, pak zobrazení na tokenu je samozřejmě velmi užitečná funkce. Protože podstrčit někomu do počítače prohlížeč, který bude zobrazovat https://mojebanka.cz klidně zlatě orámované, i když bude někde úplně jinde, to zas takový problém není. Ale podstrčit tomu samému člověku do mobilu i podvrženou autentizační aplikaci, to už problém je.
Ale samozřejmě první věc je, že webová stránka pro zadání autentizačních údajů se má zobrazovat v prohlížeči a přímo na doméně webu, který provádí autentizaci (tj. třeba Google). Otvírání v iframe nebo ve WebView nějaké aplikace neumožňuje zjistit, zda nejde o podvod.
Tož podvrhnout celou mobilní aplikaci pro přihlášení do banky je srovnatelně náročné, jako podvrhnout prohlížeč v počítači. A, jak psáno, pokud nemůžete věřit svému počítači (nebo mobilu), nelezte do banky.
(Pokud budu mít neomezen přístup k mobilu, přidám tam falešnou aplikaci, stejně, jako při neomezeném přístupu k počítači vyměním či modifikuji ten prohlížeč.)
Máte pravdu: při přihlašování máte být na správné stránce - a jen na ní.
Ale především je potřeba nenechat se zblbnout
- jak patrno z uvedeného případu, stačí přehlédnout rozdíl ve formulaci (přihlásit
vs. ověřit
), a neštěstí je hotovo.
Ne, podvrhnout mobilní bankovní aplikaci je daleko daleko náročnější. Protože na mobilu jsou jednotlivé aplikace od sebe oddělené, navíc mohou používat bezpečné úložiště, kam nemají jiné aplikace přístup. Na počítači stačí jediná aplikace, která umožní vzdálené spuštění kódu, a útočník může nahradit uživatelův webový prohlížeč. Na mobilu by aplikace s takovou dírou mohla poškodit jen sama sebe, ale jiné aplikace nijak neovlivní. Na mobilu by musela být chyba na úrovni operačního systému, aby útočník mohl udělat to samé, jako může na počítači běžná uživatelská aplikace.
Samotná falešná aplikace na mobilu vám bude k ničemu, protože nebude mít klíč, aby se mohla dostat do banky.
Pokud může nějaký kód nahradit (na počítači) uživatelův prohlížeč, je pozdě řešit nějaké zabezpečení. Tohle totiž (bez administrátorského přístupu) prostě nemá být možné. A rozhodně to není možné bez spolupráce toho uživatele.
Jenže: na mobilu je obvyklé nebýt administrátor
, ale pokud se vám podaří přesvědčit uživatele, aby aplikaci upgradoval na malware
...
Jestliže oné falešné aplikaci uživatel dovolí ovládat jiné aplikace (na pozadí), pak - z pohledu uživatele - bude vše fungovat jako obvykle
. Principiálně je to stejné, jako pozměnit webové stránky a na pozadí operovat se skutečným bankovnictvím.
Tedy: na dobře zabezpečeném počítači a s příčetným uživatelem je podvržení aplikace obdobně těžké, jako na zabezpečeném mobilu, na nezabezpečeném mobilu v rukách hazardéra je to obdobně snadné, jako na nezabezpečeném počítači.
Jen pro ty počítače stačilo vyrůst více útočníků.
Je nemoudré podceňovat bezpečnot na počítači, stejně, jako přeceňovat bezpečnost na mobilních zařízeních.
Slabým článkem beztak bývá uživatel...
Pokud může nějaký kód nahradit (na počítači) uživatelův prohlížeč, je pozdě řešit nějaké zabezpečení. Tohle totiž (bez administrátorského přístupu) prostě nemá být možné.
To je hezké, že to nemá být možné, ale na desktopových systémech to možné je.
A rozhodně to není možné bez spolupráce toho uživatele.
Uživatel si spustí aplikaci, ve které je chyba. To nepovažuju za spolupráci uživatele. To už byste taky mohl označit za viníka uživatele, protože zapnul počítač.
Jenže: na mobilu je obvyklé nebýt administrátor, ale pokud se vám podaří přesvědčit uživatele, aby aplikaci upgradoval na malware...
Jenže nic takového na mobilu udělat nejde. Na mobilu můžete přesvědčit uživatele, aby nainstaloval jinou aplikaci. Která ovšem pořád nebude mít přístup k datům té původní správné aplikace.
Jestliže oné falešné aplikaci uživatel dovolí ovládat jiné aplikace (na pozadí),
Který mobilní OS něco takového povoluje?
Tedy: na dobře zabezpečeném počítači a s příčetným uživatelem je podvržení aplikace obdobně těžké, jako na zabezpečeném mobilu, na nezabezpečeném mobilu v rukách hazardéra je to obdobně snadné, jako na nezabezpečeném počítači.
Nikoli. Jak jsem psal, na počítači k tomu stačí chyba v jediné aplikaci, kterou uživatel používá. Protože všechny aplikace na (běžném) desktopu sdílí stejný bezpečnostní prostor. Naproti tomu na (běžném) mobilu s iOS nebo Androidem má každá aplikace svůj bezpečnostní prostor oddělený od ostatních, takže jedna děravá aplikace nemůže ovlivnit ostatní aplikace, pokud není chyba navíc i v OS. Nebo-li uživatelé mají normálně bezpečný mobil (rozhodně podstatně bezpečnější, než počítač) a nebezpečný počítač.
Je nemoudré podceňovat bezpečnot na počítači, stejně, jako přeceňovat bezpečnost na mobilních zařízeních.
Stejně tak je nemoudré přeceňovat bezpečnost na počítači a podceňovat bezpečnost na mobilu. Například tvrzením, že bezpečnost obou je stejná, když je tam ve skutečnosti rozdíl celé jedné úrovně zabezpečení.
"Jestliže oné falešné aplikaci uživatel dovolí ovládat jiné aplikace (na pozadí),"
Který mobilní OS něco takového povoluje?
Ten, který dovolí vzdálené ovládání. (Jen naznačuji, návod dávat nebudu...)
Víte, například mém notebooku nejen nic (jako uživatel) nenainstaluji, ale dokonce ani nespustím, pokud to tam nedal administrátor. Ono není pravda, že by počítače byly výrazně hůře zabezpečitelné - jen bývají často málo zabezpečené.
A to je obrovský rozdíl!
Který mobilní OS dovoluje vzdálené ovládání běžné aplikaci v mobilu?
Vy máte (nebo si to myslíte) speciálně zabezpečený OS. Ale na běžných WIndows (což je běžný desktopový OS) si uživatel klidně spustí aplikaci, kterou nenainstaloval administrátor. To samé na MacOS. A pokud jde o váš notebook, tipnul bych si, že nějaké skriptovací enginy tam nainstalované máte, takže si vlastně také můžete pouštět software, který vám tam nenainstaloval administrátor – a ten software pravděpodobě ůže pod vaším účtem provádět naprosto cokoli. Nebo že byste neměl nainstalovaný žádný shell? A možná tam bude i Python a kdoví co ještě dalšího.
Já jsem nepsal o zabezpečitelnosti, protože to je naprosto nezajímavý pojem. Celou dobu píšu o bezpečnosti/zabezpečenosti.
Uznávám, že můj notebook je poněkud nadstandardně zabezpečený - a přestože tam mám shell, nelze v něm spustit ani obyčejnou dávku. (To se musí jeden dost snažit, aby tohle pravidlo obešel.) Soubory mimo adresář pod kuratelou administrátora prostě nejsou spustitelné.
Nicméně i na běžném počítači, dodržujete-li pravidlo instaluje pouze správce a z uživatelského prostoru se nic nespouští
máte celkem solidní jistotu, že aplikace nebyla podvržená.
Pochopitelně: pokud si tam uživatel natahá kdejaký software, dostává se do rizika - ale to je výhradně jeho rizikové chování
; asi jako chodit bez ochrany do bordelu
.
Pardon, že vstupuju do hovoru, ale nebyl náhodou hlavní argument pro mobile banking ten, že uživatel už stejně mobil má, tedy proč ho nepoužít i na bankovnictví?
Já jen, že ta debata, co se vede tady vede k tomu, že aby se to (ať už PC nebo patlafoun) dalo relativně bezpečně použít na bankovnictví, tak ho ten uživatel nesmí používat na běžné věci, což mi připadá poněkud ne zcela dávající smysl jako celek...
Ono by především bylo dobré nepoužívat pro ověření
(přístupu, transakce) stejné zařízení, jako to, na kterém to zadáváte. Podle toho by ale ty mobilní bankovnictví nemohly fungovat - byly by potřeba dva telefony.
Proto ty bankovní programy spoléhají na to, že zabezpečení na mobilech je lepší, než na PC (což je do jisté míry pravda, protože uživatelé nemají zatím tak hloupé návyky u mobilů, jako u PC).
Ale hlavní argument pro mobilové bankovnictví je ten, že jde o samostatnou aplikaci, zatímco v PC je obvyklé používat prohlížeč - a zabezpečit aplikaci je mnohem jednodušší, než uhlídat browser.
V obou případech nic nebrání tomu, používat zřízení i na běžné věci - jen to nesmí být právě rizikové chování.
Žel, na PC si mnozí zvykli chovat se poněkud méně zodpovědně
, protože je to pohodlné.
Na druhou stranu: někteří mobilisté se chovají opravdu velmi nezodpovědně, a mají tendenci uvést zařízení do stejně hloupého stavu, jako PC doma: přihlašovat se jako administrátor a vypínat antivir, protože pak vše funguje a nic nezdržuje
. (Alias: mám rootnutý telefon, aby mi tam všechny ty appky z neoficiálního úložiště fungovaly.
)
Tak nevím, ale naprosá většina malware na mobily prochází přes google play ;-) třeba naprosto random první link z vyhledávače https://www.tomsguide.com/news/hackers-are-sneaking-malware-on-to-the-google-play-store-how-to-stay-safe a ostatně i na rootu je podobných zpráviček plno.
Takže to s tím antivirem a nerootem se nezlobte, ale je to asi tak na úrovni "modlete se, plaťte desátek, a Bůh vás ušetří moru".
BTW když jsme u toho, pořád ještě mám ten dojem, že i PC dokážou soustit něco, co má první dva bajty "MZ" ;-) a že i tohle tak nějak jde více méně samo sebe zabezpečit (jistě že ne úplně neprůstřelně, ale třeba na úrovni Checkpoint capsule, nebo některých her)
Proto ty bankovní programy spoléhají na to, že zabezpečení na mobilech je lepší, než na PC (což je do jisté míry pravda, protože uživatelé nemají zatím tak hloupé návyky u mobilů, jako u PC).
Nikoli, je to především proto, že na desktopu běží všechny programy uživatele v jednom kontextu, takže se mohou navzájem ovlivňovat; zatímco na mobilu běží každá aplikace ve svém kontextu a pokud není v OS chyba, aplikace se navzájem nemohou ovlivnit.
To, co uvádíte, má také vliv, ale není to ani tak hloupý návyk uživatelů, jako hlavně historicky dané hloupé chování Windows, u kterých se předpokládá distribuce softwaru tak, že náhodně něco stáhnete z internetu. Microsoft sice už má store i pro Windows, ale jeho využití není zrovna masové. Linux i MacOS mají svá oficiální distribuční místa, takže tam to není tak časté – i když mám pocit, že tendence je spíš opačná, že se na desktopech čím dál víc softwaru distribuuje mimo oficiální kanály.
používat dvě zařízení pro přihlášení bezpečnost běžně nezvýší. Máš v tom implicitní předpoklad, že ta zařízení jsou různá, nemají shodné bezpečnostní chyby, má je uživatel pod kontrolou a zároveň nejsou na stejné síti (kvůli třeba MitM) atd., což ale v běžné praxi nenaplníš.
Oni nespoléhají, mobilní aplikace jsou objektivně bezpečnější než desktopové. Už jen taková maličkost jak obtížné je na mobilní bankovní koukat nějakým debugerem (gdb, strace atd.), zatímco na desktopu to jde levou zadní. Pro některé druhy penetračních testů musíme dnes získat od banky extra verzi aplikace.
Co znamená v praxi "odpovědné chování" na počítači? Rád bych to totiž věděl, doporučení typu, že nemám instalovat neznáme aplikace (každá aplikace je pro mě neznámá než jí nainstaluji a vyzkouším), nechodit ne nebezpečné stránky (podle čeho jí poznám dříve než jí navštívím) apod.
ANo, předpokládal jsem různá
zařízení a různé cesty.
V praxi to je třeba PC + mobil, kdy jsou opravdu na různých sítích.... Ale třeba tablet + mobil by taky vyhovovalo. Nebo mobil + token, atd.
Tím odpovědným chocáním
jsem myslel přesně to, že na počítači/mobilu (kde lezete do banky) žádné aplikace nezkoušíte, neinstalujete. Minimálně je dobré na to mít oddělený uživatelský účet, na který se přihlásíte - a kde pro změnu není nic, než aplikace pro přístup do bankovnictví.
Jasně, tohle dodržujeme jen my, uživatelé medikamentů na léčbu paranoidní psychózy... ;o)
v podstatě takovéhle podmínky máme problém splnit i v kritických systémech pro adminy, naprosto si nedokážu představit, že tohle bude používat běžný člověk. Vynutit nelze snadno tu různorodost a ve výsledku by to mohlo být ještě horší.
Ač ti to připadá divné, dnes spousta lidí má prostě pouze jedno zařízení, učíme programovat děti na základní/střední škole a tam je běžné, že mají pouze telefon, nemají notebook, nemají desktop, nemají tablet. Časté jsou sdílené počítače u rodiny doma se sdíleným účtem, žádný vlastní účet (Windows se k těm více účtům chová také dost humpolácky, že).
Držet speciální druhé zařízení jen kvůli bance vede k tomu, že prostě nebude aktualizované. Je to neopodstatněný náklad navíc.
Logicky to zní dobře, ale systémy musí být bezpečné nejen na papíře, ale i v běžném provozu a musíš se vypořádat s liknavostí, nevzdělaností, neochotou a lenností běžných uživatelů.
Máte pravdu, že běžný Franta uživatel
to nejspíš dodržovat nebude - ostatně má nejspíš pololegální Windows 10 Home, jediný účet je tam administrátorem, a běží na tom vše, od her pro děti, po čuňárny pro tatínka (nebo hry pro tatínka...?).
Na druhou stranu opravdu není potřeba to přehánět, stačí mít jen oddělený účet/profil pro bankovnictví, a neinstalovat každej super program, o kterým se člověk doslechne.
Ostatně: to druhé zařízení může být klidně zavřené ve virtuálce, pravidelně aktualisované. Je to jedna z nejlepších možností, jak na PC oddělit aplikační prostředí. ;o)
No a motáš se v tom, nabízíš řešení, které je opět pro úzkou skupinu lidí a ještě vyžaduješ netriviální znalosti.
Více profilů na windows je velký špatný na použitelnost (naproti tomu na mocu prostě odemknu otiskem a odemkne se mi můj profil). Nedokážeš to ale jako banka vynutit, tj. nebude to nikdo používat.
virtualizace? Drtivá většina domácích počítačů podporuje pouze SW virtualizaci (guest v ring 1 - 2), stejně tak to omezuje licence windows (u hyper-v). Vyřešil jsi s tím pouze windows, ale lidé používají bankovnictví dnes celodenně, nesedí celý dny u počítače, často ty počítače ani doma nemají.
Lidé chtějí otevřít telefon a na jedno kliknutí vidět účet, zaplatit, potvrdit kartu, nechtějí (a nebudou) nikde laborovat, spouštět a aktualizovat nějakou virtuálku, vytahovat z kapsy HW token.
Mobilní telefony dnes poskytují aplikacím bezpečné uložiště, aplikace si umí říct jaké HW/SW zabezpečí zařízení musí splňovat, aby se mohla nainstalovat/spustit. Aplikace umí omezit čtení/snímkování své obrazovky, je izolovaná od ostatních aplikací dost silně. Aplikace si umí vytvořit bezpečný komunikační kanál (vpn/tunel), umí si zvalidovat certifikáty a používat asymetrické šifry. Umí se vázat na konkrétní zařízení a zamezit přenositelnosti. Umí si šifrovat data v paměti. Má k dispozici biometrické ověření (obrana proti okoukání pinu/hesla). Co z toho lze dnes udělat na desktopu a s jakou námahou?
Jen na okraj: já rozhodně nemám nic proti tomu, aby lidé používali mobilní bankovnictví, případně jiné aplikace... Zabezpečení na těch mobilech je opravdu na vysoké úrovni, a když jim to vyhovuje - proč ne?!
Naopak, používat to internetové (PC) je v podmínkách mnohých domácností poměrně rizikové. (Ale moje prababička mívala v kredenci hrníček, kde měla naspořeno na pohřeb; moje babička vždy vyzvedla důchod a odnesla domů, do šuplíku... Mít peníze tak, abych na ně viděl a mohl si na ně sáhnout patří u některých lidí k povaze. Věří spíš štrozoku, než kampeličce.)
Jen mi vadí, když někdo shazuje zabezpečení těch aplikací na PC, protože... <důvody zde v diskusi>, a neuvědomuje si, že hlavním rizikem je uživatel. Pro běžnou potřebu je opravdu víc než dostatečné použití na běžném počítači - pokud je tento stabilní, bez virů, bez testování aplikací.
A pak je to zabezpečení mnohem, mnohem horší, než na tom PC...
Naopak, většina těch přezabezpečených systémů počítá spíše s uživatelni nikoliv laickými, ale <em lajdáckými.
A případné oddělení uživatelským profilem je přesně ten krok, ke kterému se obvykle uchýlí ten, kdo to vlastně tam moc nepotřebuje, protože už sám fakt, že to udělá, svědčí o tom, že si dává pozor.
Pokud jde o bankovní aplikace, tak (já osobně!) dávám přednost PC především z toho důvodu, že na malém displayi mobilu toho mnoho nevidím a napáchám spoustu chyb, což mi ty aplikace dost usnadňují už tím, jak jsou navržené - aby vše bylo co nejjednodušší. Pokud by ta aplikace umožnila jen platby do určitého limitu (bez možnosti jej v ní změnit), potvrdit přihlášení (na jiném zařízení) a potvrdit platbu (3D-secure....), pak bych ji možná používal.
Pro mne je ale rizikem možnost navyšovat limity, sjednat si úvěr či kontokorent, uzavřít smlouvu, provést převod vysoké částky, apod., to vše v zařízení, na které pořádně nevidím, které neumím ovládat, a na které se nemohu spolehnout.
Mnohem větším nebezpečím, než že mi někdo vysaje účet, je pro mne to, že potřebnou věc nebudu schopen udělat (nezaplatím...), protože mne mobil neověří, nepustí mne k vlastním penězům. Důsledkem je, že musím to zabezpečení snížit na použitelnou úroveň, a ta je - nedostatečná.
A pak je to zabezpečení mnohem, mnohem horší, než na tom PC...
Jenom se snažíte vykroutit z nesmyslů, které jste napsal. To, že jsou mobilní aplikace tak bezpečné, že největším rizikem je dnes uživatel, už tady bylo řečeno. Nikdo to nezpochybňuje. Pouze jsme se vám snažili vysvětlit, proč jsou mobilní OS výrazně bezpečnější, než ty desktopové.
Nikdo tu netvrdil, že musíte mobilní bankovnictví používat pro zadávání plateb. Platbu klidně můžete zadat v prohlížeči na desktopu, ale potvrdíte ji na něčem bezpečnějším – na mobilu. Přečíst na displeji částku, číslo účtu a potvrdit to otiskem prstu, to snad není něco, co byste nezvládl.
Líbí se mi ten předpoklad, že tohle (přečíst na displeji částku, číslo účtu a potvrdit to otiskem prstu
) je přeci vždy možné a jednoduché. Žel z nějakého důvodu většina mobilů neumí číst mé otisky prstů a rozpoznání obličeje mne na levnějších mobilech nerozpoznává. I prosté ťukání PINu nebo kreslení kódu na dotykové obrazovce je dobrodružství a nejistým výsledkem.
Takže: mám k mobilu připojenou BT klávesnici (na napsání PINu) a používám zařízení, která mi rozumějí: PC, tlačítkový mobil a platební kartu. ;o)
Dotykové technologie přenechávám těm, komu vyhovují.
Jenže tahle diskuse se tu nevede kvůli mému drobnému handicapu, se kterým si umím poradit.
Pouze jsem poukazoval na to, že se zabezpečením v PC to není tak zlé, jak je často naznačováno, a že zabezpečení mobilních aplikací (které je mnohdy lepší), nemusí být úplně spolehlivé.
A především: že není potřeba hledat neprůstřelné řešení, ale prostě takové, které je pro daný úkol dostatečné.
RRŠ, 0:50: Ale já jsem nepsal, že je to možné a jednoduché vždy. Ale pro drtivou většinu lidí je to pořád řádově jednodušší, než zadávat údaje do externího autentifikátoru („kalkulačky“, jakou měla třeba e-Banka) nebo jít osobně na pobočku.
Nikdo netvrdil, že zabezpečení mobilních aplikací je stoprocentní. Žádné zabezpečení není stoprocentní. Ale zabezpečení aplikací na běžných mobilních OS (Android, iOS) je minimálně o úroveň lepší, než zabezpečení aplikací na desktopových OS (Windows, MacOS, Linux). Což neustále zpochybňujete a ignorujete, jaký je mezi těmi OS rozdíl.
Neprůstřelná řešení tu hledáte akorát vy. Desktopové OS nejsou dostatečné řešení pro zabezpečení bankovnictví, protože tam stačí jediná špatná aplikace, a je po bezpečnosti. Mobilní aplikace je dostatečné řešení, protože tam by musela být fatální chyba přímo v bankovní aplikaci nebo vážná chyba v OS (která se občas vyskytne, ale ne tak často, aby to stačilo útočníkům). Proto se pro zabezpečení přístupu k bance mobilní aplikace používají. Tak jednoduché to je.
Však já to vím taky: protože je tam přidaný další faktor: podpis zařízení (TPM...) - a tedy to není přihlášení jen jménem a heslem. ;o)
Úplně stejně by vyhovělo, pokud by bankovnictví na PC (v prohlížeči) umělo ten počítač jednoznačně identifikovat - a přesně proto lze použít přihlášení jméno+heslo+token/čipovka.
(Mimochodem: i ta SMS by vyhovovala, pokud by nebylo tak jednoduché naklonovat SIM kartu - chybí tam ta jednoznačnost.)
Však já to vím taky: protože je tam přidaný další faktor: podpis zařízení (TPM...) - a tedy to není přihlášení jen jménem a heslem. ;o)
No konečně.
Úplně stejně by vyhovělo, pokud by bankovnictví na PC (v prohlížeči) umělo ten počítač jednoznačně identifikovat - a přesně proto lze použít přihlášení jméno+heslo+token/čipovka.
Nikoli, nejde o identifikaci, ale o autentizaci. Kdyby šlo jen o identifikaci, útočník by mohl ten identifikátor získat a komunikaci podvrhnout.
Když se na desktopu používá token či čipová karta, bezpečnost zajišťuje právě ten token či čipová karta a desktop tam je jen v roli nezabezpečeného terminálu, přes který se lépe zadávají údaje, než přes token či čipovou kartu (které zpravidla možnost vstupu a výstupu pro uživatele nemají). Nevýhodou je, že nevíte, co doopravdy podepisujete – můžete si myslet, že podepisujete svůj příkaz k úhradě, nebo jen přihlášení, a přitom podepisujete příkaz k úhradě útočníka. Proto se od toho upouští.
Když elektronické bankovnictví začínalo, měl eBanka token ve formě „kalkulačky“, kam se naťukalo číslo účtu, specifický symbol, částka, a zobrazilo to ověřovací kód, který se přepsal do bankovnictví. Bylo to bezpečné, protože jste věděl, co podepisujete, ale nepohodlné.
Mimochodem: i ta SMS by vyhovovala, pokud by nebylo tak jednoduché naklonovat SIM kartu - chybí tam ta jednoznačnost.
Nejde jen o klonování, ale o to, že SMS nejsou šifrované a transportní kanál může být šifrovaný velmi slabě. Opět ta eBanka pak zavedla šifrované SMS, které se dešifrovaly klíčem v SIM toolkitu (na SIM kartě). To bylo bezpečné, ale chytré telefony si se SIM toolkitem moc nerozuměly, bylo to čím dál méně pohodlné a pak už to nechtěli podporovat ani operátoři.
Jasně, autentizaci...
- napsal jsem to trochu jinak, ale mysle jsem to stejně. (Ono se tam stejné párkrát píše o identifikaci registrovaného zařízení
.)
Jinak ty bankovní aplikace taky ne zcela vždy identifikují přímo hardware (mobilní telefon), ale spokojí se se softwareovým řešením - kvůli kompatibilitě, protože jinak by byli uživatelé nuceni měnit telefon v podstatě co dva roky (možná i častěji), v podstatě asi tak s každou třetí major versí OS.
A naopak ta snaha po lepším a tvrdším zabezpečení zase spoléhá na to, že ty telefony jsou jednouživatelské.
Jste poněkud optimista
.
Některé fungují (fungovaly?) i na zařízeních bez TPM, spokojí se s tím, že jim to OS prohlásí za bezpečné úložiště.
Nicméně právě ten uložený klíč v principu identifikuje konkrétní stroj.
(A s tabletem, ochotným sdílet přístup napříč přihlášeními jsem se taky potkal. Ona je to spíš otázka implementace a důvěry.)
Neposkytoval, proto si to aplikace řešily po svém. ;o)
Ostatně, pokud vím, tak ještě v Androidu 7 to tak úplně obvykle používáno nebylo. (Ale to jen odhaduji, tahle zařízená se mi dostala do ruky až později.) Každopádně jsem provozoval zařízení s Android 9 bez TPM - a bankovní ověřovací aplikace na tom funguje.
S tím klíčem máte pochopitelně pravdu. Ale právě to, že klíč je uložen v bezpečném úložišti má garantovat, že máte to konkrétní zařízení, kterým můžete k účtu přistupovat. (Alias faktor něco mít
.)
A aby to nebylo tak jednoduché, tak si některé banky usnadňují život tím, že nepřipustí mít dvě různá zařízení (pochopitelně s různými klíč, nikoliv jedním rozkopírovaným...!).
Pardon, že vstupuju do hovoru, ale nebyl náhodou hlavní argument pro mobile banking ten, že uživatel už stejně mobil má, tedy proč ho nepoužít i na bankovnictví?
Ne, hlavní argument byl, že běžné desktopové OS nejsou dostatečně bezpečné, zatímco běžné OS chytrých mobilů poskytují dostatečnou úroveň bezpečnosti.
tak ho ten uživatel nesmí používat na běžné věci
Ne, to pro mobily právě neplatí. Mobily mají dostatečně oddělené jednotlivé aplikace, takže i pokud si uživatel do mobilu nainstaluje nějakou havěť, pořád je bankovnictví chráněno, pokud není chyba i v OS.
Neignoruji, ale takovou chybu můžete mít i v mobilní aplikaci. A nějaké oddělení vám nemusí pomoct, pokud tou chybnou aplikací je mobilní banka
.
Protože banky v těch svých appkách používají stejné knihovny, jako jiné aplikace.
Takže hlavní je spíše to, že to neběží v prohlížeči. (Alespoň tak.)
A pár pěkných zranitelností přímo na iOS či Android už taky bylo... Proti tomu totiž není imunní žádný systém.
Naopak: jak se bankovnictví přesouvá čím dál masivněji na mobily, objevují se takové typy útoku, které jdou provést právě jen na mobilním zařízení (protože cílí na aplikaci, nikoliv na web).
Jeden příklad si dovolím uvést: program, který zjistil, jaká mobilně-bankovní aplikace je instalovaná a v pravidelných intervalech opakovaně vyhazoval upozornění (jako z té aplikace), že je potřeba aplikaci upgradeovat na novou, bezpečnější; a slíbil, že odinstalaci a novou instalaci sám zařídí - jen kliknout. Pokud na to uživatel přistoupil...
Ano, tohle už nefunguje. Ale...
8. 2. 2024, 11:37 editováno autorem komentáře
Neignoruji, ale takovou chybu můžete mít i v mobilní aplikaci.
Nemůžete. Stále nechápete ten rozdíl. Když budete mít na desktopu chybu v Malování, které umožní spuštění libovolného kódu z útočníkem podvrženého JPEGu, může ten útočníkův kód běžící v Malování vykrást cookies z prohlížeče, vykrást hesla z odemčeného správce hesel, posbírat uživatelovy dokumenty z disku a všechno to odeslat útočníkovi. A nakonec ty dokumenty smaže.
Když bude taková chyba v mobilní aplikaci, může útočník smazat data té aplikace. Pokud bude v aplikaci, která má přístup ke sdíleným souborům, může ukrást obrázky a dokumenty uživatele, které jsou nahrané v tom úložišti sdílených souborů. Ale to je všechno. Nedostane se k cookies v prohlížeči. Nedostane se k heslům ve správci hesel. Nedostane se ke klíči v mobilním bankovnictví. Nedostane se k souborům v GDrive.
A nějaké oddělení vám nemusí pomoct, pokud tou chybnou aplikací je mobilní banka.
To oddělení samozřejmě pomáhá. Protože je úplně jiná pravděpodobnost, že bude chyba vzdáleného spuštění kódu v bankovní aplikaci (která by měla komunikovat jen s bankou a s ničím jiným), a o několik řádů větší je pravděpodobnost, že chyba bude v libovolné z desítek aplikací, které máte nainstalované na desktopu.
Takže hlavní je spíše to, že to neběží v prohlížeči. (Alespoň tak.)
Ne, není. Srovnatelně bezpečnou aplikaci je možné udělat i v prohlížeči. Prohlížeč je na tom lépe v tom smyslu, že tam už je pečlivě prověřovaný sandbox. Nevýhodou prohlížeče je to, že musí umožnit i spoustu věcí, které internetové bankovnictví nepotřebuje – na druhou stranu, v mobilním bankovnictví bude chtít určitě marketingový tým zobrazovat různá marketingová sdělení, takže dost možná to mobilní bankovnictví stejně jádro prohlížeče používá. Další nevýhodou (tou jedinou podstatnou) prohlížeče je to, že zatím neumožňuje přístup k bezpečnému úložišti klíčů. Možná už by to šlo nějak obejít pomocí WebAuthn, a je pravděpodobné, že do budoucna tam bude i tato možnost.
A pár pěkných zranitelností přímo na iOS či Android už taky bylo... Proti tomu totiž není imunní žádný systém.
Jistě, já jsem také nepsal nic o tom, že by OS byl absolutně bezpečný. Ale pořád je rozdíl v tom, že na mobilu potřebujete škodlivou aplikaci (ať už záměrně nebo chybou) a zároveň chybu v operačním systému, zatímco na desktopu vám stačí jenom ta chyba aplikace. Protože ta chyba v OS, o které píšete, že se na Androidu nebo iOS občas vyskytne, ta je v desktopových OS přítomná trvale.
Pokud na to uživatel přistoupil...
Původně jsem vám chtěl vysvětlit, co se v takovém případě stalo. Ale neudělám to. Zkuste vy popsat, co se podle vás stalo. Aspoň konečně zjistíme, o které části zabezpečení mobilního bankovnictví nevíte.
Ad: Zkuste vy popsat, co se podle vás stalo.
Stalo se přesně to, co by člověk předpokládal: místo pravé bankovní aplikace se instalovala aplikace falešná, která fungovala jako proxy k internetovému bankovnictví na jakémsi serveru. Nebyla dokonalá, ale fakticky nemusela umět víc, než zprostředkovat přihlášení a vypsat chybu - o zbytek se postaral útočník kdesi v dálce.
(Poznámka: tohle není nijak čerstvý případ, tenkrát ještě bylo běžné přihlašování pomocí SMS zpráv a podobně...)
Ale já to neuváděl jako příklad špatného zabezpečení bankovních aplikací, nýbrž jako příklad útoku přímo na mobilní bankovní aplikaci (nikoliv webový prohlíčeč...).
Ale já to neuváděl jako příklad špatného zabezpečení bankovních aplikací, nýbrž jako příklad útoku přímo na mobilní bankovní aplikaci (nikoliv webový prohlíčeč...).
Přitom je to příklad toho, že nevíte, jak mobilní bankovnictví funguje.
Stalo se přesně to, co by člověk předpokládal: místo pravé bankovní aplikace se instalovala aplikace falešná
Člověk, který tuší, jak to funguje, by tohle nepředpokládal. Protože takový scénář je k ničemu.
Píšete „místo“, takže to chápu tak, že útočník odinstaloval pravou aplikaci pro mobilní bankovnictví a nainstaloval falešnou. Takže celé to pak probíhalo tak, že uživatel třeba na desktopu zadal údaje o platbě, banka poslal do mobilu notifikaci, tu ovšem nemohla pravá aplikace zpracovat, protože byla odinstalovaná, a uživatel tedy platbu nemohl potvrdit. A musel do banky s mobilem, že mu přestalo mobilní bankovnictví fungovat – schopnější úředník by přišel na to, že jde o falešnou aplikaci, a banka by to začala řešit.
Druhá varianta je, že by se uživatel chtěl přihlásit rovnou z mobilního bankovnictví, vlezl by do falešné aplikace – a ta by nebyla schopná se připojit do skutečné banky, chyběl by jí bezpečnostní klíč uživatele. Takže by nedokázala uživateli zobrazit ani jeho jméno a číslo účtu, natož stav účtu a historii transakcí.
V obou případech by si útočník drbal hlavu, že uživateli zrušil přístup do banky, takže teď z něj fakt nic nevymámí. Asi jako kdyby zloděj aut svou akci zahájil tím, že zkratuje baterku auta, aby s ním fakt nikdo neodjel.
Takže to byl nesmyslný scénář útoku. Nějaký útok, při kterém útočník bude schopen aspoň zjistit stav vašeho účtu, byste tam neměl?
spíš popisoval scénář útoku, který se objevoval v počátku mobilního bankovnictví, kdy to byl opravdu jen obal na internetovou stránkou a k přihlášení stačilo jméno a heslo. 2FA se násilně nasazuje až poslední dobou, tím se podobným útokům efektivně brání.
Použití falešné aplikace je právě i jeden z důvodů proč je u některých bank aktivace nového zařízení takový problém a nezřídkakdy tě ženou na pobočku. Je tady pořád teoretická možnost, že útočník udělá identickou aplikaci pro mobilní bankovnictví a data potečou přes něj, dokonce ani nemusí uživatel nějakou dobu nic poznat. Aneb mobilní bankovnictví trpí na TOFU.
Banky dnes aktivně kontrolují app story a hledají aplikace, které se za ně vydávají (pro některé jsem dokonce dodával nástroje na tyhle kontroly).
2FA je dnes pro banky v EU v podstatě povinné. Bavíme se právě o téhle situaci, kdy je mobilní bankovnictví použité jako bezpečnostní prvek. Pokud někdo nemá skutečné mobilní bankovnictví, ale má jen webové bankovnictví na mobilu a potvrzuje to nešifrovanými SMS zprávami, které si nechá posílat na ten samý telefon, je to jeho problém.
Mobilní bankovnictví trpí na TOFU, ale zrovna u bank je to nejmenší problém, protože vás stejně musí osobně vidět a ověřit zaměstnanec banky, který vám předá leták na křídovém papíře, kde je QR kód na oba story, screenshot storu, jméno vydavatele aplikace. To by uživatel musel být fakt dost umíněný, aby si nainstaloval něco jiného.
Každopádně u běžných domácích účtů je daleko lepší, než útok falešnou aplikací, útok na uživatele, kterého přesvědčíte, aby poslal peníze na účet, jaký chcete, nebo ho přesvědčíte, aby vás nechal ovládat počítač (a účet si útočník dosadí sám).
sms mají dočasnou vyjímku, dlouho nebudou považovány za bezpečné. Vidět tě dnes nemusí, pokud jsi schopný zajistit všechny nutné kroky vzdáleně.
Ano, donucení uživatele je další věc, diskutuje se o odpovědnosti bank i pro tyhle případy, takže se možná dočkáme telefonního hovoru či pozdržení velkých transakcí.
Opět výhoda mobilních aplikací, nelze je snadno ovládat vzdáleně a aplikace tomu může aktivně zabránit, což i dělají.
Vaší ctěné pozornosti unikla poznámka, že to bylo v dobách, kdy ještě tohle potvrzování v bankovní aplikaci nefrčelo a o nějaké bankovní identitě ještě nikdo ani neuvažoval. ;o)
Takže zbytečně přemýšlíte, že by to dnes nešlo
...
Nikdy neříkej, že něco nejde - protože se vždycky najde blbec, který neví, že to nejde, a udělá to.
mno a končíš u toho, že v podstatě nelze udělat webovou aplikaci, aby byla bezpečná, autor nad ní nemá dostatečnou kontrolu, stejně jako uživatel. Současný stav nabízí jako bezpečnou variantu pouze mobilní aplikace (desktopové se nedají snadno distribuovat k uživatelům), kde si autor může bezpečně ověřit, že opravdu komunikuje se správným backendem, ověřit jeho certifikáty, ověřit jeho integritu a zároveň si může ověřit, na jakém zařízení běží (aktualizace, HW ochrana, šifrování atd.), stejně tak uživatel má možnost si ověřit, kdo je autorem aplikace, jestli se jedná o společnost (a její účet).
PS: podívej se jak skončily paypal platby, iframe bez možnosti jakkoliv ověřit, že na druhé straně je opravdu paypal
I desktopové aplikace lze bezpečně distribuovat k uživatelům (i ve Windows). Jen se to moc nedělá.
Stejně tak ale lze na mobil nainstalovat aplikaci bokem (Jen se to moc nedělá.)
Uživatel může ověřit ledacos, dokonce i na tom počítači. Ale většinou se spokojí s tím, že to vypadá a chová se tak, jak je zvyklý.
Kolegové před časem využili nepozornosti jednoho z nás, a jako zamykací obrazovku mu nastavili screenshot bankovní aplikace, potvrzující převod větší částky peněz. Ten nešťastník v panice nejen nezkontroloval, že nejde o reálnou aplikaci, ani nepoznal, že jde o pouhý obrázek, nekontroloval žádné viditelné chyby - uvedl telefon do továrního nastavení a volal do banky, aby zablokoval přístupy.
A to nešlo o žádného lajdáckého uživatele
!
ano, v nejrošířenějším OS narážíš třeba na to, že Microsoft Store mění ob dva roky, jaké aplikace na jakých technologiích můžeš u nich mít. Pak skončíš na tom, že ti OS není u spuštěné aplikace schopný garantovat nic, dokonce ani nelze omezit screenreadery, překrytí okna (ne snadno), odchytávání kláves atd.
Ledacos můžeš, ale ledacost také nemůže, je třeba velice těžké ověřit, jestli nějaký plugin do stránky nezasáhl a něco tam nepřidal (prohlížeče neposkytují dostatečné logy a api na to, abych mohl detekoval, kdo inicializoval jakou změnu na stránce).
Je to divné, ale dnes mobilní telefony poskytují asi nejbezpečnější široce rozšířenou platformu pro aplikace.