Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
** Silný název se skládá z identity sestavení – jeho jednoduchého textového názvu, čísla verze a kulturních informací (pokud jsou k dispozici) – plus veřejného klíče a digitálního podpisu. Generuje se ze souboru sestavení pomocí odpovídajícího privátního klíče. (Soubor sestavení obsahuje manifest sestavení, který obsahuje názvy a hodnoty hash všech souborů, které sestavení tvoří.)
Výstraha
Nespoléhejte na silné názvy zabezpečení. Poskytují pouze jedinečnou identitu.
Sestavení se silným názvem může používat pouze typy z jiných sestavení se silným názvem. Jinak by byla ohrožena integrita sestavení se silným názvem.
Poznámka:
I když .NET Core podporuje sestavení se silným názvem a všechna sestavení v knihovně .NET Core jsou podepsaná, většina sestavení třetích stran nepotřebuje silné názvy. Další informace najdete v tématu Podepisování silného názvu na GitHubu.
Scénář silného názvu
Následující scénář popisuje proces podepsání sestavení silným názvem a jeho pozdějšího odkazování tímto názvem.
Sestavení A se vytvoří se silným názvem pomocí jedné z následujících metod:
Použití vývojového prostředí, které podporuje vytváření silných názvů, jako je například Visual Studio.
Vytvoření páru kryptografických klíčů pomocí nástroje Strong Name (Sn.exe) a přiřazení páru klíčů k sestavení pomocí kompilátoru příkazového řádku nebo linkeru sestavení (Al.exe). Sada Windows SDK poskytuje Sn.exe i Al.exe.
Vývojové prostředí nebo nástroj podepíše hodnotu hash souboru obsahujícího manifest sestavení pomocí privátního klíče vývojáře. Tento digitální podpis je uložen v přenosném spustitelném souboru (PE), který obsahuje manifest sestavení A.
Sestavení B je příjemcem sestavení A. Referenční část manifestu sestavení B obsahuje token, který představuje veřejný klíč sestavení A. Token je část celého veřejného klíče a používá se místo samotného klíče k úspoře místa.
Modul CLR (Common Language Runtime) ověřuje podpis silného názvu při umístění sestavení do globální mezipaměti sestavení. Při vytváření vazby silným názvem za běhu porovná modul CLR klíč uložený v manifestu sestavení B s klíčem použitým k vygenerování silného názvu sestavení A. Pokud kontroly zabezpečení rozhraní .NET projdou a vazba proběhne úspěšně, sestavení B má záruku, že bity sestavení A nebyly manipulovány a že tyto bity skutečně pocházejí od vývojářů sestavení A.
Poznámka:
Tento scénář neřeší problémy s důvěryhodností. Sestavení mohou kromě silného názvu obsahovat úplné podpisy systému Microsoft Authenticode. Podpisy Authenticode obsahují certifikát, který vytváří vztah důvěryhodnosti. Je důležité si uvědomit, že silné názvy tímto způsobem nevyžadují podepsání kódu. Silné názvy poskytují pouze jedinečnou identitu.
Obcházení ověření podpisu důvěryhodných sestavení
Počínaje aktualizací Service Pack 1 rozhraní .NET Framework 3.5 se podpisy silného názvu neověřují při načtení sestavení do plně důvěryhodné domény aplikace, jako je výchozí doména aplikace pro zónu MyComputer . Tato funkce se označuje jako funkce obejití silného názvu. V prostředí s úplnou důvěrou jsou požadavky pro podepsaná sestavení s úplnou důvěrou vždy úspěšné bez ohledu na jejich podpis. Funkce obejití silného názvu zabraňuje zbytečné režii při ověřování podpisů silného názvu sestavení s úplným vztahem důvěryhodnosti v této situaci, což umožňuje rychlejší načtení sestavení.
Funkce obejití se vztahuje na všechna sestavení podepsaná silným názvem a s následujícími vlastnostmi:
Plně důvěryhodná bez StrongName dokladu (například má
MyComputerzónový důkaz).Načteno do plně důvěryhodné AppDomain.
Načteno z umístění pod vlastností tohoto ApplicationBaseobjektu AppDomain .
Není podepsáno zpožděním.
Tato funkce může být zakázaná pro jednotlivé aplikace nebo pro počítač. Viz Jak na to: Zakázání funkce obejití silného názvu
Související témata
| Title | Description |
|---|---|
| Postupy: Vytvoření páru veřejného a privátního klíče | Popisuje, jak vytvořit pár kryptografických klíčů pro podepisování sestavení. |
| Postupy: Podepsání sestavení silným názvem | Popisuje, jak vytvořit sestavení se silným názvem. |
| Vylepšené silné pojmenování | Popisuje vylepšení silných názvů v rozhraní .NET Framework 4.5. |
| Jak na to: Odkazování na sestavení se silným názvem | Popisuje, jak odkazovat na typy nebo prostředky v sestavení se silným názvem v době kompilace nebo za běhu. |
| Postupy: Zakázání funkce obejití silného názvu | Popisuje způsob, jak vypnout funkci, která obchází ověřování podpisů silného názvu. Tato funkce může být zakázaná pro všechny nebo pro konkrétní aplikace. |
| Vytváření sestavení | Poskytuje přehled o sestaveních s jedním souborem a s více soubory. |
| Zpoždění podepsání sestavení v sadě Visual Studio | Vysvětluje, jak podepsat sestavení silným názvem po jeho vytvoření. |
| Sn.exe (nástroj Strong Name) | Popisuje nástroj zahrnutý v rozhraní .NET Framework, který pomáhá vytvářet sestavení se silnými názvy. Tento nástroj poskytuje možnosti pro správu klíčů, generování podpisů a ověřování podpisů. |
| Al.exe (linker sestavení) | Popisuje nástroj zahrnutý v rozhraní .NET Framework, který generuje soubor, který má manifest sestavení z modulů nebo souborů prostředků. |