KeePass to popularny menedżer haseł posiadający standardowe funkcje znane z alternatywnych rozwiązań, ale charakteryzujący się innym podejściem do synchronizacji i przechowywania zapisanych w nim danych. Nie oferuje wbudowanej funkcjonalności synchronizacji poświadczeń pomiędzy urządzeniami — nie istnieje odpowiednik „chmury” wykorzystywanej w tym celu. jeżeli zależy nam na zapewnieniu synchronizacji, co wydaje się naturalnym wyborem, musimy skorzystać z rozwiązań typu Google Drive czy Dropbox bądź z narzędzi self-hosted, np. Nextcloud.
Dzięki temu KeePass można określić jako najbardziej prywatny menedżer haseł. Baza naszych poświadczeń jest oczywiście szyfrowana i bez znajomości hasła (klucza głównego) nie jest możliwe jej odczytanie. Z drugiej strony dla niektórych osób brak działającej out-of-the-box synchronizacji może stanowić wadę — niemniej konfiguracja KeePass do działania przykładowo z Dropbox jest wyjątkowo prosta i nie wymaga zaawansowanej wiedzy technicznej.
KeePass jest bezpłatny i dostępny w ramach open-source — kod źródłowy dla każdej wersji można pobrać z SourceForge. Tutaj należy wspomnieć, iż „oryginalny” KeePass, napisany przez Dominika Reichla, dostępny jest wyłącznie na systemy Windows (można jednak użyć Mono w celu uruchomienia na Linux). Oznacza to, iż platformy mobilne i system macOS nie posiadają możliwości korzystania z KeePass.
Natomiast dzięki modelowi open-source powstało wiele tzw. portów aplikacji KeePass na pozostałe systemy. Te bardziej znane wymieniono na stronie https://keepass.info/download.html, z których najbardziej popularny to KeePassXC. Posiada on nieco bardziej nowoczesny interfejs, przez co zwyczajnie wygoda jego użycia jest większa. Baza danych jest kompatybilna, więc przykładowo w systemie Windows możemy używać KeePassXC, a na telefonie aplikacji Keepass2Android, co jest znaczącym udogodnieniem.
W tym poradniku postaram się przedstawić jak najbardziej praktyczne zastosowanie KeePass w systemach Windows, Ubuntu i Android wraz z działającą synchronizacją bazy haseł oraz innymi przydatnymi funkcjami.
KeePass
Zaczniemy od KeePass dla Windows, który można pobrać ze wspomnianej strony https://keepass.info/download.html.
Proces instalacji nie wymaga raczej dodatkowego komentarza — opcje domyślne będą w pełni odpowiednie.
Po pierwszym uruchomieniu zobaczymy prawdopodobnie komunikat informujący o konflikcie skrótu Ctrl+Alt+A, który jest stosowany do działania funkcji auto-type (automatyczne uzupełnianie pól logowania). Zmiany domyślnego skrótu na inny wybrany dokonamy wchodząc w Tools -> Options… i dalej w Integration. W tym samym oknie przydatne będzie także zaznaczenie opcji Run KeePass at Windows startup (current user).
Warto też po wejściu w zakładkę Advanced zaznaczyć opcję Start minimized and locked.
Dzięki temu KeePass będzie działał w tle i uruchamiał się automatycznie, oczekując podania hasła do bazy danych. Samą bazę musimy najpierw utworzyć, wybierając pierwszą od lewej ikonę. Podajemy lokalizację dla pliku KDBX, a dalej ustawiamy hasło do bazy.
To hasło powinno być dość złożone, ale jednocześnie całkowicie możliwe do zapamiętania.
If you forget/lose any of the master key components (or forget the composition), all data stored in the database is lost. There is no backdoor and no universal key that can open your database.
Następnie wystarczy podać nazwę dla tworzonej bazy (np. Hasła) i zapisać w bezpiecznym miejscu i/lub wydrukować wygenerowany emergency sheet.
W samym KeePass bazy są tworzone z domyślnymi wartościami i grupami, które warto od razu usunąć.
Grupy po usunięciu trafią do wbudowanego Recycle Bin, który należy po tej operacji „opróżnić”.
Grupy mają sensowne zastosowanie, aczkolwiek te domyślnie tworzone nie będą dostosowane do każdego przypadku użycia. Dlatego rozsądne jest dodanie własnych grup poprzez kliknięcie prawym przyciskiem myszy na nazwę otwartego pliku bazy danych i wybór pozycji Add Group…
Poprzez wybór ikony klucza można dodać wpisy do dodanej grupy. Wystarczy uzupełnić pola w karcie General.
Można skorzystać z funkcji generowania hasła, która choćby przy pozostawieniu domyślnych ustawień utworzy silne hasło.
KeePass umożliwia otwarcie podanego we wpisie adresu URL z jego poziomu poprzez kliknięcie ikony globu po zaznaczeniu interesującego nas wpisu. Otwarta zostanie domyślna przeglądarka. I teraz gdy w formularzu logowania na stronie naciśniemy ustawioną kombinację dla auto-type, to zobaczymy prostą, ale jednak ciekawą animację uzupełniania pól dla loginu i hasła. Logowanie odbywa się w pełni automatycznie, tzn. nie ma potrzeby wciskania Enter czy klikania przycisku wysyłki formularza.
W celu umożliwienia synchronizacji haseł wykorzystamy aplikację Dropbox. Można ją pobrać po zalogowaniu na nasze konto w tej usłudze. Instalacja ogranicza się do uruchomienia pobranego pliku DropboxInstaller.exe.
Plik z bazą danych KeePass możemy teraz przenieść do folderu Dropbox. KeePass nie obsługuje innych możliwości dostępu do bazy, jak tylko poprzez plik w strukturze systemu plików, stąd konieczność instalacji klienta Dropbox.
Keepass2Android
Wymienioną aplikację możemy zainstalować ze Sklepu Play.
W aplikacji wybieramy następnie Otwórz plik… i wskazujemy odpowiednią opcję — w naszym przypadku Dropbox.
Zostanie otwarta przeglądarka, z której poziomu musimy zalogować się do usługi i zezwolić na dostęp dla aplikacji Keepass2Android. Następnie wskazujemy plik bazy danych i otwieramy go, podając ustawione wcześniej hasło.
Polecam od razu włączyć funkcję autouzupełniania (komunikat wyświetla się na dole aplikacji). Nie jest wymagana żadna inna konfiguracja. Aplikacja jest gotowa do użycia.
W aplikacji możliwe jest Szybkie Odblokowanie po jej zamknięciu, które polega na wprowadzeniu trzech ostatnich znaków hasła zamiast wpisywania całej frazy. Oprócz tego aplikacja zawiera gotowe szablony, które można zaimportować podczas dodawania nowego wpisu do bazy.
Są one raczej użyteczne i myślę, iż warto je wykorzystać. Dzięki synchronizacji poprzez Dropbox wprowadzone zmiany będą dostępne na wszystkich naszych instancjach KeePass. Szablony są kompatybilne z różnymi portami aplikacji.
KeePassXC (Windows)
KeePassXC pobierzemy ze strony https://keepassxc.org/download/. Wcześniej wymagane jest zainstalowanie MSVC Redistributable. Widać również informację dotyczącą problemu z aktualną wersją 2.7.9, która bez wcześniejszej reinstalacji tego pakietu po prostu nie działa.
Instalacja ponownie nie jest skomplikowana.
Po pierwszym uruchomieniu zobaczymy pytanie dotyczące sprawdzania aktualizacji podczas startu programu. Następnie można otworzyć naszą bazę z lokalizacji Dropbox. KeePassXC dla Windows domyślnie blokuje wykonywanie zrzutów ekranów — zamiast okna aplikacji na wynikowym zrzucie widoczne są zakryte okna bądź fragment pulpitu.
Łatwo zauważyć, iż GUI aplikacji różni się od tego zastosowanego w KeePass. Obsługa programu jest intuicyjna — użytkownik nie jest „zasypywany” nadmiarową ilością przycisków. Aplikacja wygląda estetycznie.
Wprowadzone zmiany zapisują się automatycznie. Aby aplikacja uruchamiała się automatycznie i nie wyłączała się po zamknięciu okna, należy wejść w Narzędzia -> Ustawienia i w sekcji Interfejs użytkownika aktywować opcje Zminimalizuj zamiast wyjść z aplikacji oraz Pokaż ikonę w zasobniku systemowym (ewentualnie wybrać kolorowy typ ikony).
KeePassXC nie posiada wbudowanej funkcjonalności autouzupełniania w przeglądarce. Konieczna jest instalacja rozszerzenia i powiązanie wtyczki z KeePassXC. Procedura ogranicza się do wejścia w Ustawienia i dalej Integracja z przeglądarką. Wystarczy aktywować tę opcję, zaznaczyć używane przez nas przeglądarki oraz zainstalować rozszerzenie z linków dostępnych po kliknięciu wyróżnionych zielonym kolorem nazw.
W przeglądarce klikamy ikonę wtyczki, a następnie widoczny przycisk Podłącz ponownie.
Otwarte zostanie okno KeePassXC, w którym określamy nazwę dla połączenia z przeglądarką i zapisujemy dodaną integrację.
Wtyczka powinna być już poprawnie podłączona.
Po otwarciu strony, której adres URL został zapisany w bazie KeePass, wtyczka zainicjuje wyświetlenie analogicznego do poniższego komunikatu.
Potem trzeba już tylko kliknąć ikonę wtyczki przy wykrytym na stronie formularzu logowania, aby poświadczenia zostały automatycznie wstawione w odpowiednie pola.
Dodatkowo przy logowaniu do serwisów, których adresy nie znajdują się w bazie, rozszerzenie wyświetli komunikat informujący o możliwości dodania wpisu.
KeePassXC posiada ciekawą funkcjonalność udostępniania wybranych haseł czy innych danych o nazwie KeeShare. jeżeli zależy nam na szczególnej poufności czy działaniu wyłącznie na zarządzanej przez nas infrastrukturze, to warto rozważyć instalację Nextcloud. Dzięki temu będziemy niezależni od zewnętrznych usług udostępniania plików.
Nextcloud posiada aplikacje na różne systemy, ale równie dobrze w celu dostępu do naszych danych sprawdza się WebDAV. To rozszerzenie protokołu HTTP pozwalające na zarządzanie plikami. Popularne systemy operacyjne posiadają pełne wsparcie dla WebDAV, więc unikamy konieczności instalacji jakiekolwiek oprogramowania.
Ścieżka do zamontowania udziału WebDAV w Nextcloud ma postać:
http(s)://SERWER/remote.php/dav/files/UŻYTKOWNIK/
Podczas montowania udziału wymagane jest oczywiście podanie poświadczeń używanych do logowania do Nextcloud. Niestety w Windows zamontowanie udziału wymagającego logowania nie zadziała bez modyfikacji rejestru. Należy w Edytorze rejestru (regedit) przejść do gałęzi HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters i edytować wartość BasicAuthLevel ustawiając 2.
Po tej operacji wystarczy uruchomić ponownie system. Możliwe już będzie prawidłowe zamontowanie udziału WebDAV.
Pomimo zaznaczenia opcji Zapamiętaj moje poświadczenia dane logowania z jakiegoś powodu nie są zapisywane — za każdym razem po odłączeniu udziału trzeba będzie zalogować się ponownie.
Można teraz otworzyć w KeePassXC bazę z udziału WebDAV i przejść do konfiguracji KeeShare w Ustawieniach. Tutaj wystarczy zaznaczyć jedynie opcje Zezwól na import i Zezwól na eksport.
Kolejny etap to utworzenie dedykowanej grupy. W jej ustawieniach należy przejść do zakładki KeeShare i ustawić Typ na Eksportuj. Dalej konieczne jest podanie ścieżki do zapisu udostępnionej grupy (tworzony jest osobny plik KDBX, który można udostępniać wybranym osobom) i hasło.
W udostępnianej grupie utworzymy wpis z poświadczeniami SSH serwera. Jako załącznik dodamy klucz prywatny, co umożliwi automatyczną autentykację dla połączenia SSH — KeePass podczas każdego startu i po odblokowaniu bazy doda klucz do używanego agenta SSH. Ważne jest, aby podczas dodawania wpisu podać Adres URL w formacie ssh://użytkownik@serwer.
Po przejściu do karty Zaawansowane można dodać załącznik, czyli wykorzystywany klucz prywatny SSH.
Utworzony plik KeeShare możemy poprzez standardowe mechanizmy Nextcloud udostępnić wybranym użytkownikom.
KeePassXC (Ubuntu)
KeePassXC w pełni wspiera systemy z rodziny Linux. W przypadku Ubuntu istnieją dwie łatwe metody instalacji: poprzez snap lub Flatpak. Pierwsza z nich ogranicza się do polecenia
Obsługa i wygląd programu nie różnią się w stosunku do wersji dla Windows.
Snap ogranicza dostęp aplikacji do zasobów systemu — określa się to jako sandboxing. Z tego powodu nie ma możliwości korzystania z integracji z agentem SSH, a integracja z rozszerzeniem w przeglądarce wymaga dodatkowego kroku.
Ten prosty skrypt dostępny jest pod adresem https://raw.githubusercontent.com/keepassxreboot/keepassxc/latest/utils/keepassxc-snap-helper.sh. Wystarczy wykonać go powłoce i wskazać używaną przeglądarkę. Dalsze kroki są analogiczne.
W celu korzystania z funkcji automatycznego „logowania” SSH trzeba zainstalować aplikację KeePassXC bez użycia snap. Alternatywą jest Flatpak. W pierwszej kolejności jednak musimy zamontować udział WebDAV zawierający udostępniony plik. Z poziomu Nautilus po wejściu w Inne położenia wystarczy podać odpowiedni adres serwera:
dav(s)://SERWER/remote.php/dav/files/UŻYTKOWNIK/
Zostaniemy poproszeni o podanie nazwy użytkownika i hasła.
Aby udział był montowany automatycznie (bez konieczności logowania) można użyć davfs2. Dokładna instrukcja użycia została podana na stronie https://wiki.archlinux.org/title/Davfs2.
Flatpak nie jest domyślnie zainstalowany. Sam proces instalacji nie jest szczególnie skomplikowany, bo ogranicza się do trzech poleceń:
Instalacja KeePassXC z użyciem tej metody także nie powinna sprawiać trudności:
Warto w dalszej kolejności utworzyć symlink do ~/.local/share/flatpak/app/org.keepassxc.KeePassXC/current/active/export/share/applications w katalogu .local/share/applications, aby możliwe było łatwe uruchamianie aplikacji zainstalowanych poprzez Flatpak — poprzez menu Podgląd, z którego poziomu aplikację można „przypiąć” do Dock’a.
Po uruchomieniu KeePassXC należy otworzyć plik z KeeShare podając ustawione przez właściciela hasło. W Ustawieniach w zakładce Agent SSH trzeba jedynie aktywować tę funkcję.
Następnie w edycji udostępnionego wpisu ponownie w karcie Agent SSH konieczne jest zaznaczenie opcji Dodaj klucz do agenta podczas otwierania/odblokowywania bazy danych i wskazanie załącznika jako klucza prywatnego.
Wymagane jest ponowne uruchomienie aplikacji, aby te zmiany zaczęły działać. Jak widać poniżej, udało się zalogować bez podawania hasła, a klucz został poprawnie dodany.
Podsumowanie
Większość użytkowników oczekuje, iż oprogramowanie nie będzie wymagać wieloetapowej konfiguracji i będzie gotowe do użycia zaraz po zainstalowaniu. Rozpoczęcie korzystania z KeePass nie jest trudne, natomiast chociażby powszechnie używana synchronizacja wymaga osobnej konfiguracji. Dzięki temu jednak, przy założeniu korzystania z zarządzanych przez nas usług, samodzielnie odpowiadamy za własne dane i ich dostępność. Z tego powodu KeePass zdecydowanie będzie odpowiednim wyborem dla wszystkich osób ceniących prywatność, ale też zainteresowanych technologiami.