• Nie Znaleziono Wyników

AUTORYZACJA KART PŁATNICZYCH W TRANSAKCJACH INTERNETOW YCH 1

W dokumencie Bezpieczeństwo systemów informatycznych (Stron 113-118)

Roman W A N T O C H - R E K O W S K I

1. Wstęp

Handel elektroniczny stanowi jedną z istotnych form dokonywania zakupów na odległość. Jego znaczenie z każdym rokiem wzrasta i w niektórych dziedzinach stanowi podstawową formę sprzedaży. Aby był możliwy tak burzliwy rozwój tego rynku, konieczne jest umożliwienie dokonywania płatności bezgotówkowych. Taką formą zapłaty jest płatność kartą płatniczą [3,4], Przy takiej formie płatności sklep internetowy musi mieć możliwość sprawdzenia, czy płatność daną kartą płatniczą może być zrealizowany, i że dana karta płatnicza zostanie obciążona kwotą zakupów na rzecz sklepu.

Zamieszczony opis sposobu autoryzacji kart płatniczych w transakcjach internetowych został wykonany na podstawie przykładowego rozwiązania jednej z firm [1] wykonującej te usługi na rynku polskim. Opis zawiera zarówno wymagania jakie stawia dostawca usług autoryzacyjnych dla sklepów internetowych (punktów sprzedaży lub inaczej kontrahentów) jak również opis przykładowej realizacji aplikacji po stronie sklepu internetowego. Przedstawione rozwiązanie jest wynikiem wdrożenie zrealizowanego w jednym z portali internetowych sprzedających informacje z własnych baz danych. W takim przypadku sprzedawanym towarem jest informacja wyświetlona na ekranie klienta lub plik dostarczony klientowi na jego skrzynkę poczty elektronicznej.

W drugiej części opracowania przedstawiono ideę analogicznego przykładowego rozwiązania funkcjonującego w Niemczech [2],

Jako uzupełnienie przedstawiono przykładowe autorskie rozwiązanie w zakresie implementacji interfejsu autoryzacji kart płatniczych do rozwiązań funkcjonujących na rynku polskim. Implementacja została wykonana na platformie Apache w języku PH P z wykorzystaniem bazy danych M ySQ L [3-11], Wykorzystywana terminologia:

Kontrahent (wg norm ISO 6260, ISO 7982-1, ISO 8730 beneficjent - Ostateczna strona, którą należy uznać lub która powinna otrzymać płatność w wyniku transferu, lub wg ISO 8583, ISO 9564 nabywca - Instytucja (lub jej agent), która dane dotyczące transakcji kartowej nabywa od akceptanta karty.) - instytucja prowadząca działalność gospodarczą, która podpisała z firmą

Wszystkie nazwy firm oraz ich produktów są nazwami zastrzeżonymi tych firm. zostały one wykorzystane wyłącznie w celu wskazania przykładowych wiodących rozwiązań na rynku.

1 1 1

autoryzującą umowę o współpracę w zakresie akceptowania i rozliczania transakcji dokonanych z użyciem kart płatniczych

Klient (wg norm ISO 8583 posiadacz karty - Klient, któremu przyporządkowano Numer Rachunku Głównego (PA N ) lub rozszerzony PA N ) - osoba zamierzająca zamówić u Kontrahenta towary, usługi bądź informacje, za które zapłaci kartą płatniczą posiadacz karty;

amount - całkowita wartość zamówienia Klienta, uwzględniająca wszystkie czynniki, takie jak opłaty manipulacyjne itp.;

cc_number_hash - wynik działania jednokierunkowej funkcji skrótu na numerze karty Klienta. Kontrahent może przechowywać wartości tego pola i podejmować decyzje o dokonaniu transakcji znając historie płatności dokonanych z użyciem tej karty;

order_id - unikalny identyfikator zamówienia, przedstawiony Klientowi po dokonaniu transakcji (np. numer faktury V A T );

pos_id - numer identyfikujący serwer Kontrahenta. Numer ten jest nadawany przez firmę autoryzującą.

response_code - kod odpowiedzi autoryzacyjnej informujący czy wydawca karty zgodził się na realizację płatności;

session_id - unikalny identyfikator zdarzenia polegającego na przejściu przeglądarki Klienta ze stron Kontrahenta na stronę autoryzacyjną firmy autoryzującej w celu dokonania płatności;

sklep internetowy / internetowy punkt handlowy - punkt w sieci Internet, w którym są lub będą dokonywane transakcje z użyciem karty płatniczej jako środka zapłaty (inaczej: internetowy punkt handlowy);

towar - dobra materialne i niematerialne, za które Klient płaci kartą Kontrahentowi;

firm a autoryzująca / akceptant karty / firm a rozliczeniowa- strony świadcząca usługi w zakresie autoryzacji kart płatniczych w transakcjach internetowych i dokonująca rozliczeń tych transakcji.

2. Etap y procesu autoryzacji kart płatniczych - przykład polski

