Contoh Penandatanganan Rakitan

Contoh berikut membahas cara menghasilkan rakitan berdampingan yang ditandatangani yang terdiri dari manifes perakitan, katalog verifikasi, dan file assembly. Rakitan berdampingan bersama harus ditandatangani. Sistem operasi memverifikasi tanda tangan perakitan sebelum menginstal rakitan bersama ke penyimpanan berdampingan global (WinSxS). Ini membuatnya sulit untuk memalsukan penerbit perakitan berdampingan.

Perhatikan bahwa mengubah file assembly atau konten manifes setelah membuat katalog assembly membatalkan katalog dan assembly. Jika Anda harus memperbarui file rakitan atau manifes setelah membuat dan menandatangani katalog, Anda harus kembali menandatangani perakitan dan membuat katalog baru.

Mulailah dengan file rakitan, manifes perakitan, dan file sertifikat yang akan Anda gunakan untuk menandatangani perakitan. File sertifikat harus 2048 bit atau lebih besar. Anda tidak diharuskan menggunakan sertifikat tepercaya. Sertifikat hanya digunakan untuk memverifikasi bahwa assembly belum rusak.

Jalankan utilitas Pktextract.exe yang disediakan dalam Kit Pengembangan Perangkat Lunak (SDK) Microsoft Windows untuk mengekstrak token kunci publik dari file sertifikat. Agar Pktextract berfungsi dengan baik, file sertifikat harus ada di direktori yang sama dengan utilitas. Gunakan nilai token kunci publik yang diekstrak untuk memperbarui atribut publicKeyToken dari elemen assemblyIdentity dalam file manifes.

Berikut adalah contoh file manifes bernama MySampleAssembly.manifest. Rakitan MySampleAssembly hanya berisi satu file, MYFILE.DLL. Perhatikan bahwa nilai untuk atribut publicKeyToken dari elemen assemblyIdentity telah diperbarui dengan nilai token kunci publik.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity 
        type="win32" 
        name="Microsoft.Windows.MySampleAssembly" 
        version="1.0.0.0" 
        processorArchitecture="x86"         
        publicKeyToken="0000000000000000"/>
    <file name="myfile.dll"/>
</assembly>

Selanjutnya jalankan utilitas Mt.exe yang disediakan di Windows SDK. File assembly harus terletak di direktori yang sama dengan manifes. Dalam contoh ini, ini adalah direktori MySampleAssembly. Panggil Mt.exe untuk contoh sebagai berikut:

C:\ MySampleAssembly>mt.exe -manifest MySampleAssembly.manifest -hashupdate -makecdfs

Berikut adalah tampilan contoh manifes setelah menjalankan Mt.exe. Perhatikan bahwa menjalankan Mt.exe dengan opsi hashupdate menambahkan hash SHA-1 file. Jangan ubah nilai ini.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity 
        type="win32" 
        name=" Microsoft.Windows.MySampleAssembly" 
        version="1.0.0.0" 
        processorArchitecture="x86"         
        publicKeyToken="0000000000000000"/>
    <file name="myfile.dll"
hash="a1d362d6278557bbe965a684ac7adb4e57427a29" hashalg="SHA1"/>
</assembly>

Menjalankan Mt.exe dengan opsi -makecdfs menghasilkan file bernama MySampleAssembly.manifest.cdf yang menjelaskan konten katalog keamanan yang akan digunakan untuk memvalidasi manifes.

Langkah selanjutnya adalah menjalankan Makecat.exe melalui .cdf ini untuk membuat katalog keamanan untuk perakitan. Panggilan ke Makecat.exe untuk contoh ini akan muncul sebagai berikut:

c:\MySampleAssembly>makecat MySampleAssembly.manifest.cdf

Langkah terakhir adalah menjalankan SignTool.exe untuk menandatangani file katalog dengan sertifikat. Ini harus menjadi sertifikat yang sama yang digunakan sebelumnya untuk menghasilkan token kunci publik. Untuk informasi selengkapnya tentang SignTool.exe lihat topik SignTool . Panggilan ke SignTool untuk contoh akan muncul sebagai berikut:

c:\MySampleAssembly>signtool sign /f <fullpath>mycompany.pfx /du https://www.mycompany.com/MySampleAssembly /t https://timestamp.digicert.com MySampleAssembly.cat

Jika Anda memiliki sertifikat digital yang diautentikasi, dan otoritas sertifikasi Anda menggunakan format file PVK untuk menyimpan kunci privat, Anda dapat menggunakan PVK Digital Certificate Files Importer (pvkimprt.exe) untuk mengimpor kunci ke penyedia layanan kriptografi (CSP) Anda. Utilitas ini memungkinkan Anda mengekspor ke format standar industri PFX/P12. Untuk informasi selengkapnya tentang Pengimpor File Sertifikat Digital PVK, lihat bagian Sumber Daya Penyebaran dari pustaka MSDN atau hubungi otoritas sertifikasi Anda.

Lihat juga, Membuat File dan Katalog yang Ditandatangani.