keskiviikko 28. toukokuuta 2008

Väärän todennuksen todennäköisyys

KELAn "kumma sattuma" houkuttelee spekuloimaan tupas-todennuksen turvallisuudella. Ei ole mitään julkista tietoa siitä, mistä KELAn ilmiö todellisuudessa johtui. Siksi kaikki tästä eteenpäin on todellakin spekulointia.

Peruskysymys on tämä: kuinka todennäköistä on, että pankkitunnuksilla pääsee todentamaan itsensä toisen käyttäjän nimissä?

Olen ollut Nordean verkkopankin asiakas jo 1980-luvun lopulta, kun pankin nimi oli vielä KOP ja yhteysvälineenä modeemi. Pankkiasiointi tapahtui pankin itsensä kehittämällä dos-ohjelmalla. Noista ajoista lähtien asiakasnumeroni on ollut kuuden merkin mittainen. Oletetaan, ettei numerossa ole tarkistusmerkkejä, vaan että jokainen kuuden merkin numerosarja on jonkun asiakasnumero.

Asiakasnumeron lisäksi kirjautumiseen tarvitaan kertakäyttötunnus, jotka tupas-järjestelmässä ovat numerokoodeja 0001-9999. Vaihtoehtoja on 9999 kappaletta, joten todennäköisyys arvata oikein on noin 1/10 000 eli 0,01 %.

Todennäköisyys sille, että arvaisin oikein naapurini kuusi merkkiä pitkän asiakasnumeron, on yksi miljoonasta. Jotta pääsisin katsomaan hänen tilitietojaan, pitäisi sen lisäksi arvata vielä nelinumeroinen koodi. Kokonaisuutena onnistumisen todennäköisyys olisi yksi 10 miljardista. Se on erittäin turvallista. Ja taloudellisen vahingon aiheuttamiseen tarvittaisiin vielä uusi 0,01 % todennäköisyydellä onnistuva arvaus, joka siirtäisi rahaa tililtä toiselle. Ei tule mitään.

Mutta ajatellaanpa asia toisin päin: mikä on todennäköisyys sille, että pääsisin todentamaan itseni jonkun satunnaisen henkilön puolesta? Tässä tapauksessa asiakasnumerolla ei ole merkitystä. Riittää, että antamani numerosarja osuu jonkun asiakkaan kohdalle. Sen jälkeen on arvattava vain nelinumeroinen koodi. Todennäköisyys päästä sisään vieraan henkilön nimissä on siis 0,01 %. Se ei enää ole kovin turvallista. Ja koska palvelu sallii kolme yritystä, onnistumisen todennäköisyys nousee vielä kolminkertaiseksi.

Entä miten todennäköistä on, että tämä tapahtuu vahingossa? Oletko joskus kirjoittanut oman asiakasnumerosi vahingossa väärin? Minä olen. Kuvitellaan, että joka 100. kerralla asiakas kirjoittaa vahingossa oman asiakasnumeronsa väärin. Todennäköisyys sille, että oikea koodi täsmää väärään asiakasnumeroon, on edelleen 0,01 %. Väärä todennus tapahtuu siis 100 * 10 000 eli joka miljoonas kerta.

Oletetaan, että Suomessa suoritetaan päivittäin 200 000 tupas-todennusta. Se merkitsisi, että keskimäärin joka viides päivä joku kirjautuu vahingossa jonkun toisen nimissä johonkin palveluun. Luultavasti näin ei käy, joten arvio joka sadannesta väärin kirjoitetusta asiakasnumerosta on ylimitoitettu.

Joka tapauksessa sähköisen asioinnin arkipäiväistyessä siinä alkavat vaikuttaa suurten lukujen lait. Ne pakottavat arvioimaan myös turvallisuutta uudessa valossa.

Ja tämä kaikki oli tietenkin pelkkää spekulointia...

17 kommenttia:

Anonyymi kirjoitti...

Olen ymmärtänyt, että tunnistuksessa tarkistetaan myös, että pankin asiakasnumero täsmää muihin tietoihin eli nimeen, henkilötunnukseen. Tällöin vaaraa ei olisi. En tiedä sitten miten tuo KELAn tapaus on onnistunut. Ehkä tästä kuullaan, koska pankeilla luulisi olevan tarve puolustaa järjestelmäänsä.

Anonyymi kirjoitti...

