KB000001
Co to jest password manager?
To bezpieczne narzędzie do przechowywania sekretów, najczęściej tych krótkich takich jak:
adresy IP,
ważne lokalizacje w systemie operacyjnym,
hasła i loginy,
adresy email,
numery telefonów,
PINy,
numery kart kredytowych,
numery kart lojalnościowych,
numery kart SIM,
Kody PUK,
Recovery Keys.
Takie rozwiązanie jest odpowiedzią na potrzeby związane z gromadzeniem wrażliwych danych w jednym miejscu, zachowywania poufności i ograniczania dostępu. Zapewniamy sobie zerowy poziom zabezpieczenia gdy eksponujemy nasze dane w:
Excelu,
Sticky Notes,
Wordzie,
Kajecie,
Kalendarzu papierowym,
Na kartce w postaci kodu EAN-128
Należy również pamiętać, że najlepiej sprawdzają się podstawowe funkcjonalności. Do wszelkiego rodzaju pluginów "rozszerzających" możliwości programu password manager powinniśmy podchodzić z dużym dystansem.
Jakie narzędzie wybrać gdy pracujemy na Ubuntu?
Pozwolę sobie w tym KBa ( knowledge base article ) omówić krótko aplikację 'Pass'. Wybrałem ją ze względu na prostotę oraz integralność z Ubuntu.
Rozpocznijmy od krótkiego TAK/NIE:
PLUSY | MINUSY |
|
|
|
|
| |
|
Wiele zależy jak zwykle od potrzeb. Jeśli wolisz pracę z terminalem, i nie potrzebujesz bajerów takich jak ma KeePass czyli 'GLOBAL-AUTOTYPE', Pass będzie dobrym wyborem.
Przed konfiguracjami, poczynię pewne założenia:
Nic co jest związane z Pass nie zostało jeszcze wcześniej skonfigurowane
Pracujesz z linią komend i jest ci potrzebny dostęp typu 'AE' ( always && everywhere )
Posiadasz Ubuntu: >= 22.04.4 LTS
Korzystasz z bash
Konfiguracja - GPG
Pass
W pierwszej kolejności, sprawdź za pomocą poniższych komend czy masz jaki kolwiek klucz:
KLUCZ PUBLICZNY
gpg --list-keys
KLUCZ PRYWATNY
gpg --list-secret-keys
Jeżeli komenda 'gpg' nie została rozpoznana, zainstaluj. W razie braku pewności co do wersji instalacyjnej użyj:
apt policy gnupg
Jeżeli posiadasz już jakieś klucze ale nie masz pewności co do ich przeszłości i wolisz je usunąć, rozpocznij operację czyszczenia od klucza prywatnego
( ID pobierzesz z wyniku ww. komend )
gpg --delete-secret-key <tutaj ID>
Potwórz to samo dla klucza publicznego ( to samo ID )
gpg --delete-key <tutaj ID>
Ok. Teraz sprawdź ponownie listy kluczy. Jeśli jest czysto, możesz przejść do kolejnego kroku. Dzięki video dowiesz się jak wygenerować nową parę. Procedurę rozpocznij od:
gpg --full-generate-key
Po zakończeniu generowania, zweryfikuj listy kluczy.
Konfiguracja - Pass
Ok. Czas na instalację. Rozpocznij od:
sudo apt update && sudo apt install pass
Po zainstalowaniu, zainicjalizuj bazę:
pass init <email który podałeś do 'GPG' lub ID klucza>
CRUD
CREATE:
[ only pass for login ]
pass insert SocialMedia/Facebook
[ login && Pass ]
pass insert SocialMedia/Facebook/login@example.com
[ container ]
pass insert -m SocialMedia/Facebook/container
[ after confirmed ]
Login: login@example.com
Pass: <passowrd>
[ with pass generator ]
pass generate socialmedia/twitter/myaccount@test.com 16
READ:
[ without login ]
pass show SocialMedia/Facebook
[ with login or container ]
pass show SocialMedia/Facebook/login@ or container
UPDATE:
[ without login ]
pass insert -f SocialMedia/Facebook
[ with login or container ]
pass insert -f SocialMedia/Facebook/login@ or container
DELETE:
[ directory ]
pass rm -r SocialMedia/Facebook or SocialMedia
[ login or container ]
pass rm SocialMedia/Facebook/login@ or container
WAŻNE: usunięcie ostatniego wpisu z katalogu powoduje usunięcie całego katalogu.
Tips & Tricks
GENEROWANIE HASEŁ:
Można generować hasło za pomocą narzędzia 'openssl'. Jest to dobre rozwiązanie z uwagi na to że hasło jest wysoce entropijne i losowe.
[ 32 znakowe ]
openssl rand -base64 24
[ z opcją skopiowania do schowka ]
openssl rand -base64 24 | tr -d '\n' | xclip -selection copycliboard
SCRIPTING:
Skrypt może być przydatny gdy np. potrzebujemy dodać recovery key's. Oczywiście najprostszą metodą na dodanie sporej ilości kodów jest użycie parametru -m,
ale może pojawić się potrzeba odseparowania ich jako osobne encje celem utrzymania porządku. Poniżej zaprezentuję krótki skrypt dodający każdy key, jako osobny rekord:
#!/bin/bash
# main directory in Pass
basePath="google"
# keys from file or website
keys=(
"24694849111",
"108935641946",
"102284655265",
"10612101097975",
"79107101035978",
"231019425716",
"17103910710829",
"41255648448",
"4331044611105",
"4210561786110"
)
for i in "${!keys[@]}"; do
# re-define as you need
fullPath="$basePath/RecoveryCode$((i+1))"
# pipeline is require
echo "${keys[i]}" | pass insert --echo "$fullPath" -f
done
echo "Process complited"
KOPIOWANIE LOGINU:
Co prawda, nie jest to rozwiązanie idealne. Jak wspomniałem, istnieją pewne ograniczenia. Założeniem do tego tipa, jest posiadanie niezbyt dużej ilości loginów.
Przejdź do:
nano ~/.bashrc
I wprowadź alias ( dostosuj według uznania ):
alias passFB='pass SocialMedia/Facebook/login@login.com | head -n 1 | xclip -selection clipboard'
CACHE'OWANIE GPG:
Można zdefiniować według własnych potrzeb czas przechowywania w pamięci podręcznej hasła użytego w procedurze GPG.
Aby dokonać manipulacji, przejdź do:
nano ~/.gnupg/gpg-agent.conf
I wprowadź dane ( poniżej przykład ):
default-cache-ttl 60
max-cache-ttl 120
Gdzie opcja 'default-cache-ttl' określa, jak długo hasło jest zachowane w pamięci podręcznej od momentu ostatniego użycia, a 'max-cache-ttl' określa maksymalny czas przechowywania hasła w pamięci podręcznej, niezależnie od tego, czy było używane, czy nie. Domyślną wartością jest 600 sekund.
Aby zmiany zostały wprowadzone, musisz wykonać restart usługi 'gpg-agent':
gpgconf --kill gpg-agent
gpg-connect-agent reloadagent /bye
LINKI:
Dokumentacja Pass:
Dokumentacja GnuPG:
Comments