Portál AbcLinuxu, 20. dubna 2024 15:59

Yubikey. Co to je a co to umí (2)

3. 5. 2016 | Bystroushaak
Články - Yubikey. Co to je a co to umí (2)  

Koupil jsem si Yubikey 4. Po úvodním článku pokračujeme v popisu, jak Yubikey zprovoznit na Linuxu.

Instalace v distribuci Linux Mint (pokračování)

Předchozí kroky najdete v závěru minulého dílu.

Generování klíče

Trochu problém je, že jak je možné vidět na výpisu z „--card-status“, zatím jsou podporované pouze 2048bitové klíče. Osobně už od roku 2009 používám klíč 4096bitový. Asi bych mohl přidat jen podklíč, ale pro účely tohoto návodu vygeneruji nový klíč.

Návod v angličtině je přímo na stránkách Yubikey (webarchive), osobně ale používám systém v češtině a tenhle článek je zaměřen na české uživatele, proto zde návod zopakuji v české verzi systému.

Ke generování klíče a jeho nahrání do Yubikey použijeme gpg2, který budu takto explicitně uvádět, neboť na Mintu se tak momentálně jmenuje. Pokud máte v systému GPG verze 2 nainstalovaný jen jako „gpg“ (ověříte „gpg --version“), použijte ten.

$ gpg2 --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Prosím, vyberte druh klíče, který chcete:
   (1) RSA a RSA (implicitní)
   (2) DSA a Elgamal
   (3) DSA (pouze pro podpis)
   (4) RSA (pouze pro podpis)
Váš výběr?

Příkaz pro generování nového klíče je „gpg2 --gen-key“, který nám nabídne verzi šifrování. Vybereme 1, buďto napsáním čísla, nebo jen potvrzením klávesou Enter.

klíč RSA může mít délku v intervalu 1024 až 4096 bitů.
Jakou délku klíče si přejete? (2048)

Dále následuje dotaz na délku klíče. Jak už jsem psal – pro Yubikey potřebujeme délku 2048 bitů, která je implicitně vybrána. Potvrdíme tedy opět Enterem.

Požadovaná délka klíče je 2048 bitů.
Prosím určete, jak dlouho by klíč měl platit.
         0 = doba platnosti klíče není omezena
      <n>  = doba platnosti klíče skončí za n dní
      <n>w = doba platnosti klíče skončí za n týdnů
      <n>m = doba platnosti klíče skončí za n měsíců
      <n>y = doba platnosti klíče skončí za n let
Klíč je platný pro? (0)

PGP klíče mohou mít omezenou platnost. Pokud děláte opravdu paranoidní věci, platnost klíče byste měli omezovat. Na takové to domácí šifrování je v pořádku zvolit neomezenou dobu. Potvrdíme Enterem a poté znovu písmenem a.

Platnost klíče nikdy neskončí
Je to správně (a/N)? a

GnuPG potřebuje sestrojit uživatelské ID, aby bylo možné rozpoznat
váš klíč.

Jméno a příjmení:

GPG nyní požaduje metadata, která budou přidána ke klíči. Podle těchto metadat vás poté budou identifikovat ostatní uživatelé a také podle nich probíhá ověřování emailu, pokud klíč nahrajete do veřejné složky. Doporučuji si tedy nevymýšlet úplné blbosti.

Jméno a příjmení: Bystroushaak
E-mailová adresa: bystrousak@kitakitsune.org
Komentář: 
Zvolil(a) jste tento identifikátor uživatele:
    „Bystroushaak <bystrousak@kitakitsune.org>“

Změnit (J)méno, (K)omentář, (E)-mail, (P)okračovat dál nebo (U)končit program?

GPG se ještě ptá na potvrzení, tak mu ho dáme napsáním „p“ a stisknutím Enteru. Pak se zeptá na heslo, které se u mě otevře v externí aplikaci s grafickým uživatelským rozhraním. Tímto heslem budete odemykat svůj klíč, doporučuji tedy zvolit něco silného.

Změnit (J)méno, (K)omentář, (E)-mail, (P)okračovat dál nebo (U)končit program? pPro ochranu Vašeho tajného klíče musíte zadat heslo.

