Sdílet prostřednictvím


Aspekty 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 určitá oprávnění udělena nebo neudělena sestavení, je založeno 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řily konečnou sadu důkazů používaných k řešení politiky. Metody, které používají tuto sémantickou, zahrnují Assembly.Load, Assembly.LoadFrom a Activator.CreateInstance.

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

    Volitelná oprávnění mohou být udělena zásadami zabezpečení, které jsou nastaveny na 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 předem vyřešte selhání při načítání, ke kterému 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á podpis vygenerovaný nástrojem pro podepisování), pro webovou stránku a zónu (což je koncept z Internet Exploreru), ze které 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

Výstraha

Nespoléhejte na strong names pro 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 jmen pomáhá ověřit jedinečnost jména, zabránit falšování identity jména a poskytnout volajícím určitou míru identity při rozlišení odkazu.

K silnému názvu není přidružená žádná úroveň důvěryhodnosti, proto je důležitý SignTool.exe (Nástroj podpisu). 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.

Sestavení můžete dát jak silný název, tak digitální podpis vytvořený pomocí nástrojeSignTool.exe (Sign Tool), nebo můžete použít každý 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ástrojeSignTool.exe (Sign Tool) je uložen v rezervovaném slotu v souboru přenosného spustitelného souboru (PE) obsahujícím manifest sestavení. Podpis sestavení pomocí nástrojeSignTool.exe (Sign Tool) lze použít (se silným názvem nebo bez něj) v případě, že již máte hierarchii důvěry, která se spoléhá na podpisy generované nástrojem SignTool.exe (Sign Tool), nebo když vaše zásada používá pouze klíč a nekontroluje řetězec důvěry.

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. Při načítání každého souboru se jeho obsah hashuje a porovnává s hodnotou hash uloženou v manifestu. Pokud se dvě hodnoty hash neshodují, sestava se nepodaří načíst.

Silné pojmenování a podepisování pomocí nástrojeSignTool.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ástrojeSignTool.exe (Sign Tool), spolupracují, aby se zajistilo, že sestavení nebylo žádným způsobem změněno.

Viz také