Pass

From EIK wiki


Sissejuhatus

Pass on standardne unixi paroolihaldur, mille iga parool paikneb krüpteeritud gpg faili sees (Joonis 1.). Tegu on lihtsa shell skriptiga. Failinimed põhinevad üldiselt veebilehel või ressursil ning kirjeldavad iga parooli kasutusala. Kõiki faile on võimalik organiseerida hierarhia põhiselt kaustadeks, kopeerida ühest arvutist teise ning loomulikult ka manipuleerida. Lühidalt öeldes muudab pass iga individuaalse parooli haldamise väga lihtsaks. Paroolid paiknevad ~/.password-store kataloogis ning nende lisamiseks, muutmiseks, genereerimiseks kui ka kuvamiseks on olemas mitmeid erinevaid standardseid unixi kui ka passi käsklusi. Lisaks sellele on veel mitmeid teisi omadusi - näiteks on ajutiselt võimalik parool kopeerida clipboardi või siis hoida oma paroolidel silm peal, kasutades giti.[1]

Joonis 1. Pass on standardne unixi paroolihaldur.


Põhitõed

Passi paigaldamine[1]

Kõige uuem versioon on 1.7.1.

Ubuntu / Debian

$ sudo apt-get install pass

Fedora / RHEL

$ sudo yum install pass

openSUSE

$ sudo zypper in password-store

Gentoo

# emerge -av pass

Arch

$ pacman -S pass

Macintosh

$ brew install pass
$ echo "source /usr/local/etc/bash_completion.d/password-store" >> ~/.bashrc


GNU Privacy Guard (GnuPG) 2.x võtme loomine[2]

1) Passi kasutamiseks on vajalik gpg2 võti. Võtme loomiseks kirjutada konsooli järgnev käsklus:

$ gpg2 --full-gen-key   # Võimalik on kasutada ka 'gpg2 --gen-key' käsku


2) Vali võtme tüüp. Vaikeväärtus on 1.

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)


3) Vali võtme pikkus. Vaikeväärtus on 2048.

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)


4) Vali võtme kehtivusaeg. Vaikeväärtus on 0.

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)


5) Võtme tuvastamiseks on vajalik kasutajatunnuse loomine:

GnuPG needs to construct a user ID to identify your key.

Esimesena sisestada oma nimi:

Real name:

Järgmisena sisestada oma e-posti address:

E-mail address:

Viimasena lisada lühikirjeldus, mis aitab hiljem erinevaid kasutajaid eristada:

Comment:

Kui andmed on õiged, siis jätkamiseks valida (O):

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?


6) Võtme kaitsmiseks on vajalik ka parooli loomine:

Please enter the passphrase to protect your new key.

Enter passphrase:


7) Võtme edukaks genereerimiseks toimetada vastavalt:

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, use the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Terminal võib antud informatsiooni paaril korral uuesti väljastada.

Oluline on olla järjekindel:

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 61 more bytes)

Juhul, kui eelnev protsess peaks hanguma või täielikult ebaõnnestuma, avada uus terminaliaken ja sisestada antud käsklused:

$ sudo apt-get install rng-tools
$ sudo rngd -r /dev/urandom


8) Protsess peaks nüüd jätkuma ning lõpuks teatama:

gpg: key 12345678 marked as ultimately trusted
public and secret key created and signed.


Passi seadistamine[2]

1) Sisestada varasemalt genereeritud gpg2 võti või e-posti address <gpg-id or email> asemele:

$ pass init <gpg-id or email>

Näide:

$ pass init kasutajanimi@itcollege.ee


2) Ekraanile ilmub kinnitus:

mkdir: created directory ‘/home/kasutajanimi/.password-store’
Password store initialized for kasutajanimi@itcollege.ee.


Paroolid[2]

Paroolide lisamine

1) Parooli manuaalne lisamine:

$ pass insert social/facebook     # Sotsiaalmeedia directory, mille subdir on Facebook.

----

mkdir: created directory ‘/home/kasutajanimi/.password-store/social’
mkdir: created directory ‘/home/kasutajanimi/.password-store/social/facebook’
Enter password for social/facebook:
Retype password for social/facebook:


2) Parooli automaatne genereerimine, n = parooli pikkus numbrina:

$ pass generate social/facebook n

Näide:

$ pass generate social/facebook 8


Paroolide muutmine ning eemaldamine

1) Parooli muutmine:

$ pass edit social/twitter


2) Parooli eemaldamine:

$ pass rm social/twitter


3) Parooli eemaldamine koos kaustaga:

$ pass rm -r social/twitter


4) Parooli force eemaldamine:

$ pass rm -f social/twitter


Paroolide kuvamine ning ligipääs

1) Paroolipuu sisu kuvamine:

$ pass

----


Password Store
└── social
    └── facebook
    └── twitter


2) Paroolipuu ühe osa või sektsiooni kuvamine:

$ pass ls social/

----

social
    └── facebook
    └── twitter


3) Parooli dekrüpteerimine ning kuvamine:

$ pass social/facebook

----

abcdef


4) Parooli dekrüpteerimine ning kopeerimine clipboardi 45 sekundiks:

$ pass -c social/twitter

----

Copied social/twitter to clipboard. Will clear in 45 seconds.


GnuPG võtmete import ja eksport[2]

GnuPG võtmeid on passis võimalik teistesse süsteemidesse üle viia. Vajalik on public key olemasolu.


Avalikud võtmed

1) Avalikke ning aktiivsete võtmete kuvamine:

$ gpg2 --list-keys