W rozdziale przedstawiono opis przebiegu autoryzacji karty płatniczej od momentu, gdy klient zakończył uzupełnianie koszyka i przechodzi do operacji realizacji zamówienia (płatność kartą), to znaczy gdy przejdzie do formularza, który spowoduje przekierowanie klienta na strony internetowe firmy dokonującej autoryzacji karty płatniczej dla danej transakcji.

Cały proces autoryzacji karty podzielony jest na następujące etapy:

• (1) zakupy w sklepie;

• (2) zatwierdzenie przez klienta formularza zamówienia;

• (3) przejście do autoryzacji karty płatniczej dla danego zamówienia;

• (4) kontakt on line firmy autoryzującej kartę płatniczą z wydawcą karty (np.: bank);

• (5) przesłanie do sklepu internetowego informacji o stanie

autoryzacji karty płatniczej dla danej transakcji;

• (6) sprawdzenie przez sklep poprawności danych z autoryzacji i zamówienia, a następnie realizacja lub odmowa realizacji zamówienia;

• (7) wysłanie towaru lub wyświetlenie informacji;

• (8) rozliczenie wykonanych autoryzacji.

Powyższe punkty zostały przedstawione na rysunku numer 1.

W ydawca karty (np..: bank)

K lient

/

Firma w ykonująca funkcje autoryzacji kart płatniczych

w transakcjach internetow ych

F o rm u lu z Form ularz do fhm v Potw ierdzenia

autoryzującej lub

nie autoryzacji

Pliki rozliczeniow e

Czy je s t autoryzacja?

(6 )

Zamówienie do ik lep u

K ontrahent Sklep in te rn e to w y

kys. 1 Proces autoryzacji karty płatniczej (przykład polski) Opis interfejsu autoryzacji kart płatniczych

3. Opis interfejsu autoryzacji kart płatniczych 3-1. Autoryzacja

3.1.1.Połączenie klienta (p osiadacza karty) do w itryn y K ontrahenta

Klient (posiadacz karty) po zakończeniu realizacji zakupów jest przekierowany do formularza odsyłającego klienta do strony autoryzacyjnej firmy autoryzującej. Adres pod który powinien odsyłać formularz jest następujący:

https://xxx.com.pl/cgi-bin/autoryzacja.cgi

Wewnątrz formularza powinny znajdować się niżej opisane pola, których zawartość zostanie przesiana do firmy autoryzującej:

113

Nazwa pola Format Opis zawartości pola

order_id ANC{1,64}

Unikalny identyfikator zamówienia (koszyka towarów), znany trzem stronom (Klient, Kontrahent), który pojawi się na potwierdzeniu sprzedaży przedstawionym przez sklep posiadaczowi karty po udanej autoryzacji i po decyzji sklepu o dokonaniu sprzedaży. Może to być numer faktury VAT, lub rachunku, który pojawi się na towarzyszącym produktowi, dokumencie papierowym. W przypadku ponownego wygenerowania session_id dla nowej autoryzacji, ten identyfikator nie ulega zmianie.

session_id ANC {1,1024}

Jak w dokumencie terminologia. Nowa wartość tego identyfikatora powinna być generowana zawsze przed dostarczeniem Klientowi formularza odsyłającego do strony autoryzacyjnej firmy autoryzującej.

pos_id ANC

{1,20}

Nadany przez firmę autoryzującą identyfikator serwera Kontrahenta (identyfikator wirtualnego "punktu sprzedaży"

lub "terminala"), wartość stała dla danego Kontrahenta.

amount NUM

{1,10}

Wartość zamówienia uwzględniająca wszystkie

przewidywalne czynniki. Kwota podana w groszach, tzn. 20 zł 34 gr powinna być zapisana jako 2034.

street AN {0,40} Pierwsza linia adresu wysyłki. W większości wypadków powinna zawierać nazwę ulicy i numer lokalu.

street_nl AN {0,10} Numer związany z adresem, prawie zawsze jest to numer domu.

street_n2 AN {0,10} Numer związany z adresem, będzie to numer mieszkania o ile numer mieszkania ma zastosowanie.

addr2 AN {0,40} Druga linia adresu wysyłki.

addr3 AN {0,40} Trzecia linia adresu wysyłki.

city AN {0,40} Nazwa miasta z adresu wysyłki.

postcode AN {0,10} Numer kodu pocztowego z adresu wysyłki w formacie 99- 999, lub jego odpowiednik dla adresów zagranicznych.

country AN {1,3}

Kod kraju z adresu wysyłki. Kod powinien być taki, jaki stosuje się na samochodowych tablicach rejestracyjnych w danym kraju (Dla PoIski="PL", dla Stanów Zjednoczonych Ameryki Płn. "USA", dla Niemiec "D" itd.).

language AN {2,2}

Język, w któiym firma autoryzująca powinna komunikować się z Klientem. Możliwe wartości to:

"PL" - polski,

"EN" - angielski.

email ANC

{0,40} Adres e-mail Klienta.

test AN {1,1}

Wskaźnik, czy transakcja ma być traktowana jako testowa czy jako produkcyjna. Możliwe są dwie wartości:

