Tematický týden – Public Key Infrastructure (PKI), díl 2.

Tematický týden – Public Key Infrastructure (PKI), díl 2.

  • Comments 2
  • Likes

…díl druhý, jak správně na dvouúrovňové PKI

V minulém díle jsme popsali základní parametry PKI, které by měly být součástí každého návrhu. Pro většinu organizací je optimální architektura s dvěma úrovněmi CA: jedna standalone offline kořenová CA a pod ní libovolné množství podřízených online enterprise vystavujících CA. Tento článek si neklade za cíl vytvořit detailní „step by step“ příručky, ale spíše jen upozornit na úskalí, která na nás při implementaci této architektury čekají. Veškeré kroky jsou vyzkoušeny v prostředí Windows Server 2008 R2, ale jsou obecně platné i pro předchozí verze.

1. Krok: instalace kořenové standalone CA

Vlastní instalaci provedeme jednoduše pomocí průvodce přidáváním a odebíraním rolí v rámci správci serveru. V předchozím článku jsme popsali doporučené parametry:

  • Délka klíče: 4096 bitů
  • Délka platnosti certifikátu CA: 10 let

2. Krok: konfigurace kořenové standalone CA

  • Nastavení DN konfiguračního oddílu AD
    CRL, které publikuje kořenová CA, obsahuje informaci o tom, v jaké LDAP cestě má být CRL umístěno. Protože ale tento server stojí mimo AD, je třeba službu CA tuto lokaci „naučit“.

image Obrázek 1 CRL standalone offline CA před nastavením DN konfiguračního oddílu CA

Nastavení provedeme pomocí nástroje příkazové řádky

certutil.exe –setreg ca\DSConfigDN CN=Configuration,DC=kpcs,DC=cz

image Obrázek 2 CRL standalone offline CA po nastavení DN konfiguračního oddílu CA

  • Nastavení maximální délky platnosti vystavovaných certifikátů
    Standalone CA umožňuje ve výchozím nastavení vystavovat certifikáty s maximální délkou platnosti 1 rok. Naše podřízená CA má mít délku platnosti 5 let, a proto musíme tedy provést zvýšení hodnoty tohoto parametru z příkazové řádky.

    certutil -setreg ca\ValidityPeriodUnits 5
    certutil -setreg ca\ValidityPeriod "Years"
    net stop certsvc & net start certsvc
  • Konfigurace CRL a Delta CRL
    Protože offline CA je vypnutá a vždy před uplynutím platnosti CRL je vždy nutné ji zapnout a vypublikovat nové CRL do všech definovaných umístění, je praktické zvolit dlouhý publikační interval – nastavíme 1 rok. Delta CRL zcela vypneme.

image Obrázek 3 Konfigurace intervalu publikace CRL offline kořenové CA

  • Konfigurace CDP
    Ve výchozím nastavení CDP ponecháme umístění LDAP a lokání soubor, všechna ostatní odebereme. Pokud potřebujeme umožnit ověřování platnosti certifikátů i pro počítače mimo AD, přidáme HTTP lokaci ve formátu: http://www.kpcs.cz/pki/%3%8%9.crl

    Dále provedeme nastavení dalších parametrů viz následující tabulka:

    Nastavení CDP

    Soubor

    HTTP

    LDAP

    Publish CRLs to this location

    Nastavit

    N/A

    Zrušit

    Include in all CRLs

    N/A

    N/A

    Nastavit

    Include in CRLs

    N/A

    Zrušit

    Zrušit

    Include in the CDP extension of issued certificates

    N/A

    Nastavit

    Nastavit

    Publish delta CRLs to this location check box

    Zrušit

    N/A

    Zrušit

Tabulka 1 Konfigurace CDP standalone offline CA

  • Konfigurace AIA
    Ve výchozím nastavení AIA ponecháme umístění LDAP a lokání soubor, všechna ostatní odebereme. Pokud potřebujeme umožnit ověřování důvěryhodnosti certifikátů i pro počítače mimo AD, přidáme HTTP lokaci ve formátu: http://www.kpcs.cz/pki/%1_%3%4.crt

