6. elokuuta 2015

Miten toteuttaa hakkerin kestävä tunnistautuminen, esimerkiksi verkkopankkiin?

Nettipankkien tietoturva "kehittyy" koko ajan, esimerkiksi nyt vaikkapa Nordea. Nordea on oman kertomansa mukaan ottamassa laajamittaiseen käyttöön älypuhelimeen asennettavan tunnuslukusovelluksen, joka korvaa nykyisin käytössä olevat paperiset tunnuslukutaulukot ja kertakäyttöiset salasanat. Tämä on lopullinen kuolinisku ko. verkkopankin tietoturvalle, kun "kaikki munat laitetaan samaan koriin", eli laitteeseen, jolla kansalaiset verkkopankkia käyttävätkin. Jatkossa ko. älypuhelimen tietoturvan nujertamalla saa hallintaansa myös ko. tunnuslukusovelluksen, joten hakkerilla on de facto vapaat kädet asiakkaan verkkopankin sisältöön. Vanhaan paperiseen tunnuslukutaulukkoon ei yksikään hakkeri pääse käsiksi, ei ainakaan ilman, että fyysisesti varastaa se piirongin laatikosta (tai saa hölmön asiakkaan luovuttamaan sen sisällön huijauksella jonkun nettisivun kautta tms.).

Älypuhelinten tietoturvassa on vakavia puutteita, esimerkiksi tällä hetkellä käytännössä kaikissa Android-puhelimissa on aukko, joka mahdollistaa minkä tahansa Androidin kaappaamisen täyteen hallintaan pelkästään mms-viestin lähettämällä. Kaappaaminen ei näy puhelimen omistajalle mitenkään, ei edes tulleena mms-viestinä tms. Ongelmana Androidin osalta on vielä se, että miltei kaikki käyttäjät jäävät mahdollisten tietoturvapäivitysten ulkopuolelle, koska Android ei ole niin keskitetysti hallittu järjestelmä kuin esimerkiksi Windows-puhelimet tai iPhonet ovat, joten päivityksiä ei ole luvassa.

Nordea on onneksi tuomassa niiden asiakkaiden käyttöön, joilla ei älypuhelinta eikä ko. sovellusta ole, jonkinlaisen viritelmän tietokoneeseen kytkettäväksi, joka voi tai ei voi parantaa tietoturvaa jollakin muotoa. Epäilen itse vahvasti, mutta nähtäväksi jää, millainen systeemistä tulee ja miten se toimii. Tämän pitäisi tapahtua ilmeisesti ensi vuonna. Palaan asiaan, kun ko. härveli saapuu.

Verkkopankki ja moni muukin juttu voitaisiin saada huipputurvalliseksi luvatonta käyttöä vastaan ja melko edullisesti, mikäli homma ns. osattaisiin ja ns. viitsittäisiin tehdä oikein. Annan esimerkin, jota olen itse pohtinut mielessäni, jolla homman saisi ns. hakkerinkestäväksi tehtyä:
  • Käyttäjä syöttäisi pankin tms. nettisivulla oman henkilökohtaisen tunnusluvun/salasanansa, joka olisi hänen käyttäjätunnuksensa.
  • Käyttäjä liittäisi USB-väylään kiinni tikun, joka toimisi kuten erittäin turvallinen Yubikey Edge, joka tukee U2F:ää. Käyttäjä painaisi ko. härvelin nappia, jolloin se "sylkisi ulos" yhden tunnistautumistietopaketin.
  • Käyttäjä olisi kirjattu sisälle verkkopankkiin tms. ja voisi tehdä mitä tekee. Lopuksi hänen tulisi varmistaa tehdyt maksut tekstiviestillä.
  • Käyttäjän puhelimeen tulisi tekstiviesti, jossa olisi esimerkiksi Googlen puhelintunnistautumisen kaltainen, kertakäyttöinen 6-numeroinen turvakoodi, jonka käyttäjä syöttäisi nettipalveluunsa - tai vaihtoehtoisesti vastaisi siihen tekstiviestillä yksinkertaisesti K tai E jos hyväksyy tai hylkää tehdyt toimeksiannot.
Homma olisikin ns. pihvi. Käyttäjätunnus estää järjestelmän palvelunestohyökkäyksiä ja estää ko. "tikun" väärinkäyttöä sen löytäjän toimesta jos tikku joutuu vääriin käsiin (tikun varastaja ei oletuksena voi tietää sen omistajan käyttäjätunnusta, koska ko. käyttäjätunnus on vain sen omistajan pääkopassa muistissa). Tikku toimii vain siinä olevaa nappia fyysisesti painamalla, joten tietokoneen saastuttaminen haittaohjelmalla ei auta mitään, tikkua ei voi "kaapata". Tikun lähettämä tunnistetietopaketti on kertakäyttöinen, juoksevalla numeroinnilla varustettu ja salattu, eikä sitä voi avata, eikä väärinkäyttää mitenkään jälkikäteenkään jos sen onnistuu "kaappaamaan matkalla". Tikku lisäksi lähettää sen vain ja ainoastaan ko. sivulle ja salattuna vain ja ainoastaan ko. sivun kanssa etukäteen vaihdetuilla salausavaimilla, joten hakkeri ei saa edes selville, mitä tietoa siellä liikkuu, ei sitten millään. Lopuksi vielä matkapuhelimeen tuleva tekstiviesti toimisi "toisena, erillisenä varmistuskanavana" tehdyille asioille. Riski, että hakkeri saisi kaapattua kaikki eri osatekijät kerralla käyttöönsä on mitättömän pieni, käytännössä ko. temppu on mahdotonta toteuttaa oikeastaan pahimmissakaan hyökkäysskenaarioissa, joissa koko tietokonekin olisi hakkerin täydessä hallinnassa. Kyllä, vaikka käyttäjä olisi idiootti ja tekisi asioita väärinkin tai häntä yritettäisiin huijata.

