PKI (zjednodušeně) představuje množinu pomůcek umožňujících tvořit (CA), validovat (RA, VA) a revokovat (VA) digitální certifikáty pro asymetrickou kryptografii.
Certifikát je potvrzení, že daný veřejný klíč náleží danému subjektu. Při jeho vytváření musíme zadat následující položky (údaje uvedené pro muni.cz):
Kromě toho se certifikátu při podpisu CA přiřadí i další atributy:
Certifikační autorita je třetí strana, která potvrzuje to, že ověřila vlastnicví veřejného klíče subjektem. Činí tak pomocí podpisu vydaného certifikátu (webu či jiné autority).
Operační systém těmto autoritám plně věří; ve většině systémů jsou jejich certifitáty přibaleny již při instalaci.
Ve Fedoře můžeme tyto certifikáty najít v
/usr/share/pki/ca-trust-source/anchors/
,
následované zavoláním update-ca-trust
V Debian-based systémech se jedná o adresář /usr/local/share/ca-certificates
a příkaz update-ca-certificates
.
Let's encrypt je jednou z prvních důvěryhodných certifikačních autorit nabízejících vytvoření certifikátu pro doménu zdarma a automatizovaně (pomocí protokolu ACME).
Jedním z klientů na vytváření certifikátů je tzv. Certbot.
Manuálně s certifikáty pracujeme nejčasti pomocí openssl
Pro vytvoření RSA klíče s běžně používanou délkou 2048 B
openssl genrsa -out server.key 2048
Pro tento klíč poté vytvoříme žádost o podpis (Certificate Signing Request, CSR)
openssl req -new -key server.key -out server.csr
Tuto žádost můžeme předat certifikační autoritě k podpisu, nebo můžeme vytvořit certifikát, který je podepsán sám sebou - tj. self-signed certifiacete:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Pokud software vyžaduje pouze jeden soubor, zkombinujeme soukromý klíč a certifikát do jednoho souboru
cat server.crt server.key > server.pem
Na podobné bázi jsme schopni vytvořit i certifikát certifikační autority, pomocí kterého můžeme poté podepisovat ostatní certifikáty
Pro případ, že by soukromý klíč unikl, jsme v PKI schopni jej zneplatnit.
Certificate Revocation List - CA periodicky zveřejňuje na určitém místě / zasláním seznamu sériových čísel ještě neexpirovaných, ale již revokovaných certifikátů. Místo zveřejnění je uvedeno v certifikátu podepisující CA a validita se dá ověřit pomocí openssl.
Online certificate status protocol umožňuje real-time ověření validity certifikátu.
DNS-based Authentication of Named Entities umožňuje pomocí TLSA
záznamů přiřadit veřejné klíče přímo do záznamů DNSCES validované domény.
Používáno v PGP; každý může validovat veřejné klíče kohokoliv s určitnou mírou důvěrohodnosti.