Okamžitě poté začne generování klíče. Jedná se o časově docela náročný proces, pokud nemáte hardwarový generátor entropie. Já nemám, takže to trvá několik minut:

Musíme vytvořit mnoho náhodných bajtů. Během vytváření můžete
provádět nějakou jinou práci na počítači (psát na klávesnici, pohybovat myší,
používat disky); díky tomu má generátor lepší šanci získat dostatek entropie.

Jakmile jsou klíče vygenerovány, následuje shrnutí:

gpg: klíč 3F6F3D1B označen jako absolutně důvěryhodný.
veřejný a tajný klíč byly vytvořeny a podepsány.

gpg: kontroluji databázi důvěry
gpg: požadováno 3 částečné důvěry a 1 úplné důvěry, model PGP
gpg: hloubka: 0  platných:   1  podepsaných:   0  důvěra: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/3F6F3D1B 2016-01-11
      Otisk klíče = 9F87 EECF CDAA 263C AC00  A5A0 3F92 841C 3F6F 3D1B
uid                  Bystroushaak <bystrousak@kitakitsune.org>
sub   2048R/EF4ADF82 2016-01-11

Povšimněte si ID klíče hned na prvním řádku: „3F6F3D1B“. Toto ID je dobré si uložit, protože ho budeme ještě několikrát potřebovat.

Přidání autentizačního klíče

Nyní potřebujeme ke klíči přidat ještě další podklíče, které budou sloužit k autentizaci a podepisování.

$ gpg --expert --edit-key 3F6F3D1B
gpg (GnuPG) 1.4.16; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Tajný klíč je dostupný.

pub  2048R/3F6F3D1B  vytvořen: 2016-01-11  platnost skončí: nikdy       použití: SC  
                     důvěra: absolutní    platnost: absolutní
sub  2048R/EF4ADF82  vytvořen: 2016-01-11  platnost skončí: nikdy       použití: E   
[  absolutní ] (1). Bystroushaak <bystrousak@kitakitsune.org>

gpg>

Příkazem „gpg --expert --edit-key 3F6F3D1B“ (nahraďte za ID vašeho klíče) vstoupíme do expertního módu editace klíče. Zadáme příkaz „addkey“:

gpg> addkey
Klíč je chráněný.

Musíte znát heslo, abyste odemknul(a) tajný klíč pro
uživatele: "Bystroushaak <bystrousak@kitakitsune.org>"
délka 2048 bitů, typ RSA, klíč 3F6F3D1B, vytvořený 2016-01-11

Prosím, vyberte druh klíče, který chcete:
   (3) DSA (pouze pro podpis)
   (4) RSA (pouze pro podpis)
   (5) ElGamal (pouze pro šifrování)
   (6) RSA (pouze pro šifrování)
   (7) DSA (nastavit si vlastní použití)
   (8) RSA (nastavit si vlastní použití)
Váš výběr?

Chceme možnost číslo „8“:

Váš výběr? 8

Pro klíč RSA lze provést: Podepisování Šifrování Autentizace 
Aktuálně povolené akce: Podepisování Šifrování 

   (S) Zapnout/vypnout schopnost podepisovat
   (E) Zapnout/vypnout schopnost šifrovat
   (A) Zapnout/vypnout schopnost autentizovat
   (Q) Konec

Váš výběr?

Na řádku začínajícím ‚Aktuálně povolené akce:‘ vidíme, že právě máme povoleno ‚Podepisování‘ a ‚Šifrování‘. My chceme čistě autentizační klíč, proto postupně zadáme „A“, „S“ a poté „E“.

Pro klíč RSA lze provést: Podepisování Šifrování Autentizace 
Aktuálně povolené akce: Podepisování Šifrování 

   (S) Zapnout/vypnout schopnost podepisovat
   (E) Zapnout/vypnout schopnost šifrovat
   (A) Zapnout/vypnout schopnost autentizovat
   (Q) Konec

Váš výběr? A

Pro klíč RSA lze provést: Podepisování Šifrování Autentizace 
Aktuálně povolené akce: Podepisování Šifrování Autentizace 

   (S) Zapnout/vypnout schopnost podepisovat
   (E) Zapnout/vypnout schopnost šifrovat
   (A) Zapnout/vypnout schopnost autentizovat
   (Q) Konec