Toki, tuollainen Yubikeyn kaltainen tikku maksaa muutaman kympin ja niitä pitäisi varmaankin lähettää kaksi kappaletta siltä varalta, että käyttäjä kuitenkin rikkoo tai hukkaa toisen. Toki, tekstiviestien lähettäminen maksaa teoriassa ehkä sentin kappale tms. massamaisesti käytettyinä. Mutta, kun nämä investoinnit olisi tehty, systeemi voisi toimia maailmanloppuun asti ilman mitään uusia "tunnuskortteja" tai pelkoa tietoturvan pettämisestä. Se olisi siinä sitten. Lopullinen ratkaisu tunnistautumisongelmiin. Hakkeriturvallinen.

Mutta, niin kauan kun ainakaan virallisesti mitään suuria tietomurtoja verkkopankkeihin jne. ei ole Suomessa tehty, ko. systemiä ei tulla ottamaan käyttöön. "Siihen ei ole tarvetta". "Vähempi riittää". "Aivan täysi paskakin riittää" ilmeisesti. Valitettavasti. Kun tietomurtoja sitten tulee sattumaan nykysysteemissä ja tulevissa paskasysteemeissä, ainakaan minä en haluaisi olla ensimmäisten joukoissa, joiden rahat katoavat tililtä jne.

6 kommenttia:

Anonyymi kirjoitti...

Voisiko mielestäsi usb-tikun sijasta olla joku bluetooth-laite? Se ainakin olisi helppokäyttööisempi ja toimisi myös älypuhelinten kanssa.

jaska kirjoitti...

Mä en pidä tota tunnistautumissoovellusta välttämättä pelkästään huononnuksena nykytilaan. Koska jotkut todella ovat niin tyhmiä, että luovuttavat tunnukset sähköpostilla, jos joku niitä kyselee. Tämän tunnistautumissovellus estää. Lisäksi jotkut tekevät man in the middle -hyökkäykset aivan liian helpoiksi käytännössä itse menemällä hyökkääjien kopionettisivuille. Näissäkin hyökkäyksissä sovellus voi auttaa, koska se kertoo mitä tapahtumaa ollaan oikeasti vahvistamassa.

Yksi selvä heikkous Nordean toteutuksessa on. Se sallii kännykällä tehtyjen toimeksiantojen vahvistaamisen samassa kännykässä olevalla tunnistautumissovelluksella, jolloin yhden laitteen täydellinen kaappaaminen voi mahdollistaa täysin vapaat kädet hyökkääjälle.

Jos vaadittaisiin kahden laitteen käyttöä (toisessa nettipankkisovellus/-sivut ja toisessa tunnistautumissovellus), niin tietoturva olisi mielestäni erittäin hyvällä tasolla. Tämän toteuttaminen edes jollain varmuudella voi olla hankalaa, koska kaapattu laite voi kohtalaisen helposti esiintyä kahtena laitteena.

Markus Jansson kirjoitti...

Bluetoothin saaminen tietoturvalliseksi on sellainen kikkailu, että en oikein menisi luottamaan sen turvallisuuteen. VAIKKA siis se laite lähettäisi vain salatun rimpsun sieltä, on niissä protokollatasolla haavoittuvuuksia, jotka voivat vaarantaa kaiken. EHKÄ, jos bluetooth korvattaisiin NFC:llä ja laite toimisi VAIN nappia painamalla aina kerran, niin sitten voisi olla toimiva ratkaisu.

Toki parasta olisi, jos laite vastaanottaisi kännykästä NFC:n kautta esimerkiksi "maksumääräyksen" tms. ja sitten asiakas voisi katsoa ko. laitteen pieneltä näytöltä ko. "maksumääräyksen" ja kuitata sen sillä laitteella. Ja vielä niin, että laite toimisi esimerkiksi vain PIN-koodilla tai vaatisi pankkikortin+PIN-koodin sisäänsä. SE olisi idiootinvarma systeemi.

Anonyymi kirjoitti...

On se ihme ettei Nordea ole jo palkannut sinua asiantuntijakseen. Olisikohan syynä se, että olet idiootti ja nämä "ajatuksesi" (= aivopierut) ovat täyttä paskaa :D

Antero-käyttäjä kirjoitti...

Nordean tunnuslukusovelluksessa on sekin huono(?) puoli että ei toimi rootatulla laitteella ollenkaan. Toki on tapoja saada käyttis näyttämään roottaamattomalta tietylle sovellukselle, mutta vaatii kikkailua. Perustuukohan tunnuslukusovelluksen turvallisuus siihen perinteiseen "security through obscurity"?

Anonyymi kirjoitti...

Joo no nämä atk-jutut on ihan jänskiä ja kaikkee, mutta meitä kiinnostaa enemmän oletko saanut koraanit takaisin?