Modul v aplikaci Mail, který umí zakódovat obsah emailu pomocí GPG bohužel dosud není k dispozici. Nějaká plnohodnotná náhrada tohoto modulu ještě chvíli dostupná nebude (Původní autor pluginu na něj nemá čas) a navíc nic nezaručí, že se po aktualizaci aplikace bude příslušný modul pracovat. Toto vám může pomoci v přechodném období, než bude modul opět připraven.
Předně je třeba poznamenat, že alespoň ze začátku se nevyhnete příkazovému řádku a zatímco kódování je bezpečné, dekódování, které později nabízím není zcela bez bezpečnostní chyby. Na druhou stranu přeci jen dávám přednost drobnému bezpečnostnímu excesu před komplikovaným a bezpečným řešením. Ale o tom později.
Nejdříve se podíváme na programy, které potřebujeme a nastavíme si je. Stáhněte si Mac OS X port gpg nástrojů. Balíček se jmenuje MacGPG2 a je k dispozici zdarma jako open source. Instalace je klasická: stáhnout, rozbalit, připojit disk a spustit instalátor. Instalátor se vás bude ptát na práva administrátora, protože instaluje binární soubory mimo vaši domovskou složku. Pokud jste úspěšně dokončili tento krok, můžeme pokračovat.
Nejdříve je nutné, aby jste měli své gpg klíče. Postup pro jejich generování je jednoduchý. Spusťte si aplikaci Terminál a zde napište:
gpg --gen-key
V terminálu se vás aplikace bude ptát, zda potřebujete klíč pro kódování, dekodování nebo obojí. Předpokládám, že potřebujete obojí, takže zvolte 1 a klepněte na enter. Další otázka je na délku klíče. Čím delší klíč, tím je kódování bezpečnější, avšak také déle trvá. Základní volba 2048 je dostatečně slušná na to, aby jste ji akceptovali enterem. V závislosti na tom, jak dlouho chcete certifikát používat, doporučuji zvolit délku platnosti, což je další otázka. Pokud zvolíte 0, certifikát nikdy nevyprší. Pokud zvolíte 1y certifikát bude platný 1 rok atd. Zvolte tedy délku certifikátu, klepněte na enter. Pak se bude program postupně ptát na vaše jméno (bude se pak zobrazovat v certifikátu), e-mail a další komentáře (můžete nechat prázdné), zkontrolujte údaje a zmáčkněte a (nebo y podle systému), že akceptujete certifikát v tomto stavu a zmáčkněte enter. Zobrazí se vám dialogové okno s žádostí o heslo, vepište heslo, klepněte na OK, vepište heslo znovu (pro kontrolu) a klepněte na OK. Váš certifikát bude po vygenerování klíče přístupný ve vaší domovské složce v .gnupg/trustdb.gpg (vaše domovská složka se označuje znakem ~, cesta k databázovému souboru s klíči je tedy ~/.gnupg/trustdb.gpg
Aby si vaši přátelé či obchodní partneři mohli ověřit, že jste dokument podepsal vy, případně jej odemknout (pokud je zakódovaný), je nutné jim poslat veřejnou část vašeho gpg klíče. Na to je nutné použít příkaz a pochopitelně zaměnit parametr Vaše Jméno za příslušnou identifikaci vašeho gpg klíče (klíč se vám objeví na pracovní ploše s názvem publickey.gpg):
gpg --export -a "Vaše Jméno" -o ~/Desktop/publickey.gpg
Jestli si nejste jisti, co máte použít jako "Vaše Jméno", zkuste příkaz, který vylistuje seznam veřejných klíčů, které máte uloženy:
gpg --list-keys
Nyní máte většinu práce za sebou. Pokud potřebujete jen podepisovat, tak již nic jiného nepotřebujete. Pokud potřebujete také kódovat data, je nutné si nahrát veřejné klíče vašich kolegů do databáze. To se provede příkazem (za předpokladu, že veřejný klíč, který chcete naimportovat se jmenuje public.key:
gpg --import public.key
Ještě malý tip: Pokud nechcete psát celou cestu až k příslušnému veřejnému klíči, do terminálu napište pouze "gpg --import " bez uvozovek (nezapomeňte na tu mezeru na konci) a pak přehoďte ikonu souboru s veřejným klíčem na aktivní terminálové okno. Jestliže jste to udělali správně, v terminálu se zobrazí celá cesta k příslušnému souboru. Pak stačí jen klepnout na enter.
Ti co si potřebují naimportovat své starší GPG klíče (tedy i soukromé), mohou použít příkaz:
gpg --allow-secret-key-import --import private.key
V tuto chvíli tak máte k dispozici vše, co potřebujete pro kódování či dekódování souborů (případně podepisování). Abych to shrnul, pokud by vám stačil terminál, tak kódovat můžete příkazem:
gpg -e -a -u "Jméno odesílatele" -r "Jméno příjemce" soubor
Pokud máte jen jeden soukromý klíč (s tím se počítá v příkladu níže), pak není třeba uvádět paramter -u. Soubor který kódujete se nemaže, vzniká nový s příponou .gpg. Tento soubor však není v hodný pro posílání přes internet, proto se obvykle používá ještě přepínač -a, který vytváří soubor s příponou .asc.
Dekódování souboru je jednoduché (pokud již máte provedeny předchozí kroky s importem certifikátů):
gpg -d soubor.gpg nebo gpg -d soubor.asc
Při dekódování budete požádání o heslo, které jste zadávali ke svému soukromému klíči.
Tolik k práci s gpg v příkazové řádce. Pokud budete chtít další informace o práci s gpg, doporučuji se podívat na stránky root.cz, který k tomuto účelu připravil hezký článek. My se budeme věnovat GPG trochu jinak z pohledu Mac OS X. Mac OS X není jen unix a nabízí i některé další zajímavé možnosti, jak využívat gpg, přestože Apple nic takového. Dokážu si představit, že vás napadne AppleScript, který svým voláním může zavolat příkazovou řádku a provést mnoho z těchto příkazů za vás. A budete mít pravdu, našel jsem několik stránek, které se tím zabývaly viz článek Decrypting email using GPG and AppleScript. Ten umožňuje přesně to co, je záměrem tohoto článku. Překódovat email. Je to možná lepší řešení, než se kterým jsem přišel já, i když to moje je trochu univerzálnější.
Já jsem se ubral trochu jiným směrem, protože jsem se chtěl podívat na Automator. Pořád mi nedává spát, že jsem ho ještě nepoužil. Předchozí příspěvek Formátování jako služba mne totiž inspiroval k vytvoření dvou jednoduchých služeb, zdaleka se nejedná o nějaké vyšperkované řešení, je to jen koncept (je třeba si je otevřít v automatoru a upravit). Nicméně funguje.:-)
O co jde? O dva skripty, jeden z nich kóduje data, druhý je schopen je dekódovat. Takže si je trochu popíšeme:
Kódování dat: Kódování dat vyžaduje aby jste uvedli adresáta, skript EncryptforAdresat předpokládá že bude jen jeden a je třeba jej uvést přímo ve skriptu pro automatoru v oddílu Run shell skript. Skript je tak jednoduchý, že to snad pro nikoho nebude problém. Skriptů si pak můžete vytvořit víc a kódovat pro několik lidí. Pokud chcete mít jen jeden je třeba začít pracovat s proměnnými a zeptat se uživatele pro koho chtějí kódovat data. Pro jednoduché kódování dat, stačí označit kódovaný text a v nabídce Services si vybrat příslušnou kódovací službu. Ta vznikne tím, že do složky Library/Services/ umístíte patřičně upravený skript EncryptforAdresat (stáhněte si ho, rozbalte a uložte).
Dekódování dat: Označíte zakódovaný text a vyberete si službu DecryptGPG, což je soubor, který jste stáhnuli z internetu, rozbalili a umístili do složky Library/Services. Automator se zde zeptá na heslo k vašemu soukromému klíči a výsledným dekódovaným textem nahradí označený text. Pokud bych použil místo shellu Applescript asi bych se mohl vyhnout bezpečnostní chybě při práci s heslem pro dekódování dat, nicméně nechtěl jsem u Automatoru trávit mládí.
Oba skripty jsou jen takovou inspirací, klidně je použijte kde a jak chcete. Rozhodně je nepovažuji za špičkové, ale svou práci odvedou. Je tady jen pár omezení. O bezpečnostní chybce v DecryptGPG jsem se již zmínil - vytváří totiž soubor, který obsahuje heslo. Přestože v zápětí jej maže, nedá se zde mluvit o zcela bezpečném dekódování dat. Druhým problémem, který jsem netestoval je, že Automator pracuje s náhradou textu. Pokud tedy text nelze změnit, nezmění se vám ani po té co spustíte službu. Je třeba jej překopírovat do libovolného textového editoru.