Certifikáty (přehled)

Certifikát (potvrzení, osvědčení) je dokument, který v podstatě říká toto:

K certifikátu patří:

Obsah certifikátu může být v počítači uložen jako data v databázi (například v Registru Windows) nebo jako samostatný soubor.

Jak si pořídit osobní (klientský) certifikát

Na počítači (nejlépe na svém osobním) si vygenerujete žádost o certifikát a privátní klíč.

Soubory vygenerované kryptografickým programem z příkazového řádku (např. openssl)

Použijete-li řádkový příkaz pro program openSSL nebo podobný a zadáte si název vzniklého produktu, zpravidla dostanete tyto dva nejdůležitější soubory:

Poznámka 1: Přípony souborů .key a .csr jsou jen orientační - jiné programy generující žádosti o certifikát mohou používat jiné přípony!

Poznámka 2: Soubor žádosti o certifikát může být vytvořen ve tvaru (a s příponou) P10. Pak je jeho obsah binární a je třeba převést ho do znakového (Base64) formátu PEM.

Jak upravíte binární žádost o certifikát do tvaru vhodného pro předložení k podpisu na webu CAcert

Použijte některý web umožňující přečíst binární soubor a zakódovat ho do tvaru Base64. Například https://base64.guru/converter/encode/file. Na začátek a na konec získaného souboru přidejte identifikační řádky BEGIN a END dle výpisu příkladu:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIEHzCCAwcCAQAwVzELMAkGA1UECwwCSVQxDjAMBgNVBAoMBUFMS0FTMRIwEAYD
VQQHDAlTb2tvbG5pY2UxCzAJBgNVBAYTAkNaMRcwFQYDVQQDDA5tYWlsLmFsa2Fz
...
... další řádky žádosti o certifikát, zakódované do tvaru Base64
...
6UMLNsXu8F7ZEU+LP1oyiWSBAO/LqLuqMlc5KvRRyVENJMpPlNYJdL2YRcLTzF9+
F6CC
-----END NEW CERTIFICATE REQUEST-----

Jak zazálohujete certifikát s privátním klíčem

Prostředky k zálohování mohou být:

Podrobný popis najdete v článcích Jak na to. Export (záloha) vytvoří soubor formátu P12 s příponou .p12 nebo .pfx s hlavními částmi:

Je tedy nutno zálohovat na počítači, který obsahuje privátní klíč, tj. kde byla vygenerována žádost o certifikát, nebo kam byl certifikát a privátní klíč obnoven ze zálohového souboru (s příponou .p12 či .pfx).

Jak funguje zabezpečený přenos

Použití certifikátu k šifrování zpráv e-mailu

Kdo chce někomu poslat zprávu zašifrovanou tak, aby ji nikdo nepovolaný po cestě Internetem nedokázal dešifrovat, musí ji zašifrovat veřejným klíčem adresáta. Ten je obsažen v certifikátu adresáta. Protože RSA je nesymetrické šifrování, může zprávu dešifrovat pouze ten, kdo má odpovídající privátní klíč, a to by měl být pouze adresát.

Použití certifikátu jako důkazu

Kdo chce adresátovi/uživateli poskytnout možnost ověření, že zpráva/kód/dokument skutečně pochází od něj a nebyl(a) cestou měněn(a), musí k ní/němu připojit digitální podpis a svůj certifikát (který obsahuje veřejný klíč). Digitální podpis vznikne na straně odesilatele vytvořením haše zprávy a jeho zašifrováním pomocí privátního klíče odesilatele. Kontrola veřejným klíčem odesilatele na místě určení (u adresáta) pak obě ověření zajistí - vytvoří stejným algoritmem nový haš, dešifruje digitální podpis (vznikne haš odesilatele) a oba haše porovná.

V obou příkladech vykonávají "otročinu" s hašováním, zašifrováním a dešifrováním programy v počítačích. Hašovací algoritmus musí být velmi přesný, aby produkoval nepředvídatelné hodnoty haší. Dosahuje se toho především používáním kvalitních generátorů náhodných čísel (Random Number Generators, RNG).

Použití certifikátů při zabezpečené webové komunikaci

