Sn.exe (Erős név eszköz)

Az Erős név eszköz (Sn.exe) segítségével erős neveket tartalmazó szerelvényeket írhat alá. Sn.exe a kulcskezelés, az aláírásgenerálás és az aláírás-ellenőrzés lehetőségeit kínálja.

Figyelmeztetés

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

Az erős elnevezésről és az erős névvel ellátott szerelvényekről további információt Strong-Named Szerelvények és útmutató: Szerelvény aláírása erős névvel című témakörben talál.

Az Erős név eszköz automatikusan telepítve van a Visual Studióval. Az eszköz elindításához használja a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt.

Megjegyzés:

64 bites számítógépeken futtassa a Sn.exe 32 bites verzióját a Visual Studio fejlesztői parancssorával és a 64 bites verzióval a Visual Studio x64 Win64 parancssorával.

A parancssorba írja be a következőket:

Szemantika

sn [-quiet][option [parameter(s)]]

Paraméterek

Lehetőség Description
-a identityKeyPairFile signaturePublicKeyFile AssemblySignatureKeyAttribute Adatokat hoz létre az identitáskulcs fájlból az aláírási kulcsba való migrálásához.
-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile AssemblySignatureKeyAttribute Adatokat hoz létre az identitáskulcs kulcstárolóból az aláírási kulcsba való migrálásához.
-c [csp] Beállítja az alapértelmezett titkosítási szolgáltatót (CSP) az erős névaláíráshoz. Ez a beállítás a teljes számítógépre vonatkozik. Ha nem ad meg CSP-nevet, Sn.exe törli az aktuális beállítást.
-d container Törli a megadott kulcstárolót az erős CSP névből.
-D assembly1 assembly2 Ellenőrzi, hogy két összeállítás csak aláírással tér el egymástól. Ezt gyakran használják ellenőrzésként, miután egy szerelvényt újra aláírtak egy másik kulcspárt használva.
-e assembly outfile Kinyeri a nyilvános kulcsot a szerelvényből , és outfile-ban tárolja.
-h Megjeleníti az eszköz parancsszintaxisát és beállításait.
-i infile container Telepíti a kulcspárt a megadott kulcstárolóban lévő infile-ból . A kulcstároló az erős CSP névben található.
-k [keysize] outfile Létrehoz egy új RSACryptoServiceProvider kulcsot a megadott méretből, és beírja a megadott fájlba. A rendszer mind a nyilvános, mind a titkos kulcsot a fájlba írja.

Ha nem ad meg kulcsméretet, a rendszer alapértelmezés szerint 1024 bites kulcsot hoz létre, ha telepítve van a Microsoft továbbfejlesztett titkosítási szolgáltatója; ellenkező esetben egy 512 bites kulcs jön létre.

A kulcsosítási paraméter 384 bittől 16 384 bitig, 8 bites lépésekben támogatja a kulcshosszokat, ha telepítve van a Microsoft továbbfejlesztett titkosítási szolgáltatója. 384 bittől 512 bitig tartó kulcshosszt támogat 8 bites lépésekben, ha telepítve van a Microsoft alapszintű titkosítási szolgáltatója.
-m [y or n] Megadja, hogy a kulcstárolók számítógép-specifikusak vagy felhasználóspecifikusak-e. Ha y értéket ad meg, a kulcstárolók számítógépspecifikusak. Ha n értéket ad meg, a kulcstárolók felhasználóspecifikusak.

Ha sem y, sem n nincs megadva, ez a beállítás megjeleníti az aktuális beállítást.
-o infile [outfile] Kinyeri a nyilvános kulcsot a fájlból , és egy .csv fájlban tárolja. A nyilvános kulcs minden bájtját vessző választja el egymástól. Ez a formátum akkor hasznos, ha a forráskódban inicializált tömbként hivatkozik a kulcsokra. Ha nem ad meg outfile-t, ez a beállítás a kimenetet a vágólapra helyezi. Jegyzet: Ez a beállítás nem ellenőrzi, hogy a bemenet csak nyilvános kulcs-e. Ha a infile kulcspár titkos kulccsal rendelkezik, a titkos kulcs is ki lesz nyerve.
-p infile outfile [hashalg] Kinyeri a nyilvános kulcsot a kulcspárból a fájlban , és outfile-ban tárolja, opcionálisan a hashalg által megadott RSA-algoritmus használatával. Ezzel a nyilvános kulccsal késleltetheti a szerelvény aláírását a Assembly Linker (Al.exe)/delaysign+ és /keyfile beállításaival. Ha egy szerelvény késéssel van aláírva, csak a nyilvános kulcs van beállítva fordítási időpontban, és a titkos kulcs ismerete után a fájlban helyet foglal le az aláírás hozzáadásához.
-pc container outfile [hashalg] Kinyeri a nyilvános kulcsot a kulcspárból a tárolóban , és outfile-ban tárolja. Ha a hashalg lehetőséget használja, a nyilvános kulcs kinyeréséhez az RSA-algoritmust használja.
-Pb [y or n] Megadja, hogy az erős név megkerülő házirendje kényszerítve van-e. Ha y értéket ad meg, a teljes megbízhatóságú szerelvények erős nevei nem lesznek érvényesítve a teljes megbízhatósági AppDomainkapcsolatba való betöltéskor. Ha n értéket ad meg, a rendszer ellenőrzi az erős neveket a helyesség szempontjából, de egy adott erős névre nem. Ez StrongNameIdentityPermission nincs hatással a teljes megbízhatósági szerelvényekre. Az erős névegyeztetés érdekében saját ellenőrzést kell végeznie.

