Digitální podpis a šifrování e-mailu v prostředí KDE

autor - Čvc.10, 2007 - Linux

V případě asymetrického šifrování (jeden klíč se používá na šifrování zprávy, druhý na její dešifrování) je možnost volby mezi OpenPGP, vycházejícího z Pretty Good Privacy, nebo X.509 certifikáty čili S/MIME. S/MIME je rozšířenější, níže v textu se budu věnovat jeho nastavení v prostředí KDE, tj. pro Kmail.

OpenPGP

Asymetrické šifrování používající páru soukromého a veřejného klíče. Soukromý klíč slouží k podpisu či dešifrování zprávy, zatímco veřejný klíč k ověření podpisu nebo zašifrování zprávy. Oba klíče generuje jejich vlastník, kritický moment je doručení veřejného klíče protistraně (tj. zamezení podvrhu).

Příklad: Uživatel A chce poslat podepsanou a šifrovanou zprávu uživateli B.
Uživatel A použije vlastní soukromý klíč k podpisu zprávy a veřejný klíč uživatele B k zašifrování zprávy.
Uživatel B použije vlastní soukromý klíč k dešifrování zprávy a veřejný klíč uživatele A k ověření pravosti podpisu. Veřejný klíč není součástí zprávy, musí se získat jinou cestou (stažením z veřejných serverů, emailem od odesílatele zprávy, atd.)

S/MIME

Asymetrické šifrování, využívá tzv. certifikátů vystavených certifikačními autoritami pro jednotlivé uživatele. Certifikát se generuje na straně uživatele (obvykle v internetovém prohlížeči) na základě údajů ze serveru certifikační autority. Jedná se o balík certifikátů: obsahuje soukromý a veřejný klíč uživatele, certifikát autority. Každá podepsaná zpráva obsahuje veřejný klíč odesílatele. K akceptaci tohoto klíče dojde v případě, že příjemce důvěřuje certifikační autoritě, která jej vydala. Tím se řeší problém autentifikace: za pravost veřejného klíče odpovídá certifikační autorita.

Použití

Linuxová komunita obvykle preferuje OpenPGP, MS Windows a státní správa dává přednost S/MIME.V České republice je certifikační autoritou pro účely digitálního podpisu dokumentů pro komunikaci se státní správou např. Česká pošta a.s. Pro jiné účely samozřejmě můžeme zvolit jakoukoliv certifikační autoritu či vytvořit vlastní certifikát (tím bychom ovšem šli proti smyslu certifikačních autorit). Obě metody jsou technologicky podobné, liší se způsob distribuce klíčů.

Nic nám nebrání používat oba typy standardů. Následující postup postupně popíše vytvoření certifikátu S/MIME, jeho nastavení v prostředí programů KDE (Kmail) a používání.

S/MIME

Kmail podporuje S/MIME certifikáty pomocí balíku GnuPG. V (K)ubuntu stačí nainstalovat KDE Certificate Manager (kleopatra) a KGpg:

$ sudo apt-get install kleopatra kgpg

V závislostech balíku je především gnupg2, gpgsm (backend gnupg pro S/MIME), gpg-agent a pinentry-qt (uživatelsky přátelské rozhraní pro zadávání hesel), dirmngr).

Kleopatra je GUI rozhraní pro gpgsm, spouští se buď z příkazové řádky nebo z KMailu (menu Tools/Certificate Manager). Gpgsm má na starosti vše kolem S/MIME certifikátů. KGpg je GUI rozhraní k GnuGP – umožňuje správu klíčů pro OpenPGP.

V dalším kroce je třeba nastavit výchozí konfiguraci pro GnuPG. Defaultní adresář je ${HOME}/.gnupg. Většinu konfiguračních hodnot lze nastavit pomocí KGpg nebo Kleopatry. KGpg verze 1.2.2 obsahuje chybu – neumí vytvořit nový konfigurační soubor. Vytvoříme jej ručně:

$ if [ ! -d ${HOME}/.gnupg ] ; then mkdir ${HOME}/.gnupg ; fi
$ touch ${HOME}/.gnupg/gpg.conf

Spustíme KGpg (Start/Utilities), v menu Settings/Configure KGpg zvolíme GnuPG Settings, kde by již měl být zvolen výše uvedený konfigurační soubor. Dále zaškrtneme „Use GPG Agent“. Ještě v ostatních (Misc) konfiguračních možnostech zvolíme „Start KGpg automatically at login“.

V dalším kroku nakonfigurujeme gpg-agent. Bohužel neexistuje GUI rozhraní, takže v příkazové řádce:

$ echo "pinentry-program /usr/bin/pinentry-qt" >> ${HOME}/.gnupg/gpg-agent.conf
$ echo "allow-mark-trusted" >> ${HOME}/.gnupg/gpg-agent.conf

