Heim: netgr.anomy.net

Einfaldur netgreiðslustaðall - tillaga

Dags: 7. mars 2002 (síðast breytt 28. mars 2002)

Staða: útg 0.92 - uppkast

Höfundar: Már Örlygsson (mar@anomy.net) viðmótshönnuður og ráðgjafi,
og Logi Ragnarsson (logi@logi.org) sérfræðingur í tölvuöryggi og dulmálsfræði.


"Einfaldar netgreiðslur" eru staðlað HTTP viðmót sem hefur það hlutverk að einfalda framkvæmd venjulegra millifærsluaðgerða í núverandi heimbankakerfi íslensku bankanna.

Einföld netgreiðsla hefst þannig að peningaupphæðin og allar upplýsingar um móttakanda greiðslunnar og endaskilyrði eru sendar heimabankanum sem hluti af (langri) vefslóð.

Um leið og viðskiptavinurinn (notandinn) hefur framkvæmt greiðsluna getur heimabankinn raðað saman annari langri vefslóð sem felur í sér dulritaða undirskrift bankans og staðfestingu á því að viðkomandi greiðsla hafi verið framkvæmd.

Efnisyfirlit

Eftirmálar:

  1. Þörfin fyrir "bankahlið"
  2. Öryggi, dulritun og persónuvernd
  3. Þörfin fyrir þróunarumhverfi

Um þetta skjal

Í þessu skjali er tekið á þeim skilyrðum sem hver heimabanki þarf að uppfylla til að styðja Einfaldar netgreiðslur og hvaða upplýsingar eru sendar hvert og á hvaða formi þær eru. Þá eru skilgreind stöðluð breytunöfn sem eru notuð í öllum aðgerðum.

Til að fá nauðsynlega yfirsýn yfir þær hugmyndir sem hér verður fjallað um, þá er lesendum ráðlagt að kynna sér Myndskreytt sýnidæmi um framkvæmd netgreiðslu

Þetta skjal er orðið það stöðugt að það á að vera hægt að byrja þróun hugbúnaðarlausna sem byggja á staðlinum.

Markmið hönnunarinnar

Það er rétt að taka fram að Einföldum netgreiðslum, sem greiðslufyrirkomulagi, er ekki ætlað að leysa af hólmi stærri og flóknari viðskiptakerfi sem verið er að þróa um þessar mundir fyrir stærri fyrirtæki og stofnanir. Þvert á móti er netgreiðslunum ætlað að vera einföld, ódýr lausn fyrir smærri viðskiptaaðila og einstaklinga sem vilja gerast virkir þáttakendur í rafrænum viðskiptum á netinu. Lykilorðin eru einfaldleiki og aðgengileiki fyrir alla.

Hönnun Einfaldra negreiðslna hefur tvíþætt markmið:

Í fyrsta lagi er markmiðið að lækka þann þröskuld sem nú stendur í vegi fyrir því að einstaklingar og smærri fyrirtæki stundi rafræn viðskipti sín á milli hversdagslega. Hver sem er á að geta sett upp einfalt viðskiptaviðmót á vefsvæði sínu (eða í tölvupósti) og auðvelda þannig viðskiptavinum sínum að greiða fyrir vörur og þjónustu gegnum vefútibúi síns viðskiptabanka með hröðum og einföldum hætti.

Þannig má líta á Einfaldar netgreiðslur sem hentuga leið fyrir íslenskan almenning til að komast á bragðið með fjölbreytt netviðskipti - sem nauðsynlegt fyrsta skref í átt til þess að taka í notkun flóknari og fullkomnari viðskiptakerfi. Ennfremur má búast við að stórlækkaður byrjunarþröskuldur muni leiða af sér sprengingu hjá Íslendingum í notkun netsins sem viðskiptaumhverfis. Sagan hefur kennt okkur að við slíkar aðstæður verður gjarnan til mikil nýsköpun og mikil gróska í viðskiptum.