Ha nincs megadva és n nincs y megadva, ez a beállítás megjeleníti az aktuális beállítást. Az alapértelmezett érték a y. Jegyzet: 64 bites számítógépeken ezt a paramétert a Sn.exe32 bites és 64 bites példányaiban is be kell állítani.
-q[uiet] Csendes módot ad meg; letiltja a sikeres üzenetek megjelenítését.
-R[a] assembly infile Írja alá újra a korábban aláírt vagy késleltetett szerelvényt a kulccsal a fájlban.

Ha -Ra van használatban, a rendszer újrafordítást alkalmaz a szerelvény összes fájljának kivonataihoz.
-Rc[a] assembly container Írja alá újra a korábban aláírt vagy késleltetett szerelvényt a tároló kulcspárjával.

Ha -Rca van használatban, a rendszer újrafordított kivonatokat ad vissza a szerelvény összes fájlja számára.
-Rh assembly Újrafordítja a kivonatokat a szerelvény összes fájlja esetében.
-t[p] infile Megjeleníti a fájlban tárolt nyilvános kulcs jogkivonatát. A fájl tartalmának olyan nyilvános kulcsnak kell lennie, amely korábban a -p használatával létrehozott kulcspárfájlból jött létre. Ne használja a -t[p] lehetőséget a jogkivonat közvetlen kinyeréséhez egy kulcspárfájlból.

Sn.exe a jogkivonatot a nyilvános kulcs kivonatfüggvényével számítja ki. A helytakarékosság érdekében a közös nyelvi futtatókörnyezet a nyilvános kulcs jogkivonatait egy másik szerelvényre való hivatkozás részeként tárolja a jegyzékben, amikor egy erős nevű szerelvény függőségét rögzíti. A -tp beállítás a jogkivonat mellett a nyilvános kulcsot is megjeleníti. Ha az AssemblySignatureKeyAttribute attribútumot alkalmazták a szerelvényre, a jogkivonat az identitáskulcshoz tartozik, és megjelenik a kivonatoló algoritmus és az identitáskulcs neve.

Vegye figyelembe, hogy ez a beállítás nem ellenőrzi a szerelvény aláírását, és nem használható megbízhatósági döntések meghozatalára. Ez a beállítás csak a nyers nyilvánoskulcs-jogkivonat adatait jeleníti meg.
-T[p] assembly Megjeleníti a szerelvényhez tartozó nyilvános kulcs jogkivonatát. A szerelvénynek egy szerelvényjegyzéket tartalmazó fájl nevének kell lennie.

Sn.exe a jogkivonatot a nyilvános kulcs kivonatfüggvényével számítja ki. A helytakarékosság érdekében a futtatókörnyezet egy másik szerelvényre való hivatkozás részeként tárolja a nyilvános kulcs jogkivonatait a jegyzékben, amikor egy erős nevű szerelvény függőségét rögzíti. A -Tp beállítás a jogkivonat mellett a nyilvános kulcsot is megjeleníti. Ha az AssemblySignatureKeyAttribute attribútumot alkalmazták a szerelvényre, a jogkivonat az identitáskulcshoz tartozik, és megjelenik a kivonatoló algoritmus és az identitáskulcs neve.

