Příloha č. 1
Vytvoření certifikační autority v programu XCA 1 Cíl dokumentu Cílem tohoto dokumentu je popsat postup pro vytvoření certifikační autority v programu XCA (http://xca.sourceforge.net) a následné postupy týkající se provozu této autority, jako je vydávání certifikátů na základě žádostí o certifikát, zneplatňování certifikátů a generování tzv. seznamů zneplatněných certifikátů (CRL). Uváděné postupy a obrázky jsou platné pro XCA ve verzi 0.9.1.
-1-
2 Obsah 1
Cíl dokumentu .......................................................................................... 1
2
Obsah ......................................................................................................... 2
3
Vytvoření certifikační autority ............................................................... 3 3.1
Vytvoření databázového souboru XCA ................................................................. 3
3.2
Vygenerování klíčů certifikační autority............................................................... 3
3.3
Vygenerování certifikátu certifikační autority ..................................................... 3
3.3.1
Specifikace sériového čísla a podepisovacího algoritmu .................................... 3
3.3.2
Specifikace dname certifikátu ............................................................................. 4
3.3.3
Specifikace rozšíření certifikátu .......................................................................... 5
3.3.4
Specifikace použití klíče...................................................................................... 7
3.3.5
Dokončení vygenerování certifikátu ................................................................... 7
4
Provozování certifikační autority ........................................................... 8 4.1
Nastavení certifikační autority ............................................................................... 8
4.2
Vydání uživatelského certifikátu............................................................................ 8
4.2.1
Import žádosti o certifikát.................................................................................... 8
4.2.2
Specifikace vydavatele a podepisovacího algoritmu ........................................... 9
4.2.3
Specifikace dname certifikátu ........................................................................... 10
4.2.4
Specifikace rozšíření certifikátu ........................................................................ 11
4.2.5
Specifikace použití klíče.................................................................................... 12
4.2.6
Dokončení vygenerování certifikátu ................................................................. 13
4.2.7
Export certifikátu z XCA................................................................................... 13
4.3
Zneplatnění certifikátu ......................................................................................... 14
4.4
Vygenerování seznamu zneplatněných certifikátů (CRL) ................................. 15
-2-
3 Vytvoření certifikační autority 3.1 Vytvoření databázového souboru XCA Vytvořený databázový soubor bude složit k uložení klíčů a certifikátu certifikační autority a všech certifikátů, které certifikační autorita vydá. V menu „File“ se zvolí položka „New DataBase“. Zadá se umístění a název databázového souboru. Následně se zadá heslo pro ochranu citlivých dat v souboru.
3.2 Vygenerování klíčů certifikační autority Na záložce „Private Keys“ se stiskne tlačítko New Key. Zobrazí se okno pro zadání parametrů generovaných klíčů.
Zadá se interní název klíčů (např. jméno nebo zkratka vytvářené autority), algoritmus klíčů (obvykle RSA) a velikost klíčů (obvykle 2048 bitů, ale lze vyzkoušet větší velikost klíčů). Po stisku tlačítka Create dojde k vygenerování klíčů a na záložce „Private Keys“ se zobrazí položka představující vytvořené klíče.
3.3 Vygenerování certifikátu certifikační autority Na záložce „Certificates“ se stiskne tlačítko New Certificate. Zobrazí se okno, pomocí kterého se specifikuje struktura vytvářeného certifikátu certifikační autority.
3.3.1
Specifikace sériového čísla a podepisovacího algoritmu
Na záložce „Source“ lze v poli „Create a self signed certificate with the serial“ zadat sériové číslo certifikátu. Lze ponechat výchozí hodnotu 1. V poli „Signature algorithm“ se
-3-
nastaví hashovací funkce, která bude použita v podpisu certifikátu. Je doporučeno nastavit alespoň „SHA 256“1.
3.3.2
Specifikace dname certifikátu
Na záložce „Subject“ se zadává tzv. dname certifikátu. Do pole „Internal name“ se zadá interní název certifikátu – lze zadat stejný název jako při generování klíčů v kapitole 3.2. Minimální dname certifikátu se vytvoří následovně: Do pole „countryName“ se zadá hodnota: CZ Do pole „commonName“ se zadá název certifikační autority, např.: Interní CA Do polí „organizationName“ a „organizationalUnitName“ lze volitelně zadat název organizace a organizační složky, která bude provoz autority zajišťovat. Ve spodní části záložky jsou uvedeny informace o klíčích, pro něž bude certifikát vydán. Jelikož existuje v databázi pouze jedna dvojice klíčů, nelze vybrat jiné klíče.
1
Je obvyklé, že všechny vydávané certifikáty budou používat stejný podepisovací algoritmus. Aby se při každém vydávání certifikátu nemusela vždy vybírat správná hashovací funkce ručně, je užitečné v nastavení programu („File“, „Options“) nastavit výchozí hashovací funkci. -4-
3.3.3
Specifikace rozšíření certifikátu
Na záložce „Extensions“ se zadávají rozšíření certifikátu. Pro certifikáty certifikačních autorit je typické následující nastavení. V horní části „Basic constraints“ se nastaví pole „Type“ na hodnotu „Certification Authority“. Do pole „Path Length“ se vloží číslo 0, které znamená, že pod touto certifikační autoritou nemohou vzniknout žádné další podřízené certifikační autority. Vpravo nahoře se zaškrtnou obě políčka „Subject Key Identifier“ a „Authority Key Identifier“. Ta do certifikátu přidají identifikátor veřejného klíče vlastníka certifikátu a identifikátor veřejného klíče autority. Tyto identifikátory se používají k sestavení certifikační cesty od certifikátu k certifikátu vydávající CA. Uprostřed záložky se nastavuje doba platnosti. Pomocí polí „Not before“ a „Not after“ lze nastavit datum počátku a konce platnosti s přesností na minuty. Stačí ale v sekci „Time range“ zadat délku časového intervalu (např. 20 let) a stisknout tlačítko Apply. Obsah polí „Not before“ a „Not after“ se příslušným způsobem nastaví. Ve spodní části záložky lze specifikovat další rozšíření certifikátu. Za zmínku stojí rozšíření „CRL distribution point“, pomocí kterého lze specifikovat webovou adresu, na -5-
které bude umístěno CRL této certifikační autority. Pokud tedy CRL soubory nebudou generovány, nebo neexistuje webová adresa, kam by mohly být umisťovány, lze nastavení tohoto rozšíření přeskočit. V opačném případě se stiskne tlačítko Edit. Zobrazí se editační okno, kde lze zadat jediný atribut „URI“:
Do sloupce „Content“ se zadá webová adresa, na které budou publikovány CRL soubory certifikační autority. Po zadání adresy se stiskne tlačítko Apply pro uložení nastavení. Tlačítko Validate slouží pro ověření správnosti zadané adresy.
-6-
3.3.4
Specifikace použití klíče
Na záložce „Key usage“ se definuje použití klíče. Pro certifikáty certifikačních autorit se obvykle zaškrtávají pouze hodnoty „Certificate Sign“ a „CRL Sign“. V sekci „Key Usage“ se může dále zaškrtnout políčko „Critical“. Sekci „Extended Key Usage“ lze v případě certifikátů certifikačních autorit ignorovat.
3.3.5
Dokončení vygenerování certifikátu
Záložky „Netscape“ a „Advanced“ lze ignorovat. Může se stisknout tlačítko OK ve spodní části okna. Dojde k vytvoření certifikátu, který se zobrazí na záložce „Certificates“.
-7-
4 Provozování certifikační autority 4.1 Nastavení certifikační autority Na záložce „Certificates“ se klikne pravým tlačítkem myši na certifikát certifikační autority a vyberou se položky „CA – Properties“. Zobrazí se okno pro nastavení parametrů certifikační autority.
Lze nastavit sériové číslo pro další vydaný certifikát nebo nastavit používání náhodných sériových čísel certifikátů. Další pole slouží pro specifikaci délky platnosti CRL (pouze ve dnech). Poslední položka slouží k vybrání výchozí šablony, podle níž budou vydávány certifikáty touto autoritou.
4.2 Vydání uživatelského certifikátu Tip: Pokud platí, že certifikáty vydávané uživatelům mají víceméně stejnou strukturu a liší se např. jen v údaji „commonName“ a v e-mailové adrese, vyplatí se vytvořit v XCA šablonu definující strukturu certifikátu. Certifikáty se budou vydávat na základě této šablony a pouze se změní údaje, které jsou specifické pro daného žadatele.
4.2.1
Import žádosti o certifikát
Aby mohl být koncovému uživateli vydán certifikát, musí si vygenerovat vlastní klíče a žádost o certifikát. Tato žádost se následně importuje do programu XCA. Na záložce „Certificate signing requests“ se stiskne tlačítko Import a vyhledá se soubor se žádostí. Vydání certifikátu se poté zahájí kliknutím pravým tlačítkem myši na položku s importovanou žádostí a zvolí se položka „Sign“.
-8-
Tip: Pokud se na záložce „Certificate signing request“ nachází mnoho žádostí, může být obtížné dohledat právě importovanou žádost. Tomu může napomoci sloupec „Signed“, který uvádí, zda na základě dané žádosti již byl nebo nebyl vydán certifikát. Pro importovanou žádost ještě certifikát vydán nebyl, takže v tomto sloupci bude uvedena hodnota „Unhandled“.
4.2.2
Specifikace vydavatele a podepisovacího algoritmu
Vydání certifikátu začíná na záložce „Source“. Je potřeba odškrtnout položku „Copy extensions from the request“ a naopak zaškrtnout položku „Modify subject of the request“. Díky tomuto nastavení bude možné vydat certifikát s jinými údaji, než které jsou uloženy v žádosti o certifikát. Dále se zvolí položka „Use this Certificate for signing“, aby byl certifikát podepsán vytvořenou certifikační autoritou. V poli „Signature algorithm“ se nastaví hashovací funkce, která bude použita v podpisu certifikátu. Je doporučeno nastavit alespoň „SHA 256“.
-9-
4.2.3
Specifikace dname certifikátu
Na záložce „Subject“ se zadává tzv. dname certifikátu. Jsou zde uvedeny údaje z dname žádosti o certifikát, které lze podle potřeby změnit. Do pole „Internal name“ se zadá interní název certifikátu – např. jméno žadatele. Minimální dname certifikátu se vytvoří následovně: Do pole „countryName“ se zadá hodnota: CZ Do pole „commonName“ se zadá jméno a příjmení žádající osoby nebo název technologické komponenty, např.: Jan Novák
nebo
www.firma.cz
Do polí „organizationName“ a „organizationalUnitName“ lze volitelně zadat název organizace a organizační složky, která bude provoz autority zajišťovat. Podle uvážení (resp. definovaných pravidel certifikační autority) se mohou vyplnit další pole. Pomocí tlačítka Add lze přidat další údaje dname, jako je křestní jméno (givenName), příjmení (surname), pracovní pozice (title), atd.
- 10 -
4.2.4
Specifikace rozšíření certifikátu
Na záložce „Extensions“ se zadávají rozšíření certifikátu. Pro certifikáty koncových uživatelů je typické následující nastavení. V horní části „Basic constraints“ se nastaví pole „Type“ na hodnotu „End Entity“. Pole „Path Length“ se může ponechat prázdné. Vpravo nahoře se zaškrtnou obě políčka „Subject Key Identifier“ a „Authority Key Identifier“. Ta do certifikátu přidají identifikátor veřejného klíče v certifikátu a identifikátor veřejného klíče vydávající CA. Tyto identifikátory se používají k sestavení certifikační cesty od certifikátu k certifikátu vydávající CA. Uprostřed záložky se nastavuje doba platnosti. Pomocí polí „Not before“ a „Not after“ lze nastavit datum počátku a konce platnosti s přesností na minuty. Stačí ale v sekci „Time range“ zadat délku časového intervalu (obvykle 1 rok) a stisknout tlačítko Apply. Obsah polí „Not before“ a „Not after“ se příslušným způsobem nastaví. Ve spodní části záložky lze specifikovat další rozšíření certifikátu. Do rozšíření „subject alternative name“ se obvykle zadává e-mailová adresa vlastníka certifikátu. Po stisknutí tlačítka Edit se zobrazí editační okno:
Pomocí tlačítka Add se přidá nový atribut rozšíření, kterému se nastaví typ „email“ a do sloupce „Content“ se zadá e-mailová adresa. Tlačítkem Apply se uloží provedená nastavení. Tlačítko Validate slouží pro ověření správnosti zadané adresy. Pomocí rozšíření „CRL distribution point“ lze specifikovat webovou adresu, na které bude umístěno CRL pro ověření platnosti certifikátu koncového uživatele. Pokud tedy CRL soubory nebudou generovány, nebo neexistuje webová adresa, kam by mohly být umisťovány, lze nastavení tohoto rozšíření přeskočit. V opačném případě se stiskne tlačítko Edit. Zobrazí se editační okno, kde lze zadat jediný atribut „URI“:
- 11 -
Do sloupce „Content“ se zadá webová adresa, na které budou publikovány CRL soubory certifikační autority. Po zadání adresy se stiskne tlačítko Apply pro uložení nastavení. Tlačítko Validate slouží pro ověření správnosti zadané adresy.
4.2.5
Specifikace použití klíče
Na záložce „Key usage“ se definuje použití klíče. Pro certifikáty koncových uživatelů se obvykle zaškrtávají první tři hodnoty „Digital Signature“, „Non Repudiation“ a „Key Encipherment“. V sekci „Key Usage“ se může dále zaškrtnout políčko „Critical“.
- 12 -
Rozšířená použití klíče lze nastavit v sekci „Extended Key Usage“ v případě, že existují koncové aplikace, které některé z těchto rozšíření vyžadují. Obvykle ale není potřeba žádná rozšířená použití klíče nastavovat.
4.2.6
Dokončení vygenerování certifikátu
Záložky „Netscape“ a „Advanced“ lze ignorovat. Může se stisknout tlačítko OK ve spodní části okna. Dojde k vytvoření certifikátu, který se zobrazí na záložce „Certificates“ (vnořený pod certifikátem certifikační autority, která certifikát vydala).
4.2.7
Export certifikátu z XCA
Vytvořený certifikát se exportuje do souboru pomocí tlačítka Export a předá žadateli o certifikát. Ve většině případů stačí certifikát uložit ve formátu PEM, případně DER. Uživatel si nainstaluje vydaný certifikát ke svým klíčům.
- 13 -
4.3 Zneplatnění certifikátu Na záložce „Certificates“ se vyhledá certifikát, který se má zneplatnit. Pro lepší vyhledání je možné seznam seřadit podle sériového čísla certifikátu, údaje Common Name nebo data počátku nebo konce platnosti certifikátu. Na certifikát se klikne pravým tlačítkem myši a vybere se položka „Revoke“. Zobrazí se okno, v němž se zadává datum zneplatnění certifikátu (je nastaveno aktuální datum a čas) a důvod zneplatnění:
Po stisku tlačítka OK bude certifikát zneplatněn a u ikony certifikátu se zobrazí červený štít se symbolem „X“. Po kliknutí pravým tlačítkem myši na zneplatněný certifikát a zvolením položky „Unrevoke“ dojde ke zrušení zneplatnění certifikátu.
- 14 -
4.4 Vygenerování seznamu zneplatněných certifikátů (CRL) Na záložce „Certificates“ se klikne pravým tlačítkem myši na certifikát certifikační autority. Zvolí se položka „CA – Generate CRL“. Zobrazí se okno pro nastavení parametrů generovaného CRL:
V horní části okna se nastavuje počátek a konec doby platnosti CRL. Místo ruční úpravy polí „last update“ a „next update“ lze zadat délku doby platnosti do spodního pole a stisknout tlačítko Apply. Nicméně CRL s dobou platnosti kratší než 1 den lze nastavit pouze ruční editací začátku a konce platnosti. Dále se nastavuje hashovací algoritmus pro podpis CRL certifikační autoritou. Je doporučeno nastavit „SHA 256“. Nakonec se nastavuje seznam rozšíření CRL pro vložení do CRL. Je možné zaškrtnout položku „Authority key identifier“. Po stisku tlačítka OK dojde k vygenerování CRL, které se zobrazí v záložce „Revocation lists“. Pomocí tlačítka Export se CRL uloží ve formátu DER nebo PEM do souboru, který se může následně publikovat na vyhrazenou webovou adresu.
- 15 -