Důležité informace o zabezpečení sestavení

Při sestavování sestavení můžete zadat sadu oprávnění, která sestavení vyžaduje ke spuštění. Zda jsou udělena určitá oprávnění nebo nejsou udělena sestavení, jsou založena na důkazech.

Existují dva různé způsoby použití důkazů:

  • Vstupní důkazy se sloučí s důkazy shromážděnými zavaděčem, aby vytvořil konečnou sadu důkazů používaných k řešení zásad. Metody, které používají tuto sémantickou, zahrnují Assembly.Load, Assembly.LoadFrom a Activator.CreateInstance.

  • Vstupní důkazy se používají jako konečná sada důkazů používaných k řešení zásad. Metody, které používají tuto sémantickou, zahrnují Assembly.Load(byte[]) a AppDomain.DefineDynamicAssembly().

    Volitelná oprávnění můžou udělit zásady zabezpečení nastavené v počítači, na kterém se sestavení spustí. Pokud chcete, aby váš kód zpracovával všechny potenciální výjimky zabezpečení, můžete udělat jednu z těchto věcí:

  • Vložte žádost o oprávnění pro všechna oprávnění, která váš kód musí mít, a zachytejte před selháním doby načítání, ke které dojde, pokud oprávnění nejsou udělena.

  • Nepoužívejte žádost o oprávnění k získání oprávnění, která může váš kód potřebovat, ale připravte se na zpracování výjimek zabezpečení v případě, že oprávnění nejsou udělena.

    Poznámka:

    Zabezpečení je složitá oblast a můžete si vybrat z mnoha možností. Další informace najdete v tématu Klíčové koncepty zabezpečení.

V době načtení se důkazy sestavení používají jako vstup do zásad zabezpečení. Zásady zabezpečení jsou vytvořeny podnikovým správcem a správcem počítače a nastavením zásad uživatele a určují sadu oprávnění udělených všem spravovaným kódům při spuštění. Zásady zabezpečení lze vytvořit pro vydavatele sestavení (pokud má vygenerovaný podpisový nástroj), pro web a zónu (což byl koncept aplikace Internet Explorer), ze kterého bylo sestavení staženo, nebo pro silný název sestavení. Správce počítače může například vytvořit zásady zabezpečení, které umožní veškerý kód stažený z webu a podepsaný danou softwarovou společností přístup k databázi v počítači, ale neuděluje přístup k zápisu na disk počítače.

Sestavení se silným názvem a podpisové nástroje

Upozorňující

Nespoléhejte na silné názvy zabezpečení. Poskytují pouze jedinečnou identitu.

Sestavení můžete podepsat dvěma různými, ale doplňkovými způsoby: silným názvem nebo pomocí SignTool.exe (Sign Tool). Podepsání sestavení se silným názvem přidá do souboru obsahujícího manifest sestavení šifrování veřejného klíče. Podepisování silných názvů pomáhá ověřit jedinečnost názvu, zabránit falšování identity názvu a poskytnout volajícím určitou identitu při překladu odkazu.

K silnému názvu není přidružena žádná úroveň důvěryhodnosti, což SignTool.exe (nástroj sign tool) je důležité. Dva podpisové nástroje vyžadují, aby vydavatel prokázal svou identitu autoritě třetí strany a získal certifikát. Tento certifikát se pak vloží do souboru a správce ho může použít k rozhodnutí, jestli má kód důvěřovat pravosti.

Silnému názvu i digitálnímu podpisu vytvořenému pomocí nástroje SignTool.exe (Sign Tool) můžete dát sestavení, nebo můžete použít buď samostatně. Tyto dva podpisové nástroje mohou současně podepsat pouze jeden soubor; pro vícesouborové sestavení podepíšete soubor, který obsahuje manifest sestavení. Silný název je uložen v souboru obsahujícím manifest sestavení, ale podpis vytvořený pomocí nástroje SignTool.exe (Sign Tool) je uložen v rezervovaném slotu v souboru přenosného spustitelného souboru (PE) obsahujícím manifest sestavení. Podepisování sestavení pomocí nástroje SignTool.exe (Sign Tool) se dá použít (se silným názvem nebo bez) v případě, že už máte hierarchii důvěryhodnosti, která spoléhá na SignTool.exe (Sign Tool) generované podpisy nebo když vaše zásada používá jenom část s klíčem a nekontroluje řetěz důvěryhodnosti.

Poznámka:

Při použití silného názvu i podpisu podpisového nástroje v sestavení musí být silný název přiřazen jako první.

Modul CLR (Common Language Runtime) také provádí ověření hodnoty hash; Manifest sestavení obsahuje seznam všech souborů, které tvoří sestavení, včetně hodnoty hash každého souboru, jak existoval při sestavení manifestu. Po načtení jednotlivých souborů je z obsahu vytvořena hodnota hash a ta je porovnána s hodnotou hash uloženou v manifestu. Pokud se tyto dvě hodnoty hash neshodují, sestavení se nepodaří načíst.

Silné pojmenování a podepisování pomocí nástroje SignTool.exe (Sign Tool) zaručuje integritu prostřednictvím digitálních podpisů a certifikátů. Všechny uvedené technologie, tj. ověřování hash, silné pojmenování a podepisování pomocí nástroje SignTool.exe (Sign Tool), spolupracují, aby se zajistilo, že sestavení nebylo žádným způsobem změněno.

Viz také