This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

Verkkomaksut

From OWASP
Jump to: navigation, search

Ohjeet turvallisen verkkomaksuintegraation tekemiseen

Tämä lista on tarkoitettu muistilistaksi kehittäjille, jotka toteuttavat suomalaisten pankkien verkkomaksu-integraatioita. Listassa on nostettu esiin asioita, jotka on tärkeä huomioida kehitystyössä. Eri pankkien määritelmät poikkeavat toisistaan monelta osin, ja pankkikohtaisten erojen ottaminen huomioon kehitystyössä on tärkeää. Tämä lista kattaa yleisellä tasolla tyypillisiä verkkomaksuihin littyviä huomionarvoisia asioita, mutta se ei ole kattava lista turvallisen verkkomaksuintegraation toteuttamiseen. Kokonaisvaltaisesti turvallisen verkkokaupan toteuttamiseen on tarjolla paljon materiaalia muualla tällä sivustolla. [1]

1. Varmista pankin paluutietojen oikeellisuus

Varmista, että kaikissa "OK"-paluuosoitteissa tulevat paluutiedot tarkistetaan oikein käyttäen mukana tulevaa tarkistetta ja kaikkia tarvittavia tietokenttiä. Pankin laskeman tarkisteen vertaamisen lisäksi tulee varmistaa myös, että paluutiedot liittyvät juuri oikeaan ostotapahtumaan, mikäli paluuosoitteessa on viittaus siihen.

Huomioitavaa: Esimerkiksi Nordea-pankissa paluutiedot lasketaan myös CANCEL ja REJECT url:issa ilman RETURN_PAID-kenttää, eli pelkkä oikean tarkisteen olemassaolo ei riitä osoittamaan maksun onnistumista. Onnistuneessa maksussa tulee olla RETURN_PAID kenttä mukana. Jos sitä ei ole, ei maksu ole onnistunut. Eri pankkien määritelmät poikkeavat toisistaan myös muilla tavoin, mikä tulee ottaa huomioon toteutuksessa.

2. Varmista maksutapahtumien kertakäyttöisyys

Varmista, että maksun viitenumero/arkistointitunnus säilytetään. Maksutapahtumia hyväksyttäessä tulee tarkastaa, ettei vastaanotettua viitenumeroa/arkistointitunnusta ole käytetty aikaisemmin.

Toistohyökkäys voi olla mahdollinen, jos verkkomaksujen viitenumeroista tai arkistointitunnuksista ei pidetä kirjaa eikä tarkasteta.

3. Varmista maksun onnistuminen pankista transaktion jälkeen

Suurien ostosten yhteydessä on suositeltavaa aina tarkastaa tililtä, että maksu on todellisuudessa saapunut perille, ennen kuin tuote lähetetään asiakkaalle.

Mikäli tarkisteavaimet ovat päätyneet vääriin käsiin, on hyökkääjällä mahdollisuus luoda väärennettyjä maksuja. On suositeltavaa tehdä maksukysely jokaisen onnistuneen paluuviestin jälkeen, eikä luottaa pelkkään paluuviestiin.

4. Säilytä tarkisteavaimet turvallisesti

Tuntemalla tarkisteavaimet on mahdollista väärentää maksutapahtumia, minkä vuoksi pääsy niihin tulee rajata mahdollisimman harvoille.

Tarkisteavaimet tulee siirtää suojattuun sijaintiin siten, että:

  • ne eivät ole web-root tai sen alla olevassa hakemistossa
  • tiedostojärjestelmätason oikeudet tarkisteavaimiin on rajattu
  • tiedosto on salattu tai sijaitsee salatussa levyosiossa (vaatii salasanan palvelimen käynnistyessä)

Suositeltavaa on tehdä tarkisteavaimien käsittely täysin eriytetyssä ympäristössä erillään varsinaiselta verkkokauppapalvelimelta. Tämä rajoittaa pääsyä tarkisteavaimiin sekä oman henkilöstön, että mahdollisen hyökkääjän taholta.

5. Määritä prosessi tarkisteavaimien vaihtamiselle

Suunnittele prosessi, kuinka käytännössä vaihdetaan tarkisteavaimet niiden joutuessa vääriin käsiin tai avainhenkilöstön vaihtuessa.

6. Määritä paluuosoitteet käyttäen ainoastaan salattua yhteyttä

Varmista lähdekoodista, että kaikki paluuosoitteet alkavat https-alkuisella osoitteella, jolloin pankin tekemä uudelleenohjaus ei välity salaamattomana. Jos verkkokauppatoteutus tekee itse uudelleenohjauksen salattuun osoitteeseen vasta verkkokaupan päässä, tieto kulkee verkossa ensin salaamattomana.


Linkkejä eri pankkien verkkomaksujen palvelukuvauksiin

Nordea [2]

Aktia / SP / POP [3]

Handelsbanken [4]

Osuuspankki [5]

Tapiola [6]

S-pankki [7]

Sampo pankki [8]

Ålandsbanken ?

Linkkejä muiden toimijoiden palvelukuvauksiin

Verkkomaksut [9]

Luottokunta DMP (vaatii rekisteröitymisen) [10]