Váš výběr? S

Pro klíč RSA lze provést: Podepisování Šifrování Autentizace 
Aktuálně povolené akce: Šifrování Autentizace 

   (S) Zapnout/vypnout schopnost podepisovat
   (E) Zapnout/vypnout schopnost šifrovat
   (A) Zapnout/vypnout schopnost autentizovat
   (Q) Konec

Váš výběr? E

Pro klíč RSA lze provést: Podepisování Šifrování Autentizace 
Aktuálně povolené akce: Autentizace 

   (S) Zapnout/vypnout schopnost podepisovat
   (E) Zapnout/vypnout schopnost šifrovat
   (A) Zapnout/vypnout schopnost autentizovat
   (Q) Konec

Váš výběr?

Jak vidíte, na konci by nám měl zbýt jen řádek popisující „Aktuálně povolené akce: Autentizace“. Poté vybereme „Q“, pro ‚Konec‘. GPG se opět zeptá na délku klíče. Opět chceme 2048, proto dotaz stačí jen odentrovat:

Váš výběr? q
klíč RSA může mít délku v intervalu 1024 až 4096 bitů.
Jakou délku klíče si přejete? (2048)

Následuje opět výběr platnosti:

Požadovaná délka klíče je 2048 bitů.
Prosím určete, jak dlouho by klíč měl platit.
         0 = doba platnosti klíče není omezena
      <n>  = doba platnosti klíče skončí za n dní
      <n>w = doba platnosti klíče skončí za n týdnů
      <n>m = doba platnosti klíče skončí za n měsíců
      <n>y = doba platnosti klíče skončí za n let

Pokud chcete neomezenou, opět stačí odentrovat a dvakrát potvrdit:

Klíč je platný pro? (0) 
Platnost klíče nikdy neskončí
Je to správně (a/N)? a
Opravdu vytvořit? (a/N) a

Načež následuje další časově náročné generování:

Musíme vytvořit mnoho náhodných bajtů. Během vytváření můžete
provádět nějakou jinou práci na počítači (psát na klávesnici, pohybovat myší,
používat disky); díky tomu má generátor lepší šanci získat dostatek entropie.

Nedostatek náhodných bajtů. Prosím, pracujte s operačním systémem, abyste
mu umožnili získat více entropie (je potřeba 156 bajtů).

Následuje opět shrnutí:

..+++++
....+++++

pub  2048R/3F6F3D1B  vytvořen: 2016-01-11  platnost skončí: nikdy       použití: SC  
                     důvěra: absolutní    platnost: absolutní
sub  2048R/EF4ADF82  vytvořen: 2016-01-11  platnost skončí: nikdy       použití: E   
sub  2048R/8F8041DC  vytvořen: 2016-01-11  platnost skončí: nikdy       použití: A   
[  absolutní ] (1). Bystroushaak <bystrousak@kitakitsune.org>

gpg>

Z programu vyskočíme stiskem Ctrl-D (nikoliv C!), ještě před ukončením se totiž zeptá, zda má zapsat změny:

gpg> Uložit změny? (a/N) a

Zálohy

Následně je na čase vytvořit si zálohy klíče. Ty si uložte pokud možno někam na šifrovaný Truecrypt/Veracrypt oddíl, každopádně však někam offline tak, aby se k nim nebylo možné dostat. Zálohy vytvářet nemusíte, ale riskujete, že při ztrátě Yubikey ztratíte přístup.

$ gpg --export-secret-key --armor 3F6F3D1B > yubikey.gpg.priv

Veřejný klíč poté exportujete pomocí příkazu

$ gpg --export --armor 3F6F3D1B > yubikey.gpg.pub

Pokračování příště

V příští části návod zakončíme nahráním klíčů do Yubikey a budeme se zabývat praktickým použitím.

Další články z této rubriky

Týden na ITBiz: Svět IT a burzy, umělá inteligence, Nvidia a outsourcing
Linuxové foto novinky: pozvolná evoluce
PCLinuxOS 2017.2 MATE - tak trochu zvláštní linuxová distribuce
Krátký pohled na Fedoru 25, Wayland a GNOME 3.22
Naprosto ničím nezajímavé Lubuntu 16.10

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.