Guru Altair se mě zeptal, co znamená volba Enable certificate privacy, kterou byste našli ve Windows 10 v okamžiku, kdy se snažíte exportovat certifikát i s privátním klíčem do PFX souboru (PKCS#12). Dřív to tam nebylo. A protože jsem chtěl Koňovi udělat radost, tak jsem to taky dnes zjistil.
Následují obrázky z certificate export průvodce, nová volba Enable certificate privacy je vidět na druhém z nich:
První tabulka se vůbec nezměnila. Na poslední tabulce už ve Windows 8 a Windows 2012 přibyla volba Group or user names (aka group protected pfx), kdy nemusíte zadávat heslo a přitom se k tomu souboru dostanou členové vyjmenovaných skupin - vyžaduje to domain functional level (DFL 2012) a rozjetý KDS (key distribution service) atd. Ale to už tam bylo, to teď řešit nebudeme, jenom jsem si sem musel hodit link na starší článek :-)
Takže vo co gou?
PFX soubory jsou od jakživa zašifrované, aby se soukromý klíč (private key) jenom tak někde nepovaloval. Pokud vyexportuju PFX ještě na Windows 8.1, tak je celý komplet zašifrovaný. Pokud se do tohoto staršího exportu podívate nějakým hex editorem, tak uvidíte velmi entropickou břečku od začátku až do konce. Není vidět ani obsah certifikátu.
Můžete na to zkusit spustit certutil a on bude chtít okamžitě heslo, aniž by cokoliv dokázal zobrazit:
certutil -v konikuvprivat.pfx
Což je zajímavé, protože obsah certifikátů se obecně považuje za totálně veřejný a žádné systémy mu nepřikládají žádnou zvláštní ochranu, jako že by se to snažili nějak chránit proti kopírování nebo rozlézání po síti. Jediné co je potřeba chránit obvykle je privátní klíč.
A mě tohle kompletní zašifrování od jakživa docela vadilo, protože jste se bez hesla nemohli podívat, co to je za certifikát, i když jste ho nechtěli rovnou importovat.
Nové chování exportu ve Windows 10
Jak jsem zjistil, chování exportu ve Windows 10 se změnilo následovně. Pokud tu volbu Enable certificate privacy necháte vypnutou (výchozí stav), tak se nově nešifruje celý obsah pfx souboru, ale pouze soukromý klíč. Takže při použití hex editoru uvidíte textové části certifikátu normálně čitelně a certutil nevyžaduje heslo na to, aby zobrazil pěkně obsah certifikátu uvnitř pfx souboru.
Takže pohodlné vylepšení.
Aby to nebylo někomu líto, pokud si chce přecejenom chránit i obsah certifikátu, tak není problém. Od toho je tam ta volba Enable certificate privacy. Pokud ji zapnete, zašifruje se celý pfx soubor včetně veřejné části certifikátu. A je to tedy stejné, jako když jste exportovali pfx z Windows 8.1 a starších.
Kompatibilita
Obě formy exportu, jak nová forma bez certificate privacy, tak i stará forma při zapnutém certificate privacy se dá v pohodě naimportovat i do Windows 7, jak jsem ověřil.
Tolik keců kvůli takové blbosti ...
... ale snad bude mít Koník radost :-)