Í öðru lagi er markmiðið að lækka þátttökuþröskuldinn fyrir bankana sjálfa. Einfaldar netgreiðslur eru hannaðar þannig að allar bankastofnanir geta tekið þátt án þess að fara út í rándýrar framkvæmdir. Allt sem þarf til að netgreiðsluvæða hvern banka eru smávægilegar viðbætur við þjónustuviðmót núverandi heimabanka. Þessar viðbætur eru bæði auðgerðar og ódýrar í framkvæmd - sérstaklega þegar litið er til þess hve fljótt sú fjárfesting mun skila sér í formi stóraukninna þjónustugjalda.

Ennfremur er hönnun kerfisins þeim kostum gædd að ekki er krafist aukins samstarfs milli þeirra bankastofnanna sem fylgja staðlinum. Því þurfa bankarnir ekki að vera sammála um að taka þátt á sama tíma. Einn banki getur byrjað að bjóða viðskiptavinum sínum upp á Einfaldar netgreiðslur og uppskorið ávöxt erfiðis síns um leið, án þess að þurfa að bíða eftir öðrum bönkum.

Hugmyndin er það góð, og hönnunin það einföld að það má telja næsta öruggt að ef einn banki ríður á vaðið, munu allir hinir fylgja í kjölfarið fyrr en síðar.

Öryggis og virknikröfur

Við hönnun staðalsins var gengið út frá því að kerfið þyrfti að uppfylla eftirfarandi skilyrði:

  1. Kerfið verður að vera a.m.k. jafn öruggt og aðrar sambærilegar greiðsluaðferðir.
  2. Kerfið á að vera almennt og má ekki gera upp á milli viðskiptavina mismunandi bankastofnana.
  3. Kerfið þarf að virka með núverandi (heima)bankakerfum og reikningsnúmerum.
  4. Móttakendur og greiðendur þurfi hvorki að setja upp sérstakan hugbúnað né greiða sérstaklega fyrir þátttöku.
  5. Greiðslur verða að vera fljótlegar og sáraeinfaldar í framkvæmd.
  6. Hver sem er verður að geta sett upp greiðsluhnapp/-slóð hvar sem er.
  7. Greiðendur þurfi ekki að treysta neinum fyrir viðkvæmum viðskipta upplýsingum öðrum en sínum viðskiptabanka.
  8. Greiðslur séu ekki persónugreinanlegar.

Greiðslubeiðnin

Til að bjóða upp á Einfaldar netgreiðslur þarf viðkomandi banki fyrst að skilgreina eina ákveðna grunn-vefslóð sem tekur á móti netgreiðslubeiðnum. Sú slóð getur litið hvernig sem er út. Þó er það kostur ef hún er stutt og líkleg til að breytast ekki að óþörfu.

Dæmi um grunnslóðir:

https://www.sparibanki.is/netgr.asp?flokkur=2
https://www.vefbanki.is/millifaersla.asp
https://banki.is/netgr/

Netgreiðslubeiðnir eru síðan framkvæmdar með því að kalla á grunn-veflóðina sem bankinn skilgreinir með lista af fyrirfram þekktum færibreytugildum skeyttum aftan á.

Dæmi um netgreiðslubeiðnir:

https://www.sparibanki.is/netgr.asp?flokkur=2&reikn=0515-14-600275-1012755239&upph=1000
https://www.vefbanki.is/millifaersla.asp?reikn=0515-14-600275-1012755239&upph=1000
https://banki.is/netgr/?reikn=0515-14-600275-1012755239&upph=1000

Færibreytur

Færibreyturnar sem bankinn þarf að kunna að taka á móti eru fimm talsins: reikn, upph, id, notify, redir.

Einungis tvær færibreytanna (reikn og upph) eru alltaf nauðsynlegar. Til að teljast hafa lágmarks netgreiðsluvirkni dugir bönkum að einungis á móti þessum tveimur færibreytum.

Hinar þrjár eru valfrjálsar breytur sem móttakandi greiðslunnar getur valið að senda með greiðslubeiðninni og ætlast þá til ákveðinnar virkni af bankanum á móti.

reikn

Upplýsingar um innleggsreikning og móttakanda greiðslunnar.

Gildi: Gildi færibreytunnar er samsett úr fjórum tölustrengjum (bankaútibú, höfuðbók, reikningsnúmer, kennitala móttakanda) með bandstriki á milli.

Dæmi: 0515-14-600275-1012755239

upph

Upphæðin sem greiða á í íslenskum krónum.

