Jak działa KeePassXC z YubiKey w trybie challenge-response?

challenge-response keepassxc-yubikey podstawy

W tym scenariuszu KeePassXC nie używa YubiKey jak klasycznego logowania do usługi internetowej. Program otwiera lokalną bazę haseł i wzmacnia jej klucz szyfrujący odpowiedzią obliczoną przez YubiKey. KeePassXC wysyła do klucza wyzwanie, a YubiKey odpowiada wynikiem HMAC-SHA1. Ta odpowiedź jest używana jako dodatkowa ochrona bazy. To ważne, bo w tym układzie nie chodzi o zwykłe 2FA w serwisie online, tylko o dodatkowe zabezpieczenie pliku bazy.

Dlaczego w KeePassXC trzeba użyć właśnie HMAC-SHA1 challenge-response?

challenge-response keepassxc-yubikey wyjasnienie

Oficjalna dokumentacja KeePassXC podaje, że do zabezpieczenia bazy z YubiKey trzeba skonfigurować jeden slot w trybie HMAC-SHA1 Challenge-Response. Nie używa się tu FIDO U2F, FIDO2 ani TOTP. Powód jest prosty: baza KeePassXC musi dać się odszyfrować lokalnie przy użyciu stałego mechanizmu, a HMAC-SHA1 działa na stałym sekrecie i wyzwaniu bez zależności od licznika albo czasu.

Jak przygotować slot YubiKey w Yubico Authenticator?

gui keepassxc-yubikey konfiguracja

Podłącz YubiKey do komputera i otwórz Yubico Authenticator na desktopie. Następnie przejdź do sekcji Slots. Najbezpieczniej wybrać Slot 2. Nadpisanie Slot 1 ogranicza domyślną funkcjonalność klucza out of the box, bo ten slot jest zwykle fabrycznie zajęty przez Yubico OTP. Slot 2 jest standardowo pusty, więc konfiguracja challenge-response dla KeePassXC niczego ważnego nie zabiera.

Wybór slotu YubiKey w Yubico Authenticator dla KeePassXC

Gdy wybierzesz właściwy slot, ustaw dla niego tryb Challenge-response. Potem wpisz własny sekret albo wygeneruj go losowo.

Konfiguracja challenge-response w Yubico Authenticator dla KeePassXC

Oficjalna dokumentacja Yubico podaje, że dla challenge-response wpisuje się sekret w postaci parzystej liczby znaków szesnastkowych, maksymalnie do 40 znaków, czyli do 20 bajtów. To odpowiada wymaganiu HMAC-SHA1 używanemu przez KeePassXC.

Czy warto włączyć opcję Require touch?

bezpieczenstwo keepassxc-yubikey

Możesz dodatkowo włączyć opcję Require touch. Wtedy YubiKey nie odpowie na wyzwanie automatycznie, tylko będzie wymagał dotknięcia klucza przy każdej operacji challenge-response. To zwiększa kontrolę nad użyciem klucza i jest zgodne z oficjalną dokumentacją Yubico. W praktyce przy otwieraniu bazy KeePassXC użytkownik musi wtedy fizycznie potwierdzić użycie klucza.

Dlaczego trzeba zapisać sekret z konfiguracji YubiKey?

backup bezpieczenstwo keepassxc-yubikey

To bardzo ważny krok. Oficjalna dokumentacja Yubico i KeePassXC podkreśla, że sekret zapisany w slocie challenge-response trzeba zachować w bezpiecznym miejscu. Po zapisaniu sekretu na YubiKey nie da się go później odczytać z urządzenia. Jeśli zgubisz klucz, uszkodzisz go albo nadpiszesz slot bez kopii sekretu, możesz stracić dostęp do bazy. Dlatego najlepiej zachować sekret offline i traktować go jak materiał zapasowy do odtworzenia konfiguracji.

Jak skonfigurować KeePassXC do pracy z YubiKey?

keepassxc-yubikey konfiguracja

Najpierw otwórz bazę w KeePassXC. Potem przejdź do Database -> Database Security. W tej sekcji wybierz dodanie dodatkowej ochrony i użyj opcji Add Challenge Response. Gdy program wykryje YubiKey i właściwy slot, zatwierdź ustawienie i zapisz bazę. To właśnie ten krok jest opisany w oficjalnym FAQ KeePassXC jako właściwa metoda podłączenia YubiKey do bazy.

Co dzieje się po zapisaniu bazy z włączonym challenge-response?

dzialanie keepassxc-yubikey

Po zapisaniu bazy KeePassXC zaczyna używać odpowiedzi z YubiKey jako części ochrony bazy. Dokumentacja KeePassXC wyjaśnia też ważny szczegół: wymagane wyzwanie zmienia się przy zapisie bazy. Oznacza to, że bieżąca wersja pliku jest związana z aktualnym stanem tej ochrony. W praktyce poprzednia wersja bazy nadal może być otwierana z poprzednim challenge-response, ale nowa wersja działa już z nowym stanem zapisanym przez KeePassXC.

Jak sprawdzić, czy konfiguracja działa poprawnie?

keepassxc-yubikey weryfikacja

Najprościej zamknąć bazę, a potem otworzyć ją ponownie. Jeśli konfiguracja jest poprawna, KeePassXC poprosi o zwykłe hasło do bazy oraz użyje YubiKey do challenge-response. Jeśli włączyłeś Require touch, pojawi się też potrzeba dotknięcia klucza. Poprawne otwarcie bazy po tej operacji oznacza, że konfiguracja działa.

Czy challenge-response z KeePassXC działa przez NFC?

keepassxc-yubikey problemy

Nie. Oficjalna dokumentacja Yubico podaje, że challenge-response dla aplikacji Yubico OTP działa przez wywołanie z hosta i wymaga fizycznego połączenia przez USB. W praktyce dla KeePassXC oznacza to, że YubiKey musi być podłączony do komputera przewodowo albo przez złącze obsługiwane jak lokalne połączenie urządzenia. Samo zbliżenie przez NFC nie wystarczy do tego scenariusza.

Jak przygotować zapasowy YubiKey do tej samej bazy?

backup keepassxc-yubikey

Oficjalna dokumentacja KeePassXC dopuszcza użycie wielu YubiKey z jedną bazą, ale tylko wtedy, gdy wszystkie są zaprogramowane tym samym sekretem HMAC-SHA1. To oznacza, że przy tworzeniu zapasowego klucza nie generujesz nowego sekretu, tylko zapisujesz w drugim urządzeniu dokładnie ten sam sekret, którego użyłeś w pierwszym. Dzięki temu oba klucze mogą odpowiadać identycznie na wyzwanie wysyłane przez KeePassXC.

Wszystkie pytania