Pred davnymi a davnymi casy existovala eBanka, ktera mela pouzitelne internetove bankovnictvi s dvoufaktorovou autentizaci tokenem a dokazala nabidnout i neembosovanou platebni kartu, u ktere mel clovek nejakou sanci dokazat, ze predevcirem skutecne nejel taxikem z Kuala Lumpur do Bangkoku (protoze chlastal s kamaradama lahvace v lomu u Skutce, coz dokazovat nejde a ani neni zadouci). Pote, co ji pohltila jina banka zacaly sluzby vypadat jak u blbejch (chceme vic platit, udelame toho min a jeste pulku zkurvime), takze jsem zmenil banku a zjistil, jak je zumpa hluboka.
Asi dve odpoledne jsem googlil, ktera banka ma normalni autentizacni token a nasel leda kulove s prehazovackou, takze jsem si vybral jednu duveryhodne vypadajici malou banku s tim, ze to snad pujde.
Je pravda, ze v te bance skoro vsechno funguje, banka zatim nezkurvila nic, co nezminim nize v tomto clanku, ale autentizace v bankovnictvi je potrat.
Moznosti autentizace
Banka nabizi v zasade tri moznosti. Username a heslo – no, mentalne retardovanej nejsem, planuju tam mit vic, nez petikorunu, hlasit se tam pres ssh tunel primo do banky nejde a padesatiznakove heslo neberou, takze tahle varianta neprichazi v uvahu.
Dalsi moznost je javova aplikace. V zivote jsem nepotkal jedinou vec v jave, ktera by nebyla uplne na hovno. Ja vim, ze v kazdem jazyce jde psat jako v brainfucku a ve vetsine jazyku jde napsat slusny a prehledny kod pouzitelneho a akceptovatelne rychleho programu. Ale v jave jsem na takovy jeste nenarazil.
A posledni moznost jsou SMS. Vec, kterou jde odchytit, takze bezpecnosti prilis nepomuze a navic to generuje opruz s telefonama. Kde je zase ten kram? Kde je k nemu nabijecka? Jaky to melo PIN? Proc ta debilni SMS jeste neprisla (rekord mam 2 mesice a to jsem tuhle zhovadilost pouzival v zivote jen par mesicu). Vubec nemuvim o tom, ze staci nemit signal a clovek nic nezaplati.
A jako takovy exkrement na cokoladovem dortu – staci, aby nekdo odchytil heslo a vi kolik mam na ucte a komu co platim. Opravdu pokrok proti autentizacnimu tokenu, se kterym jsem se klidne prihlasil do bankovnictvi z internetove kavarny a rovnou i zaplatil.
Pokus prvni
Javu leda hygienickou tyci a tu nemam. Telefon uz nastesti taky nemam, ale muj VoIP operator tvrdi, ze zvladne prijimat SMS, tak to zkusim.
SMS prichazeji v jpg jako rozmazany fax, ktery tak nejak zvladne gocr zkonvertovat do textu. Pravidlo do ~/.procmailrc, najit jak vytrhnout prilohu z mailu bez mailoveho klienta, pipe do gocr a mailnout vysledek do schranky na tom samem serveru. Vypadalo to pouzitelne.
SMS nekdy dorazila za pet minut, nekdy za hodinu, nekdy druhy den, parkrat take az za tyden, nebo i pozdeji. Tak v devadesati procentech pripadu se podarilo behem pul hodiny zaplatit. Vot technika. V eBance to bylo na pet minut i s opsanim cisla uctu do autentizacniho tokenu.
Pak ty idiotske SMS prestaly dochazet uplne. U VoIP operatora mi poradili poridit si misto nomadickeho cisla geograficke. Neco jsem za nej zaplatil (ale jenom jednorazove), musel dojit osobne do banky, ale vypadalo to, ze to zase bude fungovat. Par mesicu to vydrzelo a pak to prestalo dochazet i tam.
Jeste by slo poridit GPRS modem, koupit a platit SIM kartu (jenom kvuli bance), napsat si program, ktery z toho bude cist ty SMS (nic pro Linux jsem nenasel – budu rad za tipy v komentarich; AT commandy znam) ale to uz mi pripadalo jako prilis veky opruz. Hlavne ta SIM karta znamena bud smlouvu s operatorem a riziko, ze si na me dalsi mobilni operator vyzkousi nejake svinarny (jeste porad tu je jeden fyzicky, se kterym jsem nemel tu cest dopis-Surf_plus.gif). Nebo je tu druha moznost – opruz s predplacenkou. Hlidat, kdy v tom kramu vytimeoutuje kredit, nejak tam ten kredit doplnovat (uz to jde prevodem na ucet, jako v civilizovane spolecnosti, nebo se kvuli tomu porad clovek musi tahnout nekam do kasina?) a celkove na tu hovadinu porad myslet.
Ta java preci nemuze byt tak strasna.
Spamove SMS na obe cisla obcas dorazi dodnes, chyba neni na strane VoIP operatora.
Pokus druhy
No jo, ale javovsky kod bezici na kompromitovanem pocitaci moc bezpeci neposkytne. Takze jsem vytahl stary notebook, flaknul na nej cisty Debian stable, browser a budu na to mit jako idiot extra pocitac, na kterem pro sichr nic jineho nepobezi.
Pri experimentech s longboardem jsem na par tydnu ztratil chut ridit (ruka bolela jak svine), takze me do banky hodila pritelkyne. A v bance nezvladli vygenerovat klic in situ, ze si ho mam vygenerovat doma v javovske aplikaci. Wifi tam samozrejme nemeli a instalovat javu po gprs zkrz telefon pritelkyne vypadalo na dlouhou akci, takze dalsi pokus druhy den. Mel jsem si precist navod (ktery je v pdf odkazovany uprostred dokumentu obecnych kecu). Nepotesi, ale nejde vychytat vsechno.
Zjistit, kterou to potrebuje javu (je to tak “multiplatformni”, ze prvni krok je zjistit, jestli IBM, nebo SUN), stahnout aplikaci a aplikace ma jiny checksum, nez se pise v navodu od banky. Takze tisknu vsechny checksumy a beru si je do banky. Bud mi reknou, ze to je o.k., nebo mi reknou, kde vzit spravnou aplikaci a v takovem pripade ten Debian preinstaluju. S tim generuju klic z dubiozni javove aplikace, byt stazene ze stranek banky.
Ptitelkyni se to dalsi den nehodilo, ale co uz. Prochazka je zdrava a deset kilaku cloveka nezabije. A deset zpatky taky ne :-), beru dva litry vody, kus neceho k zradlu, knihu a valim. Tentokrat uz se povedlo predelat autentizaci na javovou, ale muj dotaz na checksum aplikace vubec nepochopili. Nakonec jsem na vytistene papiry napsal svuj mail a poprosil je, at to predaji IT oddeleni, protoze pokracovat v debate nemelo smysl.
Dalsi den nachazim v mailboxu jakysi zvast o tom, ze aplikace je na te a te adrese (ze ktere jsem to stahoval a bylo to na papire vytistene) a nic vic. Ptam se explicitne, jestli je v poradku, ze aplikace ma checksum, ktery uvadim, kdyz maji v navodu jiny. Soude dle odpovedi IT oddeleni zjevne nechape, co to je checksum. Nakonec se asi po tydnu se dozvidam, ze updatovali checksumy v navodu. Kdyby to byla autentizace do diskusniho fora spolku pratel DIY hovnocucu, tak o nic nejde, ale tohle je kurva banka!
Uff, mam to za sebou.
Intermezzo: Hesla
Heslo do bankovnictvi i do javoveho nesmyslu ma samozrejme omezenou delku (nastesti ne na 10 znaku, takze tam da vejit s necim jaks taks bezpecnym), vyzaduji specialni znaky a jeste trvaji na jeho periodickych zmenach, aby clovek nemel sanci si ho zapamatovat a musel ho mit napsane. Meli by si precit tohle XKCD.
Pouzivani
Po par tydnech zjevne zmenili neco na bankovnim webu a nacteni bankovnictvi trva deset minut. Jasne, ze ten notebook neni nejrychlejsi, ale porad je o neco malo rychlejsi, nez muj stary Asus EEE, ktery je na prohlizeni webu stale jeste omezene pouzitelny. No, neplatim tak casto …
Javova aplikace neumi podepsat vic prikazu najednou. Takze vyplnit prikaz, vyvolat aplikaci, zadat heslo, pockat, az se to aktivuje, podepsat a znovu. Prvni platba 20 minut, kazda dalsi po deseti.
Pak chci jednou zaplatit a heslo uz dohromady nedam. Cim mene to clovek pouziva, tim spis zapomene heslo. A cim hur se to pouziva, tim mene se to pouziva.
Potrebuju neco zaplatit a hodinu upgraduju javu. Nevim, jestli ta java je tak derava, ani jestli mi tu aplikaci se starou javou nepusti banka, nebo browser, ale tohle je OPRUZ!
Oprava, javova aplikace dokaze autorizovat vice plateb najednou. Pokud jsou zcela identicke a nahromadily se, kdyz se autentizacni aplikace odmitla pustit kvuli stare jave. Very useful! Jinak, nez pokusem o autentizaci asi pustit nejde (patrne by sla pustit z commandline, ale otazka je, co by udelala).
Po dalsich trech mesicich potrebuju neco zaplatit. V mezicase davam pritelkyni hotovost, aby ji zbyvaly penize na uctu a platila za me ze sveho uctu. Dokonce ji pomahlam hledat po baraku telefon. A pri pokusu o autentizaci platby to chce zase upgradovat tu debilni javu. Tohle fakt nejde!
Jak dal
Zakladam ucet u jine banky. Nalezl jsem jednu, ktera ma autentizacni token. Snad to bude fungovat.
Pripadam si jako debil. Opravdu nikomu nevadi, ze uz se nenabizi normalni, zabezpecene a efektivne fungujici veci, ktere tu byly bezne pred patnacti lety?
Komentare