2) Ekspordi leitud võti faili, kasutades võtme ID:

$ gpg2 -ao pass_public.key --export <key ID value>

Näide:

$ gpg2 -ao pass_public.key --export 123456


3) Impordi loodud fail uude süsteemi:

$ gpg2 --import pass_public.key


Privaatsed võtmed

1) Privaatsete ning aktiivsete võtmete kuvamine:

$ gpg2 --list-secret-keys


2) Ekspordi leitud võti faili, kasutades võtme ID:

$ gpg2 -ao pass_private.key --export-secret-keys <key ID value>

Näide:

$ gpg2 -ao pass_private.key --export-secret-keys 123456


3) Impordi loodud fail uude süsteemi:

$ gpg2 --import pass_private.key


Usalduse puudumine uues süsteemis

1) Mõnikord võib tulla ette olukord, kui pärast võtme üle viimist uude süsteemi saadakse veateade:

$ gpg: There is no assurance this key belongs to the named user


See tuleneb, kui soovitatakse krüpteerida või muuta olemasolevat Passi sisendit.


2) Probleemi lahendamiseks tuleb muuta võtit:

$ gpg2 --edit-key <Key Value>

Näide:

$ gpg2 --edit-key 123456


3) Konsooli tuleb kirjutada:

trust


4) Valida vastav usalduse tase, 5 olles kõige usaldusväärsem:

Please decide how far you trust this user to correctly verify other users keys
(by looking at passports, checking fingerprints from different sources, etc.)

1 = I dont know or wont say
2 = I do NOT trust
3 = I trust marginally
4 = I trust fully
5 = I trust ultimately
m = back to the main menu

Your decision?


Tegevus, mida üritasid varasemalt läbi Passi kasutada, peaks nüüd töötama, kuna võti on saanud heakskiidu.


Käsklused[3]

Allaolevas tabelis on välja toodud kõige levinumad käsklused Passi kasutamiseks.

Käsk Kirjeldus
init [--path=sub-folder, -p sub-folder] gpg-id... Uue paroolihoidla seadistamine ning gpg-id kasutamine krüpteerimiseks.
ls subfolder Kuvab paroolide nimekirja antud alamkaustas.
find pass-names... Kuvab paroolide nimekirja, mis vastab võtmesõnale.
show pass-names Dekrüpteerib ning kuvab parooli konsoolis.
insert pass-names Uue parooli lisamine.
edit pass-name Uue parooli sisestamine või olemasoleva muutmine.
generate pass-name [pass-length] Uue parooli genereerimine süsteemi poolt.
rm [--recursive, -r] [--force, -f] pass-name Parooli eemaldamine.
mv [--force, -f] old-path new-path Parooli teisaldamine vanast asukohast uude asukohta.
cp [--force, -f] old-path new-path Parooli kopeerimine vanast asukohast uude asukohta.
git git-command-args... Paroolide lisamine git repositooriumisse.
help Kasutusnõuanded.
version Versiooni kohta põhinev informatsioon.


Version Control [2]

Passil on olemas Giti tugi. See annab võimaluse luua paroolide jaoks privaatsed repositooriumid, kuhu neid saab edukalt talletada. Teoorias saab paroole ka turvaliselt üles laadida avalikesse kohtadesse nagu seda on Github, kuna kõik paroolid on krüpteeritud GPG võtmega.

Giti paigaldamine

$ sudo apt-get install git


Giti kasutamine

1) Esimene samm:

$ cd /kasutajanimi/.password-store


2) Seadista oma repositoorium:

$ pass git init


3) Lisa repositooriumile aadress ja nimi:

$ pass git remote add origin git-repo-address.com:repo-name


4) Kinnita valikud:

$ pass git push -u --all


5) Nüüd on võimalik lisada, muuta, eemaldada ning läbi viia muudatusi, pärast mida saab need kõik tõugata oma välisesse repositooriumisse:

$ pass git push


Ühilduvad kliendid [1]

Alljärgnevast nimekirjast leiab erinevaid kliente ja graafilisi kasutajaliideseid eri platvormide jaoks.

- passmenu: väga kasulik dmenu skript

- qtpass: cross-platform GUI klient

- Android-Password-Store: Android app

- passforios: iOS app

- pass-ios: (vanem) iOS app

- passff: Firefox plugin

- browserpass: Chrome plugin

- Pass4Win: Windowsi klient

- pext_module_pass: Pexti moodul

- gopass: Go GUI app

- upass: interaktiivne konsooli UI

- alfred-pass: Alfredi integratsioon

- pass-alfred: Alfredi integratsioon

- simple-pass-alfred: Alfredi integratsioon

- pass.applescript: OS X intergratsioon

- pass-git-helper: giti volituste integratsioon

- password-store.el: emacsi pakett

- XMonad.Prompt.Pass: Xmonad prompt


Kokkuvõte

Pass on mõeldud neile, kes soovivad hoiustada oma paroolid ühes kindlas kohas, teades, et kõik paroolid on eraldi krüpteeritud ning kaitstud. Pass annab kasutajale ühtlasi võimaluse luua unikaalseid ning keerukamaid salasõnasid erinevate keskkondade tarbeks, kuna puudub otsene vajadus muretseda nende unustamise pärast - igal ajahetkel on võimalik salasõna õigusust kontrollida. Lisaks sellele on võimalik kustutada, muuta kui ka lisada uusi, mis teeb antud paroolihaldurist äärmiselt vajaliku igapäevase abimehe.


Autor

Nimi: Oliver Rahula
Rühm: C11
Kuupäev: 23.04.2017


Allikad