Základní typ spojení HTTPS (HTTP nad SSL/TLS, "S" zastupuje slovo "secured" [zabezpečený]) je výměna šifrovaných zpráv typu dotaz (GET/POST) - odpověď mezi klientem (prohlížečem) a webovým serverem. Probíhá přibližně takto:

  1. Ověření, že certifikát serveru pochází od důvěryhodné CA (upozornění, když ne).
  2. Generování páru klíčů na straně klienta i serveru a výměna veřejných klíčů. V dalším odstavci se klíči serveru i klienta rozumějí právě tyto klíče vygenerované jen pro toto spojení.
  3. Zašifrovaný dotaz klienta (veřejným klíčem serveru); server ho dešifruje svým privátním klíčem. Následuje zašifrovaná odpověď serveru (v jedné, případně více částech, zašifrovaných veřejným klíčem klienta), kterou klient dešifruje svým privátním klíčem.

V případě delší komunikace mohou obě strany vyvolat "změnu šifry", tj. vytvořit nový pár klíčů a veřejné klíče si opět poslat. Protože výměna zpráv je již oboustranně šifrovaná, dá se to zařídit snáze, než při zahájení komunikace.

Také zde vykonávají "otrockou práci" počítačové programy - klient (prohlížeč) a server.

Použití certifikátů při zabezpečené e-mailové komunikaci (TLS)

Spojení probíhá obvykle na portu 25 po ověření, že obě strany ovládají protokol TLS - dnes obvykle TLS 1.2 (RFC 5246) nebo TLS 1.3 (RFC 8446) a je zahájeno odesílající stranou příkazem STARTTLS.

V protokolu TLS 1.2 je patrná snaha, aby se šifrované spojení uplatnilo, i když některá strana přenosu nemá certifikát vydaný CA známou druhé straně - stačí, že k certifikátu vlastní také privátní klíč. Spojení lze dokonce šifrovat i v případě, že certifikát klienta neexistuje vůbec.

Postup je obdobný jako u zabezpečené webové komunikace: generování a výměna šifrovacích klíčů jen pro konkrétní spojení, pak výměna šifrovaných zpráv s možností změny klíčů v průběhu spojení.

Spojení protokolem TLS 1.3 je vylepšeno mj. tím, že může být zkráceno, pokud si serverová strana pamatuje stranu klientskou.

Druhy certifikátů X.509

Jak mocné certifikáty X.509 mohu od CAcert získat?

Protože bezpečnost je vážná věc, jsou schopnosti a možnosti certifikátů, které můžete od CAcert získat, odstupňovány podle toho, jaká je Vaše úroveň důvěryhodnosti, měřená počtem bodů zaručení (AP). Tyto body získáváte tím, že se dáváte zaručit, tj. potvrzujete svou totožnost svými osobními doklady předloženými zaručovatelům CAcert. Podle počtu získaných AP máte možnosti shrnuté v článku:

Jak důvěryhodná je samotná certifikační autorita CAcert?

Důvěryhodnost CAcert je dána způsobem, jakým ověřuje žadatele o certifikáty (zaručování) a jak dobře zabezpečuje privátní klíče svých kořenových certifikátů před zneužitím. V současnosti (2016) se používají dva kořenové certifikáty CAcert:

AVŠAK: od 20170101 vyžadují nové verze hlavních prohlížečů (IE, Edge, Firefox, Chrome, Opera a další), aby VŠECHNY certifikáty byly podepsány s použitím algoritmu SHA-256, tedy i kořenové certifikáty CA. Taková SHA-256 podepsaná varianta kořenového certifikátu CAcert již existuje a je tedy vhodné nahradit jí dosavadní kořenový certifikát. Přitom ostatní údaje a zejména veřejný klíč kořenového certifikátu CAcert se nemění. Postup náhrady je popsán zde.

Podrobnosti složení dvojice kořenových certifikátů CAcert jsou uvedeny v tomto článku:

Privátní klíče obou kořenových certifikátů má CAcert uloženy tak, že jsou z Internetu nedostupné.

Technické podrobnosti o vydávaných certifikátech najdete v zásadách odkazovaných z článku:


Certificates/CZ (last edited 2019-10-03 15:54:06 by AlesKastner)