Vegye figyelembe, hogy ez a beállítás nem ellenőrzi a szerelvény aláírását, és nem használható megbízhatósági döntések meghozatalára. Ez a beállítás csak a nyers nyilvánoskulcs-jogkivonat adatait jeleníti meg.
-TS assembly infile Tesztelje az aláírt vagy részben aláírt szerelvény aláírását a kulcspárnal a fájlban.
-TSc assembly container Tesztelje az aláírt vagy részben aláírt szerelvényt a kulcspárral a kulcstárolóban.
-v assembly Ellenőrzi az erős nevet a szerelvényben, ahol a szerelvény egy szerelvényjegyzéket tartalmazó fájl neve.
-vf assembly Ellenőrzi az erős nevet a szerelvényben. A -v beállítástól eltérően a -vf akkor is kényszeríti az ellenőrzést, ha az le van tiltva a -Vr beállítással.
-Vk regfile.reg assembly [userlist] [infile] Létrehoz egy regisztrációs bejegyzésfájlt (.reg) a megadott szerelvény regisztrációjához az ellenőrzés kihagyásához. A -Vr beállításra vonatkozó szerelvény-elnevezési szabályok a -Vk-ra is érvényesek. A felhasználói listával és a fájlbeállításokkal kapcsolatos információkért tekintse meg a -Vr lehetőséget.
-Vl A számítógépen az erős név ellenőrzésének aktuális beállításait sorolja fel.
-Vr assembly [userlist] [infile] Regisztrálja a szerelvényt az ellenőrzés kihagyására. Igény szerint megadhatja azoknak a felhasználóneveknek a vesszővel tagolt listáját, amelyekre a kihagyás ellenőrzésének vonatkoznia kell. Ha be van állítva a fájl, az ellenőrzés engedélyezve marad, de a rendszer a nyilvános kulcsot használja a fájlban az ellenőrzési műveletekben. A szerelvényt *, strongname formátumban adhatja meg, ha az összes szerelvényt a megadott erős névvel szeretné regisztrálni. A strongname mezőben adja meg a nyilvános kulcs jogkivonatos formáját képviselő hexadecimális számjegyek sztringét. A nyilvános kulcs jogkivonatának megjelenítéséhez tekintse meg a -t és a -T beállításokat. Figyelmeztet: Ezt a lehetőséget csak a fejlesztés során használhatja. Ha egy szerelvényt hozzáad a kihagyó ellenőrző listához, biztonsági rés jön létre. Egy rosszindulatú szerelvény használhatja a szerelvény teljes szerelvénynevét (szerelvény nevét, verzióját, kulturális környezetét és nyilvános kulcsjogkivonatát) a kihagyó ellenőrző listához hozzáadva, hogy meghamisíthassa az identitását. Ez lehetővé tenné, hogy a rosszindulatú szerelvény kihagyja az ellenőrzést is.
-Vu assembly Törölje a szerelvény regisztrációjának megszüntetését az ellenőrzés kihagyása érdekében. A -Vr-ra vonatkozó szerelvény-elnevezési szabályok a -Vu-ra is érvényesek.
-Vx Eltávolítja az összes ellenőrző-kihagyó bejegyzést.
-? Megjeleníti az eszköz parancsszintaxisát és beállításait.

Megjegyzés:

Minden Sn.exe beállítás megkülönbözteti a kis- és nagybetűket, és pontosan úgy kell begépelni, ahogyan azt az eszköz felismeri.

Megjegyzések

Az -R és a -Rc beállítás a késleltetett aláírású szerelvények esetében hasznos. Ebben a forgatókönyvben csak a nyilvános kulcs lett beállítva fordításkor, és az aláírás később történik, amikor a titkos kulcs ismert.

Megjegyzés:

Az olyan paraméterek (például -Vr) esetében, amelyek védett erőforrásokba, például a beállításjegyzékbe írnak, rendszergazdaként futtassa a SN.exe.

Az Erős név eszköz feltételezi, hogy a nyilvános/privát kulcspárok az AT_SIGNATURE algoritmusazonosítóval jönnek létre. Az algoritmussal AT_KEYEXCHANGE létrehozott nyilvános/privát kulcspárok hibát okoznak.

Példák

Az alábbi parancs létrehoz egy új, véletlenszerű kulcspárt, és tárolja a következőben keyPair.snk: .

sn -k keyPair.snk

Az alábbi parancs a kulcsot a tárolóban keyPair.snkMyContainer tárolja az erős CSP névben.

sn -i keyPair.snk MyContainer

Az alábbi parancs kinyeri a nyilvános kulcsot, keyPair.snk és abban tárolja azt publicKey.snk.

sn -p keyPair.snk publicKey.snk

Az alábbi parancs megjeleníti a nyilvános kulcsot és a benne található nyilvános kulcs jogkivonatát publicKey.snk.

sn -tp publicKey.snk

Az alábbi parancs ellenőrzi a szerelvényt MyAsm.dll.

sn -v MyAsm.dll

Az alábbi parancs törli MyContainer az alapértelmezett CSP-ből.

sn -d MyContainer

Lásd még