GPG
Sissejuhatus
GPG (GNU Privacy Guard) on vabavaraline tööriist, mis baseerub OpenPGP standardil. See võimaldab failide ja meilide krüpteerimist ning digiallkirjastamist. Krüpteerimine tagab teabe konfidentsiaalsuse ja digiallkirjastamine andmete terviklikkuse. GNU Privacy Guard on eelkõige käsurealt kasutamiseks mõeldud, kuid leidub ka erinevat graafilise kasutajaliidesega tarkvara, mis GnuPG kasutamist võimaldab. Teatud rakendustele (näiteks Evolution, Mozilla Thunderbird, Kmail ja Psi) on see funktsioon juba sisse integreeritud.
GnuPG abil saame krüpteerida sõnumeid, kasutades selleks asümmeetrilist ehk avalikku võtit, mis kasutaja poolt genereeritakse. Dešifreerimine toimub salajase võtme abil. Koos moodustavad avalik ning salajane võti võtmepaari. Avalikku võtit saab vahetada teiste kasutajatega näiteks läbi võtmeserverite või failina saates. GPG toetab ka mitmesuguseid sümmeetrilisi krüptoalgoritme, vaikimis kasutatakse CAST5 salajase võtmega krüptoalgoritmi. Tegu on vabatarkvaralise programmiga ja GPG's on kasutusel ainult mitte patenteeritud krüptoalgoritmid.
GPG paigaldamine
Kuna suurem osa Linux distributsioonide paigaldusmeedia sisaldab GNU Privacy Guard'i, siis pole seda tarvis eraldi installeerida. Vajadusel saab GPG endale hankida http://gnupg.org/download/index.en.html veebilehelt.
GPG kasutamine
Nurksulgude < > vahel oleva teksti asemele tuleb kasutajal ise andmed sisestada.
Näiteks:
gpg --output <failinimi.midagi> --gen-revoke <avalikvõti>
Näide: gpg --output siinonminurevocationkey.asc --gen-revoke D29Af589
Esimese huvi pakkuva asjana võiks vaadata, millise GnuPG versiooniga meil tegemist on. Sama käsklust kasutades näeme ka milliseid krüptoalgoritme GPG toetab. Sisesta terminali:
gpg --version
Väljund:
gpg (GnuPG) 1.4.11 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Home: ~/.gnupg Supported algorithms: Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 Compression: Uncompressed, ZIP, ZLIB, BZIP2
Võtmepaari genereerimine
Võtmepaari genereerimiseks tuleb terminali sisestada:
gpg --gen-key
Selle peale küsitakse meilt, millist võtit me genereerida soovime. Vaikimisi valitakse 1. variant (RSA and RSA). 1. ja 2. variandi puhul on võimalik nii krüpteerimine kui ka digiallkirjastamine.
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?
Järgmisena küsitakse meilt, kui pikka võtit me tahame, vaikimisi pakutakse võtme pikkuseks 2048 bitti.
RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048)
Nüüd tuleb määrata oma võtme kehtivusaeg. Vaikimisi on see 0 ehk lõpmatult, kuid siin tasub meeles pidada, et kui võtit enam ei kasutata, siis tuleb see ka tühistada.
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)
Teie käest küsitakse “Is this correct? (y/N)“
Sisestage “y”
Järgmisena sammuna tuleb sisestada oma nimi, e-post, ja kommentaar(valikuline). Sisestage „o“, et oma võti luua.
Nüüd tuleb sisestada avanenud aknasse salasõna, millega soovite oma salajast võtit kaitsta.
Edasi võib oma tavapärase tööga jätkata, kuniks võtit genereeritakse.
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, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
Oma avalikku võtit saate vaadata käsuga:
gpg --list-key
Väljund:
/home/test/.gnupg/pubring.gpg ------------------------------ pub 2048R/D29AF589 2012-11-27 uid Heli Kopter <hkopter@midagi.com> sub 2048R/DF39B4EF 2012-11-27 Avalik võti on D29AF589
Salajast võtit käsuga:
gpg --list-secret-keys
Soovituslik oleks luua ka “revocation key”, millega saab avalikku võtit tühistada juhul, kui keegi on sinu salajase võtme teada saanud.
Sisesta terminali:
gpg --output <failinimi.midagi> --gen-revoke <avalikvõti>
Näide: gpg --output siinonminurevocationkey.asc --gen-revoke D29Af589
Avalikku võtit saab võtmeserverisse üles laadida järgmise käsuga:
gpg –-send-keys <avalikvõti> --keyserver <keyserver.ubuntu.com>
Avalikku võtit on võimalik teisele osapoolele ka eraldi failina edastada, näiteks e-posti teel või mõne muu meediumi kaudu. Kuid esmalt tuleb avalik võti ASCII armored formaati eksportida. Selleks tuleb terminalis sisestada järgmine käsk:
gpg --armor --export <sinu_e-post@random.com> > <voti.asc>
Kellegi teise avaliku võtme importimine failist:
gpg --import <failinimi.midagi>
See tagab selle, et teise osapoolega on info vahetamine võimalik. Pärast importimist lisandub teise isiku avalik võti sinu pubring.gpg faili. Veendu, et importimine oli edukas.
Selleks sisesta varem kasutatud käsk "gpg --list-key".
Avaliku võtme importimine võtmeserverist:
gpg --search-keys <e-post@random.com> --keyserver <keyserver.ubuntu.com>
GPG võtmepaari kustutamine:
gpg --delete-secret-and-public-key <avalikvõti>
Andmete krüpteerimine
Avatekst + vastuvõtja avalik võti ---> krüptogramm
Faili krüpteerimiseks sisesta järgmine käsk:
gpg --output <väljundfail.midagi> --encrypt -r <saaja_e-post@random.com> <avateksti.midagi>
Näide: gpg --output eritisalajane.txt --encrypt -r keegi@midagi.com saladus.txt
Selle käsuga krüpteerisime me faili nimega saladus.txt, kasutades selleks isiku(kes kasutab e-posti aadressit keegi@midagi.com) avalikku võtit ja saime krüptogrammi nimega eritisalajane.txt. Kui nüüd tekkinud krüptogrammi less käsuga vaatame, siis näeme, et faili sisu pole loetav. Avateksti (saladus.txt) võib nüüd kustutada ning alles jääb ainult krüpteeritud fail (eritisalajane.txt).
Andmete dešifreerimine
Krüptogramm + vastuvõtja salajane võti ---> avatekst
Krüptogrammi(mis on krüpteeritud sinu avaliku võtmega) dešifreerimiseks sisesta järgmine käsk:
gpg --decrypt <krüptogramm.midagi> --output <väljundfail.midagi>
N: gpg --decrypt eritisalajane.txt –output tavaline.txt
Siinkohal tasuks mainida, et saatja ning vastuvõtja ei ole alati erinevad inimesed. GPG abil võime krüpteerida ka oma enda andmeid. Sellisel juhul luuakse krüptogramm ning avateksti võime kustutada. Seda saab lihtsalt teha sümmeetrilist krüptoalgoritmi kasutades:
gpg -s <avatekst.midagi>
Dešifreerimine toimub eelnevalt mainitud käsuga:
gpg -d <krüptogramm.midagi> -o <väljundfail.midagi>
Andmete signeerimine
Andmete signeerimiseks on mitu võimalust:
Krüpteeritud ASCII Armored fail. Tegemist on krüptogrammiga ning see pole ilma dešifreerimata loetav.
gpg --armor --sign <failinimi.midagi>
Allkirjastatakse fail, kuid sisu krüpteerimist ei toimu ning fail jääb loetavaks.
gpg --clearsign <failinimi.midagi>
Faili autentsust on võimalik kontrollida järgmise käsuga:
gpg --verify <failinimi.midagi>
Väljund:
gpg: Signature made Thu 29 Nov 2012 11:06:03 AM EET using RSA key ID D29AF589 gpg: Good signature from "Heli Kopter <hkopter@midagi.com>"
gpg --verify kontrollib ainult faili allkirja, kuid avateksti see näha ei võimalda(juhul kui fail on krüpteeritud).
Selleks tuleb fail dešifreerida ning selle käigus kontrollitakse ka faili allkirja (käsku vaata eespoolt).
Käskude kohta leiab rohkem infot: http://manpages.ubuntu.com/manpages/lucid/man1/gpg.1.html
Kasutatud kirjandus
http://www.glump.net/howto/gpg_intro
http://www.randombugs.com/linux/gpg-ubuntu-debian.html
http://manpages.ubuntu.com/manpages/lucid/man1/gpg.1.html
http://www.gnupg.org/features.en.html
https://help.ubuntu.com/community/GnuPrivacyGuardHowto
http://www.spywarewarrior.com/uiuc/gpg/gpg-com-4.htm
Autor: Kaarel Kuurmann A21