"N" - produkcyjna,

Nazwa pola Format Opis zawartości pola

"Y " - testowa.

client_ip ANC{0,15} Adres IP komputera klienta, jeśli jest znany Kontrahentowi.

{x,y} - pole o minimalnej długości x , maksymalnej długości y;

ANC - litery małe a-z, litery duże A-Z, cyfry 0-9, następujące znaki:

[]{}~ @ # $ % A& *0_+ -= Vo,.''* , bez spacji i polskich liter;

NUM - cyfry 0-9;

AN - jak ANC, z dopuszczonymi spacjami.

Przykład realizacji formularza zapytania autoryzacyjnego:

<FORM

M ETH O D = "PO ST"ACTIO N = "https://xxx.com.pl/.../autoryzacja.cgi">

< INPUT T Y P E - ’H ID D EN " NAME="session_id" VALUE="A00123">

< INPUT T Y PE= "H ID D EN " NAME="order_id" VALUE="fak- 43/12/98:bac">

< INPUT T Y PE= "H ID D EN " NAM E="pos_id" VALUE="123456">

< INPUT T Y PE= "H ID D EN " NAME="amount" VALUE="2034">

< INPUT T Y PE= "H ID D EN " NAME="street" VALUE="Ostrobramska">

< INPUT T Y PE= "H ID D EN " NAM E= "street_nl" VALUE="103">

< INPUT T Y PE= "H ID D EN " NAME="street_n2" VA LUE= "">

< INPUT T Y PE= "H ID D EN " NAME="addr2" V A LU E= M">

< INPUT T Y PE= "H ID D EN " NAME="addr3" VA LUE= "">

< INPUT T Y PE= "H ID D EN " N A M E= "city" VALUE="Warszawa">

< INPUT T Y PE= "H ID D EN " NAME="postcode" VALUE="04-041">

< INPUT T Y PE= "H ID D EN " NAME="country" VA LU E= "PO L">

< INPUT T Y PE= "H ID D EN " NAME="language" V A LU E= "PL">

< INPUT T Y PE= "H ID D EN " NAM E="em ail"

V A LU E= "joe@nowhere.com.pl">

< INPUT T Y PE= "H ID D EN " NAME="test" V A LU E= "N ”>

< INPUT T Y P E = "SU B M IT " VALUE= "Platnosc karta">

<FORM>

Jeżeli nie ma możliwości uzyskania od klienta adresu wysyłki, na przykład w wypadku sprzedaży dóbr niematerialnych, to powinien być podany adres e-mail.

Jeśli adres wysyłki jest wprowadzony (co oznacza niezerową długość przynajmniej pól Street, postcode i city), to pole e-mail może być puste.

Kontrahent powinien uniemożliwić więcej niż jedną autoryzację na dany order_id. W momencie dokonania autoryzacji transakcja z danym order_id powinna zostać zaznaczona jako zautoryzowana i w przypadku potrzeby autoryzacji dalszych płatności przez danego Klienta powinien być generowany nowy order_id.

Po naciśnięciu przez Klienta przycisku "Zapłata kartą" nastąpi połączenie

115

do strony autoryzacyjnej firmy autoryzującej.

3.1.2.Autoryzacja płatności za zamówienie i przekazanie Kontrahentowi odpowiedzi autoryzacyjnej

Po połączeniu się ze stroną autoryzacyjną firmy autoryzującej Klient (posiadacz karty) wprowadza dodatkowe dane (w tym numer karty i datę jej ważności) konieczne do uzyskania autoryzacji. Autoryzacja jest przeprowadzana przez firmę autoryzującą. Polega ona na skontaktowaniu się z systemem komputerowym banku, który wydal kartę i uzyskaniu odpowiedzi, czy dana płatność może być zrealizowana.

Po uzyskaniu odpowiedzi od banku wydawcy firma autoryzująca przesyła ją Kontrahentowi. W tym celu serwer firmy autoryzującej nawiązuje połączenie

http zabezpieczone S S L z serwerem Kontrahenta wykonując operację PO ST.

Podczas nawiązywania połączenia firma autoryzująca przedstawia swój certyfikat S S L podpisany przez jeden ze znanych urzędów certyfikacyjnych.

Dzięki temu Kontrahent ma możliwość upewnienia się, że nadawcą komunikatu jest firma autoryzująca. Połączenie następuje pod uzgodniony wcześniej z

Kontrahentem adres U R L.

Po otrzymaniu przez serwer Kontrahenta połączenia pod wskazany adres U R L, oprogramowanie serwera Kontrahenta powinno w pierwszej kolejności zweryfikować drugą stronę połączenia upewniając się, że jest nią firma autoryzująca. W tym celu serwer Kontrahenta powinien żądać przedstawienia certyfikatu S S L i po jego otrzymaniu upewnić się, że weryfikacja certyfikatu zakończyła się sukcesem, a następnie sprawdzić zawartość poniższych pól certyfikatu:

Pole X.509 Symbol Powinno być równe

W dokumencie Bezpieczeństwo systemów informatycznych (Stron 113-118)