Někde v pokynech k instalaci se celý adresář zkopíruje na každý notebook, protože to bylo snazší než rozhodnout, které soubory tam patří. Ten adresář obsahuje ca.key a ve chvíli, kdy se dostane na druhé zařízení, přestává být certifikační autorita autoritou. Každý držitel teď může vydávat identity, kterým bude zbytek sítě důvěřovat.

To zmatení stojí za jedno vyjasnění, protože oba soubory vypadají podobně a dělají opačné věci.

Ověřovací materiál a podepisovací materiál

Klient potřebuje veřejný certifikát CA, aby ověřil, že certifikát předložený protistranou podepsala tato autorita. To je úloha ověření a nepotřebuje žádné tajemství. Podepsat certifikát protistrany je jiná úloha, kterou jednou provede ten, kdo CA provozuje, soukromým klíčem, který nikdy neopustí své chráněné úložiště. Držet tyto dvě úlohy oddělené je celý smysl dodávání dvou souborů.

Takže ca.crt patří do profilu a ca.key nepatří nikam poblíž. Názvy souborů jsou konvence, ne záruka, a proto se typ musí prohlédnout, ne odvodit z názvu.

Architektura s mezilehlou CA nebo online službou vydávání není výjimkou. Je to standardní způsob, jak držet možnost podpisu mimo koncové body a přitom vydávat certifikáty zařízení ve velkém.

Co má klient prokázat vlastním klíčem

Každé zařízení dostane vlastní pár klíčů a vlastní certifikát, jednou podepsaný CA. Klient předloží tento certifikát a prokáže vlastnictví odpovídajícího soukromého klíče a server rozhodne, zda ho přijme. To je identita, která se odvolá, když se notebook ztratí.

Kontrast je nejdůležitější po krádeži. S identitami pro jednotlivá zařízení se jeden odhalený klient odstraní odvoláním nebo vyřazením protistrany a zbytek flotily funguje dál.

S uniklým klíčem autority takto postupovat nelze. Každý certifikát, který kdy podepsal nebo mohl podepsat, se stává podezřelým, takže reakcí je výměna důvěry, ne jedno odvolání. To je projekt, ne tiket.

FileRoleBelongs on
ca.crtPublic certificate used to verify signaturesEvery client profile
ca.keyPrivate key that issues certificatesProtected CA storage only
client key pairProves one device's identityThat device alone

Přečtěte si soubor, než ho někam zkopírujete

Dva příkazy vám řeknou, jaký druh objektu držíte, aniž by vytiskly jakékoli tajemství. První uvádí subjekt a příznak CA u certifikátu; druhý ověří klíč a oznámí jeho typ. Spusťte oba na souborech v balíku, který se chystáte distribuovat. Cokoli, co se ověří jako soukromý klíč, do klientského adresáře nepatří.

openssl x509 -in ca.crt -noout -subject -ext basicConstraints
openssl pkey -in ca.key -noout -check

Pokud druhý příkaz uspěje u souboru, který leží v klientském balíku, zastavte se a považujte balík za kompromitovaný. Výstup, který říká, že klíč je platný, také říká, že je přítomný, a přítomnost je celý problém.

Všimněte si i opačného směru: klientský profil oprávněně obsahuje vlastní soukromý klíč tohoto klienta. Smazání každého nalezeného klíče přeruší spojení, aniž by cokoli zlepšilo, takže objekt je nutné před odstraněním identifikovat.

Zvládnutí klíče, který jste už distribuovali

Nepředpokládejte, že smazání místní kopie odvrátí expozici. Kdokoli soubor měl, ho mohl zkopírovat, a bezpečný předpoklad je, že to udělal. Postupujte podle incidentního procesu provozovatele a vyměňte kotvu důvěry, znovu vydáním certifikátů zařízení pod novou CA.

Pak změňte balení, které problém vytvořilo. Posílejte výpis adresáře s explicitním seznamem povolených souborů, držte klíč CA na stroji, který se nikdy nepřipojí ke klientské flotile, a zaznamenejte, který systém ho uchovává.

Pokud musí autorita vydávat často, přesuňte podepisování za službu nebo mezilehlou autoritu s úzkým rozsahem a krátkou platností. Budoucí chyba tak odhalí jen část vydávání, ne kořen důvěry celého nasazení.

Související články