Public Key Infrastructure

Adam Hlaváček, adamhlavacek@mail.muni.cz

Obsah

PKI

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

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í autority

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).

Důvěryhodné certifikační 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

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.

Manipulace s certifikáty

Manuálně s certifikáty pracujeme nejčasti pomocí openssl

Vytvoření certifikátu

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

Revokace certifikátu

Pro případ, že by soukromý klíč unikl, jsme v PKI schopni jej zneplatnit.

CRL

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.

OCSP

Online certificate status protocol umožňuje real-time ověření validity certifikátu.

Alternativy k PKI

DANE

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.

Web of trust

Používáno v PGP; každý může validovat veřejné klíče kohokoliv s určitnou mírou důvěrohodnosti.

Literatura