Krediidipanga Internetipangas realiseeritud “Pangalingi” päringute tehniline kirjeldus. Dokument viimati muudetud: 16.10.2014 Krediidipanga internetipangas (https://i-pank.krediidipank.ee/) on hetkel realiseeritud järgmised nn. “Pangalingi” päringud. 1. Autentimine: Portaal → Pank → Portaal a. Ajapitserist sõltumatu lahendus (4012->3013) Portaal Kasutaja Pank 1: portaali sisenemine 2: Autentimismeetodi valik 3: Valik: Autentimine panga kaudu 4: 4012 genereerimine (sh. nons) 5: 4012 signeerimine 6: Signeeritud 4012 kasutajale 7: Signeeritud 4012 kasutajalt panka läbi turvakanali (HTTPS) 8: 4012 signatuuri kontroll 9: Isiku tuvastamise päring 10: Kasutaja vastus päringule 11: Kasutaja ja 4012 põhjal vastus 3013 12: Vastuse 3013 signeerimine 13: Signeeritud 3013 kasutajale 14: HTTPS kaudu 3013 portaali 15: 3013 Signatuuri kontroll 16: 3013 Nonsi kontroll 17: 3013 Isikukoodi kontroll 18: Sessiooni loomine 19: Autenditud kasutaja sessioon Joonis 1. Autentimise mudel: Portaal → Pank → Portaal: ajapitserist sõltumatu lahendus b. Ajapitserist sõltuv lahendus (4011->3012) Portaal Kasutaja Pank 1: portaali sisenemine 2: Autentimismeetodi valik 3: Valik: Autentimine panga kaudu 4: 4011 genereerimine 5: 4011 signeerimine 6: Signeeritud 4011 kasutajale 7: Signeeritud 4011 kasutajalt panka läbi turvakanali (HTTPS) 8: 4011 signatuuri kontroll + Ajapitseri kontroll 9: Isiku tuvastamise päring 10: Kasutaja vastus päringule 11: Kasutaja ja 4011 põhjal vastus 3012 12: Vastuse 3012 signeerimine 13: Signeeritud 3012 kasutajale 14: HTTPS kaudu 3012 portaali 15: 3012 Signatuuri kontroll 16: 3012 Ajapitseri kontroll 17: 3012 Isikukoodi kontroll 18: Sessiooni loomine 19: Autenditud kasutaja sessioon Joonis 2. Autentimise mudel: Portaal → Pank → Portaal: ajapitserist sõltuv lahendus Autentimispäringu 4011 väljad: URL: https://i-pank.krediidipank.ee/auth Jrk. 1 2 3 4 5 6 7 - Välja nimi VK_SERVICE VK_VERSION VK_SND_ID VK_REPLY VK_RETURN VK_DATETIME VK_RID VK_MAC VK_ENCODING VK_LANG Pikkus 4 3 15 4 255 24 30 700 12 3 Kirjeldus Teenuse number (4011) Kasutatav krüptoalgoritm (008) Sõnumi koostaja (partneri) ID Oodatava vastuspaketi kood (3012) Kaupmehe URL, kuhu vastatakse Sõnumi genereerimise aeg DATETIME formaadis Sessiooniga seotud identifikaator Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 Soovitav suhtluskeel (EST, ENG või RUS) Autentimispäringu 4012 väljad: URL: https://i-pank.krediidipank.ee/auth Jrk. 1 2 3 4 5 6 7 8 - Välja nimi VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_NONCE VK_RETURN VK_DATETIME VK_RID VK_MAC VK_ENCODING VK_LANG Pikkus 4 3 15 15 50 255 24 30 700 12 3 Kirjeldus Teenuse number (4012) Kasutatav krüptoalgoritm (008) Sõnumi koostaja (partneri) ID Sõnumi saaja (panga) ID Päringu koostaja poolt genereeritud juhuslik nonss Kaupmehe URL, kuhu vastatakse Sõnumi genereerimise aeg DATETIME formaadis Sessiooniga seotud identifikaator Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 Soovitav suhtluskeel (EST, ENG või RUS) Autentimisvastuse 3012 väljad: Jrk. 1 2 3 4 5 6 7 8 9 10 11 Välja nimi VK_SERVICE VK_VERSION VK_USER VK_DATETIME VK_SND_ID VK_REC_ID VK_USER_NAME VK_USER_ID VK_COUNTRY VK_OTHER VK_TOKEN Pikkus 4 3 16 24 15 15 140 20 2 150 2 12 - VK_RID VK_MAC VK_ENCODING VK_LANG 30 700 12 3 Kirjeldus Teenuse number (3012) Kasutatav krüptoalgoritm (008) Kokkuleppeline kasutaja identifikaator Sõnumi genereerimise aeg DATETIME formaadis Sõnumi koostaja ID (Panga ID) Sõnumi saaja (partneri) ID Kasutaja nimi Kasutaja isikukood Isikukoodi riik (kahetäheline ISO 3166-1) Muu info kasutaja kohta Autentimisvahendi identifikaatori kood: 1- ID-kaart; 2- Mobiil-ID; 5- ühekordsed koodid (v.a. PINkalkulaator); 6- PIN-kalkulaator; 7- korduvkasutusega kaart Sessiooniga seotud identifikaator Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 Soovitav suhtluskeel (EST, ENG või RUS) Autentimisvastuse 3013 väljad: Jrk. 1 2 3 4 5 6 7 8 9 10 11 Välja nimi VK_SERVICE VK_VERSION VK_DATETIME VK_SND_ID VK_REC_ID VK_NONCE VK_USER_NAME VK_USER_ID VK_COUNTRY VK_OTHER VK_TOKEN Pikkus 4 3 24 15 15 50 140 20 2 150 2 12 - VK_RID VK_MAC VK_ENCODING VK_LANG 30 700 12 3 Kirjeldus Teenuse number (3013) Kasutatav krüptoalgoritm (008) Sõnumi genereerimise aeg DATETIME formaadis Sõnumi koostaja ID (Panga ID) Sõnumi saaja (partneri) ID Päringus olnud nonssi koopia Kasutaja nimi Kasutaja isikukood Isikukoodi riik (kahetäheline ISO 3166-1) Muu info kasutaja kohta Autentimisvahendi identifikaatori kood: 1- ID-kaart; 2- Mobiil-ID; 5- ühekordsed koodid (v.a. PINkalkulaator); 6- PIN-kalkulaator; 7- korduvkasutusega kaart Sessiooniga seotud identifikaator Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 Soovitav suhtluskeel (EST, ENG või RUS) ** Juhul kui VK_ENCODING väli puudub, siis teisendatakse kõikides vastuse tekstiväljades ISO-8859-1 kooditabelis kõrgemal kui kood 128 olevad sümbolid järgnevalt: eesti keele täpitähed vastavateks täppideta analoogiks (nt Ä->A ja Š->S) ja muud eemaldatakse. Portaal genereerib kasutaja poolt valitud panga jaoks sõnumi 4012 (4) ja signeerib selle (5). Samaaegselt salvestatakse genereeritud sõnum ka vahetabelisse. Genereeritud ja signeeritud sõnum 4012 saadetakse ootavale kasutajale (6), kus kuvatakse nupp Autendime mispeale suunatakse kasutaja edasi internetipanka (7). Asjakohane näide on ära toodud lisas 3 – HTTP(S) kanali kasutamine. Pank, pärast signatuuri kontrolli (8) palub kasutajal ennast sisse logida (9). Kui kasutaja on edukalt panka sisenenud (10), siis koostab pank vastussõnumi: 3013 (11). Sarnaselt sõnumile 4012 see signeeritakse (12) ning edastatakse kasutajale (13), misjärel viimane suunatakse tagasi Portaali (14). Portaal kontrollib edastatud sõnumi signatuuri (15). Kui signatuur on tõene, siis kontrollitakse, kas vastus 3013 on saabunud eelnevalt saadetud sõnumile (4012) etteantud ajaliimid piires (16) ja seejärel vaadatakse, kas antud kasutaja isikukood on kasutusel (17). Portaal kasutab klientide identifikaatorina isikukoodi. 2. Autenditud sisenemine: Pank → Portaal Kasutaja Portaal Pank 1: internetipanka sisenemine 2: Isiku tuvastamise päring läbi turvalise sidekanali HTTPS. 3: Kasutaja vastus päringule (HTTPS) 4: Teenuse valik (HTTPS) 5: Valik: Soovin siseneda Portaali (HTTPS) 6: Kasutaja info põhjal sõnum 3012 7: Vastuse 3012 signeerimine 8: Signeeritud 3012 kasutajale (HTTPS) 9: HTTPS kaudu 3012 portaali 10: 3012 Signatuuri kontroll 11: 3012 Ajapitseri kontroll 12: 3012 Isikukoodii kontroll 13: Sessiooni loomine 14: Autenditud kasutaja sessioon Joonis 3. Autentinditud sisenemise mudel: Pank → Portaal Autentimissõnumi 3012 väljad: Jrk. 1 2 3 4 5 6 7 8 9 10 11 Välja nimi VK_SERVICE VK_VERSION VK_USER VK_DATETIME VK_SND_ID VK_REC_ID VK_USER_NAME VK_USER_ID VK_COUNTRY VK_OTHER VK_TOKEN Pikkus 4 3 16 24 15 15 140 20 2 150 2 12 - VK_RID VK_MAC VK_ENCODING VK_LANG 30 700 12 3 Kirjeldus Teenuse number (3012) Kasutatav krüptoalgoritm (008) Kokkuleppeline kasutaja identifikaator Sõnumi genereerimise aeg DATETIME formaadis Sõnumi koostaja ID (Panga ID) Sõnumi saaja (partneri) ID Kasutaja nimi Kasutaja isikukood Isikukoodi riik (kahetäheline ISO 3166-1) Muu info kasutaja kohta Autentimisvahendi identifikaatori kood: 1- ID-kaart; 2- Mobiil-ID; 5- ühekordsed koodid (v.a. PINkalkulaator); 6- PIN-kalkulaator; 7- korduvkasutusega kaart Sessiooniga seotud identifikaator Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 Soovitav suhtluskeel (EST, ENG või RUS) Kasutaja pöördub panka (1). Pank palub kasutajal ennast identifitseerida (2). Pärast positiivset kasutajatunnuste sisestamist (3) pakutakse kasutajale võimalust kasutada erinevaid pangateenuseid (4), millest üks on sisenemine Portaali (5). Pärast seda, kui kasutaja on teavitanud panka, et ta soovib kasutada Portaali teenuseid, produtseerib pank sõnumi 3012 (6), mis signeeritakse (7) ja saadetakse kasutaja brauseri päise kaudu (8) edasi Portaali (9). Seejärel jätkub tegevus juba sarnaselt meetodis 1 kirjeldatud teed pidi. Peab siiski märkima, et Ajapitseri kontrollimine käib selles meetodis mõnevõrra teistmoodi: erinevalt eelmisest meetodist, ei saadeta kontrollaega päringuga 4012, vaid selle genereerib pank. Kui panga ja Portaali serverikellaaegade erinevus läheb piisavalt suureks, siis võib tekkida olukord, et tühistatakse kõik sisenemised, mis on saabunud sellest ettevõttest. Et seda vältida, valivad Portaal ja Pank aja sünkroniseerimiseks ühe Internetis ajastandardi teenust pakkuvatest institutsioonidest, kelle tuumakella loetakse sõnumi ajapitseri (VK_TIME ja VK_DATE) koostamisel kohustuslikuks. 3. Makse teostamine: Portaal → Pank → Portaal. Portaal Kasutaja Pank 1: portaali sisenemine 2: Maksemeetodi valik 3: Valik: Maksame panga kaudu 4: 1012 (või 1011) genereerimine 5: 1012 (või 1011) signeerimine 6: Signeeritud 1012 (või 1011) kasutajale 7: Signeeritud 1012 (või 1011) kasutajalt panka läbi turvakanali (HTTPS) 8: 1012 (või 1011) signatuuri kontroll 9: Isiku tuvastamise päring 10: Kasutaja vastus päringule 11. Makse kuvamine kasutajale ja selle teostaminevõi teostamisest loobumine 12: Makse teostamisele vastavalt vastus 1111 või 1911 13: Vastuse signeerimine 14: Signeeritud maksevastus kasutajale 15: Vastus HTTPS kaudu Portaalile 16: Vastuse Signatuuri kontroll 17: Vastuskoodi kontroll 18: Eduka makse korral kauba või teenuse väljastamine Joonis 4. Makse teostamise mudel internetipanga kaudu: Portaal → Pank → Portaal Makse algatamise päringu 1012 väljad: URL: https://i-pank.krediidipank.ee/pay Jrk. 1 2 3 4 5 6 7 8 9 10 11 - Välja nimi VK_SERVICE VK_VERSION VK_SND_ID VK_STAMP VK_AMOUNT VK_CURR VK_REF VK_MSG VK_RETURN VK_CANCEL VK_DATETIME VK_MAC VK_ENCODING Pikkus 4 3 15 20 12 3 35 95 255 255 24 700 12 Kirjeldus Teenuse number (1012) Kasutatav krüptoalgoritm (008) Päringu koostaja ID (Kaupluse ID) Päringu ID Maksmisele kuuluv summa Valuuta nimi: EUR Maksekorralduse viitenumber Maksekorralduse selgitus URL, kuhu vastatakse edukal tehingu sooritamisel URL, kuhu vastatakse ebaõnnestunud tehingu puhul Päringu algatamise kuupäev ja kellaaeg DATETIME formaadis Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 - VK_LANG 3 Soovitav suhtluskeel (EST, ENG või RUS) Makse algatamise päringu 1011 väljad: URL: https://i-pank.krediidipank.ee/pay Jrk. 1 2 3 4 5 6 7 8 9 10 11 12 13 - Välja nimi VK_SERVICE VK_VERSION VK_SND_ID VK_STAMP VK_AMOUNT VK_CURR VK_ACC VK_NAME VK_REF VK_MSG VK_RETURN VK_CANCEL VK_DATETIME VK_MAC VK_ENCODING VK_LANG Pikkus 4 3 15 20 12 3 34 70 35 95 255 255 24 700 12 3 Kirjeldus Teenuse number (1011) Kasutatav krüptoalgoritm (008) Päringu koostaja ID (Kaupluse ID) Päringu ID Maksmisele kuuluv summa Valuuta nimi: EUR Saaja konto number Saaja nimi Maksekorralduse viitenumber Maksekorralduse selgitus URL, kuhu vastatakse edukal tehingu sooritamisel URL, kuhu vastatakse ebaõnnestunud tehingu puhul Päringu algatamise kuupäev ja kellaaeg DATETIME formaadis Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 Soovitav suhtluskeel (EST, ENG või RUS) Makse eduka teostamise vastuse 1111 väljad: Jrk. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - Välja nimi VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_STAMP VK_T_NO VK_AMOUNT VK_CURR VK_REC_ACC VK_REC_NAME VK_SND_ACC VK_SND_NAME VK_REF VK_MSG VK_T_DATETIME VK_MAC VK_ENCODING VK_LANG VK_AUTO Pikkus 4 3 15 15 20 20 12 3 34 70 34 70 35 95 24 700 12 3 1 Kirjeldus Teenuse number (1111) Kasutatav krüptoalgoritm 008 Päringu koostaja ID (Panga ID) Päringu vastuvõtja ID (Kaupluse ID) Päringu ID Maksekorralduse number Makstud summa Valuuta nimi: EUR Saaja konto number Saaja nimi Maksja konto number Maksja nimi Maksekorralduse viitenumber Maksekorralduse selgitus Maksekorralduse kuupäev ja kellaaeg DATETIME formaadis Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 Soovitav suhtluskeel (EST, ENG või RUS) Y = panga poolt automaatselt saadetud vastus. N = vastus kliendi liikumisega kaupmehe lehele Makse ebaõnnestunud teostamise vastuse 1911 väljad: Jrk. 1 2 3 4 5 6 7 - Välja nimi VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_STAMP VK_REF VK_MSG VK_MAC VK_ENCODING Pikkus 4 3 15 15 20 35 95 700 12 Kirjeldus Teenuse number (1911) Kasutatav krüptoalgoritm (008) Päringu koostaja ID (Panga ID) Päringu vastuvõtja ID (Kaupluse ID) Päringu ID Maksekorralduse viitenumber Maksekorralduse selgitus Kontrollkood e. allkiri Sõnumi kodeering. ISO-8859-1 või UTF-8 või WINDOWS-1257 - VK_LANG VK_AUTO 3 1 Soovitav suhtluskeel (EST, ENG või RUS) Y = panga poolt automaatselt saadetud vastus. N = vastus kliendi liikumisega kaupmehe lehele * Juhul kui VK_ENCODING väli puudub, siis teisendatakse kõikides vastuse tekstiväljades ISO-8859-1 kooditabelis kõrgemal kui kood 128 olevad sümbolid järgnevalt: eesti keele täpitähed vastavateks täppideta analoogiks (nt Ä->A ja Š->S) ja muud eemaldatakse. Kaupmees saadab (7) kliendi päringuga panka allkirjastatud maksekorralduse andmed, mida klient internetipangas muuta ei saa. Makse saaja nimi ja konto number võtab pank panga ja kaupmehe vahelisest lepingust. Peale edukat makset koostatakse kaupmehele päring "1111" (12), ebaõnnestunud makse puhul pakett "1911". Internetipanga server püüab alati oma serverist saata ka vastuse rezhiimiga VK_AUTO=’Y’, seda juhtudeks kui kliendi seanss katkeb või klient ei liigu korrektselt tagasi kaupmehe veebileheküljele. Lisa 1. Päringuväljade spetsifikatsioon Kõiki lisades 1 ja 2 toodud väljanimesid tuleb võtta kui HTTP GET või POST muutujaid. Päringutes esitatud summades on komakohad ja sendid eristatud punktiga "." Tuhandete eraldajat ei kasutata. Kuupäevad ja kellaajad esitatakse DATETIME formaadis sekundi täpsusega nt 2013-03-13T07:21:14+0200 Päringu saaja on kohustatud kontrollima DATETIME väljal olevat väärtust, kusjuures välja väärtus tohib erineda kontrollimise hetkel kehtivast kellaajast maksimaalselt ± 5 minutit. Välja väärtuse pikkus ei tohi ületada spetsifikatsioonis ettenähtut. Välja väärtuse maksimumpikkused on sümbolites. Välja väärtus võib olla lühem kui maksimaalne pikkus lubab. Spetsifikatsioonile mittevastavatele päringutele vastatakse veateatega. Väljal VK_RETURN ei ole lubatud kasutada pangalingi päringutes kasutatavaid välja nimesid (VK_...) Lisa 2. Kontrollkoodi VK_MAC leidmine Päringutes kasutatava elektroonse allkirja, vk_mac, kontroll toimub kokkuleppelise algoritmi, vk_version, alusel. Praegu on kasutusel versioon 008. Ei kasutata enam versioone 001, 002 ja 007. Koos uute meetodite leiutamisega maailmas võib ka allkirjastamise algoritm tulevikus muutuda. VK_MAC esitatakse päringu parameetri väärtusena BASE64 kodeeringus. Kodeerimine VK_VERSION=008 puhul: VK_MAC arvutatakse vastavalt RSA algoritmile ning viiakse seejärel üle BASE64 kodeeringusse. VK_MAC väärtus arvutatakse kasutades avaliku võtme algoritmi RSA. Arvestatakse ka tühjade väljade pikkusi – “000”. Ei signeerita päringute järjekorrastamata lisaväljasid. MAC(x1,x2,…,xn) := RSA( SHA-1(p(x1 )|| x1|| p(x2 )|| x2 || … ||p( xn )||xn),d,n) kus: || on stringi liitmise tehe x1, x2, …, xn on päringu parameetrid p on funktsioon parameetri pikkusest. Pikkus on number kolmekohalise stringi kujul d on RSA salajane eksponent n on RSA modulus Lisa 3. HTTP(S) kanali kasutamise näide. Kuna nii päringu, kui vastuse saamine/saatmine on ideoloogiliselt identsed, siis peatume näitena pikemalt vaid meetodi 4012 saatmisel ja vastuvõtmisel: HTMLi algus Järgnevas reas on näha, et pärast nupuvajutust suunatakse kasutaja koos hidden väljadesse talletatud informatsiooniga aadressil https://i-pank.krediidipank.ee/ asuvale leheküljele/programmile nimega /auth <form method=”get” action=”https://i-pank.krediidipank.ee/auth”> <input type=”hidden” name=”VK_SERVICE” value=”4012”> <input type=”hidden” name=”VK_VERSION” value=”008”> <input type=”hidden” name=”VK_SND_ID” value=”PORTAAL”> . . . <input type=”submit” value=”Autendi internetipangas”> </form> Ülejäänud HTML Krediidipanga server võtab hidden väljade kaudu Portaalist saadetud andmed vastu, ning alustab nende töötlemist. Vastus saadetakse pangast identse meetodiga.
© Copyright 2024