Logowanie z wykorzystaniem Multi Factor Authentication
Wprowadzenie
Multi-Factor Authentication (MFA) to metoda uwierzytelniania, która zwiększa bezpieczeństwo konta poprzez wymaganie więcej niż jednego sposobu weryfikacji tożsamości.
System AMODIT umożliwia logowanie się użytkowników z wykorzystaniem Multi Factor Authentication (MFA) za pomocą kodu wysyłanego na adres mailowy użytkownika.
Włączenie logowania MFA
Domyślnie uwierzytelnianie/logowanie się użytkowników z wykorzystaniem MFA jest w systemie AMODIT wyłączone. Aby je włączyć, należy wykonać następujące zmiany w ustawieniach systemowych AMODIT:
- [1], [2] Przejść do ustawień systemowych;
- [3] Przejść na zakładkę „Ogólne” …
- [4] … do sekcji „Uwierzytelnianie wieloczynnikowe”.
- [5] Zmienić wartość parametru UseMFA z „none” na „mail”.
Dodatkowo można ustawić parametry wykorzystywane w mechanizmie MFA:
- MFATrustedDeviceExpirationDays – na ile dni jest rejestrowane urządzenie zaufane;
- MFATrustedDeviceSlidingExpiration – czy zalogowanie się z urządzenia zaufanego przedłuża datę ważności urządzenia o kolejne dni ustawione w MFATrustedDeviceExpirationDays;
- MFAFailedCodeVerificationLimit – ile razy można błędnie wpisać kod weryfikacyjny zanim zostanie on unieważniony;
- MFAUnverifiedCodesLimit – ile można wygenerować kodów, które nie zostaną poprawnie zweryfikowane, nim zostanie zablokowana możliwość generowania kolejnych kodów;
- MFAFailedVerificationTimeout – ile minut trzeba odczekać po wyczerpaniu prób z MFAUnverifiedCodesLimit nim będzie można wygenerować kolejny kod;
- MFACodeExpirationTime – ile minut jest ważny kod wysyłany w mailu.
Jak działa logowanie z wykorzystaniem MFA
Przy pierwszym zalogowaniu loginem i hasłem na danej maszynie w danej przeglądarce, użytkownikowi zostanie wyświetlone okienko z informacją o pierwszym dostępie z tego środowiska i z dwoma przyciskami umożliwiającymi wybór: czy chce dodać bieżące urządzenie do listy urządzeń zaufanych (brak logowania MFA przy kolejnych logowaniach) albo czy chce uzyskać jednorazowy dostęp do AMODIT z tego urządzenia (ponowne logowanie MFA przy kolejnym logowaniu).
Dodanie urządzenia do listy zaufanych
Po wybraniu „Dodaj do listy zaufanych” pojawi się okienko umożliwiające wpisanie nazwy, pod jaką zostanie zarejestrowane urządzenie. Domyślnie pole jest wypełnione nazwą wygenerowaną na podstawie typu urządzenia i rodzaju przeglądarki. Domyślną nazwę można zmienić wpisując bardziej odpowiadający użytkownikowi opis.
Po naciśnięciu przycisku „Dodaj do listy zaufanych” zostanie sprawdzone, czy urządzenie o wpisanej nazwie już istnieje. Jeżeli tak, to zostanie wyświetlony odpowiedni komunikat, a użytkownik będzie musiał wpisać inną nazwę.
Po weryfikacji unikalności nazwy urządzenia zostanie wyświetlone okienko na wpisanie jednorazowego kodu przesłanego mailem na adres użytkownika.
Należy zalogować się do skrzynki pocztowej i znaleźć mail zawierający kod weryfikacyjny o podanym numerze i wpisać go w okienku w AMODIT.
Po podaniu prawidłowego kodu w okienku, użytkownik zostanie zalogowany. W przeglądarce zostanie zapisane cookie, które umożliwi pomijanie weryfikacji przy kolejnych logowaniach. Cookie jest ważne przez liczbę dni ustawioną w parametrze MFATrustedDeviceExpirationDays (domyślnie 30 dni). Po upłynięciu tego okresu weryfikacja będzie musiała zostać powtórzona. W przypadku gdy włączone jest MFATrustedDeviceSlidingExpiration, ważność urządzenia jest przesuwana o ustawioną liczbę dni po każdym udanym logowaniu danego dnia.
Dostęp jednorazowy
Po wybraniu „Dostęp jednorazowy” zostanie wyświetlone okienko do wprowadzenia kodu oraz zostanie wysłany mail z kodem weryfikacyjnym. Po prawidłowym wpisaniu kodu, użytkownik zostanie zalogowany, ale w przeglądarce nie zostanie zapisany cookie MFA. Oznacza to, że przy kolejnym logowaniu z danej przeglądarki i komputera, będzie konieczne ponowne przejście procesu weryfikacji.
Ważność kodu weryfikacyjnego
a) Kod weryfikacyjny wysłany na adres mailowy jest ważny przez MFACodeExpirationTime (domyślnie 5) minut od momentu wysłania. Użycie kodu po upływie tego czasu spowoduje wyświetlenie stosownego komunikatu oraz przycisku umożliwiającego wygenerowanie nowego kodu.
b) Po kilkukrotnym błędnym wprowadzeniu kodu jest on unieważniany. Liczba możliwych prób jest ustawiona w MFAFailedCodeVerificationLimit (domyślnie 3). Pojawia się przycisk umożliwiający wygenerowanie nowego kodu.
c) Jeżeli w ciągu czasu ustawionego w MFAFailedVerificationTimeout (domyślnie godzina) zostaną unieważnione MFAUnverifiedCodesLimit różne kody (czyli dla każdego będą MFAFailedCodeVerificationLimit nieudane próby weryfikacji), to system na podany w MFAFailedVerificationTimeout czas zablokuje logowanie danego użytkownika. Podobny błąd wystąpi w przypadku, gdy w ciągu MFAFailedVerificationTimeout zostało wygenerowane przynajmniej MFAUnverifiedCodesLimit kodów, które nie zostały prawidłowo zweryfikowane.
Ten mechanizm ma zapobiec próbom złamania mechanizmu atakiem brute force. W pierwszym przypadku ktoś generuje kod 3 razy i dla każdego ma 3 próby zgadnięcia przed przekroczeniem limitu (czyli w sumie 9 prób). Drugi przypadek, to zabezpieczenie przed sytuacją, gdy ktoś generuje kod i tylko raz próbuje go zgadnąć, aby objeść ograniczenie 3 prób na kod.
d) Jednocześnie ważny jest tylko jeden kod, czyli aktualny kod, jeżeli nie zostanie wykorzystany, to zostanie unieważniony po wygenerowaniu nowego kodu z innej przeglądarki.
Lista urządzeń zaufanych
Lista urządzeń zaufanych jest dostępna w profilu użytkownika. Na liście są wyświetlane urządzanie aktywne (nie upłynął czas MFATrustedDeviceExpirationDays od rejestracji) oraz nieaktywne (dla nich upłynął czas MFATrustedDeviceExpirationDays). Na niebiesko jest wyświetlone urządzenie, na którym użytkownik aktualnie pracuje. Po najechaniu na nazwę pojawia się tooltip z informacją o terminie aktywności i o dacie ostatniego logowania. Z tej listy można usunąć nieaktualne urządzenia.
Logi aktywności związane z MFA
W profilu użytkownika na liście jego aktywności w zakładce „Historia logowania” są zapisywane zdarzenia związane z logowaniem MFA. Logowane są następujące zdarzenia:
- MFACodeGenerated – wygenerowanie kodu MFA;
- MFADeviceRegistered – zarejestrowanie urządzenia zaufanego;
- MFADeviceDeleted – usunięcie urządzenia zaufanego;
- MFAWrongCode – podanie błędnego kodu.
Dodatkowo dla zdarzenia LogIn jest zapisywana nazwa urządzenia zaufanego, z którego nastąpiło logowanie.