Dále provedeme nastavení dalších parametrů viz následující tabulka:

Nastavení AIA

FILE

HTTP

LDAP

Include in the AIA extension of issued certificates check box

N/A

Nastavit

Nastavit

Include in the online certificate status protocol (OCSP) extension check box

N/A

Zrušit

Zrušit

Tabulka 2 Konfigurace AIA standalone offline CA

  • Krok: publikování CRL a certifikátu CA do AD
    Vynutíme vystavení nového CRL a soubory s crl a certifikátem kořenové CA si vykopíruje na počítač, který je členem AD. Vlastní vypublikování provedeme s administrátorskými právy příkazy:

    certutil -dspublish -f c:\KPCSRootCert.crt RootCA
    certutil -dspublish -f c:\KPCSRootCRL.crl W2008R2ROOT

    W2008R2ROOT je v našem příkladu jméno serveru kořenové CA. V případě použití http lokace v AIA a CDP je nutné tyto soubory také umístit na určený webový server.

  • Krok: ustanovení důvěryhodnosti kořenové CA v Active Directory
    V rámci doménové politiky (GPO) ustanovíme důvěryhodnost v kořenovou CA, kterou jsme nainstalovali.

image Obrázek 4 Konfigurace důvěryhodnosti v AD

  • Krok: instalace vystavující enterprise CA

    Nyní je vše již připraveno k instalaci podřízené enterprise CA, kterou zpovozíme opět pomocí průvodce přidáváním a odebíraním rolí v rámci správci serveru, a to s následujícími parametry:
    • Délka klíče: 2048 bitů
    • Délka platnosti certifikátu CA: 5 let

V případě potřeby ještě upravíme CDP a AIA informace a provedeme pomocí nástroje Enterprise PKI závěrečnou kontrolu viz obrázek.

image Tabulka 3 Kontrola pomocí Enterprise PKI

Závěr

Implementace PKI s dvěma úrovněmi CA je spojena s nutností provést celou řadu důležitých kroků. Provedení těchto konfigurací je nutnou podmínkou pro korektní fungování PKI. Věřím ale, že se v tomto článku podařilo je stručně a výstižně popsat a tak implementace PKI bude nyní pro každého již snadnou záležitostí.

 

 

 

 


- Miroslav Knotek – (Microsoft MVP: Security), IT Senior Consultant KPCS CZ, s.r.o.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Mám dlouhodobě problém s certifikáty pro podepisování software. A to ne jako vývojář, ale jako administrátor. Protože např. výchozí nastavení sytému Powershell je takové, že nespustí žádný script, který není digitálně podepsaný. Myšlenka to není v zásadě špatná, ale v praxi si nedovedu představit, že by administrátorovi zaměstnavatel jen tak koupil certifikát pro podepisování software (protože to bohužel není levná záležitost). :-( A tak jsem si myslel, že by takový certifikát mohla umět vystavit certifikační autorita která je součástí OS Windows Server. Ale nějak jsem tam takovou šablonu nenašel (Používám verze max. 2003 Standard Edition). Tak bych se chtěl zeptat jestli to verze 2008 už umí nebo jak to vlastně je? :o)

  • Dobry den,

    v zásadě jsou 3 možnosti jak takovýto certifikát získat.

    a) Vámi zmiňovaný komerční certifikát pro podpis kódu stojí např. u Thawte cca 6 000 Kč

    b) Vlastní certifikát si můžete vystavit pomocí CA i na Windows 2003 Standard Edition pomocí šablony certifikátu V1, která se jmenuje přímo Code Signing

    c) Testovací self-signed certifikát pro podpis kódu je možné vystavit bez CA pomocí nástroje MakeCert, který je k dispozici v rámci balíku Windows Driver Kit (WDK)

    S pozdravem

    Mirek Knotek