Siis ei mennyt perille tuo aiempi kommentti:
--
-Nordea: 6+4+4
-Sampo: 8+4+6+6
--
Eli Tupaksen tunnistus vaatii vielä sisäänkirjautumisen lisäksi oikeian vahvistustunnuksen arvaamisen eli jos menee satunnaisella asiakasnumerolla niin sen jälkeen on arvattava nordealla 9999*9999 oikein, ennenkuin saa Tupaksen läpi. Sammolla 9999*999999*999999.

Petteri Järvinen kirjoitti...

Kuten tämän päivän Aamulehden uutinen osoittaa, tupas-tunnistus voi todentaa käyttäjän väärin. Tästä on pitkä matka rahojen siirtoon tai muuhun vahinkoon, mutta jo tietojen näkyminen väärälle ihmiselle kertoo tietoturvan pettäneen.

Anonyymi kirjoitti...

Petteri, ihan ystävällisesti neuvoisin Sinua kokeilemaan itse Nordean tunnuksillasi Tupas tunnistusta Kelaan, et saa sitä suoritettua loppuun ilman vahvistustunnusta. Tuon jälkeen voit sitten laskea ne todennäköisyydet uusiksi.

En nyt viitsi tuohon AL:n uutiseen puuttua minkä ilmeisesti olet sinne vinkannut kun siinä on virheitä.

Anonyymi kirjoitti...

Kuka selittää miten nainen on pystynyt käyttäjätunnuksen ja salasanan syötettyään, nähdessään miehen nimen, antamaan vielä Nordean vaatima vahvistustunnus kortilta?

Norden kortilla vahvistustunnukset(4 merkkiä) ovat sidottu kirjaimiin(A-Z) ja Sampopankilla vahvistustunnukset(6 merkkiä) numerosarjoihin(0001-9999).

Anonyymi kirjoitti...

Petterin artikkeli on ajatuksia herättävä. Kun asiaa pohtii niin näyttää selvältä että Nordean verkkopankin tietoturva ei ole kunnossa.


Perusongelma on, että käyttäjätunnukset ovat liian tiheässä. Tunnuksen arvaaminen on helppoa. Tietojeni mukaan tunnuksessa voi olla 6, 7 tai 8 numeroa. Nordean mukaan verkkopankkiasiakkaita on 1.5 miljoonaa. Siis ainakin joka 66:s luku on tunnus (1.5 M / 99900000).


Tunnuksen jälkeen pitää arvata kertakäyttösalasana väliltä 1000-9999. Kokonaistodennäköisyys murtautua jollekin tunnukselle on näin (1/66) * (1/9000) eli noin 1/600 000.


Nykyään hyökkäykset tehdään suurella joukolla kaapatuita tietokoneita. 1/600 000 on loistava todennäköisyys. Esim. kryptauksessa on aivan eri luokan todennäköisyydet vastassa ja silti murtoja tehdään sielläkin.


On ihan ajan kysymys että tuo korttitalo kaatuu.

Petteri Järvinen kirjoitti...

Anonyymille, joka kirjoitti:

"Petteri, ihan ystävällisesti neuvoisin Sinua kokeilemaan itse Nordean tunnuksillasi Tupas tunnistusta Kelaan, et saa sitä suoritettua loppuun ilman vahvistustunnusta."

Kokeilu on. Kirjoitin 6-numeroisen asiakasnumeron (sama 1980-luvun lopulta lähtien) ja 4-numeroisen kertakäyttötunnuksen. Muuta ei tarvittu, pääsin katsomaan tietoni.

On liki mahdotonta arvata juuri tietyn henkilön asiakasnumeroa ja seuraavaa vapaata kertakäyttötunnusta. Sen sijaan on mahdollista, että antamalla satunnaisen 6-numeroisen asiakasnumeron ja arvaamalla 4-numeroisen kertakäyttökoodin, pääsee katsomaan jonkun toisen henkilön tietoja.

Jos oletetaan, että kaikki 6-numeroiset asiakasnumerot ovat käytössä, todennäköisyys arvata kertakäyttötunnus oikein kolmella yrityksellä on 1/3333 eli 0,3 promillea. Se on aivan liian korkea, jotta tässä tapauksessa voitaisiin enää puhua vahvasta todentamisesta.

Toki tämä on ns. worst-case skenaario. Muilla pankeilla asiakasnumerot ovat pidempiä (tällä ei tosin ole muuta merkitystä kuin se, että silloin kaikki mahdolliset asiakasnumerot eivät luultavasti ole käytössä, joten on vaikeampi osua arpomalla toisen henkilön kohdalle) tai kertakäyttösalasanat ovat pidempiä (mikä vaikeuttaa tuntuvasti arvausta).

