Autoryzacja SMS (2FA) to fundament bezpieczeństwa bankowości internetowej. W tym przewodniku pokazujemy krok po kroku, jak wdrożyć SMS 2FA zgodnie z PSD2 — od wyboru bramki SMS, przez architekturę, po testy penetracyjne.
Autoryzacja SMS (SMS 2FA) to fundament bezpieczeństwa nowoczesnej bankowości internetowej i mobilnej. Dyrektywa PSD2 wymaga silnego uwierzytelniania klienta (SCA) dla transakcji płatniczych w UE, a SMS z jednorazowym kodem (OTP) jest jednym z najczęściej wybieranych kanałów.
W tym przewodniku przeprowadzimy Cię przez kompletny proces wdrożenia SMS 2FA w banku lub instytucji finansowej. Omówimy wymagania PSD2, wybór bramki SMS, architekturę systemu, kwestie bezpieczeństwa i zgodności z RODO.
Dlaczego SMS 2FA jest nadal najpopularniejszą metodą autoryzacji?
Mimo rosnącej popularności aplikacji mobilnych i biometrii, SMS pozostaje najpowszechniej dostępną metodą autoryzacji. Oto dlaczego:
- Uniwersalność — każdy telefon obsługuje SMS, niezależnie od systemu i modelu
- Niski próg wejścia — klient nie musi instalować aplikacji ani konfigurować biometrii
- Zgodność z PSD2 — SMS jako element "posiadania" spełnia wymogi SCA
- Niezawodność — dostarczalność SMS-ów w Polsce przekracza 98%
- Doświadczenie klientów — 87% użytkowników bankowości mobilnej rozumie i akceptuje SMS 2FA
Według raportu EBA (European Banking Authority) z 2024 roku, SMS 2FA jest drugą po aplikacjach mobilnych metodą autoryzacji w UE, z udziałem rynkowym około 32%.
Wymagania PSD2 wobec SMS 2FA
Dyrektywa PSD2 wprowadziła obowiązek Strong Customer Authentication (SCA) — silnego uwierzytelniania klienta dla transakcji elektronicznych. SCA wymaga połączenia co najmniej dwóch z trzech elementów:
- Wiedza — coś, co klient zna (hasło, PIN)
- Posiadanie — coś, co klient ma (telefon, karta, token)
- Inherencja — coś, czym klient jest (odcisk palca, twarz)
SMS 2FA realizuje element "posiadania" — klient posiada telefon z zarejestrowanym numerem, na który bank wysyła kod OTP.
Kluczowe wymagania dla SMS 2FA zgodnego z PSD2:
- Dynamiczne powiązanie — kod OTP musi być powiązany z konkretną transakcją (kwota, odbiorca)
- Jednorazowość — kod może być użyty tylko raz i wygasa po krótkim czasie (max 5 min)
- Ochrona przed phishingiem — klient musi być w stanie zweryfikować autentyczność żądania
- Limit prób — maksymalnie 3 próby wpisania kodu
- Rate limiting — ochrona przed wysyłaniem wielu SMS-ów na ten sam numer
- Audytowalność — pełne logi wszystkich autoryzacji przez minimum 5 lat
Architektura systemu SMS 2FA w banku
Wdrożenie SMS 2FA wymaga integracji kilku komponentów:
1. Aplikacja bankowa (frontend)
Miejsce, gdzie klient inicjuje transakcję. Po kliknięciu "Potwierdź" aplikacja wysyła żądanie do backendu banku.
2. Backend banku (core banking)
Generuje unikalny kod OTP (6-8 cyfr), zapisuje go w bazie z TTL (Time To Live) oraz informacją o powiązanej transakcji.
3. Bramka SMS (SMS API)
Odbiera żądanie wysyłki SMS-a i przekazuje je do operatora telekomunikacyjnego. W SMSIK obsługujemy wysyłkę przez REST API z gwarancją dostarczenia.
4. Operator telekomunikacyjny
Dostarcza SMS do klienta końcowego. W Polsce główni operatorzy to Orange, Play, Plus, T-Mobile.
5. Moduł weryfikacji
Porównuje kod wpisany przez klienta z kodem zapisanym w bazie, sprawdza TTL i liczbę prób.
Krok po kroku: wdrożenie SMS 2FA
Krok 1: Wybór bramki SMS
Kluczowe kryteria wyboru bramki SMS dla banku:
- Dostarczalność — minimum 98% (mierzone przez statusy DLVR)
- Własna nazwa nadawcy — np. "TWOJABANK" zamiast losowego numeru
- SLA — gwarantowany czas dostarczenia (np. 5 sekund dla 99% SMS-ów)
- Zgodność z RODO — umowa powierzenia przetwarzania danych (DPA)
- Certyfikaty — ISO 27001, PCI DSS jeśli dotyczy
- Wsparcie 24/7 — krytyczne dla bankowości
- API REST — prosta integracja, dokumentacja, SDK
W SMSIK oferujemy wszystkie powyższe elementy — od SLA 99.9%, przez własną nazwę nadawcy, po zgodność z PSD2 i RODO.
Krok 2: Rejestracja nazwy nadawcy
Własna nazwa nadawcy (np. "TWOJABANK") buduje zaufanie i utrudnia phishing. Proces rejestracji:
- Wybór nazwy (max 11 znaków, litery i cyfry)
- Weryfikacja przez operatora (2-5 dni roboczych)
- Aktywacja w bramce SMS
Uwaga: Nazwy banków są chronione. Rejestracja "MBANK" czy "PKO" przez podmiot trzeci zostanie odrzucona.
Krok 3: Integracja API
Podstawowa integracja w SMSIK:
POST https://api.smsik.pl/v1/sms/send
X-API-Key: TWOJ_KLUCZ_API
Content-Type: application/json
{
"to": "+48512017029",
"message": "Kod autoryzacyjny: 123456. Transakcja: 150,00 PLN do ODBIORCA XYZ.",
"sender": "TWOJABANK",
"idempotency_key": "txn-88231-confirm"
}
Kluczowe: parametr idempotency_key zapobiega wysłaniu dwóch SMS-ów w przypadku retry po timeout.
Krok 4: Obsługa statusów dostarczenia
Polling endpointu /v1/sms/status lub webhooks zwracają statusy:
- queued — SMS przekazany do bramki
- sent — SMS wysłany z bramki do operatora
- delivered — SMS dostarczony do telefonu klienta
- failed — błąd (nieprawidłowy numer, brak zasięgu, filtr antyspamowy)
W banku: jeśli SMS nie dostarczono w 30 sekund, bank powinien zaproponować alternatywną metodę autoryzacji.
Krok 5: Testy penetracyjne i audyt
Przed wdrożeniem produkcyjnym:
- Testy obciążeniowe — co najmniej 10 razy szczytowy ruch
- Testy bezpieczeństwa — próby brute force, replay attack, SIM swap
- Audyt zgodności z PSD2 — przez audytora zewnętrznego
- Testy dostępności — co jeśli bramka SMS ma awarię?
Bezpieczeństwo SMS 2FA — na co uważać
Atak SIM swap
Przestępca przenosi numer ofiary do własnej karty SIM. Obrona: dodatkowa weryfikacja behawioralna, powiadomienie o zmianie numeru, monitorowanie nietypowych logowań.
Phishing
Fałszywa strona podszywa się pod bank i prosi o kod SMS. Obrona: własna nazwa nadawcy, informacja o transakcji w treści SMS, edukacja klientów.
Malware na telefonie
Złośliwa aplikacja czyta SMS-y. Obrona: wykrywanie root/jailbreak, aplikacja banku nie może działać na zainfekowanym telefonie.
Atak na bramkę SMS
Przejęcie konta w bramce SMS. Obrona: 2FA dla panelu admina, IP whitelist, monitorowanie nietypowych wzorców wysyłki.
Zgodność z RODO
Numery telefonów to dane osobowe. Bank musi:
- Zawarć umowę powierzenia przetwarzania danych (DPA) z bramką SMS
- Poinformować klientów o przetwarzaniu numerów telefonów
- Zapewnić prawo do usunięcia danych po rozwiązaniu umowy
- Rejestrować wszystkie operacje przetwarzania (audit log)
Koszty wdrożenia SMS 2FA
Typowe koszty dla banku z 500 000 klientów:
- Bramka SMS — 1 grosz brutto za SMS (przy wolumenie powyżej 1M miesięcznie można negocjować do 0.5 gr)
- Wolumen — średnio 2.5 SMS-a na klienta miesięcznie = 1.25M SMS-ów = około 12 500 zł miesięcznie
- Integracja — 20-50 tys. zł (jednorazowo)
- Audyt PSD2 — 15-30 tys. zł rocznie
- Utrzymanie — 5-10% kosztów wdrożenia rocznie
W SMSIK oferujemy indywidualne stawki dla wolumenów powyżej 100 000 SMS miesięcznie.
Alternatywy dla SMS 2FA
Coraz więcej banków łączy SMS 2FA z innymi metodami:
- Aplikacja mobilna — push notification z biometrią
- Biometria — odcisk palca, Face ID
- Token sprzętowy — dla klientów premium
Jednak SMS pozostaje najlepszym fallbackiem — gdy aplikacja nie działa, gdy klient nie ma biometrii, gdy potrzebna jest szybka autoryzacja. Zalecamy strategię wielokanałową: aplikacja jako primary, SMS jako backup.
Podsumowanie
Wdrożenie SMS 2FA w banku to projekt na 2-4 miesiące, wymagający integracji bramki SMS, zgodności z PSD2, testów bezpieczeństwa i audytu. Kluczowe elementy to:
- Wybór bramki SMS z SLA, własną nazwą nadawcy i DPA
- Integracja REST API z idempotencją
- Obsługa statusów dostarczenia w czasie rzeczywistym
- Testy penetracyjne i audyt PSD2
- Zgodność z RODO i audytowalność
W SMSIK pomagamy bankom i fintechom wdrożyć SMS 2FA w 4-6 tygodni. Oferujemy SLA 99.9%, indywidualne stawki dla wolumenów, wsparcie 24/7 oraz pełną zgodność z PSD2 i RODO. Skontaktuj się z nami, aby omówić Twój projekt.