ClickOnce a kód Authenticode

Authenticode je technologie Microsoftu, která používá standardní kryptografii k podepisování kódu aplikace pomocí digitálních certifikátů, které ověřují pravost vydavatele aplikace. Použitím authenticode pro nasazení aplikace ClickOnce snižuje riziko trojského koně. Trojský kůň je virus nebo jiný škodlivý program, který škodlivý třetí strana nesprávně představuje jako legitimní program pocházející ze zavedeného důvěryhodného zdroje. Podepisování nasazení ClickOnce pomocí digitálního certifikátu je volitelný krok k ověření, že sestavení a soubory nejsou manipulovány.

Následující části popisují různé typy digitálních certifikátů používaných v authenticode, jak se certifikáty ověřují pomocí certifikačních autorit (CA), role časového razítka v certifikátech a metody úložiště dostupné pro certifikáty.

Ověřování a podepisování kódu

Digitální certifikát je soubor, který obsahuje pár kryptografických veřejných/privátních klíčů spolu s metadaty popisující vydavatele, kterému byl certifikát vydán, a agenturou, která certifikát vydala.

Existují různé typy certifikátů Authenticode. Každá z nich je nakonfigurovaná pro různé typy podepisování. Pro aplikace ClickOnce musíte mít certifikát Authenticode, který je platný pro podepisování kódu. Pokud se pokusíte podepsat aplikaci ClickOnce jiným typem certifikátu, například digitálním e-mailovým certifikátem, nebude fungovat. Další informace najdete v tématu Úvod do podepisování kódu.

Certifikát pro podepisování kódu můžete získat jedním ze tří způsobů:

  • Kupte si ho od dodavatele certifikátu.

  • Získejte jednu ze skupiny ve vaší organizaci zodpovědnou za vytváření digitálních certifikátů.

  • Generování vlastního certifikátu pomocí rutiny New-SelfSignedCertificate PowerShellu nebo pomocí souboru MakeCert.exe, který je součástí sady Windows Software Development Kit (SDK).

Jak používat certifikační autority pomáhá uživatelům

Certifikát vygenerovaný pomocí new-SelfSignedCertificate nebo nástroje MakeCert.exe se běžně nazývá self-cert nebo testovací certifikát. Tento druh certifikátu funguje podobně jako soubor .snk v rozhraní .NET Framework. Skládá se výhradně z dvojice veřejného/privátního kryptografického klíče a neobsahuje žádné ověřitelné informace o vydavateli. Pomocí samoobslužných certifikátů můžete nasazovat aplikace ClickOnce s vysokou důvěryhodností v intranetu. Pokud však tyto aplikace běží na klientském počítači, ClickOnce je identifikuje jako pocházející z neznámého vydavatele. Ve výchozím nastavení nemůžou aplikace ClickOnce podepsané certifikáty self-certs a nasazené přes internet využívat důvěryhodné nasazení aplikací.

Pokud naopak obdržíte certifikát od certifikační autority, jako je dodavatel certifikátů nebo oddělení ve vašem podniku, certifikát nabízí uživatelům větší zabezpečení. Identifikuje nejen vydavatele podepsaného softwaru, ale ověřuje ji kontrolou certifikační autority, která ji podepsala. Pokud certifikační autorita není kořenovou autoritou, Authenticode také "zřetězí" zpět ke kořenové autoritě, aby ověřila, že certifikační autorita má oprávnění vydávat certifikáty. Pro větší zabezpečení byste měli použít certifikát vydaný certifikační autoritou, kdykoli je to možné.

Další informace o generování self-certs naleznete v tématu New-SelfSignedCertificate nebo MakeCert.

Časová razítka

Certifikáty používané k podepsání aplikací ClickOnce vyprší po určité době, obvykle dvanáct měsíců. Aby bylo možné odebrat potřebu neustále znovu podepisovat aplikace s novými certifikáty, clickOnce podporuje časové razítko. Když je aplikace podepsaná pomocí časového razítka, jeho certifikát bude i nadále přijat i po vypršení platnosti za předpokladu, že časové razítko je platné. To umožňuje aplikacím ClickOnce s prošlými certifikáty, ale platnými časovými razítky stahovat a spouštět. Umožňuje také nainstalovaným aplikacím s prošlými certifikáty pokračovat ve stahování a instalaci aktualizací.

Pokud chcete do aplikačního serveru zahrnout časové razítko, musí být k dispozici server časového razítka. Informace o tom, jak vybrat server časového razítka, naleznete v tématu Postupy: Podepsání manifestů aplikace a nasazení.

Aktualizace certifikátů s vypršenou platností

V dřívějších verzích rozhraní .NET Framework může aktualizace aplikace, jejíž platnost certifikátu vypršela, způsobit, že aplikace přestane fungovat. Chcete-li tento problém vyřešit, použijte jednu z následujících metod:

  • Aktualizujte rozhraní .NET Framework verze 3.5 nebo novější.

  • Odinstalujte aplikaci a znovu nainstalujte novou verzi s platným certifikátem.

Ukládání certifikátů

  • Certifikáty můžete uložit jako soubor .pfx ve vašem systému souborů nebo je můžete uložit do kontejneru klíčů. Uživatel v doméně Windows může mít řadu kontejnerů klíčů. Ve výchozím nastavení bude Soubor MakeCert.exe ukládat certifikáty do kontejneru osobního klíče, pokud nezadáte, že by se měl uložit do souboru .pfx . Mage.exe a MageUI.exe, nástroje sady Windows SDK pro vytváření nasazení ClickOnce umožňují používat certifikáty uložené v obou způsobech.