Perusongelmaa nämä parannukset eivät kuitenkaan poista.

Anonyymi kirjoitti...

Tilannetta voi tarkastella myös näin: hyväksyisitkö jonkin toisen palvelun kohdalla, että käyttäjätunnus on aina 6-8 merkkiä, pelkkiä numeroita, ja salasana on aina luku väliltä 1000-9999? Minä en.


Kun kerrotaan vielä, että palvelulla on yli miljoona käyttäjää niin se alkaa kuulostaa alttiilta tavalliselle brute-force -hyökkkäykselle.


Se että salasanat ovat vaihtuvia lisää tässä väärää turvallisuuden tunnetta. Brute-force -hyökkäyksen kannalta se on ihan sama.


Windows-toimialue tavanomaisilla asetuksilla ei hyväksy noin surkeita salasanoja. Pankkiin niillä kyllä pääsee!


-Harri

Anonyymi kirjoitti...

Minulta Nordea kyllä vaatii varmistustunnuksen vielä salasanan jälkeen, ennen Kelaa tai tilitietoja.
Onko tässä jotain asiakaskohtaisia eroja.

Sitä en ymmärrä miksi salasanan jälkeen pitää näyttää henkilötunnus. Jokainen tietää omansa. Nimi riittää hyvin virhenäppäilyjen varalle.

Petteri Järvinen kirjoitti...

"Minulta Nordea kyllä vaatii varmistustunnuksen vielä salasanan jälkeen, ennen Kelaa tai tilitietoja.
Onko tässä jotain asiakaskohtaisia eroja."

Mitä tarkoitat salasanalla?

Itselläni on asiakasnumero, joka on aina sama (6 numeroa) sekä vaihtuva, listasta katsottava kertakäyttötunnus (4 numeroa). Kumpikaan ei ole salasana.

Anonyymi kirjoitti...

Tarkoittaa vahvistustunnuksia, eli nordean nelinumeroisia koodeja tunnuksilla A-U kortin alaosassa, ilman noita et Tupas -tunnista läpäise eli kokeile nyt sitä ihan oikeasti ellet muuten usko.
--
Päivän Kauppalehdessä joku it-asiantuntija sentään osaa todennäköisyyslaskentaa:

''– It-asiantuntijat arvioivat, että todennäköisyys tällaiselle sattumalle on korkeintaan 1:15 miljoonaan. Sitä voi sanoa käänteiseksi lottovoitoksi, sanoo Nordean viestinnän johtaja Lauri Peltola.''

http://www.kauppalehti.fi/5/i/talous/uutiset/etusivu/uutinen.jsp?oid=12290

Anonyymi kirjoitti...

https://solo1.nordea.fi/nsp/engine
Tämän sivun käyttäjätunnus (minulla(hyvin vanha asiakas) 6 numeroa) ja
salasana(4 numeroa) jälkeen saavun sivulle, jolla kerrotaan nimeni ja henkilötunnukseni.
Siitä ei pääse jatkamaan ennen vahvistustunnuksen(4 numeroa) antamista.

Koska naisella on sampon avainlukukorttia, ei hän pysty vastaamaan kysymykseen "anna kirjainta H vastaava vahvistustunnus" Sampon kortissa ei ole kirjaimia vaan numeroita ja lisäksi vahvistustunnukset ovat 6 numeroa pitkiä.

Petteri Järvinen kirjoitti...

"Tarkoittaa vahvistustunnuksia, eli nordean nelinumeroisia koodeja tunnuksilla A-U kortin alaosassa, ilman noita et Tupas -tunnista läpäise eli kokeile nyt sitä ihan oikeasti ellet muuten usko."

Niitä tunnuksia kysytään vain, kun siirretään rahaa tililtä toiselle. Kelaan kirjauduttaessa kysytään vain asiakasnumero ja seuraava vapaa kertakäyttötunnus (neljä numeroa).

Todennäköisyys sille, että jos asiakasnumero on jonkun käytössä, satunnaisesti annettu 4-numeroinen tunnus päästää sisään järjestelmään, on 1:9999 eli noin 0,01 prosenttia.

"Päivän Kauppalehdessä joku it-asiantuntija sentään osaa todennäköisyyslaskentaa:"

Ehkä osaakin, mutta olisi hauska nähdä hänen laskelmansa.

Anonyymi kirjoitti...

>>. Kelaan kirjauduttaessa kysytään vain asiakasnumero ja seuraava vapaa kertakäyttötunnus (neljä numeroa).