Gildi: einföld tala sem getur að auki haft kommu og tvo aukastafi þegar þörf er á.

Dæmi: 1000 eða 1000,00

id

Tilvísunarnúmer sem móttakandi greiðslunnar tilgreinir, til auðkenningar greiðslunnar í sínum kerfum.

Gildi: Einnar línu strengur (þ.e. strengur sem inniheldur ekki NL, LF eða CR tákn).

Dæmi: pnr:004198

notify

Ef móttakandi greiðslunnar óskar eftir að fá sjálfvirka tilkynningu um að greiðslan hefi verið framkvæmd, þá gefur hann annað hvort upp póstfang eða vefslóð. Bankinn velur viðeigandi aðgerð eftir því hvort valið er.

Gildi: löglegt URL. (mögulega má útvíkka þetta í framtíðinni til að biðja sérstaklega um XML-RPC eða SOAP tilkynningar.)

Dæmi: mailto:netgr@verslun.is eða https://www.verslun.is/all_ok.asp

redir

Vefslóð til að senda viðskiptavininn áfram á, að greiðslu lokinni, ásamt staðfestingarupplýsingum um að greiðslan hafi farið fram.

Gildi: löglegt URL á forminu http://... eða https://...

Dæmi: https://secure.verslun.is/continue.asp

Staðfestingarskeyti og undirritanir

Þegar/ef bankinn staðfestir (með tölvupósti, í vefslóð, eða á annan hátt) að greiðsla hafi verið framkvæmd er nauðsynlegt að staðfestingarskeytið sé undirritað með öruggum hætti til að koma í veg fyrir að hægt sé að falsa staðfestingarnar.

Því er nauðsynlegt fyrir hvern banka að koma sér upp lyklapari ("private" lykill og "public" lykill) sem hann notar alltaf við undirskriftir og viðskiptavinir/söluaðilar geta sannreynt undirskriftina með "public" lykli bankans, en lykillinn þarf að vera aðgengilegur almenningi á opnu vefsvæði.

Gert er ráð fyrir að Bankarnir dreifi "public" lyklum sínum á formi sem fylgir x.509 staðlinum og undirskriftirnar verði framkvæmdar m.v. staðlaða framsetningu á upplýsingunum í greiðslubeiðninni (sjá að neðan) og verði á PKCS#1 formi, útgáfu 1.5 eða nýrri.

Framkvæmd undirritunar

Það er mikilvægt að undirskriftir séu óháðar þeirri aðferð sem er notuð til að senda staðfestinguna. Þannig er tryggt að aðeins ein undirskrift verður til fyrir hverja greiðslu í kerfinu.

Undirritun er framkvæmd á samanlögðum gildum færibreytanna reikn, id og upph (í þessari röð, upph alltaf með kommu og tveimur aukastöfum!) með line-feed tákni á milli ("\n", ascii: 10 dec).

Ef breytugildin eru eftirfarandi:
reikn = 0515-14-600275-1012755239
id = pöntun:004198
upph = 1000,00
...er strengurinn til undirritunar þessi:
0515-14-600275-1012755239\npöntun:004198\n1000,00

Þá býr bankinn til tvær nýjar færibreytur sem bætast við staðfestingarsendinguna: signature og crtid.

signature

Inniheldur örugga undirskrift bankans á staðfestingarupplýsingunum (sbr. að ofan)

crtid

(Certification ID) breytan inniheldur SHA-1 hakk af x.509 skírteini bankans. Þetta hakk dugir til að fletta upp réttum lykli hjá versluninni til að sannreyna undirskrfitina með.

Hrafnkell Eiríksson hefur sett upp stuttar leiðbeiningar um undirskriftir og meðhöndlun lykla með openssl dulritunarpakkanum.

Tölvupóstur

Þegar tölvukerfi bankans sendir staðfestingu á greiðslu í tölvupósti (á netfang gefið upp í færibreytunni notify) er mikilvægt að innihald skeytisins sé með fyrirfram þekktu sniði.

Subject: lína skeytisins skal innihalda einungis gildi id færibreytunnar.

Dæmi um bréfhausa:
To: notify@verslun.is
Subject: pöntun:004198

