Pomocí příkazu GnuPG gpg můžete generovat veřejné a soukromé klíče. V tomto tutoriálu použijeme klíče generované příkazem gpg k odesílání a přijímání zašifrovaných souborů a digitálnímu podepisování souboru.
Zašifrujte soubor a odešlete jej příteli
1. Importujte veřejný klíč svého přítele
Když chcete svému příteli poslat tajný soubor, první věcí, kterou musíte udělat, je importovat veřejný klíč vašeho přítele. Veřejný klíč svých přátel můžete importovat ze „serveru klíčů“, pokud vyexportovali svůj veřejný klíč na server klíčů.
Informace o tom, jak exportovat veřejný klíč na server klíčů, najdete v části „Export vašich veřejných klíčů“ v našem článku Základy GnuPG.
Chcete-li importovat veřejný klíč ze serveru klíčů, proveďte následující. Import můžete provést některou z výše uvedených metod. Pro správný import klíčů zadejte ID klíče nebo e-mailové ID vašeho přítele nebo skutečné jméno.
$ gpg --search-keys --keyserver keyserver.ubuntu.com 'KEY-ID' or $ gpg --search-keys --keyserver keyserver.ubuntu.com 'E-Mail ID' or $ gpg --search-keys --keyserver keyserver.ubuntu.com 'Real Name'
Chcete-li importovat veřejný klíč ze souboru, postupujte takto. Pokud vám váš přítel poslal e-mailem svůj veřejný klíč, můžete tyto klíče importovat pomocí následujícího příkazu
$ gpg --import myfriends_pub_key.gpg
2. Ověřte importovaný server klíčů
Zda jste úspěšně importovali veřejný klíč vašeho přítele, můžete ověřit pomocí volby –list-keys
$ gpg --list-keys /home/lakshmanan/.gnupg/pubring.gpg ----------------------------------- pub 2048R/A7344E7D 2012-10-12 uid lakshmanan (My test GPG keys) sub 2048R/96F8EF9B 2012-10-12 pub 2048R/FB2744A8 2012-12-03 uid raman (Ram's test ID) sub 2048R/88EF55EE 2012-12-03
Nyní jsem importoval veřejný klíč mého přítele Ramana.
3. Zašifrujte tajný soubor pomocí veřejného klíče vašeho přítele
Nyní, když máte veřejný klíč svého přítele, můžete mu poslat soubor, který je zašifrován pomocí „Veřejného klíče vašeho přítele“, takže jej může dešifrovat pouze váš přítel (který má soukromý klíč).
$ gpg --encrypt --recipient raman a.txt gpg: 88EF55EE: There is no assurance this key belongs to the named user pub 2048R/88EF55EE 2012-12-03 raman (Ram's test ID) Primary key fingerprint: FF32 7764 A0AE 1E85 AC4B CF17 8AED B292 FB27 44A8 Subkey fingerprint: D6A5 7107 77C8 6845 2F86 765C EEED DD85 88EF 55EE It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes. Use this key anyway? (y/N) y
Všimněte si, že existuje varování, které říká, že neexistuje žádná záruka, že „veřejný klíč“ patří vašemu příteli. Až to čas dovolí, podíváme se na to zpět. Od nynějška, protože svému smaženému důvěřuji, dal jsem k použití klíče „Ano“.
Vytvoří soubor s názvem „a.txt.pgp“, při otevření pomocí editoru bude mít nějaká binární data. Pošlete tento soubor svému příteli jakýmkoli způsobem.
Pokud nechcete posílat binární obsah nebo se při odesílání binárního obsahu vyskytly problémy, můžete použít volbu –armor, která vytvoří soubor ASCII, jak je uvedeno níže.
$ gpg --encrypt --armor --recipient raman a.txt
Dešifrovat soubor
Nyní by váš přítel obdržel váš zašifrovaný soubor. Aby mohl zobrazit obsah souboru, musí soubor dešifrovat. Vzhledem k tomu, že operace dešifrování bude provedena pomocí soukromého klíče vašeho přítele, bude při vytváření klíčů vyžadovat heslo poskytnuté vaším přítelem.
$ gpg --decrypt a.txt.gpg > secret.txt
Nyní bude soubor secret.txt obsahovat skutečný napsaný text.
Odeslat zašifrovaný soubor více příjemcům
Soubor můžete také odeslat více příjemcům pomocí –recipient nebo -r
$ gpg -r raman -r steve -r gopi --encrypt a.txt
Jakmile je zadán výše uvedený příkaz, gpg použije veřejný klíč všech příjemců k zašifrování dat takovým způsobem, aby je mohl dešifrovat kterýkoli z jejich soukromých klíčů.
V našem dalším článku této série vysvětlíme, jak podepsat zprávu s daty a časovým razítkem.