Pokud jsou to obyčejné SMS přes GSM, což dělá většina bank, tak se tam většinou používá šifra A5/1 (některé podporované telefony umí A5/3, ale pořád je to zranitelné na MITM útok), která jde snadno zlomit…
A hlavně to podstatné, k čemu je zloději mobilní telefon, ke kterému nezná heslo?
A hlavne to podstatne: Kolko ludi ma zamknuty telefon chraneny heslom? Ja vecsinou u kolegov vidim iba "tap to unlock", "move to unlock", popripade nakreslenie vzoru/zadanie PINu, ktory sa da odpozorovat...
To je zase úroveň debaty, nadávat ostatním do debilů.
Jeden čas jsem měl nakonfigurovanou VPN do práce a v mém Samsungu to automaticky vynutilo zadání PINu při každém odemknutí obrazovky. Pominu-li, že je to otravné a někdy i nebezpečné (třeba při řízení auta jsem s tím bojoval), tak vyťukávat heslo na telefonu třeba 30x za den je jasná poukázka na to, aby ho někdo okoukal.
Dobře to má vyřešené třeba mobilní appka AWS Console, která má v sobě uložené kredence, ale než je zpřístupní, musí uživatel zadat heslo.To ale zadávám, jen když potřebuju tu appku a ne pokaždé, když se koukám jaké bude počasí nebo kdy mi jede tramvaj.
je možné, že si to vynutila sama VPN, občas nějaká pravidla je možné propašovat a android s tím koketovat, na jiných platformách je třeba možné vynutit whitelist/blacklist aplikací, šifrování atd.
Ono je ale už i nebezpečné na ten mobil za jízdy šahat, bez ohledu na to, jestli má pin nebo ne ;)
Dobře uživatelsky to má vyřešený iphone, kdy integrovat sken otisku prstů do hlavního tlačítka. Kolega vezme do ruky telefon, stiskne přirozeně jediné tlačítko a má telefon odemčený, já vezmu jeho telefon, stisknu tlačítko a chce to po mě pin, který jsem ho nikdy neviděl zadávat a jsem nahraný...
PIN na androidech se dá snadno obejít a dostat se k datům, samozřejmě s dostupným počítačem a kabelem, bohužel.
Jeden čas jsem měl nakonfigurovanou VPN do práce a v mém Samsungu to automaticky vynutilo zadání PINu při každém odemknutí obrazovky. Pominu-li, že je to otravné a někdy i nebezpečné (třeba při řízení auta jsem s tím bojoval), ...
Tak hlavne, az se pri rizeni budete pripojovat na VPN do prace, tak dejte pozor, abyste zabil jenom sebe.
Pokud se na ten jizdni rad tramvaje divate pomoci internetoveho spojeni routovaneho skrz tu VPN...
Treba to tak hloupe nakonfigurovane nemate - potom byste ale musel mit chytreho VPN klienta, ktery rozlisi kdy se chystate VPN pouzit a vybafnout na vas PIN az ve chvili prvniho pouziti po "odemceni" telefonu.
třeba protože odemčený telefon je napadnutelný občas i navštívením patříčné internetové stránky a poté může dojít k odposlouchání, MitM atd.
Heslování bankovní aplikace je zase kvůli dětem či jiným "záškodníkům", kteří mají tvůj telefon z nějakého důvodu v ruce a nechceš, aby mohli úplně všechno jen tak kliknutím...
Tvuj prispevek nedava zadnej smysl. Evidentne nevis co je MitM a to ze je telefon napadnutelnej navstivenim stranky je samozrejme uplne blbost. Ve vsech modernich mobilech bezi aplikace v sandboxu a nema prava pristupovat k jinym aplikacim.
Heslovani bankovni aplikace je presne z toho duvodu, ze je to bezpecnejsi nez jen zaheslovani mobilu.
o MitM jsem si přečetl na novinkach.cz, takže mám o něm dobré povědomí.
Teď vážně, každý rok se objeví několik zranitelností v prohlížečích, které umožňují únik ze sandboxu, ať už přes render písma, pdf, obrázky či jinou komponentu, k tomu pár zranitelností na androidu a člověk má najednou roota. Nemluvě o starých již ne dobře aktualizovaných zařízeních. Tvrdit, že to je úplná blbost je mimo realitu, spíše bych se bavil jak taková situace je pravděpodobná a jak je její zneužití obtížné.
Příspěvek jsem hodně zkrátit, chtěl jsem jen naznačit, že odemčený telefon je velice zranitelný. MitM se dá spáchat připojením telefonu na wifi (Android ani iOS nevyžaduje heslo při přidávání nové wifi sítě, btw) a tím přesměrovat komunikaci přes svoje zařízení. Výhoda je, že takovou síť bude telefon v budoucnu preferovat a oběť se to ani nemusí dozvědět. Pokud oběť zůstane v mém dosahu, mohu již podvrhávat obsah. Šifrované weby jsou samozřejmě další překážka, ale opět ne nepřekonatelná.
Android i iPhone vyzadujou heslo wifi site, co nezna, pokud neni otevrena bez hesla. Jak myslis, ze by ho ten telefon asi uhad?
Sandbox na Androidu je danej operacnim systemem, kazda aplikace bezi pod samostatnym linuxovym uzivatelem. Unik ze sandboxu tedy aplikace samotna nedokaze at je napadena jak chce. Muselo by dojit vylozenene k naboreni Linuxovyho kernelu, coz je dost nepravdepodobne.
MitM neni s sifrovanym spojenim (dnes snad neexistuje verejna sluzba bez SSL) mozny bez toho aniz by browseru byly podvrhnuty SSL certifikaty a to taky neni zadna sranda. S pripojenim na Wifi to nema nic spolecnyho.
asi si nerozumíme. V kapse mám svojí záškodnickou wifi (třeba provařený pineapple nebo jiné svoje zařízení) a přesně na tuhle wifi ho připojím a veškerá data půjdou najednou přes mě a kdykoliv budu v okolí, mobil se na mě připojí, easy.
Kritických chyb, které umožňují jednoduše utéct ze sandboxu a získat vyšší práva se objevuje pořád hodně každý měsíc (viz za červen https://source.android.com/security/bulletin/2016-07-01.html).
Linuxový kernel nezajišťuje na androidu jeho sandbox, v linuxovém kernelu se objevuje opravdu málo chyb, nám stačí ty tuny chyb v user space, on stačí jeden děravý proces s vysokým oprávněním a jsem doma (viz loňský průser s neošetřeným IPC volání na Admin interface na Androidu). Bezpečnost androidu nestojí pouze na sandboxu, ale na bezpečné komunikaci mezi aplikacemi, jejich podepisování a kontrola uživatelem schválených práv atd.
Nabourání SSL komunikace není neřešitelný problém, je to pouze další bariéra, nikoliv neproniknutelná zeď, viz chyby za poslední dobu. Stejně tak jsou hodně zranitelní korporátní uživatelé, kteří mají v mobilech firemní CA autoritu a její privátní klíč není dostatečně chráněn. Chce také brát v potaz, že řada lidí bezpečnostní upozornění na neplatný certifikát prostě odklidne a jde dál, protože přesně takhle přistupují na řadu webů, které na to kašlou.
To se fakt asi nechapeme. Pro ten mobil je uplne jedno pres kterou WIFI bezi. To pro nej neni zadny nebezpeci, protoze na to aby si moh browseru cokoli podvrhnout bys mu nejdriv musel vnutit svoje certifikaty a to bud na urovni modifikace aplikace nebo na urovni OS (coz bez roota nejde).
Linuxovy kernel zajistuje na Androidu spravu uzivatelu, a protoze jedna aplikace = jeden uzivatel, tak prakticky Linuxovy kernel zajistuje sandbox aplikace.
IPC resp to cemu by se IPC dalo u Androidu rikat, se nepouziva pro nic s "vysokym opravnenim", resp. zalezi co si pod timhle terminem predstavujes...
Podepisovani aplikaci a kontrola prav nema nepomuze proti fyzickymu utoku, ale to nijak nebrani cloveku nahrat infikovanou aplikaci.
Kazdopadne tohle vsechno nema nic spolecnyho s bankovnima aplikacema. Utocnik by musel predem vedet jakou banku obet ma, jestli vubec bankovni aplikaci pouziva, mit velmi dobrou znalost dekompilace bytekodu v Androidu a mit prilezitost fyzicky manipulovat nekolik minut s mobilem obeti. Pak ano, je moznost to udelat, ale vyplati se to? Prvne podezlely transfer pravdepodobne zachyti banka pripadne sama obet pokud ma nastaveny notifikace o pohybech na uctu a za druhe riziko odhaleni je enormni.
Takze ano, paranoik nebo miliardar, kterej pouziva bankovni aplikaci na spravu uctu svych firem, by pravdepodobne mel heslovat telefon, aby mel klid, ale normalni clovek se niceho bat nemusi...
Defacto to jedno není, pokud je mobil připojený přes neautorizovanou a kompromitovanou síť, je několik vektoru útoku a https není všemocné, co když podvrhnu DNS odpověď a donutím aplikaci komunikovat přse svůj server a a až můj server naváže https spojení s bankovním api, ale v té době už budu mít pod kontrolou data, která tečou oběma směry? Můžeme si o tom tématu někdy pohovořit, pokud máš zájem.
Linuxový kernel a obecně bezpečnost na Androidu vidíme jinak a s tvým laickým pohledem nesouhlasím, rád svůj postoj osvětlím, ale nechci tady zanášet zbytečně moc "spamu". Mluvím třeba o rok a půl staré chybě, ale je jejich více http://seclists.org/fulldisclosure/2015/Aug/57
Podobné věci je výhodnější cílit masově než na konkrétní miliardáře, dav lidí s účtem po pár tisícovkách bývá zizkovější než se snažit vsadit na jednu kartu.
Prave proti podvrhnuti DNS je HTTPS odolne. Aplikace proste odmitne komunikovat, pokud je server neprokaze spravnym certifikatem.
Zminovana chyba pouze umoznuje cist souboru ke kterym nema normalne pristup diky symlinkum. Neznamena to ale ze by diky tomu nekdo ziskal prava k tem soubory nebo je dokonce dokazal prepsat. Krom toho je to aplikace, kterou ma nainstalovanou jen malokdo.
Prave masove nejde takovyhle utoky vubec cilit, protoze proste je nutnej fyzickej pristup k mobilu a znalost obeti.
já vám rozumím, ale nechci se opíjet rohlíkem. V androidu je řada dost pochybných CA, nedají se bez root telefonu vůbec odstranit. Https je poslední dobou dost pod palbou a chyby přibývají velice často, aktualizace klientské a servové části hodně pokulhává, rozšířenost starých již neaktualizovaných telefonů je vysoká atd. Pokud jsem na nedůvěryhodné síti, https je jen malá berlička.
Těch kritických chyb je každý měsíc pořád velká spousta, tuhle jsem dal jen jako příklad, protože si pamatuji, že jsem jí řešil.
Ano, máš pravdu, pro masové použití to není moc vhodné, spíše pro hromadné nebo lokální. Není nad to podvrhnout wifi na koncertě...
Proc by v Androidu mely byt pochybny CA?
Uz byla naka z tech chyb SSL i zneuzita?
Dost pochybuju, ze banky sou mezi tema, co zapominaj aktualizovat servery.
Wifi na koncerte je docela vtipna predstava. Prvne kdo by se na koncerte pripojoval na wifi a pak jakej blazen by daval na koncert wifi. To by neprezilo ani par sekund kdyby se tam lidi zacli prihlasovat. I GSM site maj u hromadnych akci problem.
tak ono ke spokojenosti postaci, ze vetsina prodavanych telefonu je zcela bez aktualizaci (bezpecnostnich zaplat) a ty nejpredrazenejsi kusy maji podporu v radu mesicu az 2 let.
Na pausalne deravem a zranitelnem zarizeni, na ktere vyrobce totalne sere, muze Smartbanking pouzivat jen dement.
No to je fakt vysoce Yntelygentni. Výhoda dvoufaktoroveho potvrzeni pomoci SMS je nejen jednorazove heslo dorucene nezavislym kanalem, ale soucasne take informace co potvrzuji. Vsechny ty bimetricke nesmysly, softwarove nebo hardwarove OTP apod maji jednu podstatnou vadu - tj. lze s nimi bez problemu podepsat podvrzenou transakci. Staci aby napadene zarizeni zobrazovalo tu spravnou a user je v prdeli.
NIST je standardnizační organizace, nemůže nic zakázat, pouze doporučovat, přečetli jste si vůbec zdroj té zprávičky? Píše se tam "new systems SHOULD carefully consider alternative authenticators ... OOB using SMS is deprecated, and may no longer be allowed in future releases of this guidance."
Nejedná se o nejbezpečnějšní potvzrení internetbankingu ani u nás, běžně jsou dostupné "přístupové kalkulačky", které nespoléhají na kanál, který nelze zabezpečit.
Ony kalkulačky mají jednu podstatnou nevýhodu. V případě MITM útoku, nebo napadení příslušného zařízení nijak nezabrání tomu, že je kalkulačkou podepsána podvržená transakce. Ve zkutečnosti jsou tak tyto hustomegakrutopřísné OTP úplně bezzubé vůči celé řadě útoků.
Napadení zařízení a současně odposlechnutí nešifrované SMS je tak mnohem méně pravděpodobné, něž pouhé napadení zařízení, kde je využívána kalkulačka. A i v tomto případě může poškozený konat, protože mu přijde SMS indikující podvodnou transakci.
Jinými slovy místo opravy slabého místa OOB vymýšlíme hranaté kolo s poloviční bezpečností.
Vypadáto, že máte jistou obcesi normálními SMS a není to poprvé. Nevím proč nedokážete přijmout, že existují lepší varianty než SMS.
To co vy popisujete není bankovní kalkulačka ale něco jako generátor kódu pro transakci a ten je napadnutelný. Toto používá třeba Unicredit bank. Navíc zušili i heslo pro přihlášení pokud máte ten jejich token (SW nebo HW).
Jak funguje správná kalkulačka jsem poisoval níže -> zadáváte do ní informace o transakci a na záladě toho to generuje kód!
Tak třeba mBank AFAIK posílá (nebo posílala) jen SMS typu "Potvrzovací kód pro operaci č. 1 je 12345", tím taky podvržení transakce nezabráníte.
A slušná kalkulačka samozřejmě OTP počítá na základě údajů transakce které do ní vložíte nebo které vám zobrazí, takže zuby mají docela slušné :D
Lepší varianty dle mého názoru:
1. HW kalkulačka pro transakce (princip popsán jinde)
2. jako 1 ale SW varianta
3. Aplikace ala ČSOB smart banking (tam jsme se shodli, že to je dobrá varianta)
4. bankovní SMS (šifrováno, SIM toolkit)
5. samozřejmě čipové karty. Tady může být problém s tím, že nevíte co podepisujete. Ale to je problém varianty, protože existují i čtečky karet s displejem, které dokáží zobrazit podepisovaná data.
Obecně cokoliv jako SW na mobilu je problém, pokud se používá i k něčemu jinému. Může dojít k napadení bankovní apliakace, ale i k pozměnění SMS. takže osobně preferuji HW.
U těchto variant se dá vyhnout útokum na SMS:
- odposlech ze vzduchu
- falešná BTS
- voip
- odposlech na systémech operátora (někdo uvnitř)
- systém předání SMS od banky operátorovi (hodně často v clear textu).
Ad 1: Drahé a pro lidi co nechtějí přistupovat k IB striktně jen z jednoho místa nutnost tahat s sebou další zařízení => nepříliš použitelné.
Ad 2: Jak se liší od varianty 3?
Ad 3: Dobrý poměr cena / výkon, jen ne všichni klienti mají chytrý telefon, tedy je potřeba k tomu mít ještě nějakou variantu.
Ad 4: Jak jsem psal, technologie je spíš na ústupu, protože bankovní SMS jsou asi jediné v současnosti rozumné využití té technologie a to je málo. Navíc je nepohodlná na ovládání (z mojí zkušenosti).
Ad 5: Souhlas, je nutný displej, je nutný přístup k té kartě přes API a obecně je nutná funkčnost v klientském počítači a pokud to klientovi nefunguje, vy mu moc nepomůžete...
ad 1:
To je Váš subjektivní názor.
- jsou lidé co spravují svůj účet jen z jednoho místa
- pár sto korun pro někoho nemusí být drahé . S ohledem na možnou výši prostředků a úroveň bezpečnosti jako HW kalkulačka poskytuje je zandebatelný obnos
- kalkulačka může být velikosti kreditní karty, i když o něco tlustší. Opět pro někoho to nemusí být problém
ad 2: kdysi jsem tuto variantu zahlídnul, ape ne u nás. Ale fakticky s existencí varianty 3 ztrácí význam
ad 3: nikdo netvrdí, že má toto má být jediná varianta ani že se mají SMS zrušit. problém může být v momentě kdy banka nic jiného nenabízí.
ad 5: ano, je to komplikovanější ale jako varianta validní
ad 1: To není žádný můj subjektivní názor, ale zkušenosti z reálné praxe. Lidé, kteří
a) jsou ochotni HW klíč zaplatit a zároveň
b) jsou ochotni do něj přepisovat při každé platbě údaje a zároveň
c) jsou ochotni si zařídit, aby ho měli kdykoli potřebují podepsat transakci
jistě existují, ale je jich málo, takže se moc nevyplatí to provozovat.
Jenže v případě OOB musíte mít napadené zařízení 2 tj. zařízení obsluhující bankovnictví (např. počítač, tablet apod.) a současně mobilní telefon, navíc nějakým vzájemně provázaným a koordinovaným způsobem.
I naprostý laik pochopí, že je to nesrovnatelně méně pravděpodobné, než napadení jediného zařízení, kde probíhá vše současně. Nemluvě o tom, že tento způsob OOB jako jediný poskytuje nezávislou zpětnou vazbu, "co se vlastně autorizuje".
Reagoval jsem na Váš první komentář, kde se píšete jen o 2FA a napadáte vše ostatní kromě normálních sms. O všem na jednom zařízení jste tam nepsal, takže má odpověď byla na stejné téma.
Ano je mnohem těžší napadnout 2 kanály. Ale normální SMS není bezpečnější než některé další 2FA varianty.
Mohl byste si přečíst:
http://www.theregister.co.uk/2016/04/08/google_android_2fa_breakable/
Dvoufakorove overeni je vhodne pro PC + mobil.
pokud nekdo pristupuje do systemu ze stejneho HW, ztraci to vyznam. takze do jiste miry chapu, jelikoz kdekdo pouziva pristup z mobilu, kam si necha poslat sms (ktere je pak nasledne mozne ukrast)
na druhou stranu primocare zakazat? to je totalni kravina ...
nejenže je problém zabezpečit cílové zařízení pro doručení sms, on je problém i zabezpečit samotný kanál pro posílání sms. V GSM síti totiž sms putují servisním kanálem a jejich šifrování je k pláči.
To se bavíme o GSM, ve zprávičce je ještě uveden problém voip, osobně bych doplnil i problém různých dsl či pagerů, nic z toho nebylo navrženo na bezpečnou komunikaci.
biometrie je špatná, nedokážu jít v případě úniku změnit. OTP a jiné formy nepřímého ověření by prozatím mohla být ta cesta, u českých bank to třeba nabízí rajfka, Airbanka by to měla testovat na podzim, snad KB to má u firemních účtů, máte někdo další banky?
SMS se používá jen kvůli lenosti bank a protože běžný člověk nechápe rozdíl mezi SMS a bankovní SMS. Kupodivu jako první začaly bankovní SMS. GSM toolkit. Seženete SIM kartu co to umí, v bance vám do toho nahrajou aplikaci a klíče. Z té SIM karty nejdou vydolovat. SMS je šifrována klíči a bez nich si ji nikdo nepřečte. Asymetrická šifra, operátor dostává data již sifrovaná. Předá do mobilu, tam si ji vezme SIM toolkit aplikace, zeptá se na bankovní PIN a pak teprve ji dešifruje.
No a lidem se to líbilo. Tak jiné banky také začaly používat SMS. Jenže aby to nebylo drahé a aby to neobtěžovalo klienty nutností nechat si v bance do karty nahrát klíče a aplikaci, tak zvolili normální SMS. Lidem to stačí. A to je na tom to nejsmutnější. Přitom GSM toolkit byl navržen právě na bezpečnou komunikaci.
Rajfka zrovna bankovní SMS používá.
souhlasím, ale vodafone zrušil GSM toolkit někdy vloni, u T-mobilu se mi takovou kartu nepodařilo sehnat za posledních několik let, u O2 nevím. Dříve jsem to používal, ač to zranitelnosti má, pořád to je mnohem lepší než běžná sms, na nepodporu v řadě mobilů jsem si už také začal zvykat.
Rajfka má právě dostupné OTP přes svoje zařízení, což je také pohodlná a dobře zabezpečená alternativa.
Nesmysl. SIM tool kit podporuje jak T-Mobile, tak Vodafone:
https://www.t-mobile.cz/gsm-banking
http://www.vodafone.cz/osobni/vodafone-balicky-a-reseni/m-banka-a-m-platby/
SIM tool kit je podporovan ve vsech hloupych, Android i Apple mobilech.
Bankovní SMS se nepoužívá
- protože podpora SIM toolkitu ze strany operátorů i výrobců mobilů je malá a stále klesající
- protože pro BFU je prostě nutnost osobně dojít nechat si na SIM nahrát aplikaci příliš komplikovaná
Jinak to není špatný způsob, taky jsem to používal, akorát proklikat se k těm SMS v menu byl trochu problém.
Vubec netusis o cem mluvis. SIMtoolkit podporujou porad snad vsechny mobily (jeste sem nepotkal zadnej co by to nemel). A diky standartni "Bankovni SMS" na novych SIM uz neni ani potreba zadnou aplikaci na SIM nahravat. Notifikace o prichozi SMS vybehne na popredi, takze neni nutny se nikam proklikavat.
Pouzivam denne.
Já mám s bankovními SMS na chytrých mobilech špatnou zkušenost. Ano, notifikace nakonec vyběhne, ale až když se to telefonu hodí. Mnohem rychlejší bylo se do SIM toolkitu proklikat rovnou, pokud člověk věděl, jak. Navíc bylo ovládání SIM toolkitu na chytrých telefonech mnohem pomalejší, než na starém hloupém mobilu. Technologicky jsem bankovním SMS fandil, ale použitelnost byla čím dál horší, až jsem utekl k normálním SMS. Sice mám pořád pocit, že to není dost bezpečné, ale aspoň to funguje…
Tak ona Rajfka je snad poslední banka co bankovní SMS používá. JInou jsem neobjevil.
Ono asi nejlepší varianta pro málo plateb je OTP kalkulačka. Je to nezávislé a nikam nepřipojené zařízení do ktereého se zadají parametry platby a vygeneruje jednorázový kód. To znamená i když něco napadne PC a pozmění platbu, tak ten kód to neovlivní.
Kdysi jsem to měl u ČS a pak to zrušili a nahradili normálními SMS. Prej to používalo málo klientů a že SMS je stejně bezbečný.
Co mi přijde v poslední době jako dobrý varianta a mnohem lepší než normální SMS jsou ověřovací aplikace. Např. u ČSOB Smart klíč (princip stejný jako nově u Googlu či mojeID).
Při transakci se připojí tato aplikace z telefonu do banky přes HTTPS, zadáte PIN a objeví se vám informace o platbě, Tu potvrdíte nebo ne. Výhody jsou, že to jde šifrovaně pčímo do banky, je to na jiném zařízení a vidíte informace o platbě.
Dokáže to fungovat i offline (nejsou li data dostupná) naskenováním QR kódu.
bezpečnost a odolnost proti prolomení můžeš posuzovat až z konkrétní implementace, nikoliv z použitých technologií.
Teoreticky je velká, ke kartě potřebuji fyzický přístup a není snadné jí zduplikovat. I sebemenší drobnost může bezpečnost poslat do kytek, proto je nutné vždy posuzovat celý systém na kokrétní rizika, nikoliv říkat, že obecně je třeba sms nebezpečná.
Jak psal Tomáš2, zaleží na finální implementaci. Ale jinak lze odpověď rozdělit:
1. čipová karta je navrhovaná proto aby nesla soukromé klíče a aby tyto klíče nešly z karty získat.
Takže i pokud zapomenete kartu ve čtečce v počítači, tak se ten klíč ven nedostane. Takže lze považovat vlastní kartu za bezpečnou.
2. Jiný problém je vlastní použití karty (implementace).
a. nejjednodušší čtečka bez klávesnice a LCD - nejslabší varianta, protože PIN zadáte na normální klávesnici a nevidiíte co podepisujete
b. čtečka s vlastní klávesnící - PIN je mimo PC, ale opět nevidíte co podepisujete
c. čtečka s klávesnicí a LCD - nejlepší varianta, ale bankovní aplikace toto musí podporovat. Implementační náročnost.
... a navíc je možné i vzdáleně mobilní ústřednu přesvědčit, aby SMS přesměrovala na jiné číslo (není to úplně triviální, protože operátoři jsou si téhle principielní díry vědomi a brání se, ale v principu to možné je).
To, že SMS jsou mizerný a nepříliš bezpečný potvrzovací kanál se snažím různé "experty" přesvědčit už nějakou dobu, ale jak je vidět i z téhle diskuse, je to marný, je to marný...
Návrh:
Jeden triviální způsob pro PC.
2 portový "router".
ETHERNET konektor
WAN: do internetu
LAN: do PC.
Tlačítko "Banka":
Stisknuto:
Je možné spojení jen přes VPN vytvářený "routrem" na servery příslušné banky.
Každá jiná konektivita je blokována.
Nestisknuto:
Je to datová přůchodka.
SD karta v "routeru": Konfigurace spojení a uživatelských nastavení např. klentské číslo.
Bylo by to bezpečné?
1. Útočník by musel měnit číslo účtu naslepo automatizovaně pomocí offline skriptu (trojan) bez jakekoliv interaktivní zpětné odezvy.
Při zmáčnutém tlačítku by nebyl klient na internetu, ale na klientském intranetu.
2. Servery pro tuto komunikaci by nebyli na internetu.
3. Přes to že se v článku SMS "pomlouvá", jako doplněk této ochrany by mohla býti informační SMS o transakci a provedení zadané operace nejdříve za hodinu s možností včasného storna operace. (I trezory v bance mají časově zpožděné odemykání.)
4. SMS by se posílala vždy při první platbě na účet, na který platba ještě nikdy nebyla prováděna (nevhodné pro obchodníky pro nadměrnnou prudivost).
5. Napadnout se dá vše ale tohle mnohem obtížněji.
Ad 1 - tedy úplně stejně, jako to dělá dnes.
Ad 2 - a jak by se k nim tedy uživatel připojil? To by každý klient banky měl extra dráty natažené do své banky? Navíc útoky na elektronické bankovnictví nejsou vedené proti serverům, ty bývají přeci jen zabezpečené dobře, ale proti klientům.
Ad 3 - to vůbec nesouvisí s vaším návrhem. Navíc by to nikdo nechtěl používat. Internetové bankovnictví lidé používají proto, že je to rychlé a pohodlné. Kdybych měl myslet na to, že musím transakci ještě za hodinu potvrdit - to bych to radši vyřídil v pobočce banky, bylo by to rychlejší. To časově opožděné odemykání trezoru má ten význam, že to zdržuje útočníka a dává čas na nějakou reakci ostraze banky. V případě útoku na elektronické bankovnictví to nemá vůbec žádný význam, protože tam o útočníkovi vůbec nevíte, takže pro něj není riziko déle trvající transakce.
Ad 5 - ne, tohle nijak neovlivní typický útok na elektronické bankovnictví. Útočník se tím vůbec nemusí zabývat, protože by dokonce ani nepoznal, že nějaké takové zařízení uživatel má.
Navíc kdyby už uživatel měl investovat do speciálního zařízení pro banku, tak to bude off-line zařízení pro autorizaci plateb. S takovýmhle zařízením začínala kdysi Expandia banka (pozdější eBanka a dnes Raiffaisenbank), teprve později se k tomu přidávaly šifrované SMS a obyčejné SMS. Vypadá to jako kalkulačka, zadáte tam číslo účtu, částku a měnu, a zařízení vypočítá jednorázový bezpečnostní kód (stejně, jako to dělá banka, když vám ho posílá SMS), kterým platbu potvrdíte. Takové zařízení je dokonce výrazně levnější, než speciální router, a na rozdíl od toho routeru opravdu zvyšuje bezpečnost (a to dost podstatně).
Kalkulačka je nejbezpečnější ale nejnekomfortnější.
1. Řešení by bránilo únosu nebo odcizení spojení s bankou.
2. Připojení výhradně přes VPN, proto nemá být bankovní server pro daný účel vidět na internetu.
Autorizace a autentizace pomocí klientských údajů "routrem" z SD karty vydané bankou.
Ze strany sítě není žádný přístup k SD kartě (ledaže by zloděj ten "router" ukradl fyzicky) .
(autentizace a i autorizace stisknutým tlačítkem, max. jednoduché)
3. Transakce na účtu by se zadala a autorizovala hned, ale její provedení by bylo zpožděné, aby na základě SMS mohl klient případně stornovat neoprávněnou nebo chybnou operaci před jejím provedením. Asi tak jako jdyž si posunu splatnost o hodinu automaticky.
Pořád s sebou mnohem raději budu nosit kalkulačku, která ověřuje přímo zadané údaje o platbě, než s sebou nosit router, který neověřuje nic.
Ad 1 – únosu nebo odcizení spojení s bankou brání HTTPS. Bankovnictví přes HTTP snad neprovozuje žádná banka. Protože útočník nemůže (ani dnes) napadnout HTTPS spojení, snaží se příkaz k úhradě pozměnit ještě dřív, než vstoupí do HTTPS spojení – tedy v prohlížeči uživatele. A tomu vaše řešení nijak nebrání.
Ad 2 – použití VPN je sice hezké, ale řeší to ten samý problém, který už je vyřešen HTTPS protokolem. Řešilo by to tedy pouze problém, kdy se někomu podaří obelstít ověření HTTPS u uživatele – např. přesvědčí uživatele, že je na stránkách banky, i když bude někde úplně jinde. To ale myslím není častý vektor útoku, navíc když uživatele někdo dokáže přesvědčit, že nemá kontrolovat adresu banky, stejně tak ho přesvědčí, že nemá přepínat router do bankovního režimu. Navíc byste při vypršení platnosti certifikátu banky musel všem uživatelům vyměnit tu SD kartu, a v případě kompromitace privátního klíče certifikátu by se uživatelé připojovali k útočníkovi do té doby, než by se ta SD karta vyměnila.
Ad 3 – takže by to záviselo na tom, že uživatel transakci později zkontroluje, a případnou chybnou platbu dokáže včas stornovat. Vidím v tom jen samé nevýhody oproti variantě, kdy je platba autorizovaná teprve po té, co uživatel údaje zkontroluje.
1. V bankovním režimu by jste se přes takový "router nepřipojil ani na seznam. tj když komunikuji tak výhradně skrz VPN a vše ostatní se zahazuje. Z toho vyplývá že komunikace mezi klientem a bankou není online nijak monitorovatelná.
2. Stisknuto tlačítko = jediné důvěryhodné spojení které nelze zpochybnit. Certifikát by byl skoro věčný, jelikož nikde by nevystupoval ve veřejné síti a nebylo by ho možné kompromitovat jelikož by se uživatel k němu ani nedostal. (Výjimka pokud by někdo objevil díru ve FW "routeru" vzdáleně zneužitelnou v nebankovním režimu což lze fyzicky vyloučit mechanickým přepínáním vstupu - výstupu. Ještě žádný kód nestiskl fyzické tlačítko. Útočník by musel vytvořit identické VPN což lze jen těžko. Pravděpodobnost kompromitace klíče je větší u klienta nebo u banky?
3. IB které jsem zatím poznal mi před tím než transakci veme nabídne přehledně transakci k vizuální kontrole.
4. Budu-li moc paranoidní stisknu tlačítko, nastartuji z živé CD distribuce linuxu vypnu bluethooth, wifi a s tímto "routrem" jsem absolutně v bezpečí před trojany a spol. (vlastně ten "router" by mi mohla dělat i autorizovaná bankovní distribuce linuxu + readonly konfigurační fleška - HW switch readonly fleška existuje!)
Ad 1 – tedy stejně, jako když komunikujete s bankou přes HTTPS přímo přes běžný internet. Oproti současnému stavu, kdy internetové bankovnictví používá HTTPS, tedy VPN nepřináší žádné bezpečnostní zlepšení.
Ad 2 – jste si jist, že správně chápete fungování PKI, privátních a veřejných klíčů a certifikátů? Certifikát nemůže být kompromitován, certifikát je veřejný. Problém s certifikátem může být v tom, že certifikační autorita vydá certifikát někomu, komu by neměla. V takovém případě bude mít problém HTTPS úplně stejně jako VPN – bude protistranu s tím falešným certifikátem považovat za skutečnou banku. To, že by certifikát nevystupoval ve veřejné síti, je nesmysl. Byl by přece přístupný přes tu VPN, kterou musíte považovat za veřejnou, protože se k ní připojují desetitisíce klientů banky, včetně útočníka. Věčný by certifikát nebyl, i certifikáty certifikačních autorit mají platnost třeba jen deset patnáct let – a i to se ukazuje jako docela dlouho, protože klíče je potřeba prodlužovat častěji.
Útočník by musel vytvořit identické VPN což lze jen těžko.
Lze to úplně stejně, jako vytvořit identický bankovní HTTPS server. VPN i HTTPS používá interně stejně algoritmy, stejnou infrastrukturu veřejných klíčů.
Pravděpodobnost kompromitace klíče je větší u klienta nebo u banky?
Vzhledem k tomu, že privátní klíč má jen banka, je ten dotaz nesmyslný. Nicméně útoky se nedělají na HTTPS, to je v dnešní době dostatečně bezpečné. Útoky se dělají na uživatelův prohlížeč – uživatel zadá příkaz k úhradě na číslo účtu 1234/0100, ale prohlížeč odešle 5678/0200. Je úplně jedno, jestli ten odesílací šifrovaný kanál bude HTTPS nebo VPN, v obou případech jím putují již změněná data.
Ad 3 – jenže tu vizuální kontrolu děláte v potenciálně kompromitovaném prohlížeči. Aby to bylo bezpečné, musíte transakci před autorizací ověřit na nějakém nezávislém zařízení. K tomu slouží ta kalkulačka nebo alespoň SMS.
Ad 4 – takže ten router je tam úplně zbytečný a stačí nekompromitovaný systém a prohlížeč. Jistě, akorát že to se u většiny uživatelů těžko zaručuje. A běžný uživatel tisíckrát raději použije pro potvrzení transakce kalkulačku, než aby bootoval jiný systém z DVD (ani by neuměl vstoupit do BIOSu, aby zapnul boot z DVD), a ještě si každý měsíc chodil do banky pro aktualizované DVD.