Að öðru leyti skal bréfið innihalda mannlæsan texta (t.d. "Eftirfarandi greiðsla var framvæmd:"), og svo nöfn færibreytanna reikn, id, upph, signature og crtid ásamt gildum þeirra - hver í sinni línu og línur með tveimur bandstrikum "--" fyrir ofan og neðan breytulistann.

Dæmi um innihald skeytis:
Eftirfarandi greiðsla var framvæmd:
--
reikn = 0515-14-600275-1012755239
id = pöntun:004198
upph = 1000,00
signature = VKWxxkjQW4KQ06s1lXoaV3Kwn4BW2SAhqXx2ka
crtid = QKre99ojz1y7vljq0ywhlvXZhq
--

Vefslóðir

Þegar greiðslustaðfestingar eru sendar sem hluti af vefslóð þá þarf undirritun bankans að fylgja sem hluti af vefslóðinni.

Þannig raðar bankinn saman færibreytunum reikn, id, upph, signature og crtid aftan á vefslóðina sem var gefin upp í redir færibreytunni (og/eða notify).

Dæmi um staðfestingarslóð:
https://secure.verslun.is/continue.asp?reikn=0515-14-600275-1012755239&upph=1000&id=p%F6ntun%3A004198
&signature=VKWxxkjQW409Xx7gKQ06s1lXoaV3Kwn62ka
&crtid=QKre99ojz1y7vljq0ywhlvXZhq

Villumeðhöndlun

Það er í anda Einfaldra netgreiðsla að allt sem viðkemur "villumeðhöndlun" er að mestu leyti óskilgreint.

Ekki er gert ráð fyrir formlegum samskiptum milli banka og móttakanda greiðslu, ef greiðsla er ekki framkvæmd (t.d. ef ekki er næg innistæða á reikningnum eða t.d. ef kennitala móttakanda er röng).

Því er það á ábyrgð móttakanda að meta það hversu lengi hann bíður eftir greiðslustaðfestingu áður en hann álítur mögulegum viðskiptum slitið.

Ef svo ólíklega vill til að verslunin fær aldrei staðfestinguna vegna netbilunar og ályktar sem svo að viðskiptum hafi verið slitið, þá má alltaf rekja greiðsluna "handvirkt" gegnum reikningsstofu bankanna, t.d. með því að skoða reikningsyfirlit beggja aðila. Slíkar aðstæður skapa vissulega óþægindi fyrir bæði greiðanda og móttakanda, en líkurnar á að beinn óafturkallanlegur skaði hljótist af er litlar sem engar.

 


 

Eftirmáli A: Þörfin fyrir "bankahlið"

Bankahlið eru ekki eiginlegur hluti af staðli um Einfaldar netgreiðslur. Þó er ekki úr vegi að fjalla stuttlega um mögulegt hlutverk slíkra hliða.

"Bankahlið" eru afar einföld vefþjónusta sem gerir ekkert annað en að taka við nafnlausum greiðslubeiðnum og vísa þeim áfram á skilgreinda netgreiðsluslóð þess heimabanka sem viðskiptavinurinn velur.

Þannig verða bankahlið ekki "nauðsynleg" fyrr en tveir eða fleiri bankar eru farnir að bjóða upp á Einfaldar netgreiðslur af fullum krafti. Eftir það er fyrirsjáanlegt að eftirspurn verði eftir þjónustu bankahliðs.

Engin sérstök krafa er gerð á að greiðslubeiðni fari í gegnum bankahlið, heldur er því einungis ætlað að vera gagnleg þjónusta fyrir þá sem ætla að nýta sér Einfaldar netgreiðslur. Bankahliðið einfaldar uppsetningu greiðsluhnappa á vefsvæðum smærri fyrirtækja og samtaka sem ekki sjá sér hag í að halda utan um vefslóðir hinna ýmsu heimabanka og sjá um að senda notendur sína beint þangað.

Það er engin ástæða er til að setja takmarkanir á hverjir mega bjóða upp á bankahliðsþjónustu, enda er þjónustan sem bankahlið veita bæði einföld og "ómerkileg" (þó hún sé fyrir marga mjög gagnleg). Þá er í sjálfu sér ekkert því til fyrirstöðu að fjölmörg bankahlið skjóti upp kollinum og keppist um að veita fyrirtækjum og samtökum þjónustu sína. T.d. gætu einn eða fleiri bankar tekið að sér að reka bankahlið saman eða í sitthvoru lagi.

