Evolution je aplikace z GNOME desktopu a její používání mimo GNOME přináší potíže s ukládáním hesel k emailovým a kalendářovým službám. Následující příspěvek je psán s ohledem na Arch Linux, nicméně nastavení v ostatních distribucích bude obdobné. Cílem je, aby příslušná klíčenka v gnome-keyring byla odemčena automaticky při přihlášení uživatele. Předpokládá se, že uživatel chce používat klíčenku chráněnou heslem (viz poznámka na konci příspěvku).
Pokud není gnome-keyring vůbec nainstalován, pak Evolution vyžaduje opakované zadávání hesla pro každou službu (emailové účty, kalendáře) při synchronizaci dat.
Pokud je gnome-keyring nainstalován, ale není odemčen při přihlášení uživatele, pak jej Evolution spustí sám – nevýhodou je, že uživatel musí klíčenku odemknout – tedy zadat heslo.
Instalace balíčků
$ sudo pacman -S gnome-keyring $ yaourt gnome-keyring-manager
První příkaz nainstaluje démona pro běh klíčenky (z repozitáře extra), druhý je volitelná GUI aplikace a slouží k možnosti kontroly obsahu klíčenky či změně hesla chránícího klíčenku.
Předpokladem fungování je i spuštěný démon D-Bus, nicméně ten je používán i KDE a je obvykle spouštěn již při startu samotným systemd, takže zde by neměl nastat problém.
Spouštění gnome-keyring při přihlášení do KDE
Cest je několik, nejjednodušší je upravit soubor pro automatické spouštění při přihlášení, aby na příslušném řádku obsahoval i klíčové slovo „KDE“:
$ cat /etc/xdg/autostart/gnome-keyring-secrets.desktop ... OnlyShowIn=GNOME;Unity;MATE;KDE; ...
Ostatní soubory gnome-keyring-{pkcs11|ssh|gpg}.desktop není třeba editovat, neb tyto služby (certifikáty, ssh agent, gpg agent) obstará v KDE kwallet či jiné programy. Více informací viz Gnome Live.
Dále je vhodné zabránit Pacmanu přepsat uvedený soubor při aktualizaci balíčku gnome-keyring (je-li chráněných souborů více, oddělují se čárkami; pozor na to, že na začátku cesty není lomítko):
$ cat /etc/pacman.conf ... NoUpgrade = etc/xdg/autostart/gnome-keyring-secrets.desktop ...
Odemykání gnome-keyring při přihlášení uživatele
V případě, že výchozí klíčenka v gnome-keyring (označená jako „login“) má heslo stejné jako je to přihlašovací do systému, pak modul PAM umí klíčenku automaticky odemknout při přihlášení uživatele.
Nastavení konkrétní souborů v adresáři /etc/pam.d se v jednotlivých linuxových distribucích liší. Arch Linux přešel na zjednoduššenou strukturu, kdy konfigurační soubory jednotlivých služeb (gdm, kde, login, sshd, passwd, …) obsahují pouze odkazy na konfigurační soubor system-auth, nejlépe tedy editovat posledně uvedený soubor.
Na konec příslušných sekcí (auth, session) se přidá následujícící:
$ cat /etc/pam.d/system-auth ... auth optional pam_gnome_keyring.so ... session optional pam_gnome_keyring.so auto_start
Je-li kdekoliv v direktivách PAM použito sufficient (místo optional, required, etc.), viz info na Gnome Live.
Uvedené soubory je opět záhodno chránit proti přepsání při aktualizaci systému (sekce NoUpgrade v /etc/pacman.conf).
Poznámka: iluze bezpečí při používání gnome-keyring
Současná implementace gnome-keyring ochrání pouze před pasívními útoky: tj. hesla jsou na disk ukládána pouze šifrovaně a není-li otevřena (odemčena) klíčenka, není je možné zjistit.
Nicméně v případě aktivního útoku (uživatel je přihlášen, klíčenka odemčena) má možnost kterákoliv aplikace běžící v rámci stejného sezení X.org požádat klíčenku o vydání hesla. Tento problém souvisí s nedostatečně zabezpečenou architekturou jiných částí systému, která neumožňuje jednoznačně identifikovat dotazující se aplikace (škodlivý program může předstírat, že je e-mailovým klientem – je tedy zbytečné v rámci gnome-keyring zjišťovat jméno aplikace, neb by to byla pouhá iluze bezpečí).
Z toho plyne, že důležitá hesla se do klíčenky neukládají…