Aktuálně na blogu
Nejčtenější na blogu
Reklama
Jak povolit export privátního klíče z úložiště certifikátu Windows
Čas od času jsme postaveni před zdánlivě neřešitelnou situaci... Jako například přenést osobní certifikát z jednoho počítače na druhý, k čemuž potřebujeme jak veřejnou část certifikátu, tak samozřejmě i privátní klíč, ale jsme v situaci, kdy privátní klíč byl označen jako neexportovatelný. Systém nám tak zcela logicky nedovoluje soukromý klíč exportovat a tváří se, že z této situace není úniku. Je tomu opravdu skutečně tak? A jak vůbec vše kolem certifikátů funguje? O tom více v následujícím příspěvku.
Na úvod neuškodí trošku teorie o certifikátech, abychom si objasnili, proč je soukromý (privátní) klíč tak důležitý a proč ho někdy nelze snadno exportovat. Následuje pak postup, jak exportovat certifikát včetně soukromého klíče i v případě, že byl označen jako neexpostovatelný.
Dialog Spustit vyvoláme klávesovou zkratkou Win+R, nebo u Windows 8 a vyšších můžeme využít Power User Menu (Win+X) a z nabídky následně zvolit Spustit.
Po spuštění se zobrazí konzole Certifikáty - aktuální uživatel, ve které nalistujeme kategorii Osobní -> Certifikáty.
Zde můžeme pracovat s osobními certifikáty. Poklepáním na požadovaný záznam zobrazíme dialog s podrobnostmi certifikátu, ve kterém můžeme ověřit jeho jednotlivé vlastnosti a zároveň se ujistit, zda k certifikátu máme i privátní klíč.
Na záložce Podrobnosti můžeme stiskem tlačítka Kopírovat do souboru... zahájit Průvodce exportem certifikátu.
Přivítá nás dialog exportu certifikátu, na úvodní stránce dialogu není co řešit, proto stiskneme tlačítko Další...
Na další stránce máme možnost zvolit, zda chceme spolu s certifikátem exportovat také privátní (soukromý) klíč. Ale pokud byl tento klíč označen jako neexportovatelný, resp. nebyl označen jako exportovatelný, máme smůlu, stejně jako na následujícím obrázku, kdy je aktivní pouze možnost Ne, neexportovat privátní klíč.
V tuto chvíli je nejvíce důležitá informace ta, že možnost exportovat soukromý klíč či nikoliv je pouze příznak, který skutečnému exportu nijak nebrání. Jen je potřeba tento příznak změnit, nejlépe dočasně, a klíč exportovat.
Reklama
Certifikáty
Certifikáty se v digitálním světě využívají pro identifikaci protistrany. Veřejná část certifikátu obsahuje informace o subjektu samotném, tedy hlavně jeho identifikaci (jméno, ...), dále pak sériové číslo certifikátu, platnost certifikátu atd. Tyto informace v certifikátu obsažené jsou nezpochybnitelné díky principu důvěryhodné (certifikační) autority a přenosu důvěryhodnosti. Pokud totiž důvěřujeme samotné certifikační autoritě, můžeme díky přenosu důvěry důvěřovat i vydanému certifikátu. Každý vydaný certifikát je digitálně podepsán soukromým klíčem certifikační autority.Proč veřejný a soukromý klíč?
Jak to tedy funguje? Jak mohu prokázat, že jsem to na druhé straně skutečně já a jak zajistím, že se za mě nemůže vydávat někdo úplně jiný? Tady nastupuje asymetrická kryptografie (šifrování) pomocí páru klíčů, rozdělených na veřejný a soukromý. Tato sada klíčů má tu vlastnost, že pokud zašifrujeme zprávu s využitím jednoho z klíčů, můžeme ji dešifrovat pouze za pomocí druhého klíče. Princip generování a vztahu klíčů je založen na matematickém problému, ke kterému neexistuje efektivní řešení. Konkrétněji, výpočetně je snadné generovat sadu dvou klíčů (soukromý a veřejný), ale následně z klíče veřejného nelze odvodit klíč soukromý. Ještě přesněji řečeno, ve skutečnosti je možné soukromý klíč odvodit, ale jedná se o tak (matematicky a výpočetně) náročnou operaci, že s dnešními znalostmi a dnešní výpočetní technikou to není možné provést v rozumně dlouhé době. Pro zájemce o hlubší studium nabízím jako dobrý start články na Wikipedii: Asymetrická kryptografie či anglické povídání Public-key cryptography. Máme tedy soukromý klíč, který slouží k šifrování, resp. podepsání zprávy a veřejný klíč, který slouží k dešifrování, resp. ověření pravosti podpisu. Veřejný klíč je veřejný, je součástí certifikátu a může nám být jedno, kdo jej získá, nelze jej zneužít. Naopak soukromý klíč je nutné držet v tajnosti, protože ten využíváme k šifrování či digitálnímu podpisu. Pokud někdo získá náš soukromý klíč, může se snadno vydávat za nás, je to tedy stejné, jako když ztratíme klíče nebo někdo získá PIN k naší platební kartě.Držíme soukromý klíč v bezpečí
Sada obou klíčů vzniká při vytváření žádosti o certifikát. Tato žádost se pak odesílá, ale pouze s veřejným klíčem, k certifikační autoritě, která na jejím základě vydá a podepíše certifikát. Certifikát jako takový je veřejná část, náš soukromý klíč vůbec neopustí brány našeho počítače a jeho zneužití je tedy možné pouze napadením našeho počítače a nebo tím, že jej někomu vědomě poskytneme. Jakmile nám certifikační autorita vydá certifikát (veřejnou část), jeho instalací do počítače, ve kterém vznikla žádost, dojde ke spojení veřejné (právě vydané) části certifikátu a soukromého klíče. Pokud budeme něco podepisovat, použijeme k podpisu soukromou část (klíč) a spolu se zprávou odešleme certifikát (veřejnou část). Dle popsaných principů výše si může příjemce ověřit, že k podepsání zprávy došlo soukromým klíčem, který pasuje k veřejnému klíči a proto se dá podpisu důvěřovat. Výše popsané principy objasňují, proč se kolem soukromého klíče dějí bezpečnostní manévry a proč existuje možnost označení privátního klíče jako neexportovatelného. Jak si ale nyní ukážeme, označení neexportovatelný je pouze příznak, který v žádném případě exportu klíče nezabrání a není to tedy v žádném případě spolehlivé zabezpečení klíče proti jeho zneužití (krádeži).Export certifikátu s privátním klíčem
Pokud chceme certifikát používat na více počítačích, nebo jej jen potřebujeme přenést z jednoho počítače na druhý, musíme do úložiště certifikátů importovat vždy certifikát včetně soukromého klíče. Bez něj můžeme certifikát do úložiště importovat také, ale nebudeme mít možnost certifikátem podepisovat ani šifrovat.Zobrazení a správa certifikátů
Pro zobrazení a správu certifikátů slouží konzole Správce certifikátů. Spustíme jej jednoduše zadáním následujícího názvu do dialogu Spustit:certmgr.msc
Jailbreak - 4.0
Dostáváme se k aplikaci, která nám umožní soukromý klíč exportovat. Jmenuje se Jailbreak, je komplet Opensource a vše potřebné nalezneme na její GitGub stránce: Zájemci si mohou díky tomu, že se jedná o aplikaci s otevřeným kódem, prohlédnout zdrojové kódy a přesvědčit se, že nebude činit s ohledem na certifikáty nic nekalého. Princip použití aplikace je jednoduchý. Po stažení a rozbalení ZIP archivu máme k dispozici zdrojové kódy, zkompilovanou aplikaci pro různé platformy (x86 a x64) a pomocné dávkové soubory (.bat). Postupujeme tedy následovně:- Z uvedené adresy stáhneme Jailbreak (tlačítko Download ZIP).
- Soubor jailbreak-master.zip rozbalíme do libovolné složky na disku.
- Otevřeme složku jailbreak-master, což je kořenová složka rozbaleného archivu.
- Najdeme dávkový soubor jbcert32.bat (pro x86 architekturu), resp. jbcert64 (pro x64 architekturu) a spustíme jej jako správce (nutné!).
- Všechny klíče v úložišti budou označeny jako exportovatelné.
- Spustí se konzole Správce certifikátů.
Import certifikátu
Pokud budeme daný certifikát importovat do úložiště, budeme v průvodci vyzvání mimo jiné také k tomu, abychom určili ochranu privátního klíče. Jedna z možností je Označit tento klíč jako exportovatelný; později bude možné klíč zálohovat či přenést. Jedná se o určení příznaku, o kterém tu celou dobu diskutujeme. Jeho nastavení tedy nechám na vás.Závěr
V tomto příspěvku jsme si stručně objasnili princip fungování soukromého klíče ve vztahu k certifikátu. Ujasnili jsme si, proč je důležité privátní klíče chránit a je tedy někdy problematické je exportovat. Zároveň jsme si ale ukázali cestu, jak exportovat i klíče označené jako neexportovatelné. Budu rád za komentáře.Reklama
zkusil jssem jailbreak na I.CA certifikáty uložené jako neexportovatelné a kvalifikovaný certifikát mi to umožnilo exportovat, standardní ale ne.
Díky moc za tip!
Cerifikát, který mám uložen na čipové kartě sice mohu použít pro přihlášení do banky. Pokud vyexportuji a pokusím se ho importovat do Windows na novém PC, hlásí chybu "Tento osobní certifikát se nepodařilo nainstalovat, protože nevlastníte odpovídající soukromý klíč, který byl vytvořen, když bylo požádáno o certifikát". Vypadá to, že cerifikát nemohu použít podepisování mailů a dokumentů a zálohu klíče se mi nikde nepodařilo najít.
Požádal jsem o pomoc certifikační autoritu, ale (zatím) bez odpovědi.
Je nějaká možnost, jak to napravit, nebo budu muset vygenerovat novou žádost o certifikát?
Děkuji za informaci
PORADÍŠ MI?
lUDĚK