Færibreytur

Bankahliðið tekur færibreyturnar sem ætlaðar eru bankanum og skeytir þeim óbreyttum aftan á móttökuvefslóð þess heimabanka sem notandinn velur.

Bankahliðið getur að auki kosið að taka við öðrum færibreytum s.s. nafni á banka, t.d. ef vefverslunin þekkir viðskiptabanka viðskiptavinarins og sendir þær upplýsingar með greiðslubeiðninni á vefhliðið. Slík virkni er ekki skilgreind frekar í þessum staðli.

Ennfremur má ímynda sér að bankahliðsþjónustuvefir taki upp á að veita ýmsar viðbótar þjónustur, s.s. upplýsingagjöf, "public" lyklasafn, o.þ.h.

Eftirmáli B: Öryggi og dulritun

Það er algengt að spurningar vakni um hvort ekki sé þörf á að dulrita greiðslubeiðnir og greiðslustaðfestingar.

Slíkri dulritun fylgir það vandamál að bankinn þarf þá að þekkja "public" lykil söluaðilans, en það kallar á aukið flækjustig í kerfinu sem ekki er vert að bæta við staðalinn á þessu stigi málsins.

Ennfremur er þörfin fyrir dulritun á gögnum raunverulega ekki mjög mikil. Þar kemur til tvennt:

  1. Gögnin sem er verið að senda hafa afar takmarkað gildi eins og þau koma fyrir í staðfestingarsendingunni, (bankabók, upphæð og eitthvert tilvísunarnúmer). Því er afar lítil hætta á að sendingin sé hleruð og upplýsingarnar misnotaðar.
  2. Greiðslubeiðnin fer yfir dulritaða SSL tengingu til bankans (https://...) og verslunin getur tekið á móti greiðslustaðfestingum með sama hætti með því að setja upp SSL þjónustu hjá sér.

Þar með eru frekari útvíkkanir á samskiptum banka og móttakanda greiðslu alls ekki útilokaðar, heldur þykir einfaldlega ekki ástæða til að kveða á um þá útvíkkun í þessari útgáfu staðalsins.

Aðrir áhyggjuþættir snúa að persónuvernd notenda kerfisins:

Hvorki vefverslunin, né bankahliðið fá aðgang að persónulegum upplýsingum um viðskiptavininn (fyrir utan þær upplýsingar sem hann kýs að veita þeim af fúsum og frjálsum vilja). Einu upplýsingarnar sem bankahliðið og vefverslunin hafa eru IP-tala viðskiptavinarins og viðskiptabanki hans.

Ennfremur hefur bankahliðið engin tök á að vita hvaða greiðslubeiðnir eru raunverulega kláraðar og hverjar eru bara "fikt" eða "mistök" viðkomandi netnotanda.

Einungis viðskiptabankinn veit hver greiðandinn er.

Eftirmáli C: Þörfin fyrir þróunarumhverfi

Þegar móttakendur greiðslna eru farnir að taka á móti greiðslustaðfestingum og sannreyna undirskriftir með sjálfvirkum hætti, þá skapast augljóslega þörf fyrir þróunarumhverfi til að auðvelda villuleit og framkvæma þykjustu greiðslur.

Einhver þarf að koma upp þykjustu "heimabanka" kerfi sem tekur við greiðslubeiðnum, meltir gildi færibreytanna, og sendir sjálfkrafa til baka undirritaða staðfestingu á að ímynduð greiðsla hafi verið framkvæmd.

Aðgangur að svona þróunarbanka væri augljóslega mjög verðmæt þjónusta fyrir þá sem forrita tengingar við Einfalda netgreiðslukerfið og því mætti eflaust rukka notendur fyrir að fá að nýta sér þróunarkerfið.

Þannig væri ekki úr vegi að sami aðili og sér um að veita bankahliðsþjónustu veitti þróunar-þjónustu líka, og hefði tekjur sínar af því.


©2002 Már Örlygsson (mar@anomy.net) og Logi Ragnarsson (logi@logi.org).