Monday, February 10, 2014

Tupaksen ohitus salasanaa palauttaessa

Tutustuin jokin aika sitten Tupas-palvelun toimintaperiaatteeseen. Kyseessä on varmasti monille tuttu palvelu, jossa verkkopankkitunnuksien avulla luodaan luotettava tunnistuminen. Alla kuvaus palvelun toiminnasta (Linkki):

Kuva 1. Palvelun kuvaus.


Käytännön esimerkkinä salasanan palautus:
  1. Asiakas surffaa palveluntarjoajan salasanan palautussivustolle.
  2. Palveluntarjoaja palauttaa asiakkaalle sivun, josta valitaan käytettävä pankki.
  3. Asiakas valitsee käytettävän pankin ja pankki tarkistaa pyynnön.
  4. Jos edellä mainittu pyyntö oli ok, pankki palauttaa kirjautumissivun asiakkaalle.
  5. Asiakas tekee tunnistuksen pankkiinsa.
  6. Onnistuneen tunnistuksen jälkeen pankki muodostaa asiakkaalle Tupas-tunnisteen.
  7. Asiakas tarkistaa tiedot ja hyväksyy niiden välittämisen palveluntarjoajalle.
  8. Palveluntarjoaja tarkistaa Tupas-tunnisteen ja se liitetään asiakkaan palvelutapahtumaan.
Vahva tunnistus on tehty. Asiakas pääsee vaihtamaan salasanansa.

Kävin muutaman sivun läpi, joissa Tupas-palvelu on käytössä. Yksi niistä oli Soneran Omat Sivut, missä on mahdollista luoda uudet tunnukset tai muokata olemassa olevia tunnuksia Tupas-tunnistusta hyödyntäen. Kuvassa kaksi on esitetty palvelun kuvauksen 2. vaihe.


Kuva 2. Verkkopankin valinta.

Seuraavaksi hypätään aivan loppumetreille, missä Tupas-tunniste tarkistetaan vielä palveluntarjoajan toimesta. Onnistuneen tarkastuksen jälkeen palveluntarjoaja luo salasanan vaihtosivun asiakkaan tiedoilla, joka on esillä kuvassa 3.


Kuva 3. Tunnuksen muokkaus.


Mutta kuinka tuo sivu sitten muodostetaan? Kuvassa 4 on esillä HTTP-pyyntö, josta evästeet ja referer on karsittu pois.

Kuva 4. HTTP-pyyntö.

Useita parametreja on käytetty, mutta suurin osa niistä on tarpeettomia. Jäljelle jätetään vain tarpeelliset ”bank” ja ”custCode” (hetu). Myös evästeet voidaan jättää pois kokonaisuudessaan, koska Tupas-tunnistuksen istuntoa ei sidota tähän pyyntöön mitenkään.


Lopputuloksena saadaan kasattua yksinkertainen salasanan palautuslomake:


Kuva 5. Salasanan palautuslomake.

Pelkän hetun avulla olisi siis ollut mahdollista kaapata toisen henkilön tunnukset sähköpostilaatikoineen.

17.1.2014 – Bugista mailattu Soneralle.
20.1.2014 – Ilmoitus Soneralta, että välitetty palvelun kehittäjille.
6.2.2014 – Testasin bugia, ei toimi enää. Mailia Soneralle.
7.2.2014 – Vastaus Soneralta, että korjaustoimenpiteet tehty.

Korjaustoimenpiteiden jälkeen kuvan 4 kaikki parametrit ovat muutettu pakollisiksi, vaikkakin arvoa ne eivät tarvitse. Asiakkaan tiedot palautetaan nyt Tupas-tunnistuksen istunnosta, ei parametreista.

Uusien tunnuksien luontia en pystynyt ymmärrettävistä syistä kokeilemaan Tupas-tunnistuksen avulla, joten en osaa sanoa, olisiko niiden väärentäminen onnistunut järjestelmään. Vinkkasin kyllä tarkistamaan, kuinka se on toteutettu.