SignTool.exe (Sign Tool)
Sign Tool adalah alat baris perintah yang menandatangani file secara digital, memverifikasi tanda tangan dalam file, dan file stempel waktu.
Alat ini secara otomatis diinstal dengan Visual Studio. Untuk menjalankan alat ini, gunakan Perintah Pengembang Visual Studio atau PowerShell Pengembang Visual Studio.
Catatan
Build 20236 dan yang lebih baru dari SDK Windows 10, Windows 10 HLK, Windows 10 WDK, dan Windows 10 ADK memerlukan penentuan algoritma hash. Perintah SignTool sign
memerlukan opsi /fd
algoritma digest file dan /td
algoritma digest stempel waktu yang ditentukan selama penandatanganan dan pemberian stempel waktu. Kesalahan (kode kesalahan 1) akan dilemparkan jika /fd
tidak ditentukan selama penandatanganan dan jika /td
tidak ditentukan selama pemberian tanda waktu.
Pada perintah, masukkan berikut ini:
Sintaks
signtool [command] [options] [file_name | ...]
Parameter
Argumen | Deskripsi |
---|---|
command |
Salah satu dari empat perintah (catdb , sign , Timestamp , atau Verify ) yang menentukan operasi yang akan dilakukan pada file. Untuk deskripsi setiap perintah, lihat tabel berikutnya. |
options |
Opsi yang memodifikasi perintah. Selain opsi /q dan /v global, setiap perintah mendukung serangkaian opsi yang unik. |
file_name |
Jalur ke file yang akan ditandatangani. |
Perintah berikut didukung oleh Sign Tool. Setiap perintah digunakan dengan serangkaian opsi yang berbeda, yang tercantum di bagian masing-masing.
Perintah | Deskripsi |
---|---|
catdb |
Menambahkan file katalog ke, atau menghapusnya dari, database katalog. Database katalog digunakan untuk pencarian otomatis file katalog dan diidentifikasi oleh GUID. Untuk daftar opsi yang didukung oleh perintahcatdb , lihat Opsi Perintah catdb. |
sign |
Menandatangani file secara digital. Tanda tangan digital melindungi file dari perubahan, dan memungkinkan pengguna memverifikasi penanda tangan berdasarkan sertifikat penandatanganan. Untuk daftar opsi yang didukung oleh perintahsign , lihat Opsi Perintah sign. |
Timestamp |
File stempel waktu. Untuk daftar opsi yang didukung oleh perintahTimeStamp , lihat Opsi Perintah TimeStamp. |
Verify |
Memverifikasi tanda tangan digital file dengan menentukan apakah sertifikat penandatanganan dikeluarkan oleh otoritas tepercaya, apakah sertifikat penandatanganan telah dicabut, dan, secara opsional, apakah sertifikat penandatanganan valid untuk kebijakan tertentu. Untuk daftar opsi yang didukung oleh perintahVerify , lihat Opsi Perintah Verify. |
Opsi berikut berlaku untuk semua perintah Sign Tool.
Opsi global | Deskripsi |
---|---|
/q | Tidak menampilkan output jika perintah berhasil dijalankan, dan menampilkan output minimal jika perintah gagal. |
/v | Menampilkan output verbose terlepas dari apakah perintah berhasil atau gagal dijalankan, dan menampilkan pesan peringatan. |
/debug | Menampilkan informasi penelusuran kesalahan. |
Opsi Perintah catdb
Tabel berikut ini mencantumkan opsi yang bisa digunakan dengan perintah catdb
.
Opsi Catdb | Deskripsi |
---|---|
/d |
Menentukan bahwa database katalog default diperbarui. Jika opsi /d atau /g tidak digunakan, Sign Tool memperbarui komponen sistem dan database driver. |
/g GUID |
Menentukan bahwa database katalog yang diidentifikasi oleh GUID pengidentifikasi unik global diperbarui. |
/r |
Menghapus katalog yang ditentukan dari database katalog. Jika opsi ini tidak ditentukan, Sign Tool menambahkan katalog yang ditentukan ke database katalog. |
/u |
Menentukan bahwa nama unik secara otomatis dibuat untuk file katalog yang ditambahkan. Jika perlu, file katalog diganti namanya untuk mencegah konflik nama dengan file katalog yang ada. Jika opsi ini tidak ditentukan, Sign Tool menimpa katalog yang ada yang memiliki nama yang sama dengan katalog yang ditambahkan. |
Opsi Perintah sign
Tabel berikut ini mencantumkan opsi yang bisa digunakan dengan perintah sign
.
Opsi perintah sign | Deskripsi |
---|---|
/a |
Secara otomatis memilih sertifikat penandatanganan terbaik. Sign Tool akan menemukan semua sertifikat valid yang memenuhi semua kondisi yang ditentukan dan memilih yang valid untuk waktu terpanjang. Jika opsi ini tidak ada, Sign Tool mengharapkan untuk menemukan hanya satu sertifikat penandatanganan yang valid. |
/ac file |
Menambahkan sertifikat tambahan dari file ke blok tanda tangan. |
/as |
Menambahkan tanda tangan ini. Jika tidak ada tanda tangan utama, tanda tangan ini dijadikan tanda tangan utama sebagai gantinya. |
/c CertTemplateName |
Menentukan Nama Templat Sertifikat (ekstensi Microsoft) untuk sertifikat penandatanganan. |
/csp CSPName |
Menentukan penyedia layanan kriptografi (CSP) yang berisi kontainer kunci privat. |
/d Desc |
Menentukan deskripsi konten yang ditandatangani. |
/du URL |
Menentukan Uniform Resource Locator (URL) untuk deskripsi yang diperluas dari konten yang ditandatangani. |
/f SignCertFile |
Menentukan sertifikat penandatanganan dalam file. Jika file dalam format Personal Information Exchange (PFX) dan dilindungi oleh kata sandi, gunakan opsi /p untuk menentukan kata sandi. Jika file tidak berisi kunci privat, gunakan opsi /csp dan /kc untuk menentukan CSP dan nama kontainer kunci privat. |
/fd |
Menentukan algoritma digest file yang akan digunakan untuk membuat tanda tangan file. Catatan: Kesalahan dihasilkan jika pengalihan /fd tidak disediakan saat menandatangani. |
/fd certHash |
Menentukan certHash string akan default ke algoritma yang digunakan pada sertifikat penandatanganan. Catatan: Kesalahan dihasilkan jika pengalihan /fd tidak disediakan saat menandatangani. |
/i IssuerName |
Menentukan nama penerbit sertifikat penandatanganan. Nilai ini dapat menjadi substring dari seluruh nama penerbit. |
/kc PrivKeyContainerName |
Menentukan nama kontainer kunci privat. |
/n SubjectName |
Menentukan nama subjek sertifikat penandatanganan. Nilai ini dapat menjadi substring dari seluruh nama subjek. |
/nph |
Jika didukung, menekan hash halaman untuk file executable. Default ditentukan oleh variabel lingkungan SIGNTOOL_PAGE_HASHES dan oleh versi wintrust.dll. Opsi ini diabaikan untuk file non-PE. |
/p Password |
Menentukan kata sandi yang akan digunakan saat membuka file PFX. (Gunakan opsi /f untuk menentukan file PFX.) |
/p7 Dari |
Menentukan bahwa file Public Key Cryptography Standards (PKCS) #7 diproduksi untuk setiap file konten yang ditentukan. File PKCS #7 diberi nama jalur\filename.p7. |
/p7ce Value |
Menentukan opsi untuk konten PKCS #7 yang ditandatangani. Atur Nilai ke "Embedded" untuk menyematkan konten yang ditandatangani dalam file PKCS #7, atau ke "DetachedSignedData" untuk menghasilkan bagian data yang ditandatangani dari file PKCS #7 yang dicopot. Jika opsi /p7ce tidak digunakan, konten yang ditandatangani disematkan secara default. |
/p7co <OID> |
Menentukan pengidentifikasi objek (OID) yang mengidentifikasi konten PKCS #7 yang ditandatangani. |
/ph |
Jika didukung, menghasilkan hash halaman untuk file executable. |
/r RootSubjectName |
Menentukan nama subjek sertifikat akar yang harus ditautkan dengan sertifikat penandatanganan. Nilai ini mungkin merupakan substring dari seluruh nama subjek sertifikat akar. |
/s StoreName |
Menentukan penyimpanan yang akan dibuka ketika mencari sertifikat. Jika opsi ini tidak ditentukan, penyimpanan My akan dibuka. |
/sha1 Hash |
Menentukan hash SHA1 dari sertifikat penandatanganan. Hash SHA1 umumnya ditentukan ketika beberapa sertifikat memenuhi kriteria yang ditentukan oleh pengalihan yang tersisa. |
/sm |
Menentukan apakah penyimpanan komputer, bukan penyimpanan pengguna, digunakan. |
/t URL |
Menentukan URL server stempel waktu. Jika opsi ini (atau /tr ) tidak ada, file yang ditandatangani tidak akan diberi stempel waktu. Peringatan dihasilkan jika pemberian stempel waktu gagal. Opsi ini tidak dapat digunakan dengan opsi /tr . |
/td alg |
Digunakan dengan opsi /tr untuk meminta algoritma hash yang digunakan oleh server stempel waktu RFC 3161. Catatan: Kesalahan dihasilkan jika /td tidak disediakan sewaktu memberi stempel waktu. |
/tr URL |
Menentukan URL server stempel waktu RFC 3161. Jika opsi ini (atau /t ) tidak ada, file yang ditandatangani tidak akan diberi stempel waktu. Peringatan dihasilkan jika pemberian stempel waktu gagal. Opsi ini tidak dapat digunakan dengan opsi /t . |
/u Usage |
Menentukan penggunaan kunci yang ditingkatkan (EKU) yang harus ada dalam sertifikat penandatanganan. Nilai penggunaan dapat ditentukan oleh OID atau string. Penggunaan default adalah "Code Signing" (1.3.6.1.5.5.7.3.3). |
/uw |
Menentukan penggunaan "Windows System Component Verification" (1.3.6.1.4.1.311.10.3.6). |
Untuk contoh penggunaan, lihat Menggunakan SignTool untuk Menandatangani File.
Opsi Perintah TimeStamp
Tabel berikut ini mencantumkan opsi yang bisa digunakan dengan perintah TimeStamp
.
Opsi TimeStamp | Deskripsi |
---|---|
/p7 |
File PKCS #7 stempel waktu. |
/t URL |
Menentukan URL server stempel waktu. File yang diberi stempel waktu harus telah ditandatangani sebelumnya. Opsi /t atau /tr diperlukan. |
/td alg |
Digunakan dengan opsi /tr untuk meminta algoritma hash yang digunakan oleh server stempel waktu RFC 3161. Catatan: Kesalahan dihasilkan jika /td tidak disediakan sewaktu memberi stempel waktu. |
/tp index |
Memberi stempel waktu tanda tangan pada indeks. |
/tr URL |
Menentukan URL server stempel waktu RFC 3161. File yang diberi stempel waktu harus telah ditandatangani sebelumnya. Opsi /tr atau /t diperlukan. |
Untuk contoh penggunaan, lihat Menambahkan Stempel Waktu ke File yang Ditandatangani Sebelumnya.
Opsi Perintah Verify
Opsi verify | Deskripsi |
---|---|
/a |
Menentukan apakah semua metode dapat digunakan untuk memverifikasi file. Pertama, database katalog dicari untuk menentukan apakah file ditandatangani di katalog. Jika file tidak ditandatangani di katalog apa pun, Sign Tool mencoba memverifikasi tanda tangan yang disematkan dari file. Opsi ini direkomendasikan saat memverifikasi file yang mungkin atau mungkin tidak ditandatangani di katalog. Contoh file ini termasuk file atau driver Windows. |
/ad |
Menemukan katalog dengan menggunakan database katalog default. |
/ag CatDBGUID |
Menemukan katalog dalam database katalog yang diidentifikasi oleh CatDBGUID. |
/all |
Memverifikasi semua tanda tangan dalam file yang menyertakan beberapa tanda tangan. |
/as |
Menemukan katalog dengan menggunakan database katalog komponen sistem (driver). |
/c CatFile |
Menentukan file katalog berdasarkan nama. |
/d |
Menentukan apakah Sign Tool harus mencetak deskripsi dan URL deskripsi. |
/ds Index |
Memverifikasi tanda tangan pada posisi tertentu. |
/hash (SHA1 |SHA256 ) |
Menentukan algoritme hash opsional yang akan digunakan saat mencari file dalam katalog. |
/kp |
Menentukan apakah verifikasi harus dilakukan dengan kebijakan penandatanganan driver mode kernel. |
/ms |
Menggunakan beberapa semantik verifikasi. Ini adalah perilaku default dari panggilan WinVerifyTrust pada Windows 8 ke atas. |
/o Version |
Memverifikasi file berdasarkan versi sistem operasi. Version memiliki bentuk berikut: PlatformID:VerMajor.VerMinor.BuildNumber. PlatformID mewakili nilai yang mendasarinya dari anggota enumerasi PlatformID. Penting: Penggunaan pengalihan /o disarankan. Jika /o tidak ditentukan, SignTool.exe dapat mengembalikan hasil yang tidak terduga. Misalnya, jika Anda tidak menyertakan pengalihan /o , katalog sistem yang memvalidasi dengan benar pada sistem operasi yang lebih lama mungkin tidak divalidasi dengan benar pada sistem operasi yang lebih baru. |
/p7 |
Memverifikasi file PKCS #7. Tidak ada kebijakan yang digunakan untuk validasi PKCS #7. Tanda tangan diperiksa dan rantai dibangun untuk sertifikat penandatanganan. |
/pa |
Menentukan apakah Kebijakan Verifikasi Kode Autentikasi Default harus digunakan. Jika opsi /pa tidak ditentukan, Sign Tool menggunakan Kebijakan Verifikasi Driver Windows. Opsi ini tidak dapat digunakan dengan opsi catdb . |
/pg PolicyGUID |
Menentukan kebijakan verifikasi oleh GUID. PolicyGUID sesuai dengan ActionID dari kebijakan verifikasi. Opsi ini tidak dapat digunakan dengan opsi catdb . |
/ph |
Menentukan bahwa Sign Tool harus mencetak dan memverifikasi nilai hash halaman. |
/r RootSubjectName |
Menentukan nama subjek sertifikat akar yang harus ditautkan dengan sertifikat penandatanganan. Nilai ini dapat berupa substring dari seluruh nama subjek sertifikat akar. |
/tw |
Menentukan bahwa peringatan harus dihasilkan jika tanda tangan tidak diberi stempel waktu. |
Untuk contoh penggunaan, lihat Menggunakan SignTool untuk Memverifikasi Tanda Tangan File.
Tampilkan Nilai
Sign Tool mengembalikan salah satu kode keluar berikut saat dihentikan.
Keluar dari kode | Deskripsi |
---|---|
0 | Eksekusi berhasil. |
1 | Eksekusi gagal. |
2 | Eksekusi selesai dengan peringatan. |
Contoh
Perintah berikut menambahkan file katalog MyCatalogFileName.cat ke komponen sistem dan database driver. Opsi /u
ini menghasilkan nama unik jika perlu untuk mencegah penggantian file katalog yang ada bernama MyCatalogFileName.cat
.
signtool catdb /v /u MyCatalogFileName.cat
Perintah berikut menandatangani file secara otomatis dengan menggunakan sertifikat terbaik.
signtool sign /a /fd SHA256 MyFile.exe
Perintah berikut menandatangani file secara digital dengan menggunakan sertifikat yang disimpan dalam file PFX yang dilindungi kata sandi.
signtool sign /f MyCert.pfx /p MyPassword /fd SHA256 MyFile.exe
Perintah berikut menandatangani secara digital dan memberi stempel waktu ke file. Sertifikat yang digunakan untuk menandatangani file disimpan dalam file PFX.
signtool sign /f MyCert.pfx /t http://timestamp.digicert.com /fd SHA256 MyFile.exe
Perintah berikut menandatangani file dengan menggunakan sertifikat yang terletak di penyimpanan My
yang memiliki nama subjek My Company Certificate
.
signtool sign /n "My Company Certificate" /fd SHA256 MyFile.exe
Perintah berikut menandatangani kontrol ActiveX dan menyediakan informasi yang ditampilkan di browser saat pengguna diminta untuk menginstal kontrol.
Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html /fd SHA256 MyControl.exe
Perintah berikut ini memberi stempel waktu ke file yang telah ditandatangani secara digital.
signtool timestamp /t http://timestamp.digicert.com MyFile.exe
Perintah berikut memberi stempel waktu ke file menggunakan server stempel waktu RFC 3161.
signtool timestamp /tr http://timestamp.digicert.com /td SHA256 MyFile.exe
Perintah berikut memverifikasi bahwa file telah ditandatangani.
signtool verify MyFile.exe
Perintah berikut memverifikasi file sistem yang mungkin ditandatangani di katalog.
signtool verify /a SystemFile.dll
Perintah berikut memverifikasi file sistem yang ditandatangani di katalog bernama MyCatalog.cat
.
signtool verify /c MyCatalog.cat SystemFile.dll
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk