Wyobraźmy sobie taką sytuację:
W ramach rozrywki rejestrujemy się na grze giełdowej, by spróbować swoich sił w obrocie papierami wartościowymi. Do logowania używamy tego samego hasła, co do naszego emaila. Jednak mimo początkowych chęci, WIG20 niechęci nas, pojawiają się inne zajęcia, a serwis opuszczamy na stałe. Po około roku okazuje się, że ze względu na słabe zabezpieczenia, dane z serwerów gry giełdowej zostają wykradzione.
Hakerzy momentalnie sprawdzają adres, jakiego użyłeś przy rejestracji, logują się na niego za pomocą hasła jakie wprowadziłeś. Za pomocą tego maila przejmują kontrolę nad twoim facebookiem, twitterem i pozostałymi serwisami społecznościowymi. Odzyskanie całego internetowego dorobku zajmie ci dłuższy czas, a wszystkiemu mógłbyś zaradzić w prosty sposób – używając do każdego serwisu innego hasła. Oczywiście zastosowałem tu pewne przerysowanie, ale jestem pewien, że nie raz skorzystałeś z tego samego na dwóch stronach. Skąd mogę wiedzieć? Nie jestem inny!
Ale jak to, przecież to wymaga kosmicznej pamięci, korzystam z wielu wirtualnych usług, nie dam rady wymyślić oddzielnego hasła do każdego z nich!
Nie musisz tego robić, bo w tym zadaniu wyręczy cię program pass, szerzej opisany tutaj. Z jego pomocą wygenerujesz losowe, silne hasło a całe repozytorium z hasłami będzie zaszyfrowane z wykorzystaniem GnuPG, więc nawet gdy pliki z hasłami wpadną w niepowołane ręce to nie stanie ci się żadna krzywda. Aby móc korzystać z bazy loginów na każdym urządzeniu, wykorzystamy program syncthing (odrobinę o nim tutaj). Proces instalacji opisany w poradniku przeprowadziłem w systemie OS X El Capitan oraz Androidzie 6.0.1, ale załączam instrukcje pomagające w przeniesieniu go na inne platformy.
Poradnik to 20 kroków, ~1000 słów i dużo zrzutów ekranów. Czas pracy to około 20 minut.
1.) Zaczynamy od instalacji oprogramowania wszystkich komponentów na komputerze. Na OS X’ie korzystam z Homebrew, ty powinieneś skorzystać z odpowiedniego menadżera pakietów.
brew install syncthing pass gpg2 # jeżeli dawno nic nie instalowałeś warto odpalić jeszcze brew update
2.) Włączamy syncthing poprzez odpowiedni program rozruchowy (często systemd, w moim wypadku launchctl przez homebrew’ową nakładkę).
sudo brew services start syncthing # sudo sprawia, że syncthing włączy się przy każdym restarcie komputera
3.) W przeglądarce odpalamy interfejs syncthing, schowany pod adresem http://localhost:8384.

4.) Tworzymy nowy folder.

5.) W folder label wpisujemy nazwę taką, jaką chcemy by wyświetlał nam program w swoim kokpicie, w folder ID możemy zostawić losowy ciąg znaków (jest to identyfikator służący do rozpoznania folderu podczas synchronizacji dwóch urządzeń). Jeżeli chodzi o ścieżkę – w poradniku korzystamy z ~/.password-store, tam znajduje się nasze nasze repozytorium.
6.) Nie posiadamy jeszcze żadnych urządzeń, dlatego po prostu zatwierdzamy. Nowopowstały folder pojawi się na liście.

7.) Musimy teraz zainstalować Syncthing na naszym telefonie. Jest ono dostępne w sklepie F-Droid, Google Play lub w ramach oddzielnego APK. Do tego potrzebujemy ewentualnie Barcode Scanner (to najprostszy sposób kopiowania ID komputera).

8.) Otwieramy aplikację i przeprowadzamy wstępną konfigurację. Następnie otwieramy zakładkę Urządzeń i klikamy plusa w prawym górnym rogu.
![]()
9.) Musimy teraz otworzyć w interfejsie na komputerze podgląd naszego ID. W telefonie natomiast klikamy małą ikonkę kodu kreskowego. Otworzy nam się Barcode Scanner, który musimy nakierować na nasz identyfikator. Po kilku sekundach powrócimy do aplikacji, a długi numer identyfikacyjny będzie już na swoim miejscu. Wpisujemy jeszcze nazwę (taką jaką sobie wybierzemy), restartujemy Syncthing i jesteśmy niemal gotowi.

