Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Alat Nama Kuat (Sn.exe) membantu menandatangani rakitan dengan nama yang kuat. Sn.exe menyediakan opsi untuk manajemen kunci, pembuatan tanda tangan, dan verifikasi tanda tangan.
Peringatan
Jangan mengandalkan nama yang kuat untuk keamanan. Mereka hanya menyediakan identitas unik.
Untuk informasi selengkapnya tentang penamaan yang kuat dan rakitan bernama kuat, lihat Rakitan Strong-Named dan Cara: Menandatangani Assembly dengan Nama Yang Kuat.
Alat Nama Kuat diinstal secara otomatis dengan Visual Studio. Untuk memulai alat, gunakan Visual Studio Developer Command Prompt atau Visual Studio Developer PowerShell.
Nota
Pada komputer 64-bit, jalankan versi 32-bit Sn.exe dengan menggunakan Perintah Pengembang untuk Visual Studio dan versi 64-bit dengan menggunakan Prompt Perintah Visual Studio x64 Win64.
Pada prompt perintah, ketik berikut ini:
Syntax
sn [-quiet][option [parameter(s)]]
Parameter-parameternya
| Option | Description |
|---|---|
-a identityKeyPairFile signaturePublicKeyFile |
AssemblySignatureKeyAttribute Menghasilkan data untuk memigrasikan kunci identitas ke kunci tanda tangan dari file. |
-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile |
AssemblySignatureKeyAttribute Menghasilkan data untuk memigrasikan kunci identitas ke kunci tanda tangan dari kontainer kunci. |
-c [csp] |
Mengatur penyedia layanan kriptografi default (CSP) yang akan digunakan untuk penandatanganan nama yang kuat. Pengaturan ini berlaku untuk seluruh komputer. Jika Anda tidak menentukan nama CSP, Sn.exe menghapus pengaturan saat ini. |
-d container |
Menghapus kontainer kunci yang ditentukan dari CSP nama yang kuat. |
-D assembly1 assembly2 |
Memverifikasi bahwa dua rakitan hanya berbeda dengan tanda tangan. Ini sering digunakan sebagai pemeriksaan setelah rakitan ditandatangani kembali dengan pasangan kunci yang berbeda. |
-e assembly outfile |
Mengekstrak kunci publik dari assembly dan menyimpannya dalam outfile. |
-h |
Menampilkan sintaks perintah dan opsi untuk alat ini. |
-i infile container |
Menginstal pasangan kunci dari infile dalam kontainer kunci yang ditentukan. Kontainer kunci berada dalam nama CSP yang kuat. |
-k [keysize] outfile |
Menghasilkan kunci baru RSACryptoServiceProvider dari ukuran yang ditentukan dan menulisnya ke file yang ditentukan. Kunci publik dan privat ditulis ke file. Jika Anda tidak menentukan ukuran kunci, kunci 1.024-bit dihasilkan secara default jika Anda memiliki penyedia kriptografi yang ditingkatkan Microsoft terinstal; jika tidak, kunci 512-bit dihasilkan. Parameter keysize mendukung panjang kunci dari 384 bit hingga 16.384 bit dalam kenaikan 8 bit jika Anda menginstal penyedia kriptografi yang ditingkatkan Microsoft. Ini mendukung panjang kunci dari 384 bit hingga 512 bit dalam kenaikan 8 bit jika Anda menginstal penyedia kriptografi dasar Microsoft. |
-m [y or n] |
Menentukan apakah kontainer kunci khusus komputer, atau khusus pengguna. Jika Anda menentukan y, kontainer kunci khusus komputer. Jika Anda menentukan n, kontainer kunci khusus pengguna. Jika tidak ada y atau n yang ditentukan, opsi ini akan menampilkan pengaturan saat ini. |
-o infile [outfile] |
Mengekstrak kunci publik dari infile dan menyimpannya dalam file .csv. Koma memisahkan setiap byte kunci publik. Format ini berguna untuk referensi hard-coding ke kunci sebagai array yang diinisialisasi dalam kode sumber. Jika Anda tidak menentukan outfile, opsi ini menempatkan output pada Clipboard.
Nota: Opsi ini tidak memverifikasi bahwa input hanyalah kunci publik.
infile Jika berisi pasangan kunci dengan kunci privat, kunci privat juga diekstrak. |
-p infile outfile [hashalg] |
Mengekstrak kunci publik dari pasangan kunci secara infile dan menyimpannya dalam outfile, secara opsional menggunakan algoritma RSA yang ditentukan oleh hashalg. Kunci publik ini dapat digunakan untuk menunda-menandatangani rakitan menggunakan opsi /delaysign+ dan /keyfile dari Assembly Linker (Al.exe). Ketika rakitan ditandatangani keterlambatan, hanya kunci publik yang diatur pada waktu kompilasi dan ruang dicadangkan dalam file agar tanda tangan ditambahkan nanti, ketika kunci privat diketahui. |
-pc container outfile [hashalg] |
Mengekstrak kunci publik dari pasangan kunci dalam kontainer dan menyimpannya dalam outfile. Jika Anda menggunakan opsi hashalg , algoritma RSA digunakan untuk mengekstrak kunci publik. |
-Pb [y or n] |
Menentukan apakah kebijakan bypass nama kuat diberlakukan. Jika Anda menentukan y, nama kuat untuk rakitan kepercayaan penuh tidak divalidasi saat dimuat ke dalam kepercayaan AppDomainpenuh . Jika Anda menentukan n, nama kuat divalidasi untuk kebenaran, tetapi tidak untuk nama kuat tertentu. tidak StrongNameIdentityPermission berpengaruh pada rakitan kepercayaan penuh. Anda harus melakukan pemeriksaan Anda sendiri untuk kecocokan nama yang kuat. Jika tidak atau yn ditentukan, opsi ini akan menampilkan pengaturan saat ini. Defaultnya adalah y.
Nota: Pada komputer 64-bit, Anda harus mengatur parameter ini di instans 32-bit dan 64-bit Sn.exe. |
-q[uiet] |
Menentukan mode diam; menekan tampilan pesan keberhasilan. |
-R[a] assembly infile |
Menandatangani kembali rakitan yang ditandatangani sebelumnya atau ditandatangani penundaan dengan pasangan kunci dalam infile. Jika -Ra digunakan, hash dikomputasi ulang untuk semua file dalam rakitan. |
-Rc[a] assembly container |
Menandatangani kembali rakitan yang ditandatangani sebelumnya atau ditandatangani penundaan dengan pasangan kunci dalam kontainer. Jika -Rca digunakan, hash dikomputasi ulang untuk semua file dalam rakitan. |
-Rh assembly |
Mengolah ulang hash untuk semua file di rakitan. |
-t[p] infile |
Menampilkan token untuk kunci publik yang disimpan secara infile. Konten infile harus berupa kunci publik yang sebelumnya dihasilkan dari file pasangan kunci menggunakan -p. Jangan gunakan opsi -t[p] untuk mengekstrak token langsung dari file pasangan kunci. Sn.exe menghitung token dengan menggunakan fungsi hash dari kunci publik. Untuk menghemat ruang, runtime bahasa umum menyimpan token kunci publik dalam manifes sebagai bagian dari referensi ke rakitan lain saat merekam dependensi ke rakitan yang memiliki nama yang kuat. Opsi -tp menampilkan kunci publik selain token. AssemblySignatureKeyAttribute Jika atribut telah diterapkan ke rakitan, token adalah untuk kunci identitas, dan nama algoritma hash dan kunci identitas ditampilkan. Perhatikan bahwa opsi ini tidak memverifikasi tanda tangan perakitan dan tidak boleh digunakan untuk membuat keputusan kepercayaan. Opsi ini hanya menampilkan data token kunci publik mentah. |
-T[p] assembly |
Menampilkan token kunci publik untuk rakitan.Rakitan harus berupa nama file yang berisi manifes rakitan. Sn.exe menghitung token dengan menggunakan fungsi hash dari kunci publik. Untuk menghemat ruang, runtime menyimpan token kunci publik dalam manifes sebagai bagian dari referensi ke rakitan lain saat merekam dependensi ke rakitan yang memiliki nama yang kuat. Opsi -Tp menampilkan kunci publik selain token. AssemblySignatureKeyAttribute Jika atribut telah diterapkan ke rakitan, token adalah untuk kunci identitas, dan nama algoritma hash dan kunci identitas ditampilkan. Perhatikan bahwa opsi ini tidak memverifikasi tanda tangan perakitan dan tidak boleh digunakan untuk membuat keputusan kepercayaan. Opsi ini hanya menampilkan data token kunci publik mentah. |
-TS assembly infile |
Uji tanda tangan rakitan yang ditandatangani atau ditandatangani sebagian dengan pasangan kunci di infile. |
-TSc assembly container |
Uji tanda rakitan yang ditandatangani atau ditandatangani sebagian dengan pasangan kunci dalam kontainer kunci. |
-v assembly |
Memverifikasi nama kuat dalam assembly, di mana assembly adalah nama file yang berisi manifes perakitan. |
-vf assembly |
Memverifikasi nama yang kuat dalam assembly. Tidak seperti opsi -v , -vf memaksa verifikasi meskipun dinonaktifkan menggunakan opsi -Vr . |
-Vk regfile.reg assembly [userlist] [infile] |
Membuat file entri pendaftaran (.reg) yang dapat Anda gunakan untuk mendaftarkan rakitan yang ditentukan untuk lompati verifikasi. Aturan untuk penamaan perakitan yang berlaku untuk opsi -Vr juga berlaku untuk -Vk . Untuk informasi tentang opsi daftar pengguna dan infile , lihat opsi -Vr . |
-Vl |
Mencantumkan setelan saat ini untuk verifikasi nama-kuat pada komputer ini. |
-Vr assembly [userlist] [infile] |
Mendaftarkan assembly untuk verifikasi melompati. Secara opsional, Anda dapat menentukan daftar nama pengguna yang dipisahkan koma yang harus diterapkan oleh verifikasi lewati. Jika Anda menentukan infile, verifikasi tetap diaktifkan, tetapi kunci publik infile digunakan dalam operasi verifikasi. Anda dapat menentukan assembly dalam formulir *, strongname untuk mendaftarkan semua rakitan dengan nama kuat yang ditentukan. Untuk strongname, tentukan string digit heksadesimal yang mewakili bentuk kunci publik yang ditokenisasi. Lihat opsi -t dan -T untuk menampilkan token kunci publik. Hati: Gunakan opsi ini hanya selama pengembangan. Menambahkan rakitan ke daftar verifikasi lewati membuat kerentanan keamanan. Rakitan berbahaya dapat menggunakan nama rakitan yang sepenuhnya ditentukan (nama rakitan, versi, budaya, dan token kunci publik) dari rakitan yang ditambahkan ke daftar verifikasi lompati untuk memalsukan identitasnya. Ini akan memungkinkan rakitan berbahaya juga melewati verifikasi. |
-Vu assembly |
Membatalkan pendaftaran rakitan untuk verifikasi melompati. Aturan yang sama untuk penamaan perakitan yang berlaku untuk -Vr berlaku untuk -Vu. |
-Vx |
Menghapus semua entri yang melewati verifikasi. |
-? |
Menampilkan sintaks perintah dan opsi untuk alat ini. |
Nota
Semua opsi Sn.exe peka huruf besar/kecil dan harus diketik persis seperti yang ditunjukkan untuk dikenali oleh alat.
Komentar
Opsi -R dan -Rc berguna dengan rakitan yang telah ditandatangani dengan penundaan. Dalam skenario ini, hanya kunci publik yang telah ditetapkan pada waktu kompilasi dan penandatanganan dilakukan nanti, ketika kunci privat diketahui.
Nota
Untuk parameter (misalnya, -Vr) yang menulis ke sumber daya yang dilindungi seperti registri, jalankan SN.exe sebagai administrator.
Alat Nama Kuat mengasumsikan bahwa pasangan kunci publik/privat dihasilkan dengan AT_SIGNATURE pengidentifikasi algoritma. Pasangan kunci publik/privat yang dihasilkan dengan AT_KEYEXCHANGE algoritma menghasilkan kesalahan.
Examples
Perintah berikut membuat pasangan kunci acak baru dan menyimpannya di keyPair.snk.
sn -k keyPair.snk
Perintah berikut menyimpan kunci dalam keyPair.snk kontainer MyContainer dengan nama CSP yang kuat.
sn -i keyPair.snk MyContainer
Perintah berikut mengekstrak kunci publik dari keyPair.snk dan menyimpannya di publicKey.snk.
sn -p keyPair.snk publicKey.snk
Perintah berikut menampilkan kunci publik dan token untuk kunci publik yang terkandung dalam publicKey.snk.
sn -tp publicKey.snk
Perintah berikut memverifikasi rakitan MyAsm.dll.
sn -v MyAsm.dll
Perintah berikut menghapus MyContainer dari CSP default.
sn -d MyContainer