Tag Archives: internet banking

EBanking server simulator

Pred nedávnom som implementoval knižnicu na EBanking (konkrétne som mal za úlohu implementovať SLSP SporoPay, TatraPay, CardPay a VUB EPlatbu). Všetky tieto protokoly komunikujú so servermi príslušnej banky cez klientov browser HTTP protokolom.

V skratke: stránka vyskladá payment request (zoznam pomenovaných hodnôt, napr mena, suma, variabilný symbol…), dôležité dáta zhashuje a zašifruje symetrickou šifrou kľúčom, ktorý má iba banka a stránka. Výsledkom toho je podpis, ktorý chráni dáta – ak by sa počas prenosu zmenili, tak to druhá strana dokáže zistiť a zmenené dáta ignorovať, akoby vôbec neprišli. Podpis sa pridá k hodnotám a tie sa cez klientov browser odošlú na server jeho banky – väčšinou formou HTTP GET – tj postačí obyčajný odkaz. Banka teda má údaje o tom, čo chce klient zaplatiť, klient sa potom autentifikuje na stránke banky a potvrdí transakciu, na čo banka vytvorí response rovnakým spôsobom, ako predtým stránka robila request a klient je presmerovaný naspäť na stránku obchodníka, ktorý dostal podpísanú správu od banky.

No a nakoľko nieje vždy po ruke človek, ktorý má v danej banke konto, debugging tohoto procesu je nepríjemný. Preto som spravil narýchlo tento tool, ktorý simuluje server banky. Vyplníte typ transakcie (v súčasnosti sú podporované SporoPay, TatraPay, CardPay a VUB ePlatba), zadáte request vo forme URL a zdieľaný kľúč na vytvorenie podpisu a potom si môžete vybrať, či chcete response OK (transakcia sa podarila), Fail (transakcia sa nepodarila) alebo Timeout (transakcia ešte neskončila). Výsledkom je response vo forme URL – copy&paste do browsera a preskočili ste presmerovanie na banku a debugovať môžete donekonečna – dokonca ani nemusíte mať zriadené konto v banke, aj keď to je potom problém sa dostať k špecifikáciám, podľa ktorých je nutné platobný systém implementovať.

Tool vydávam pod GPL licenciou, hlavne z toho dôvodu, aby ste videli, že sa nejedná o malware.

Zdrojové kódy nájdete na svn://dev.monogram.sk/pokojny/EBankingServerSimulator , binárka je na stiahnutie tu. Použitým jazykom je C# , .NET 2.0, takže ho zatiaľ spustíte iba na windowse.