10.) Wracamy jeszcze na chwilę do komputera, czekamy na powiadomienie o nowym urządzeniu i dodajemy telefon do naszych urządzeń (uwaga, jeżeli długo się nie pojawia, musimy skopiować ID z telefonu do komputera). Możemy teraz ustawić synchronizację folderu z repozytorium haseł!
11.) W telefonie zaraz pojawi się powiadomienie o folderze, jakim chce podzielić się nasz komputer. Konfigurujemy go, w ścieżce podając wygodny dla nas folder znajdujący się w pamięci wewnętrznej.


12.) I… już! Nasze hasła będą synchronizowane pomiędzy komputerem a telefonem. Ale to dopiero połowa naszych zmagań, bo potrzebujemy jeszcze klucza GPG oraz programów na telefonie. Tym zajmiemy się już teraz – instalujemy OpenKeychain oraz PasswordStore. Aplikacje są dostępne, tak samo jak Syncthing, w F-Droid oraz Google Play.

13.) Wracamy do komputera, musimy teraz utworzyć klucz oraz zainicjować repozytorium pass.
gpg --gen-key # zaczynamy od klucza Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? 1 Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) # warto się zastanowić - nie wygasający klucz uniemożliwia jego zmianę gdy wyślemy go na serwer zaufania, ale nie przysporzy problemów gdy upłynie rok czy dwa lata Key does not expire at all Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Franek Madej Email address: alergeek@rulez.me Comment: tutaj_ksywka You selected this USER-ID: "Franek Madej (tutaj_ksywka) <alergeek@rulez.me>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # tutaj miejsce na wpisanie hasła - i bam! mamy własny klucz GPG.
14.) Teraz inicjujemy nasze pass repo za pomocą świeżego identyfikatora GnuPG, od razu dodając pierwsze hasło dla sprawdzenia programu.
> pass init alergeek@rulez.me -p .alergeek-password-store # używam podścieżki, bo posiadam już repozytorium z innym kluczem, # jeżeli masz tylko jedno repozytorium omijasz parametr -p > pass generate .alergeek-password-store/hello/world 10 -c # ponownie podścieżka .alergeek-password-store, to również omijasz ;) # parametr -c kopiuje od razu hasło do schowka, więcej opcji pod man pass! [master a637b05] Add generated password for .alergeek-password-store/hello/world. 1 file changed, 1 insertion(+) create mode 100644 .alergeek-password-store/hello/world.gpg Copied .alergeek-password-store/hello/world to clipboard. Will clear in 45 seconds. # $xCmqJ3&8y - świeżo wygenerowane hasło
15.) Repozytorium jest już gotowe, mamy swój klucz, a foldery synchronizują się między telefonem a komputerem. Potrzebujemy jeszcze tego samego klucza na obu urządzeniach, dlatego korzystamy z możliwości eksportu w gpg.
gpg --export-secret-keys alergeek@rulez.me > secret.key # zapisujemy nasz klucz do pliku
16.) Musimy teraz przetransportować ten plik do telefonu – pozostawiam tutaj każdemu wolną rękę, bo sposobów jest wiele. 🙂
17.) Włączamy OpenKeychain, i klikamy wybieramy opcję importu z pliku, następnie nawigujemy do wcześniej wyeksportowanego klucza.


18.) Po imporcie przechodzimy do zainstalowanej wcześniej aplikacji Password Store.
19.) Na ekranie głównym otwieramy ustawienia (prawy górny róg ekranu startowego) i edytujemy następujące opcje.
- Zaznaczamy “external repository” i wskazujemy ścieżkę naszego folderu z Syncthing.
- Wybieramy aplikację odpowiedzialną za PGP, czyli OpenKeychain.
- Wybieramy nasz klucz i ID.

20.) Gdy zamkniemy okno ustawień, ukaże nam się repozytorium haseł, z tym dodanym wcześniej na komputerze. Voilà!

Świetny post, sam robiłem coś takiego używając OpenKeychain & PocketGit poprzez prywatne repo. Dobrze wiedzieć o Syncthing i Password Store! Keep it up!
LikeLiked by 1 person
Fajny post!
LikeLike