top of page

🔒PASSWORD MANAGER

Writer's picture: Mateusz  KaczyńskiMateusz Kaczyński

Updated: Apr 30, 2024



keys


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

  • Wykorzystuje GENOME Privacy Guard

  • Brak natywnej opcji kopiowania loginów

  • CLI

  • Brak auto-uzupełniania

  • Jest darmowy i popularny


  • Można wykonać polecenie z dowolnego miejsca w systemie plików



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:


  1. Nic co jest związane z Pass nie zostało jeszcze wcześniej skonfigurowane

  2. Pracujesz z linią komend i jest ci potrzebny dostęp typu 'AE' ( always && everywhere )

  3. Posiadasz Ubuntu: >= 22.04.4 LTS

  4. 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 ]


[ 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:





logo ubuntu



Comments


bottom of page