Zaufane urządzenia — dlaczego MFA nie musi być uciążliwe
Uwierzytelnianie dwuskładnikowe to jedna z najskuteczniejszych metod ochrony konta. Problem pojawia się przy codziennym logowaniu — otwieranie Google Authenticator, przepisywanie 6 cyfr, czekanie na kod e-mail. Powtarzane kilka razy dziennie. W Cyberapis v0.16.0 rozwiązujemy ten problem mechanizmem "zaufanych urządzeń" — cookie, które zapamiętuje Twoją przeglądarkę na 30 dni i pomija MFA przy kolejnych logowaniach.
Jak to działa pod maską? Po udanym zalogowaniu z MFA i zaznaczeniu checkboxa "Zapamiętaj to urządzenie", system generuje kryptograficzną sygnaturę (SHA-256 z losowych bajtów + app key), zapisuje ją w bazie danych w tabeli trust_devices i wysyła do przeglądarki jako ciasteczko mfa_trusted. Przy następnym logowaniu, jeszcze przed wyświetleniem formularza MFA, system sprawdza czy ciasteczko jest obecne, czy pasuje do sygnatury w bazie i czy przeglądarka się zgadza. Jeśli wszystko gra — MFA pominięte, logowanie zakończone.
Nowe funkcje
Checkbox "Zapamiętaj to urządzenie" na ekranie MFA
Podczas wyzwania MFA (TOTP lub e-mail OTP) pojawia się dodatkowe pole: Zapamiętaj to urządzenie na 30 dni. Zaznaczone przy udanym kodzie MFA tworzy zaufane urządzenie i zapamiętuje przeglądarkę. Niezaznaczone — standardowe logowanie MFA, bez zapamiętywania.
Lista zaufanych urządzeń w profilu
Strona /admin/profile pokazuje teraz sekcję "Zaufane urządzenia" z listą wszystkich zapamiętanych przeglądarek. Każdy wpis zawiera: nazwę urządzenia (np. "Chrome 125 on Linux x64"), adres IP, datę ostatniego użycia i datę wygaśnięcia. Przycisk "Usuń" (z potwierdzeniem) pozwala natychmiast unieważnić wybrane urządzenie.
Powiadomienie e-mail o nowym zaufanym urządzeniu
Za każdym razem, gdy dodawane jest nowe zaufane urządzenie, system wysyła e-mail z informacją o nazwie urządzenia i adresie IP. Jeśli to nie Ty dodałeś urządzenie — wiesz o tym natychmiast i możesz je usunąć z poziomu profilu.
Bezpieczeństwo — 3 rundy pentestów
Przed wdrożeniem system przeszedł trzy niezależne rundy testów penetracyjnych. Oto kluczowe zabezpieczenia:
Fingerprint przeglądarki — sygnatura urządzenia to nie tylko losowy token. System parsuje User-Agent i zapisuje wersję przeglądarki + system operacyjny + architekturę (np. "Chrome 125 on Linux x64"). Ciasteczko z innej przeglądarki zostanie odrzucone.
Limit 5 urządzeń — maksymalnie 5 zaufanych urządzeń na użytkownika. Szóste urządzenie automatycznie usuwa najstarsze (FIFO).
Czyszczenie przy rekonfiguracji MFA — każda zmiana konfiguracji TOTP (regeneracja, wyłączenie, ponowne włączenie) natychmiast unieważnia wszystkie zaufane urządzenia. Jedyny wyjątek: pierwsze uruchomienie MFA.
Zabezpieczenia ciasteczka —
mfa_trustedma flagi HttpOnly (niedostępne dla JavaScript), SameSite=Lax i Secure na HTTPS. Sygnatura jest solona kluczem aplikacji (config('app.key')).Komenda
mfa:reset— awaryjne resetowanie MFA czyści również wszystkie zaufane urządzenia.
Dla kogo to działa
Zaufane urządzenia działają z każdym typem MFA skonfigurowanym w Cyberapis: Google Authenticator (TOTP) oraz e-mail OTP. Mechanizm jest przezroczysty — nie ma znaczenia, którą metodę wybierzesz podczas logowania.
Zmiany techniczne
Nowa tabela trust_devices z indeksami na [user_id, device_signature, expires_at]. Rozszerzony middleware EnsureMultiFactor o weryfikację zaufanego urządzenia. Niestandardowa strona logowania Filament (Login.php) z obsługą pomijania MFA i tworzenia urządzeń. 21 nowych testów (łącznie 53 testy MFA). Konfiguracja w config/twofactor.php z kluczami trusted_device_days (domyślnie 30) i max_trusted_devices (domyślnie 5).