Höpöhöpö, tarvitset asiakasnumeron ja seuraavan käyttäjätunnuksen ja olet sisällä Nordean verkkopankissa, sitten eteen tulee sun henkilötiedot, joiden hyväksymiseen tarvitset sen nelinumeroisen vahvistustunnuksen.

Ilman tuota viimeistä vahvistustunnuksen antamista et saa Tupas -tunnistusta hyväksytysti suoritettua ja pääse takaisin Kelan palveluun tunnistettuna takaisin.

Taidat asioida verkon sijasta perinteisesti tiskillä....

Mene sinne Kelan sivuille ja käy tuo Tupas tunnistautuminen läpi Nordean tunnuksillasi niin että näet ihan omin silmin kuinka tuo toimii. Jankkaaminen mutu pohjalta ja sen mukaan todennäköisyyksien laskeminen ja kommentointi lehdille tekee sut tällä kertaa naurunalaiseksi.

Petteri Järvinen kirjoitti...

Heh heh, olen asioinut verkkopankissa 1980-luvulta lähtien. Ehkä juuri sen vuoksi minulta ei kysytä Kelaan mennessä muuta kuin Nordean asiakasnumero ja ensimmäinen vapaa kertakäyttötunnus.

Ilmeisesti joiltakin käyttäjiltä kysytään kaksi ja joiltakin kolme tunnusta. Olisi hauska tietää miksi.

Ja kun nyt menneitä muistellaan, niin... ensimmäinen ohjelma oli KOPin omatekoinen merkkipohjainen dos-pankkisovellus, joka haki tapahtumatiedot modeemilla näytölle. 1990-luvun puolivälissä tuli mahdolliseksi käyttää nettiyhteytä (ja vieläpä täysin suojaamattomalla Telnet-yhteydellä!). Www-selain ja salattu ssl-yhteys tuli muistaakseni 1995 tai 1996. Jep, turvatekniikka on vuosien varrella kehittynyt käyttäjämäärien kasvaessa. Niin pitää olla jatkossakin.

Anonyymi kirjoitti...

Kirjauduin juuri Kelan asiointipalveluun Nordean verkkopankin kautta. Minulta kysyttiin käyttäjätunnus (7 numeroa) ja kertakäyttötunnus, ei muuta. Ja pääsin selaamaan Kelan tietoni.

Mielestäni tässä asiassa on paljonkin syytä kohuun, ainakin Nordean kohdalla. Löysät heitot "lottovoiton todennäköisyyksistä" voi lopettaa. Tarvittava todennäköisyysmatematiikkakin on niin simppeliä että eihän tästä pitäisi edes kinaa syntyä.

Suomalaiset verkkopankit, tai ainakin Nordea, ovat vaan asettaneet helppokäyttöisyyden tietoturvan edelle.

-Harri

Anonyymi kirjoitti...

Olihan se nyt ihan itsekin kokeiltava, että kuinka sinne Kelaan mentiinkään. Joskus olen siellä käynytkin, mutta sen verran tuntui olevan hajontaa noissa tavoissa. Itse tunnistauduin Nordean tunnuksilla ja minulta kysyttiin ainoastaan käyttäjätunnus(kiinteä 7-numeroa) ja tunnusluku(vaihtuva 4-numeroa), kuten https://solo1.nordea.fi/nsp/engine -sivu niitä nimittää.

Nordeasta S-Pankkiin, josta pitänee se mainita, että heillä on käyttäjätunnus(asikasnumero) 8-merkkinen, siis nimenomaan merkkinen, eli siinä on myöskin kirjaimia, en toki tiedä voiko positioltaan mikä tahansa merkki olla joko kirjain tai numero, mutta huomattavasti laajempi valikoima niitä kuitenkin löytyy. Tosin näyttäisi sille, ettei kirjaimista ole käytössä kuin CAPSIT.

Noita todennäköisyyksiä on ollut mielenkiintoista seurata, joillekin on hieman liian hankala ymmärtää mitä eroa on satunnaisella tilillä vs. jollakin tietyllä tilillä, liikutaan kuitenkin todennäköisyyksien osalta aivan eri kertaluokissa. Lisäksi jotkut eivät tunnu millään ymmärtävän, mitä lausahdus "...oletetaan, että kaikki 6-numeroiset asiakasnumerot ovat käytössä..." tarkoittaa, kyllä semmoinen oletus vaan voidaan tehdä eikä siinä sinänsä ole mitään väärää. Se on sitten eri asia pitääkö tuo oletus paikkaansa todellisuuden kanssa.

-Juha