GNU Privacy Guard
GNU Privacy Guard | |
---|---|
Käyttöliittymä | teksti |
Lisenssi | GPL |
Kotisivu | www.gnupg.org |
GNU Privacy Guard (GPG tai GnuPG) on vapaa versio tiedostojen salaamiseen ja allekirjoittamiseen tarkoitetusta PGP-ohjelmasta. Siitä on saatavissa versiot Linuxin lisäksi myös Windowsille, MacOS:lle ja PocketPC:lle.
Salaiset ja julkiset avaimet
Ggp:ssä käytetään kahdenlaisia avaimia, salaisia ja julkisia. Kuten nimistä voi päätellä, julkinen avain on tarkoitettu levitettäväksi julkisesti tai esimerkiksi lähetettäväksi avainpalvelimelle ja salainen avain on tarkoitus pitää vain käyttäjän omassa käytössä.
Kun käyttäjällä on toisen henkilön julkinen avain tämä voi salata viestin (tai tiedoston) siten, että sen avaamiseen tarvitaan vastaanottajan salainen avain. Vastaavasti salaista avainta käyttämällä on mahdollista lisätä viestiin allekirjoitus, jonka aitouden voi tarkistaa julkisella avaimella.
Salaista avainta käytettäessä tarvitaan myös avaimen salasana.
Käyttö
Gpg:tä käytetään komentoriviltä, mutta sille on olemassa myös graafisia käyttöliittymiä.
Avainparin luominen
Gpg:tä käytettäessä on luotava avainpari (tai tuotava jo olemassa oleva). Avainpari luodaan komennolla
$ gpg --gen-key
Tämän jälkeen gpg kysyy, minkä tyyppinen avain luodaan ja kuinka suuri avain (bitteinä) luodaan. Oletusasetukset ovat hyvät. Seuraavaksi kysytään, kuinka pitkään luotava avain on voimassa. Oletuksena avain ei vanhene koskaan mikä on usein hyvä vaihtoehto.
Näiden tietojen jälkeen gpg kysyy nimen, sähköpostiosoitteen ja kommentin luotavaa avainta varten. Näiden tietojen antamisen jälkeen luodaan varsinainen avainpari. Se voi kestää hetken ja jopa pysähtyä hetkeksi, jos tietokoneella ei tehdä muuta. Tällöin saat ilmoituksen
Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!
Tässä tapauksessa liikuttele hiirtä tai selaa wikiä, jotta satunnaislukugeneraattori sekoittuu tarpeeksi.
Kun kaikki tämä on tehty, gpg tulostaa tiedot juuri luodusta avaimesta
gpg: key 7AF6D4B4 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub 1024D/7AF6D4B4 2007-08-12 Key fingerprint = 6C00 8FC4 274D 441E F220 03F4 14D6 E291 7AF6 D4B4 uid Pentti Perussurffaaja (Mun GPG-avain \o/) <pera@linux.fi> sub 2048g/49EF6931 2007-08-12
Tässä 7AF6D4B4 on avaimen tunnistenumero ja 6C00 8FC4 274D 441E F220 03F4 14D6 E291 7AF6 D4B4 sen sormenjälki. Viimeisellä rivillä on tiedot salauksesta (2048 bittinen) ja avaimen luontipäivä.
Kaikki käytössä olevat avainparit näet komennolla
$ gpg --list-keys
Viestien salaaminen ja purkaminen
Tämän jälkeen viestin salaaminen onnistuu valitsimen -e (tai --encrypt) avulla:
gpg --encrypt tiedosto
Jolloin Gpg luo tiedoston tiedosto.gpg jossa tiedoston sisältö on salattuna. Tämän jälkeen Gpg kysyy, millä julkisella avaimella viesti salataan (listan näet komennolla gpg --list-keys). Jos esimerkiksi haluataan salata tiedoston käyttäen yllä luodun avaimen julkista osaa, annetaan avaimen tunnukseksi avaimen tunnistenumero 7AF6D4B4 ja painetaan entteriä. Avaimen tunnistenumero voidaan antaa myös valitsimella -r:
$ gpg -e -r 7AF6D4B4 tiedosto
Salattu viesti puretaan vastaavasti valitsimen --decrypt avulla:
gpg --decrypt tiedosto.gpg
Jolloin Gpg kysyy avaimeen kuuluvaa salasanaa. Avaimen salaisen osan on myös oltava käytettävissä.
Allekirjoittaminen
Allekirjoitettaessa tiedostoa annetaan gpg:lle valitsin -s (tai --sign) ja allekirjoitettava tiedosto:
$ gpg --sign tiedosto
Jonka jälkeen gpg pyytää salasanan ja allekirjoittaa tiedoston oletusavaimella. Jos halutaan käyttää jotain muuta kuin oletuksena käytettävää avainta, se voidaan antaa valitsimella -u:
$ gpg -s -u 7AF6D4B4 tiedosto
Tällöin tuloksen on tiedosto tiedosto.gpg jossa on allekirjoitettu viesti ja allekirjoitus pakattuna. Pakkaamattomana tiedosto allekirjoitetaan valitsimella --clearsign:
$ gpg --clearsign tiedosto
Jonka jälkeen tiedoston tiedosto.asc sisältö on seuraavanlainen:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Moi Terveiset linux.fi-wikille -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFGvza7FNbikXr21LQRAlZpAKCLpxonnAAT5A8szsRXKkRyO4mNoQCfUbe+ GFHRIF6LK6UnPxYVcoTdSC0= =hZ5I
Allekirjoituksen saa tallennettua erilliseen tiedostoon valitsimella -b. Tämä on kätevää etenkin allekirjoitettaessa binääritiedostoja:
$ gpg -b tiedosto
Jolloin tuloksena on tiedosto tiedosto.sig jossa on allekirjoitus pakattuna.
Allekirjoitus tarkistettaan antamalla gpg:lle valitsin --verify:
$ gpg --verify tiedosto gpg: Signature made Sun 12 Aug 2007 19:35:07 EEST using DSA key ID 7AF6D4B4 gpg: Good signature from "Pentti Perussurffaaja (Mun GPG-avain \o/) <pera@linux.fi>"
Tällöin gpg siis kertoo, millä avaimella ja milloin allekirjoitus on tehty. Jos tiedostoa on muutettu allekirjoituksen jälkeen, toinen rivi muuttuu muotoon
gpg: BAD signature from "Pentti Perussurffaaja (Mun GPG-avain \o/) <pera@linux.fi>"
Jos allekirjoitus on erillisessä tiedostossa, annetaan se parametrina gpg:lle
$ gpg --verify tiedosto.sig
Avainpalvelimet
Avainpalvelimet ovat palvelimia, jonne käyttäjät voivat lähettää julkiset avaimensa ja josta muiden käyttäjien julkisia avaimia on mahdollista hakea.
Oma avain lähetetään avainpalvelimelle komennolla
$ gpg --keyserver palvelin --send-key tunniste
Esimerkiksi edellä luomamme avain lähetettäisiin palvelimelle wwwkeys.eu.pgp.net komennolla
$ gpg --keyserver wwwkeys.eu.pgp.net --send-key 7AF6D4B4
Vastaavasti tietty avain haettaisiin sieltä komennolla
$ gpg --keyserver wwwkeys.eu.pgp.net --recv-key tunniste
Joitain avainpalvelimia:
- wwwkeys.eu.pgp.net
- wwwkeys.us.pgp.net
- pgp.dtype.org
- wweys.pgp.net
- search.keyserver.net
Katso myös
- KGpg - Graafinen käyttäliittymä GPG:lle