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.
Eftirmálar:
Í þ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.
Þ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.
Við hönnun staðalsins var gengið út frá því að kerfið þyrfti að uppfylla eftirfarandi skilyrði:
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æ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
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
Gildi: einföld tala sem getur að auki haft kommu og tvo aukastafi þegar þörf er á.
Dæmi: 1000
eða 1000,00
id
Gildi: Einnar línu strengur (þ.e. strengur sem inniheldur ekki NL, LF eða CR tákn).
Dæmi: pnr:004198
notify
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
Gildi: löglegt URL á forminu http://... eða https://...
Dæmi: https://secure.verslun.is/continue.asp
Þ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.
Þ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).
reikn = 0515-14-600275-1012755239
id = pöntun:004198
upph = 1000,00
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
crtid
Hrafnkell Eiríksson hefur sett upp stuttar leiðbeiningar um undirskriftir og meðhöndlun lykla með openssl dulritunarpakkanum.
Þ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.
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.
Eftirfarandi greiðsla var framvæmd:
--
reikn = 0515-14-600275-1012755239
id = pöntun:004198
upph = 1000,00
signature = VKWxxkjQW4KQ06s1lXoaV3Kwn4BW2SAhqXx2ka
crtid = QKre99ojz1y7vljq0ywhlvXZhq
--
Þ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
).
https://secure.verslun.is/continue.asp?reikn=0515-14-600275-1012755239&upph=1000&id=p%F6ntun%3A004198
&signature=VKWxxkjQW409Xx7gKQ06s1lXoaV3Kwn62ka
&crtid=QKre99ojz1y7vljq0ywhlvXZhq
Þ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.
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.
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.
Þ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:
Þ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.
Þ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).