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