Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Keepass – system zarządzania hasłami
Wstęp
Keepass jest programem, który bardzo ułatwia zarządzanie hasłami statycznymi. Przy jego pomocy znacznie zwiększymy bezpieczeństwo naszych kont i uprościmy proces uwierzytelniania (zarówno na komputerze, telefonie, jak i tablecie).
Czym dokładnie jest Keepass?
- Jest to uniwersalna baza haseł do różnych usług.
- Wszystkie dane przechowywane są w szyfrowanym pliku:
- .kdb (Keepass 1.x, Keepass 2.x, KeepassX, Keepassdroid),
- .kdbx (Keepass 2.x, KeepassX 2 Alpha, Keepassdroid).
- Jest to bezpieczny kanał komunikacji miedzy bazą danych (plikiem) a programami w systemie.
1. Możliwości Keepassa
- Przechowywanie w sposób bezpieczny haseł do dowolnej usługi,
- Zarządzanie bazą haseł (plikiem): nie powierzamy danych oprogramowaniu firm trzecich (np. LastPass), bazę przechowujemy w miejscu, które sami wybierzemy (na dysku lokalnym, sieciowym…), mamy pewność, że nikt nie podejrzy naszych haseł, nawet gdy plik bazy danych udostępnimy publicznie, ponieważ jest ona szyfrowana,
- Automatyczne generowanie mało intuicyjnych haseł (do każdej usługi),
- Wspomaganie automatycznego logowania (np. możemy zastąpić menadżer haseł w Firefoxie),
- Automatyczne tworzenie backupu bazy haseł.
2. Inne uniwersalne cechy Keepassa
- Działa w systemie Windows, Linux, MacOS, Android, Blackberry i innych,
- Nie integruje się z konkretnym programem, jest pewnego rodzaju „notatnikiem na hasła”,
- OpenSource – dostęp do kodu źródłowego gwarantuje bezpieczeństwo oraz łatwą rozbudowę,
- Lekki program posiadający wersję portable.
3. Opis działania
- Tworzony jest szyfrowany plik bazy danych (np. algorytmem AES 256bit lub Two Fish 256bit, domyślnie 50 000 rund szyfrowania). Kluczem może być hasło statyczne, plik lub konto Windowsa.
- Następnie przez użytkownika dodawane są informacje o hasłach. Istnieje możliwość importowania ich z wielu popularnych programów czy źródeł danych (np. Firefox, kWallet, CSV…).
- Wszystkie informacje przechowywane są w szyfrowanym pliku, który fizycznie znajduje się w dowolnie wybranej przez nas lokalizacji. Plik może być nawet dostępny publicznie – nikt, kto nie będzie znał klucza, nie będzie w stanie odszyfrować bazy danych (nawet przy prostych hasłach ataki Bruteforce trwają bardzo długo).
- W momencie, gdy użytkownik chce skorzystać z hasła, otwiera program (z tray lub przez skrót klawiaturowy), wyszukuje odpowiednią pozycję i kopiuje dane (istnieje możliwość automatycznego wpisania danych, tzw. funkcja Autotype).
- Dane przenoszone są do schowka w sposób szyfrowany (programy podsłuchujące schowek nie są w stanie ich interpretować). Po krótkim czasie (np. 30 sekund) dane te są automatycznie usuwane ze schowka.
- Co pewien czas zapisywana jest kopia bezpieczeństwa pliku bazy danych (plik bazy waży poniżej 1MB).
Hasło to musi być odpowiednio długie (np. 20 znaków) i skomplikowane, aby mieć pewność, że nikt nigdy nie będzie w stanie przeprowadzić ataku na klucz szyfrujący (np. próbując go odgadnąć).
Instalacja oraz przykłady użycia
1. Instalacja
Program można ściągnąć ze strony projektu. Trafimy tutaj na pierwszy problem – wybór wersji.
Keepass ma wiele odmian, przystosowanych do wielu systemów operacyjnych i architektur. Najważniejsze jest jednak to, że projekt rozwija się jednocześnie w dwóch gałęziach – pierwszej oraz drugiej. Gałęzie te różnią się formatem bazy haseł (Keepass1 – kdb, Keepass2 – kdbx). Którą wersję wybrać?
W zasadzie nie ma to aż tak dużego znaczenia. Plik bazy haseł kdbx jest bardziej elastyczny, ponieważ można tu przypisać więcej właściwości w każdym wpisie. Keepass2 dla Windows (kdbx) ma również kilka ciekawych funkcji, np. takich jak chociażby logowanie przez konto Windowsa. Z wyjątkiem małych różnic tego typu, obie gałęzie oferują podobne funkcjonalności. Istnieje możliwość konwersji jednego formatu bazy danych na drugi. Porównanie możliwości obu wersji znajduje się poniżej:
Aby zapewnić jak najlepszą kompatybilność między systemami operacyjnymi, lepiej wybrać wersję pierwszą bazy danych – kdb. Propozycje instalatorów w zależności od używanych systemów podano poniżej:
- Windows – Keepass (kdb), Keepass2 (kdbx) lub KeepassX (cross-platform, kdb),
- Linux/MacOS: KeepassX (kdb) lub KeepassX2 (w niedalekiej przyszłości powstanie wersja stabilna), Keepass2 wygląda dość nieciekawie, ale działa identycznie jak wersja Windows,
- Android: Keepassdroid (kdb oraz kdbx w trybie readonly),
- Apple iOS: iKeepass” (kdb, kdbx).
Gdy mamy już zainstalowane odpowiednie oprogramowanie, musimy stworzyć bazę danych i zaszyfrować ją odpowiednio długim kluczem. Każdy program z rodziny Keepass w intuicyjny i prosty sposób przeprowadzi nas przez ten proces.
Plik bazy danych można przechowywać w chmurze – będziemy wtedy mieli do niego swobodny dostęp z każdej platformy/systemu. Idealny do tego zadania jest Dropbox, który będzie zapisywał automatycznie najnowszą wersję bazy w chmurze. Nie musimy się tutaj martwić o (ideologiczne?) problemy „podglądania danych” przez firmy trzecie. Plik bazy danych i tak jest szyfrowany i nie można go podejrzeć, nie znając klucza.
Aby ułatwić proces wpisywania danych można zainteresować się funkcją autotype lub dodatkowymi pluginami, których celem jest wypełnianie formularzy logujących danymi z Keepass. Najprzyjemniej integruje się Firefox przy użyciu dodatku Keefox.
2. Przykłady użycia
Program Keepass oraz dodatek Keefox w akcji można obejrzeć na poniższych dwóch filmach:
Keepass nie jest niestety rozwiązaniem wszystkich problemów.
3. Minusy Keepassa
Główna wadą tego programu jest to, że został stworzony dla pojedynczego użytkownika. Istnieje możliwość jednoczesnego otwarcia kilku baz danych, ale dostęp do nich jest kontrolowany przez system (uprawnienia do odczytu/zapisu bazy danych są takie jak do pliku bazy).
Nie ma możliwości założenia bazy danych i udostępnienia jej na przykład zespołowi pracowników (tzn. uprawnienia można robić tylko na podstawie pliku), nie mamy więc mechanizmów list dostępu do konkretnych haseł.
Mimo tych małych niedogodności Keepass jest bardzo elastycznym programem, prostym w obsłudze i znacząco podnoszącym bezpieczeństwo.
Inne systemy zarządzania hasłami
Keepass nie jest jedynym systemem zarządzania hasłami. Istnieje wiele innych rozwiązań, które posiadają dodatkowe funkcje. Największą zaletą większości tych programów (lub usług) jest to, że są tworzone z myślą o wielu użytkownikach. Pozwala to wdrożyć bezpieczną politykę haseł w firmie w prosty i skalowalny sposób. Niestety, większość tych rozwiązań sporo kosztuje.
1. Rozwiązania bezpłatne
- WebKeepass
- interfejs webowy do Keepass.
- Password Safe
- bardzo podobny do Keepass,
- mniejsza funkcjonalność.
2. Rozwiązania drogie (ceny z końca 2012 roku)
- PassPack
- $4 / miesiąc (15 użytkowników),
- $12 / miesiąc (80 użytkowników),
- $40 / miesiąc (1000 użytkowników).
- Quest Password Managers
- 6,49 EURO za użytkownika (minimum 100 użytkowników).
- Password Manager XP
- $11.95 – $24.95 za użytkownika.
- Last Pass Enterprise
- $20 – $24 za użytkownika.
3. Rozwiązania bardzo drogie (ceny z końca 2012 roku)
- Enterprise Password Safe
- 35 EURO za użytkownika + podatki.
- SecretServer
- około $40 – $70 za użytkownika.
- Password Manager Pro
- 5 administrators $795 – $1195 (unlimited password users).
- Network Password Manager
- $1749 za 50 użytkowników,
- $2999 za 100 użytkowników.
- ClickStudios Passwordstate
- $14.34 – $26.34 (za użytkownika),
- $2988 – $4880 (unlimited password users).
Źródła
– Adrian Vizzdoom
Michalczyk
O autorze
Adrian Vizzdoom
Michalczyk: pasjonat bezpieczeństwa teleinformatycznego od najmłodszych lat, obecnie student wydziału Informatyki Politechniki Śląskiej w Gliwicach.
Czasem programista, czasem gracz papierkowych gier RPG, ale zawsze fascynat klimatów post-apokaliptycznych. W swoim życiu nosił zarówno czarny, jak i biały kapelusz, teraz w wolnym czasie próbuje rozwijać swój kąt Internetu: http://vizzdoom.net.
Prawa autorskie
Artykuł został pierwotnie napisany dla portalu http://securitum.pl oraz został opublikowany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach.
Zezwala się na kopiowanie, dystrybucję, wyświetlanie i użytkowanie dzieła i wszelkich jego pochodnych (w celach komercyjnych i niekomercyjnych) pod warunkiem umieszczenia informacji o twórcy (w postaci: Adrian Vizzdoom
Michalczyk) oraz o pierwszym zamieszczeniu tekstu na portalu http://securitum.pl. Jeśli zmienia się lub przekształca niniejszy utwór albo tworzy inny na jego podstawie, można rozpowszechniać powstały w ten sposób nowy utwór tylko na podstawie takiej samej licencji.
W przypadku wycieku głównego hasła lecą wszystkie dane.
I co wtedy?
Kwestia poważenia sobie ryzyk. Nie ma systemów idealnych – a wszystkie łamie je odpowiednio barczysty gość z kałachem ;-)
@Morris:
KeePass 2 przynajmniej pod Windą posiada 3 poziomy kontroli dostępu do bazy haseł:
1. Master Password
2. losowy klucz generowany przy zakładaniu bazy
3. Powiązanie z kontem użytkownika
Te 3 sposoby można ze sobą łączyć, więc jak ktoś przewidzi hasło główne to musi jeszcze wskazać klucz.
@Morris
Wyciek głównego hasła nie nastąpi, bo masz go w głowie. No chyba, że wycieknie po tym ak47, o którym wspomina sekurak ;) A jak masz jakiś malware, to on się do danych nie dobierze, bo są one szyfrowane (no chyba, że wykradnie plik, postawi keyloggera, przechwyci hasło – jeśli je wpisujesz i wszystko prześle agresorowi). Przypominam też, że nasłuchiwanie obszarów pamięci czy chociażby schowka nic nie daje, po Keepass dane w tych miejscach również szyfruje.
No ale jak taki scenariusz można już wykonać, to ja akurat najmniej martwiłbym się o hasła :p
Najważniejsze jest to, że to TY masz kontrolę nad szyfrowanym plikiem i to u CIEBIE przetwarzany jest klucz. Nie wysyłasz danych np. do serwerów LastPass, gdzie nie wiadomo co się dzieje po drodze.
Dzięki temu w łatwy i zautomatyzowany sposób tworzysz unikatowe hasła w serwisach i potem ich używasz. Na wyciek danych na obcych stronach nie masz najmniejszego wpływu – reszta Twoich danych jest bezpieczna.
Nie ma szans, abyś zapamiętał osobne hasła do każdego serwisu. A trzymanie haseł w niezaszyfrowanym magazynie haseł przeglądarki jest równoznaczne z trzymaniem haseł w pliku HASLA.TXT na pulpicie.
Keepass (oraz inne, konkurencyjne programy) zwiększa więc znacznie bezpieczeństwo. Zwiększa, nie oznacza „całkowicie zabezpiecza”.
@Morris: Wtedy wiesz, że to Ty nawaliłeś, a nie tracisz wszystko z czyjejś winy/niekompetencji.
Warto też wspomnieć, że Keepass2 dla Linuksa używa jednej z najgorszej rzeczy jakie kiedykolwiek spotkały świat open source zwanej Mono, a ostatnia stabilna wersja KeepassX została wydana ponad trzy lata temu. :)
Dziękuję, ja już wolę LastPass.
vizzdoom pisze „…Nie wysyłasz danych np. do serwerów LastPass, gdzie nie wiadomo co się dzieje po drodze…”
pskosinski poniżej dopowiada – „…Dziękuję, ja już wolę LastPass…”
Pytanie – gdzie tu logika?
Odpowiedź – zdechła pod ciężarem bezmyślnych przyzwyczajeń (pleonazm?) …