Bezpieczeństwo

Jesteśmy świadomi, że bezpieczeństwo jest jednym z najbardziej istotnych czynników jakimi musi cechować się bankowy interfejs API. W kwestii bezpieczeństwa należy wziąć pod uwagę takie aspekty jak: szyfrowanie komunikacji, uwierzytelnienie klientów Banku oraz aplikacji firm trzecich, autoryzacja dostępu do określonych zasobów po stronie Banku, zabezpieczenia przed atakami wykorzystującymi luki bezpieczeństwa.


Rozwiązanie dostarczane przez FinTechAPI to nie tylko sam interfejs API. Wdrażamy również tzw. Portal dla Deweloperów, którego celem jest rejestracja i zarządzanie dostępem do API. Oba komponenty są publicznie dostępne, a zatem połączenia z nimi są szyfrowane (HTTPS) z wykorzystaniem certyfikatu SSL serwera, podpisanego przez zaufany podmiot certyfikacji. Od tej reguły nie ma wyjątku ponieważ dane wymieniane poprzez API są poufne (dane wrażliwe klientów Banku, metadane dotyczące bezpieczeństwa).


Proces uwierzytelniania aplikacji firm trzecich, korzystających z API, jest zgodny tzw. OAuth2. OAuth2 jest dedykowanym protokołem i jednocześnie powszechnie stosowanym standardem w kwestii uzyskiwania i weryfikacji uprawnień, opisanym w dokumentacji RFC. Używanie tego standardu oznacza, że autoryzacja bazuje na generowaniu i wymianie tzw. tokenów bezpieczeństwa. Każda aplikacja, która chce zintegrować się z bankowym API, musi uzyskać token, który z kolei jest wymagany do przekazania w każdym żądaniu wysyłanym do API. Poprawny i ważny token bezpieczeństwa stanowi dowód dla API, że aplikacja, która wysłała żądanie została poprawnie zautoryzowana czyli posiada uprawnienia do zasobów, o których udostępnienie prosi. Rozwiązanie FinTechAPI zapewnia wszystkie wymagane mechanizmy (metody HTTP), pozwalające na zrealizowanie komunikacji na linii aplikacje zewnętrzne – bankowe API, z uwzględnieniem uzyskiwania, odnawiania i walidacji tokenów bezpieczeństwa.


Proces autoryzacji aplikacji w standardzie OAuth2 nie zapewnia uwierzytelnienia klienta Banku. To zadanie jest elementem procesu, ale jest delegowane do Banku np. poprzez przekierowanie przeglądarki internetowej klienta do portalu Banku lub bezpośrednio do interfejsu bankowości internetowej, które są dla klienta Banku znane i zaufane. Co więcej, po stronie Banku jest możliwe zapewnienie tzw. „Silnego Uwierzytelnienia Klienta”, wymaganego przez regulacje techniczne dyrektywy PSD2 Unii Europejskiej.


W ramach procesu autoryzacji uwierzytelnieniu i identyfikacji podlegają również aplikacje zewnętrzne wykorzystujące bankowe API. Jest to możliwe ponieważ rozwiązanie FinTechAPI wymusza zarejestrowanie tych aplikacji w Portalu dla Deweloperów, w celu uzyskania dostępu do produkcyjnej wersji API. Dzięki rejestracji w portalu każda aplikacja uzyskuje parę informacji uwierzytelniających (Klucz i Hasło). Uwierzytelnienie aplikacji zewnętrznych jest niezbędne z co najmniej dwóch, następujących powodów:

  • Aby identyfikować aplikacje, które korzystają z API. Jest to wymagane przez regulacje techniczne dyrektywy PSD2 ale jest również wykorzystywane przez mechanizmy wewnętrzne rozwiązania FinTechAPI (zarządzanie dostępem i weryfikacja uprawnień, zbieranie danych statystycznych).

  • Jest niezbędnym elementem procesu autoryzacji, zgodnego z wykorzystywanym w FinTechAPI standardem OAuth2.

 

Komponenty rozwiązania FinTechAPI są zabezpieczone, poprzez wewnętrzne mechanizmy oraz zalecaną konfigurację sieciową, przed takimi typami ataków jak:

  • XSS

  • CSRF

  • CRLF

  • DOS

 

 

WERSJA DEMO

 

 

Skróty używane w dyrektywie:

AISP - dostawce usług informacji o rachunku

ASPSP - dostawca usług płatniczych prowadzący rachunek

EBA - Europejski Urząd Nadzoru Bankowego

EC - Komisja Europejska

EU - Unia Europejska

PISP - dostawca usług inicjowania płatności

PSD - dyrektywa w sprawie usług płatniczych

PSD2 - znowelizowana dyrektywa w sprawie usług płatniczych

PSP - dostawca usług płatniczych

RTS - regulacyjne standardy techniczne

SCA - silna autoryzacja klienta

TPP - trzecia strona

XS2A - dostęp do rachunku dla strony trzeciej