Chcesz używać kluczy YubiKey jako menadżera haseł?

Po co? Nie musisz mieć hasła głównego. Poznanie jednego hasła nie oznacza poznania reszty. Każde "pokazanie" hasła wymaga fizycznego dotknięcia klucza.

Opublikowano 01-01-2023 19:53

Zapisz się na
darmowy kurs z podstaw bezpieczeństwa

Sporo osób używa KeePassXC + YubiKey. Ale to NIE JEST "prawdziwe" 2FA. Czarny klucz obsługuje HMAC-SHA1. Zapisujesz w kluczu tajny sekret. Gdy wyślesz do Yubi jakiś ciąg znaków - zwróci on hash wygenerowany na podstawie zapisanego wcześniej sekretu. KeePass to wykorzystuje.

Program generuje losowy ciąg znaków. Wysyła go do Yubi i odczytuje hash. Ten hash (razem z hasłem) jest wykorzystywany do zaszyfrowania bazy. Oprócz bazy zapisuje się również ten losowy ciąg.

Jak wygląda odblokowanie menadżera? KeePass odczytuje losowy ciąg zapisany w bazie. Jeśli masz YubiKey, którego użyto podczas konfiguracji to zwróci on tą samą odpowiedź HMAC-SHA1 co wcześniej. Dzięki temu uda się odszyfrować bazę.

Ale jeśli ktoś pozna tą wartość - to może jej użyć. Nie zmienia się ona po każdym użyciu. Zmienia się tylko przy zapisie bazy. Wtedy KeePass generuje nową losową wartość i prosi klucz o nowy hash, którego używa do szyfrowania. Po odszyfrowaniu bazy atakujący ma dostęp do wszystkich haseł, które są w niej zapisane. To nic dziwnego. Tak działają menadżery haseł. Dlatego hasło główne jest tak istotne.

I tu do gry wchodzi AGE. Age to względnie nowy standard szyfrowania plików, który chce zastąpić GPG. Użycie jest proste. Ściągasz program, generujesz swój klucz i szyfrujesz nim plik. W sumie 2 komendy - patrz zdjęcie poniżej. Ale prawdziwa siła AGE to rozszerzenia.

Jeśli masz czarny YubiKey do przechowywania kluczy możesz użyć age-plugin-yubikey. Podpinasz klucz, uruchamiasz program, wybierasz wolny slot i podajesz kod PIN.

Rozszerzenie wygeneruje klucz, który możesz używać do szyfrowania plików. Po co tak kombinować? Już tłumaczę.

Aby odszyfrować plik musisz użyć pliku z kluczem prywatnym. Plik jak to plik, ktoś może skopiować/podglądnąć i tym samym poznać jego zawartość. Znając klucz może odszyfrować pliki, które nim zaszyfrowałeś. Analogicznie jak klucze do samochodu. Masz klucze? Możesz odjechać.

Tutaj nie ma tego problemu - bo klucz znajduje się wewnątrz YubiKey i nie można go łatwo wydobyć. Jeśli chcesz coś odszyfrować musisz o to poprosić YubiKey. Klucz prywatny nigdy nie opuszcza wnętrza YubiKey.

Przykład. Chcesz zobaczyć treść pliku X. Uruchamiasz AGE. Program odczytuje specjalną wartość i wysyła ją do klucza. Yubi prosi Cię o kod PIN i dotknięcie przycisku. Jeśli wszystko się zgadza - klucz odszyfrowuje dane i zwraca odpowiedź.
AGE wyświetla plik. Chcesz zobaczyć kolejny plik? Cała procedura jest ponawiana.

Ktoś uzyskał dostęp do zaszyfrowanych plików? Nic z nimi nie zrobi. W najgorszej opcji pozna tylko te hasła, które odszyfrujesz w danym momencie. Nie będzie w stanie odszyfrować innych - bo wymagane jest fizyczne dotknięcie klucza. A tego program nie jest w stanie zrobić.

Ręczne szyfrowanie haseł jest "takie sobie". Passage to program, który automatyzuje opisaną wcześniej procedurę.

A co gdy YubiKeye się zgubią? AGE pozwala na szyfrowanie kilkoma kluczami prywatnymi na raz. Wygeneruj klucz, przepisz go na kartce i schowaj w sejfie. Jego publiczną część użyj do szyfrowania plików - oprócz YubiKeyów.

A co z telefonami? Filippo (autor Age) po odszyfrowaniu konkretnego hasła generuje z niego kod QR przy pomocy passage -q. Taki kod możesz zeskanować telefonem i skopiować hasło do schowka. Sprytne.

Minusy?

  • Brak rozszerzenia do przeglądarki.
  • Musisz samodzielnie dbać o backup.
  • To do Ciebie należy wybór odpowiedniego pliku z hasłami. Nowoczesne menadżery na stronie phishingowej nie podpowiedzą hasła - bo zapisują również adresy. Tutaj musisz kopiować adres do schowka.

To rozwiązanie dla paranoików i zaawansowanych osób znających terminal. To też ciekawa alternatywa dla KeePassa. Nawet całkowita kompromitacja naszego komputera nie powoduje od razu automatycznego ujawnienia naszych haseł. Czekam na więcej zastosowań kluczy w przyszłości.

Więcej o szczegółach technicznych znajdziesz w tym poście.