Poslední volba „allow-mark-trusted“ je potenciálně nebezpečná, ale podstatně nám zjednodušší život. Aby tato volba fungovala, musíme ještě vytvořit soubor, kam se budou zapisovat ověřené certifikační autority:

$ touch ${HOME}/.gnupg/trustlist.txt

Protože níže v textu získáme certifikát Thawte, který neumožňuje jeho ověřování on-line na serveru, je nutné ještě zakázat toto ověřování – buď v Klepatře v menu Settings/Configure GgpME backend, záložce GPG for S/MIME zaškrtneme „never consult a CRL“, nebo přidáme následující volbu do gpgsm.conf:

$ echo "disable-crl-checks" >> ${HOME}/.gnupg/gpgsm.conf

Nyní je nutné načíst nové konfigurační parametry (buď zasláním signálu HUP, tj. „kill -s HUP číslo_procesu_gpg-agent“ nebo restartovat počítač).

Dále potřebujeme získat osobní certifikát. Možností je více, certifikáty zdarma nabízí celkem oblíbený server Thawte. Postup získání certifikátu viz Certifikát Thawte na MujMac.cz.

Certifikát je uložen ve Firefoxu, pro práci s gpgsm jej potřebujeme vyexportovat do samostatného souboru pomocí menu Edit/Preferences, volba Advanced, záložka Encryption, tlačítko View Certificates, záložka Your Certificates. Klikneme na příslušný certifikát a zvolíme Backup. Firefox ještě bude požadovat heslo, kterým zabezpečí použití certifikátu.

Spustíme Kleopatru a volbou menu File/Import Certificates načteme soubor s certifikátu. Budeme dotázání na heslo použité ve Firefoxu k zabezpečení certifikátu a dále na heslo, kterým bude certifikát zabezpečen v gpgsm (můžeme zvolit stejné).

V hlavním okně Kleopatry se objeví nový certifikát. V menu View/Hierarchical Key List nastaví stupňovité zobrazování klíčů. Ještě klikneme pravým tlačítkem na náš klíč (ten nejníže v hierarchii) a zvolíme Validate. Mělo by se otevřít okno s několika dotazy, zda důvěřujeme otiskům jednotlivých certifikátů (fingerprints) – toto je nejslabší místo, měli bychom alternativní cestou zjistit, zda otisky jsou skutečně pravé. V opačném případě se může stát, že budeme důvěřovat podvržené certifikační autoritě.

Nakonec otestujeme, zda vše funguje:

$ gpgsm --encrypt --armor -r email@domena.cz > encrypted_file
gpgsm: no key usage specified - assuming all usages
gpgsm: certificate is good
gpgsm: certificate is good
gpgsm: DBG: connection to agent established
gpgsm: CRLs not checked due to --disable-crl-checks option
Zde napiseme nejaky text k zasifrovani. Pro skonceni stlacime CTRL+D.
gpgsm: encrypted data created
secmem usage: 2976/16384 bytes in 3 blocks

Vysledkem je soubor encrypted_file se zašifrovaným textem.

Nastavení v KMailu

V menu Tools/Configure Kmail musíme přiřadit výchozí klíče pro šifrování a podpis k naší identitě (oba stejné):

Při odesílání e-mailu stačí zaškrtnout ikonu s podpisem. Po kliknutí na send budeme dotázáni na heslo k našemu klíči. Pokud chceme odesílat šifrované e-maily, potřebujeme získat veřejný klíč příslušné osoby – nejjednodušší je požádat ji o zaslání podepsaného e-mailu, veřejný klíč je přiložen k e-mailu a stačí jej naimportovat do Kleopatry (a potvrdit pravost otisku certifikační autority, je-li jiná než Thawte) a přiřadit ke jménu do Address booku. U jednotlivých jmen v Address booku též můžeme nastavit preference (zda podepisovat a šifrovat každý email pro danou osobu).

Certifikát od Thawte uvádí v jeho popisu pouze emailovou adresu vlastníka, nikoliv jeho jméno. Důvodem je, že přes internet jste nemohli prokázat vaši totožnost. Chcete-li mít v certifikátu uvedeno i jméno, je nutné kontaktovat některého z ověřených členů. Více viz web Thawte.

Poznámka

Osobní certifikáty vystavené společnostmi certifikovanými Ministerstvem informatiky ČR (např. PostSignum, I.CA) mají být dle certifikační politiky (a zákona o el. podpisu) používány pouze k podepisování, nikoliv šifrování dokumentů. Více detailů viz Informace k používání kvalifikovaných certifikátů pro elektronický podpis a zároveň pro autentizaci a šifrování. K šifrování lze používat tzv. komerční certifikáty těchto společností (a mnoha dalších).

:

Komentář: 1

Zanechte komentář

Archivy