Megosztás a következőn keresztül:


Erős nevű szerelvények létrehozása és használata

Az erős név a szerelvény identitásából – egyszerű szöveges nevéből, verziószámából és kulturális adataiból (ha van) – és egy nyilvános kulcsból és egy digitális aláírásból áll. A rendszer egy szerelvényfájlból hozza létre a megfelelő titkos kulccsal. (A szerelvényfájl tartalmazza a szerelvényjegyzéket, amely tartalmazza a szerelvényt alkotó összes fájl nevét és kivonatát.)

Figyelmeztetés

A biztonság érdekében ne támaszkodjanak erős nevekre. Csak egyedi identitást biztosítanak.

Az erős névvel ellátott szerelvények csak más, erős névvel ellátott szerelvények típusait használhatják. Ellenkező esetben az erős nevű szerelvény integritása sérülne.

Feljegyzés

Bár a .NET Core támogatja az erős nevű szerelvényeket, és a .NET Core-kódtár összes szerelvénye aláírt, a külső szerelvények többségének nincs szüksége erős nevekre. További információ: Erős névaláírás a GitHubon.

Erős névforgatókönyv

Az alábbi forgatókönyv egy erős névvel rendelkező szerelvény aláírásának folyamatát vázolja fel, majd később hivatkozik rá erre a névre.

  1. Az A szerelvény erős névvel jön létre az alábbi módszerek egyikével:

    • Olyan fejlesztői környezet használata, amely támogatja az erős nevek, például a Visual Studio létrehozását.

    • Titkosítási kulcspár létrehozása az Erős név eszközzel (Sn.exe) és a kulcspár hozzárendelése a szerelvényhez parancssori fordítóval vagy a Assembly Linkerrel (Al.exe). A Windows SDK Sn.exe és Al.exe is biztosít.

  2. A fejlesztői környezet vagy eszköz aláírja a szerelvény jegyzékfájlját tartalmazó fájl kivonatát a fejlesztő titkos kulcsával. Ez a digitális aláírás a hordozható végrehajtható (PE) fájlban van tárolva, amely tartalmazza az A szerelvény jegyzékfájlját.

  3. A B szerelvény az A szerelvény fogyasztója. A B szerelvény jegyzékfájljának referenciaszakasza tartalmaz egy jogkivonatot, amely az A szerelvény nyilvános kulcsát jelöli. A jogkivonat a teljes nyilvános kulcs része, és nem magát a kulcsot használja a helytakarékossághoz.

  4. A közös nyelvi futtatókörnyezet ellenőrzi az erős névazonosságot, amikor a szerelvényt a globális szerelvény-gyorsítótárba helyezik. Ha futásidőben erős névvel köti a kötést, a közös nyelvi futtatókörnyezet összehasonlítja a B szerelvény jegyzékfájljában tárolt kulcsot az A szerelvény erős nevének létrehozásához használt kulccsal. Ha a .NET biztonsági ellenőrzései sikeresek, és a kötés sikeres, a B szerelvény garantálja, hogy az A szerelvény bitjei nem lettek illetéktelenek, és hogy ezek a bitek valójában az A szerelvény fejlesztőitől származnak.

Feljegyzés

Ez a forgatókönyv nem foglalkozik a megbízhatósági problémákkal. A szerelvények az erős név mellett teljes Microsoft Authenticode-aláírásokat is tartalmazhatnak. Az authenticode-aláírások olyan tanúsítványt tartalmaznak, amely megbízhatóságot hoz létre. Fontos megjegyezni, hogy az erős nevek nem igénylik a kód ily módon történő aláírását. Az erős nevek csak egyedi identitást biztosítanak.

Megbízható szerelvények aláírás-ellenőrzésének megkerülése

A .NET-keretrendszer 3.5 Service Pack 1 csomagtól kezdve a rendszer nem ellenőrzi az erős nevű aláírásokat, amikor egy szerelvény betöltődik egy teljes megbízhatóságú alkalmazástartományba, például a MyComputer zóna alapértelmezett alkalmazástartományába. Ezt nevezik erős név megkerülő funkciónak. Teljes megbízhatósági környezetben az aláírt, StrongNameIdentityPermission teljes megbízhatóságú szerelvények mindig sikeresek lesznek, az aláírásuktól függetlenül. Az erős név megkerülése funkció ebben a helyzetben elkerüli a teljes megbízhatósági szerelvények erős névvel történő aláírás-ellenőrzésének szükségtelen többletterhelését, így a szerelvények gyorsabban töltődnek be.

A megkerülési funkció minden olyan szerelvényre vonatkozik, amely erős névvel van aláírva, és amely a következő jellemzőkkel rendelkezik:

  • Teljes mértékben megbízható bizonyíték nélkül StrongName (például zóna bizonyíték).MyComputer

  • Betöltve egy teljesen megbízhatóba AppDomain.

  • Betöltve az ApplicationBase adott AppDomaintulajdonság alatti helyről.

  • Nem késleltetett aláírás.

Ez a funkció letiltható egyes alkalmazásokban vagy számítógépeken. Lásd : Az erős név megkerülése funkció letiltása.

Cím Leírás
Útmutató: Nyilvános-privát kulcspár létrehozása Ismerteti, hogyan hozható létre titkosítási kulcspár egy szerelvény aláírásához.
Útmutató: Szerelvény aláírása erős névvel Ismerteti, hogyan hozhat létre egy erős nevű szerelvényt.
Továbbfejlesztett erős elnevezés A .NET-keretrendszer 4.5 erős nevekre vonatkozó fejlesztéseit ismerteti.
Útmutató: Hivatkozás egy erős nevű szerelvényre Ismerteti, hogyan hivatkozhat típusokra vagy erőforrásokra egy erős nevű szerelvényben fordításkor vagy futásidőben.
Útmutató: Az erős név megkerülése funkció letiltása Ismerteti, hogyan tilthatja le az erős névvel aláírt aláírások érvényesítését megkerülő funkciót. Ez a funkció le lehet tiltani az összes vagy egy adott alkalmazás esetében.
Szerelvények létrehozása Áttekintést nyújt az egy- és többfájlos szerelvényekről.
Szerelvény aláírásának késleltetése a Visual Studióban Ebből a cikkből megtudhatja, hogyan írhat alá egy erős nevű szerelvényt a szerelvény létrehozása után.
Sn.exe (Erős név eszköz) A .NET-keretrendszer tartalmazott eszközt ismerteti, amely segít erős neveket tartalmazó szerelvények létrehozásában. Ez az eszköz lehetőséget biztosít a kulcskezelésre, az aláírások létrehozására és az aláírás ellenőrzésére.
Al.exe (assembly linker) A .NET-keretrendszer tartalmazott eszközt ismerteti, amely modulokból vagy erőforrásfájlokból szerelvényjegyzéket tartalmazó fájlt hoz létre.