Vytvoření a použití sestavení se silným názvem

Silný název se skládá z identity sestavení – jednoduchý textový název, čísla verze a informace o jazykové verzi (pokud je poskytnuta) plus veřejný klíč a digitální signatura. 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 hash hodnoty všech souborů, které tvoří sestavení).

Sestavení se silným názvem může použít pouze typy z jiných sestavení se silným názvem. V opačném případě by byla ohrožena bezpečnost sestavení se silným názvem.

Tento přehled obsahuje následující oddíly:

  • Scénář pro silný název

  • Vynechání ověření podpisu důvěryhodných sestavení

  • Příbuzná témata

Scénář pro silný název

Následující scénář popisuje proces podepisování sestavení se silným názvem a pozdější odkazování tímto názvem.

  1. Sestavení A je vytvořeno se silným názvem pomocí jedné z následujících metod:

    • Použitím vývojového prostředí, které podporuje vytváření silných názvů, například Visual Studio 2005.

    • Vytvořením páru kryptografických klíčů pomocí Strong Name tool (Sn.exe) a přiřazení páru klíčů k sestavení, buď pomocí kompilátoru z příkazového řádku nebo nástroje Assembly Linker (Al.exe). Windows SDK (Software Development Kit) poskytuje Sn.exe i Al.exe.

  2. Vývojové prostředí nebo nástroj podepíše hash hodnotu souboru, který obsahuje manifest sestavení pomocí soukromého klíč vývojáře. Tento digitální podpis je uložen v přenositelném spustitelném souboru (PE), který obsahuje manifest sestavení A.

  3. Sestavení B je příjemcem sestavení A. Část s odkazy v manifestu sestavení B obsahuje token, který představuje veřejný klíč sestavení A. Token je částí veřejného klíče a používá se spíše než klíč samotný pro ušetření prostoru.

  4. Modul CLR ověří signaturu silného názvu, když je sestavení umístěno do globální mezipaměti sestavení (GAC). Při vytváření vazby pomocí silného názvu v době běhu, modul CLR porovná klíč uložený v manifestu sestavení B s klíčem použitým pro vygenerování silného názvu pro sestavení A. Pokud zabezpečení rozhraní .NET Framework zkontroluje průchod a vazba je úspěšná, sestavení B má jistotu, že s bity sestavení A nebylo manipulováno, a že tyto bity skutečně pocházejí od vývojářů sestavení A.

PoznámkaPoznámka

Tento scénář se nezabývá problémy se vztahy důvěryhodnosti.Sestavení mohou obsahovat plné podpisy technologie Microsoft Authenticode navíc k silnému názvu.Podpisy technologie Authenticode obsahují certifikát, který vytváří vztah důvěryhodnosti.Je důležité si uvědomit, že silné názvy nevyžadují, aby byl kód podepsán tímto způsobem.Ve skutečnosti klíče používané ke generování podpisu silného názvu nemusí být stejné jako klíče použité ke generování podpisu technologie Authenticode.

Zpět na začátek

Vynechání ověření podpisu důvěryhodných sestavení

Počínaje .NET Framework verze 3.5 Service Pack 1, podpisy silných názvů nejsou ověřovány při načtení sestavení do domény aplikace s plným vztahem důvěryhodnosti, jako je například výchozí doména aplikace pro zónu MyComputer. To se označuje jako vlastnost pro vynechání silného názvu. V plně důvěryhodném prostředí, jsou požadavky na StrongNameIdentityPermission vždy úspěšné pro podepsané, plně důvěryhodné sestavení, bez ohledu na jejich podpis. Vlastnost vynechání silného názvu v takovéto situaci předejdete zbytečné režii pro ověření podpisu silného názvu plně důvěryhodných sestavení, což umožňuje rychleji načíst sestavení.

Vlastnost vynechávání se vztahuje na jakékoli sestavení, které je podepsáno silným názvem a které má následující charakteristiky:

  • Plně důvěryhodné bez legitimace StrongName (například má legitimaci zóny MyComputer).

  • Načtené do plně důvěryhodné AppDomain.

  • Načtené z umístění v rámci vlastosti ApplicationBase domény AppDomain.

  • Podepsáno bez zpoždění.

Tato funkce může být neaktivní pro jednotlivé aplikace nebo počítač. Viz téma Postupy: Zakázat vlastnost pro vynechání silného názvu.

Zpět na začátek

Příbuzná témata

Title

Popis

Postupy: Vytvořit pár veřejného a soukromého klíče

Popisuje, jak vytvořit dvojici kryptografických klíčů pro podepsání sestavení.

Postupy: Podepsat sestavení silným názvem

Popisuje, jak vytvořit sestavení se silným názvem.

Postupy: Odkaz na sestavení s názvem Strong

Popisuje, jak odkazovat typy nebo zdroje v sestavení se silným názvem během kompilace nebo běhu.

Postupy: Zakázat vlastnost pro vynechání silného názvu

Popisuje, jak zakázat funkci, která vynechá ověřování podpisů silných názvů. Tuto funkce lze zakázat pro všechny nebo pro konkrétní aplikace.

Vytváření sestavení

Obsahuje přehled jednosouborových a vícesouborových sestavení.

Postupy: Odložení podpisu sestavení (Visual Studio)

Vysvětluje, jak podepsat sestavení se silným názvem potom, co bylo sestavení vytvořeno.

Sn.exe (Strong Name Tool)

Popisuje nástroj, který je součástí 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 (Assembly Linker)

Popisuje nástroj, který je součástí rozhraní .NET Framework, který generuje soubor, který má manifest sestavení z modulů nebo zdrojových souborů.

Zpět na začátek