Bagikan melalui


Tanda Tangan Digital untuk Modul Kernel pada Sistem yang Menjalankan Windows Vista

 

Microsoft Corporation

Diperbarui Juni 2007

Berlaku untuk:
   Windows Vista
   Windows Server 2008

Ringkasan: Untuk Microsoft Windows Vista dan versi yang lebih baru dari keluarga sistem operasi Windows, perangkat lunak mode kernel harus memiliki tanda tangan digital untuk dimuat pada sistem komputer berbasis x64. Pelajari cara mengelola proses penandatanganan untuk perangkat lunak mode kernel untuk Windows Vista. (22 halaman cetak.)

Versi kertas ini saat ini dipertahankan pada Web di: https://www.microsoft.com/whdc/system/platform/64bit/kmsigning.mspx.

Isi

Perkenalan
   Tanda Tangan Digital sebagai Praktik Terbaik
   Opsi Penandatanganan Kode Mode Kernel
Proses Penandatanganan Kode Mode Kernel
   Cara Mendapatkan Sertifikat Penerbitan Perangkat Lunak (SPC)
   Membuat File .cat yang Ditandatangani
   Menambahkan Tanda Tangan Yang Disematkan ke File Gambar Driver
Cara Menonaktifkan Penegakan Tanda Tangan selama Pengembangan
Cara menggunakan Penandatanganan Pengujian
   Mengaktifkan Pemecahan Masalah Penandatanganan Pengujian
   Mendeteksi kesalahan beban driver
   Mengaktifkan peristiwa log sistem diagnostik Integritas Kode
   Opsi Penelusuran Kesalahan Verifikasi Driver
Sumber daya

Perkenalan

Bagi pengguna konsumen dan perusahaan Windows di seluruh dunia, melindungi data pribadi dan perusahaan tetap menjadi perhatian utama. Microsoft berkomitmen untuk menerapkan cara baru untuk membantu membatasi penyebaran perangkat lunak berbahaya. Tanda tangan digital untuk perangkat lunak mode kernel adalah cara penting untuk memastikan keamanan pada sistem komputer.

Tanda tangan digital memungkinkan administrator atau pengguna akhir yang menginstal perangkat lunak berbasis Windows untuk mengetahui apakah penerbit yang sah telah menyediakan paket perangkat lunak. Ketika pengguna memilih untuk mengirim data Pelaporan Kesalahan Windows ke Microsoft setelah kesalahan atau kesalahan lainnya terjadi, Microsoft dapat menganalisis data untuk mengetahui perangkat lunak penerbit mana yang berjalan pada sistem pada saat kesalahan. Penerbit perangkat lunak kemudian dapat menggunakan informasi yang disediakan oleh Microsoft untuk menemukan dan memperbaiki masalah dalam perangkat lunak mereka.

Windows Vista mengandalkan tanda tangan digital pada kode mode kernel untuk meningkatkan keamanan dan stabilitas platform Microsoft Windows dan memungkinkan pengalaman pelanggan baru dengan konten premium generasi berikutnya:

  • Driver harus ditandatangani untuk perangkat yang mengalirkan konten yang dilindungi. Ini termasuk driver audio yang menggunakan perintah Protected User Mode Audio (PUMA) dan Protected Audio Path (PAP), dan perangkat video yang menangani perintah manajemen perlindungan jalur-output video yang dilindungi (PVP-OPM).
  • Perangkat lunak mode kernel yang tidak ditandatangani tidak akan dimuat dan tidak akan berjalan pada sistem berbasis x64.

Catatan: Bahkan pengguna dengan hak istimewa administrator tidak dapat memuat kode mode kernel yang tidak ditandatangani pada sistem berbasis x64. Ini berlaku untuk modul perangkat lunak apa pun yang dimuat dalam mode kernel, termasuk driver perangkat, driver filter, dan layanan kernel.

Cakupan kebijakan penandatanganan kode mode kernel baru jauh mencapai. Untuk pengembang yang menerbitkan perangkat lunak mode kernel, kebijakan ini memiliki efek berikut:

  • Untuk komponen mode kernel apa pun yang belum ditandatangani, penerbit harus mendapatkan Sertifikat Penerbitan Perangkat Lunak (SPC) dan menggunakan SPC untuk menandatangani semua perangkat lunak mode kernel 64-bit yang akan berjalan pada sistem komputer berbasis x64 yang menjalankan Windows Vista. Ini termasuk perangkat lunak layanan mode kernel.

  • Penerbit yang menyediakan driver perangkat 64-bit atau perangkat lunak mode kernel lainnya yang sudah ditandatangani melalui Program Logo Windows akan memiliki katalog driver mereka yang ditandatangani dengan tanda tangan Windows Hardware Quality Labs (WHQL). Untuk sepenuhnya menguji paket driver sebelum pengiriman ke WHQL, tanda tangani katalog driver menggunakan SPC.

  • Dalam kasus khusus driver boot-start, perlu juga menggunakan SPC untuk menyematkan tanda tangan file gambar biner driver untuk performa boot sistem yang optimal.

    Catatan Driver dikatakan boot-start jika dimuat oleh pemuat sistem operasi Windows Vista. Driver boot-start dapat diidentifikasi sebagai berikut: DRIVER INF menentukan jenis mulai sebagai "Start=0", atau layanan kernel dikonfigurasi dengan ServiceType sebagai Driver Kernel atau Driver Sistem File dan StartMode menjadi "boot."

Kebijakan penandatanganan kode mode kernel wajib berlaku untuk semua perangkat lunak mode kernel pada sistem berbasis x64 yang menjalankan Windows Vista. Namun, Microsoft mendorong penerbit untuk menandatangani semua perangkat lunak secara digital, termasuk driver perangkat untuk platform 32-bit dan 64-bit. Windows Vista melakukan verifikasi tanda tangan mode kernel pada sistem x86 untuk mendukung konten media yang dilindungi. Namun, tanda tangan driver mode kernel tidak wajib untuk sistem 32-bit.

Makalah ini menjelaskan cara mengelola proses penandatanganan untuk kode mode-kernel untuk Windows Vista, termasuk cara mendapatkan Sertifikat Penerbitan Perangkat Lunak (SPC), panduan untuk melindungi kunci, dan cara menandatangani paket driver menggunakan alat yang disediakan dalam Windows Driver Kit (WDK).

Tanda Tangan Digital sebagai Praktik Terbaik

Sejak rilis Windows 98, Microsoft telah mempromosikan penandatanganan driver untuk kelas perangkat yang ditunjuk sebagai mekanisme untuk memajukan keandalan driver, untuk memberikan pengalaman pengguna yang lebih baik, untuk mengurangi biaya dukungan bagi vendor perangkat lunak dan perangkat keras, dan untuk menurunkan total biaya kepemilikan bagi pelanggan.

Untuk driver perangkat dan perangkat lunak mode kernel lainnya, driver yang ditandatangani sebagai bagian dari program Logo Windows meningkatkan kepercayaan pengguna akhir terhadap kualitas perangkat lunak dan meningkatkan pengalaman pengguna, karena Logo Windows milik driver menunjukkan bahwa driver diuji dan tanda tangan digital yang menyertai Logo Windows mengonfirmasi belum diubah sejak pengujian.

Untuk sebagian besar paket driver mode kernel, tanda tangan digital disediakan dalam file katalog (.cat) yang ditandatangani. Windows Hardware Quality Labs (WHQL) menyediakan file .cat yang ditandatangani Microsoft untuk didistribusikan dengan paket driver yang memenuhi persyaratan program Logo Windows.

Proses pembuatan perangkat lunak mode kernel yang ditandatangani terdiri dari dua aktivitas yang berbeda tetapi terkait. Ini dapat dilakukan secara paralel karena perangkat lunak biasanya tidak harus ditandatangani sampai relatif terlambat dalam proses pengembangan.

  • Mengelola proses penandatanganan. Hal ini biasanya ditangani oleh manajemen program penerbit dan layanan rilis perangkat lunak dan meliputi:

    • Memilih opsi penandatanganan yang sesuai.
    • Mendapatkan sertifikat yang diperlukan.
    • Mengelola tanda tangan digital atau kunci penandatanganan kode.

    Catatan Untuk menandatangani file atau katalog biner gambar secara digital, penerbit perangkat lunak harus memiliki kunci penandatanganan kode bersertifikat, yang berarti bahwa Otoritas Sertifikat telah cukup menetapkan identitas penerbit.

  • Mengimplementasikan driver yang akan ditandatangani. Ini biasanya ditangani oleh tim pengembangan penerbit dan meliputi:

    • Mengimplementasikan driver itu sendiri.
    • Membuat paket driver yang ditandatangani untuk pengujian atau rilis internal.

Proses ini didokumentasikan untuk versi Windows yang lebih lama di WDK dan Platform SDK. Makalah ini menjelaskan opsi tambahan yang terkait dengan penandatanganan kode mode kernel untuk Windows Vista.

Opsi Penandatanganan Kode Mode Kernel

Ada beberapa opsi yang tersedia untuk bekerja dengan persyaratan Penandatanganan Kode Mode Kernel (KMCS) di Windows Vista. Penandatanganan berkas pengandar tidak diperlukan untuk Windows Vista untuk memuat pengandar saat mengembangkan kode mode kernel. Sebagai gantinya, pengembang dapat menggunakan salah satu mekanisme untuk menonaktifkan pemeriksaan waktu muat sementara oleh kernel pada sistem pengembangan dan pengujian non-otomatis. Namun, pengujian penandatanganan paket driver diperlukan untuk mengotomatiskan penginstalan paket driver pada sistem pengujian tanpa memiliki penginstalan driver pop-up. Driver Management Infrastructure (DMI) memverifikasi tanda tangan paket driver selama penginstalan dan memperingatkan pengguna driver yang tidak ditandatangani.

Tabel berikut membandingkan opsi untuk menandatangani modul kernel secara digital yang didukung oleh Windows Vista.

Opsi untuk menandatangani modul kernel

Opsi Penandatanganan Fungsionalitas Diverifikasi untuk Memenuhi Persyaratan Logo Identitas Diverifikasi Penggunaan yang Dimaksudkan
Program Logo Windows Ya Ya Lepaskan
Penandatanganan Kode Mode Kernel menggunakan SPC Tidak Ya Lepaskan
Program Tanda Tangan Uji WHQL Tidak Ya Pengujian
Penandatanganan Pengujian KMCS Tidak Tidak Pengujian

Program Logo Windows memverifikasi fungsionalitas driver yang benar dan memastikan kualitas dan keandalan tinggi. Paket driver yang dikirimkan ke program Logo Windows ditandatangani secara digital oleh Microsoft. Program Logo Windows menerima paket perangkat yang diinstal melalui file INF untuk perangkat keras yang memenuhi persyaratan Logo Windows. Penerbit driver mengirimkan paket driver setelah menyelesaikan pengujian verifikasi driver untuk Program Logo Windows. Driver yang memenuhi syarat untuk logo menerima file .cat yang ditandatangani Microsoft. Untuk informasi tentang Program Logo Windows, lihat bagian Sumber Daya di akhir makalah ini.

Pengembang dapat menandatangani file gambar driver atau katalog driver dengan SPC untuk pengujian sebelum mengirimkan ke WHQL untuk memverifikasi bahwa driver memuat dan beroperasi dengan benar.

Penandatanganan Kode Mode Kernel menggunakan SPC menyediakan identifikasi penerbit modul kernel yang dimuat ke Windows Vista. Ini tidak memberikan tingkat sertifikasi fungsionalitas atau keandalan modul kernel. Untuk driver yang tidak memenuhi syarat untuk Logo Windows, atau Logo Windows bukan salah satu persyaratan produk, penerbit dapat membuat file .cat untuk paket driver dan menandatanganinya dengan SPC penerbit.

Penandatanganan Kode Mode Kernel Penting tidak menggantikan program WHQL. Microsoft mendorong penerbit untuk menggunakan program Logo Windows untuk memastikan kualitas driver. Penandatanganan Kode Mode Kernel tidak mengharuskan penerbit perangkat lunak untuk melewati persyaratan pengujian Program Logo Windows yang terkait dengan WHQL.

File .cat yang ditandatangani adalah semua yang diperlukan bagi sebagian besar paket driver untuk menginstal dan memuat dengan benar pada sistem x64, kecuali paket yang berisi driver yang dimuat oleh pemuat boot Windows Vista. Paket driver yang berisi driver perangkat yang dimuat oleh pemuat boot Windows Vista harus ditandatangani dengan dua cara:

  • File biner driver mode kernel yang dimuat pada waktu boot harus memiliki tanda tangan yang disematkan dalam biner yang ditandatangani dengan SPC. Untuk kesederhanaan, mungkin lebih mudah untuk menyematkan tanda tangan semua file gambar driver dalam paket.
  • Paket driver yang diinstal menggunakan file INF juga harus memiliki file katalog yang ditandatangani, sama seperti paket driver yang tidak berisi driver boot start, untuk verifikasi tanda tangan selama penginstalan.

Produsen harus memastikan bahwa vendor perangkat keras memperoleh SPC dan menandatangani driver boot-start apa pun yang akan diinstal pada sistem yang diinstal produsen.

Untuk tujuan pengujian selama siklus pengembangan, penandatanganan kode menggunakan sertifikat "pengujian" direkomendasikan alih-alih menandatangani dengan sertifikat rilis. Biner yang ditandatangani pengujian hanya dikenali oleh sistem Windows Vista ketika opsi konfigurasi boot yang memungkinkan penggunaan sertifikat penandatanganan pengujian diaktifkan. Penandatanganan pengujian tidak diaktifkan secara default dan tanda tangan pengujian tidak akan dipercaya oleh sebagian besar sistem Windows Vista.

Program WHQL Test Signature juga didukung untuk penandatanganan pengujian. Peserta dalam program ini dapat mengirimkan paket driver untuk WhQL Test Signing. Tanda tangan pada katalog yang ditandatangani pengujian dihasilkan oleh sertifikat yang dikeluarkan di bawah Otoritas Akar Pengujian Microsoft. Microsoft Test Root Authority diterima ketika pengaturan konfigurasi boot Windows Vista memungkinkan Penandatanganan Pengujian. Untuk informasi tentang Program Tanda Tangan Uji WHQL, lihat bagian Sumber Daya di akhir makalah ini.

Untuk penandatanganan "uji" dan "rilis", tim pengembangan harus mengikuti praktik terbaik untuk manajemen kunci, seperti yang dijelaskan dalam Panduan untuk Melindungi Kunci Penandatanganan Kode nanti di makalah ini.

Penandatanganan pengujian dibahas secara lebih rinci di bagian Cara menggunakan Uji Penandatanganan nanti dalam dokumen ini.

Proses Penandatanganan Kode Mode Kernel

Menandatangani file gambar atau katalog mode kernel secara digital menetapkan integritas file atau file yang ditandatangani. Modul perangkat lunak tidak boleh dimodifikasi setelah operasi penandatanganan kode dilakukan. Modifikasi file gambar setelah penandatanganan kode menghasilkan kegagalan verifikasi tanda tangan waktu penginstalan dan waktu muat.

Paket driver yang berisi beberapa file dapat ditandatangani menggunakan katalog. Paket driver harus memiliki file katalog yang ditandatangani (.cat) yang digunakan untuk mengidentifikasi penerbit ketika paket driver diinstal dan memverifikasi gambar driver ketika dimuat ke kernel. File katalog berisi sertifikat digital yang mengidentifikasi penerbit, ditambah hash isi paket yang memungkinkan sistem memverifikasi bahwa file dalam paket belum diubah.

Seperti yang disebutkan sebelumnya, driver boot start harus memiliki tanda tangan yang disematkan dalam file gambar driver. Tanda tangan yang disematkan dalam file gambar driver boot start mengoptimalkan performa boot sistem operasi dengan menghilangkan kebutuhan untuk menemukan file appropriate.cat ketika pemuat sistem operasi memverifikasi tanda tangan driver.

Penandatanganan driver tidak diperlukan untuk setiap build selama proses pengembangan driver. Pengembang dapat menonaktifkan penegakan penandatanganan driver seperti yang dijelaskan dalam Cara Menonaktifkan Penegakan Tanda Tangan selama Pengembangan nanti di makalah ini.

Bagian berikut membahas cara mendapatkan dan mengelola sertifikat. Mekanisme penandatanganan paket driver dibahas nanti dalam makalah ini.

Cara Mendapatkan Sertifikat Penerbitan Perangkat Lunak (SPC)

Dapatkan SPC untuk menandatangani perangkat lunak mode kernel Anda yang memenuhi kebijakan penandatanganan kode mode kernel wajib menggunakan langkah-langkah berikut:

  1. Dapatkan SPC dari CA komersial yang mengeluarkan sertifikat digital untuk menandatangani kode mode kernel. Daftar CA yang menyediakan Sertifikat Penerbitan Perangkat Lunak (atau sertifikat penandatanganan kode) yang dapat digunakan untuk penandatanganan kode mode kernel tersedia di halaman web Sertifikat Silang Microsoft untuk Penandatanganan Kode Mode Kernel Windows Vista.
  2. Unduh sertifikat silang yang sesuai dari Microsoft Cross-certificates untuk halaman web Penandatanganan Kode Mode Kernel Windows Vista untuk otoritas sertifikat akar yang menerbitkan SPC. Sertifikat silang digunakan dalam tanda tangan digital untuk kode mode kernel sehingga tanda tangan dapat diverifikasi hingga otoritas akar tepercaya yang diketahui oleh kernel Windows Vista.

Saat Anda meminta Sertifikat Penerbitan Perangkat Lunak dari CA komersial, ikuti instruksi di situs web CA tentang cara memperoleh dan menginstal sertifikat penandatanganan kode pada komputer tempat Anda akan menggunakan kunci privat untuk menandatangani kode.

Panduan untuk Melindungi Kunci Penandatanganan Kode

Kunci kriptografi yang menjadi inti dari proses penandatanganan kode harus dilindungi dengan baik dan diperlakukan dengan perawatan yang sama dengan aset paling berharga untuk perusahaan mana pun. Kunci ini mewakili identitas perusahaan. Kode apa pun yang ditandatangani dengan kunci ini muncul ke Windows seolah-olah berisi tanda tangan digital yang valid yang dapat dilacak ke perusahaan. Jika kunci dicuri, kunci tersebut dapat digunakan untuk menandatangani kode berbahaya secara curang dan mungkin mengakibatkan pengiriman kode yang berisi Trojan atau virus yang tampaknya berasal dari penerbit yang sah.

Untuk informasi terperinci tentang menjaga kunci privat dengan aman, lihat Praktik Terbaik Penandatanganan Kode .

Menggunakan Sertifikat silang dengan penandatanganan kode mode kernel

Penandatanganan kode mode kernel menggunakan sertifikat silang sebagai bagian dari proses penandatanganan kode. Sertifikat silang adalah sertifikat X.509 yang dikeluarkan oleh satu Otoritas Sertifikat (CA) yang menandatangani kunci publik untuk sertifikat akar Otoritas Sertifikat lain. Pemuat dan kernel sistem operasi Windows Vista mengenali sertifikat silang dalam memverifikasi tanda tangan driver. Sertifikat silang memungkinkan kernel memiliki satu otoritas akar Microsoft tepercaya, tetapi juga memberikan fleksibilitas untuk memperluas rantai kepercayaan ke beberapa CA komersial yang menerbitkan Sertifikat Penerbit Perangkat Lunak.

Sertifikat silang memungkinkan pengembang dan penerbit menggunakan Sertifikat Penerbit Perangkat Lunak untuk menandatangani perangkat lunak mode kernel. Pengembang yang menggunakan Penandatanganan Kode Mode Kernel, akan mengunduh file sertifikat silang (.cer) yang benar ke sistem tempat operasi tanda tangan digital dilakukan. Penerbit tidak perlu mendistribusikan file lintas sertifikat dengan perangkat lunak atau paket driver mereka. Sertifikat silang akan disertakan dengan tanda tangan digital pada file gambar driver atau katalog paket driver. Pengguna yang menginstal paket driver tidak perlu melakukan langkah-langkah konfigurasi apa pun untuk Windows Vista untuk memverifikasi tanda tangan digital yang menyertakan sertifikat silang.

Penting SignTool di Windows Vista Beta2 WDK adalah satu-satunya versi SignTool yang saat ini mendukung penambahan sertifikat silang ke tanda tangan digital. Versi SignTool sebelumnya di Windows Server 2003 Platform SDK atau DDK tidak mendukung penambahan sertifikat silang.

Sertifikat silang untuk beberapa CA yang digunakan untuk penandatanganan kode mode kernel tersedia untuk diunduh dari situs web Microsoft WHDC. Untuk informasi selengkapnya, lihat Microsoft Cross-certificates untuk Penandatanganan Kode Mode Kernel Windows Vista di Sumber Daya di akhir makalah ini.

Detail tentang cara menambahkan sertifikat silang ke tanda tangan digital dijelaskan di bagian Cara Menandatangani File .cat dan Menambahkan Tanda Tangan Tersemat ke File Gambar Driver.

Membuat sertifikat pengujian

Sertifikat pengujian digunakan sebagai pengganti SPC untuk menguji modul perangkat lunak mode kernel yang bukan untuk distribusi atau rilis di luar organisasi Anda. Penandatanganan pengujian menerapkan tanda tangan digital ke biner mode kernel atau katalog paket driver yang digunakan untuk tujuan pengujian internal. Penandatanganan pengujian dibahas secara lebih rinci di bagian Cara menggunakan Uji Penandatanganan nanti dalam dokumen ini. Saat menggunakan sertifikat pengujian untuk penandatanganan kode mode kernel, sertifikat silang tidak diperlukan.

Sertifikat pengujian dapat dibuat menggunakan OS perusahaan atau menggunakan utilitas Makecert. Untuk informasi selengkapnya tentang menggunakan CA perusahaan untuk menerbitkan sertifikat penandatanganan pengujian dalam organisasi Anda, lihat Praktik Terbaik Penandatanganan Kode .

Dalam contoh berikut, Makecert menghasilkan sertifikat pengujian yang dikeluarkan oleh akar pengujian default, menyimpan kunci privat dalam kontainer kunci, dan menghasilkan sertifikat ke penyimpanan sertifikat dan file sertifikat:

Makecert –r –pe –ss SubjectCertStoreName –n "CN= CertName" OutputFile.cer

Argumen untuk Makecert dalam contoh melakukan hal berikut:

  • -r
    Membuat sertifikat yang ditandatangani sendiri, yaitu sertifikat adalah sertifikat akar.
  • -pe
    Membuat kunci privat yang terkait dengan sertifikat dapat diekspor.
  • -ssSubjectCertStoreName
    Menentukan nama penyimpanan sertifikat yang berisi sertifikat akar.
  • **-n "CN=**CertName"
    Menentukan nama untuk sertifikat. Jika nama sertifikat tidak disediakan, nama default sertifikat adalah "Emporium Perangkat Lunak Joe".
  • OutputFile.cer
    Nama file tempat sertifikat akar disimpan.

Contoh skrip perintah menggunakan makecert tersedia di WDK. Nama file skrip adalah, selfsign_example.txt, terletak di bawah direktori "bin\selfsign". Sebelum dapat menginstal paket driver, Anda harus menambahkan sertifikat pengujian ke penyimpanan sertifikat pada mesin uji target.

Contoh berikut menunjukkan cara menambahkan sertifikat pengujian ke Penyimpanan Akar Tepercaya dan Penyimpanan Penerbit Tepercaya pada mesin uji target.

certmgr.exe -add OutputFile.cer -s -r localMachine root 
certmgr.exe -add OutputFile.cer -s -r localMachine trustedpublisher

Argumen untuk Certmgr dalam contoh melakukan hal berikut:

  • -tambahkan
    Menambahkan sertifikat dalam file sertifikat ke penyimpanan sertifikat.
  • -s
    Menunjukkan penyimpanan sertifikat adalah penyimpanan sistem.
  • -r
    Menunjukkan lokasi registri penyimpanan sistem berada di bawah kunci HKEY_LOCAL_MACHINE
  • Root atau trustedpublisher
    Menunjukkan nama penyimpanan sertifikat sistem

Untuk informasi selengkapnya tentang Certmgr dan Makecert, lihat Sumber Daya di akhir makalah ini.

Membuat File .cat yang Ditandatangani

Alat yang digunakan untuk menghasilkan dan menandatangani file katalog, MakeCat dan SignTool, disediakan di Windows Vista WDK.

Catatan Signtool.exe dan MakeCat.exe terletak di direktori "bin\selfsign" WDK.

Cara Membuat File .cat

File .cat yang ditandatangani secara digital berisi hash semua modul mode kernel yang diverifikasi saat dimuat ke kernel. File katalog juga dapat menyertakan hash untuk file lain dalam paket perangkat lunak, seperti program aplikasi mode pengguna (.exes) dan ekstensi aplikasi (.dlls). Microsoft merekomendasikan agar file .cat berisi hash semua file dalam paket perangkat lunak.

File .cat berisi daftar hash file yang sesuai dengan sekumpulan file tertentu. Hash file adalah produk hash SHA1 atas file target. Hash file datar tidak digunakan untuk file, seperti driver, yang menggunakan format file portable executable (PE). Sebagai gantinya, bagian yang relevan seperti header PE, data yang dapat dieksekusi, dan atribut terautentikasi di-hash secara selektif.

Ketika driver dimuat ke dalam memori, kernel Windows Vista melakukan hash SHA1 di atas bagian yang relevan dari file gambar biner driver. Windows memverifikasi bahwa file belum dirusak dengan membandingkan nilai hash yang dihasilkan dengan daftar hash biner dalam file .cat terkait.

Jika menginstal driver dengan file INF melalui Plug and Play, gunakan alat Signability dari WDK untuk membuat katalog seperti yang dijelaskan di bawah ini. Jika tidak, buat katalog secara manual seperti yang dijelaskan dalam Cara Membuat Katalog Secara Manual nanti di makalah ini.

Cara Membuat Katalog Menggunakan Signability

Signability adalah alat yang digunakan untuk memvalidasi file INF dan membuat file katalog berdasarkan file INF. Ini termasuk dalam WDK dan dapat dijalankan dari lingkungan build WDK. Signability memerlukan file INF yang valid untuk paket driver Anda. Untuk informasi tentang membuat file INF, lihat dokumentasi WDK. Untuk membuat katalog menggunakan alat signability, lanjutkan sebagai berikut:

Menggunakan signability untuk membuat katalog

  1. Buat direktori paket driver yang berisi semua file dalam paket driver Anda.
  2. Buat file INF di direktori paket driver Anda dan edit untuk Windows Vista. Secara khusus, ubah tanggal build menjadi 4/1/2006 atau lebih besar dan versinya menjadi 6. Misalnya: DriverVer=04/01/2006, 6.0.1.0
  3. Jalankan Signability untuk membuat file .cat yang valid berdasarkan file INF:
    • Jalankan Signability.exe dan gunakan GUI untuk membuat file katalog.

    • Jalankan Signability dari baris perintah. Perhatikan package_directory harus menjadi jalur yang sepenuhnya memenuhi syarat ke direktori paket.

      Signability.exe /auto /cat /driver:package_directory /os:512
      

Contoh ini membuat file .cat di direktori driver_package, menggunakan beberapa argumen yang didukung Signability:

  • / otomatis
    Mengonfigurasi alat Signability untuk dijalankan tanpa perlu interaksi pengguna.
  • /cat
    Mengonfigurasi alat Signability untuk menghasilkan file katalog yang namanya disediakan oleh file INF paket driver.
  • /driver:DriverPath
    Menyediakan jalur ke direktori yang berisi file paket driver.
  • /os:nnn
    Mengonfigurasi alat Signability untuk memverifikasi bahwa file INF paket driver mematuhi persyaratan versi Windows yang ditentukan oleh nilai bendera nnn. 512 adalah nilai untuk Windows Vista, Edisi 64-bit.

Cara Membuat Katalog Secara Manual

Untuk membuat file .cat secara manual, pertama-tama gunakan editor teks untuk membuat file definisi katalog (.cdf). File .cdf menyertakan daftar file yang akan dikatalogkan dan atributnya.

Contoh berikut menunjukkan konten file .cdf khas yang diberi nama Good.cdf. Paket yang akan dikatalogkan berisi dua file, File1 dan File2. File .cat yang dihasilkan diberi nama Good.cat.

[CatalogHeader]
Name=Good.cat
PublicVersion=0x0000001
EncodingType=0x00010001
CATATTR1=0x10010001:OSAttr:2:6.0
[CatalogFiles]
<hash>File1=File1
<hash>File2=File2

File .cat dibuat dengan alat baris perintah MakeCat, yang disertakan dengan Platform SDK dan WDK. Alat MakeCat:

  • Memverifikasi daftar atribut untuk setiap file yang tercantum.
  • Menambahkan atribut yang tercantum ke file .cat.
  • Hash masing-masing file yang tercantum.
  • Menyimpan hash setiap file ke dalam file .cat.

Untuk membuat file .cat

  1. Gunakan editor teks untuk membuat file .cdf yang berisi daftar file yang akan dikatalogkan, dengan atributnya.
  2. Jalankan MakeCat terhadap file .cdf.

Catatan MakeCat tidak mengubah file .cdf.

Contoh berikut menunjukkan cara membuat file .cat dari Good.cdf. Bendera -v menentukan versi verbose MakeCat. File yang di-hash dan file Good.cat yang baru dibuat ditempatkan di folder yang sama dengan File1 dan File2.

MakeCat -v Good.cdf

File .cat sekarang siap untuk ditandatangani.

Untuk informasi selengkapnya tentang MakeCat dan format file .cdf, lihat dokumentasi MakeCat yang tercantum di Sumber Daya di akhir makalah ini.

Cara Menandatangani File .cat

File .cat yang dihasilkan oleh MakeCat berisi semua hash file yang diperlukan untuk menginstal modul mode kernel pada sistem pengguna. Namun, file juga harus ditandatangani secara digital.

File .cat ditandatangani dengan alat baris perintah SignTool. Tanda tangan digital pada katalog, yang digunakan untuk memverifikasi file gambar mode kernel, harus berisi sertifikat silang. Sertifikat silang ditambahkan menggunakan opsi perintah baru ke SignTool.

Penting Anda harus menggunakan versi SignTool dari Windows Vista Beta2 WDK untuk menambahkan sertifikat silang ke tanda tangan digital.

Contoh berikut menunjukkan cara menggunakan Signtool untuk menandatangani file .cat dengan SPC dan kunci privat terkait yang diimpor ke penyimpanan sertifikat Windows. Untuk informasi tentang cara menggunakan Signtool dengan HSM, lihat dokumentasi SignTool yang tercantum di Sumber Daya di akhir makalah ini.

SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t http://timestamp.verisign.com/scripts/timestamp.dll Good.cat

Contoh ini menggunakan beberapa argumen yang didukung SignTool:

  • Sign
    Mengonfigurasi alat untuk menandatangani file .cat yang diberi nama CatFileName.cat.
  • /v
    Menentukan opsi verbose untuk keberhasilan eksekusi dan pesan peringatan*.*
  • /ac
    Menambahkan sertifikat silang dari file CrossCertificateFile ke tanda tangan digital
  • /s
    Menentukan penyimpanan sertifikat yang bernama SPCCertificateStore.
  • /n
    Menentukan sertifikat dengan nama subjek SPCSubjectName.
  • URL/t
    Menentukan bahwa tanda tangan digital akan diberi tanda waktu oleh Otoritas Tanda Waktu (TSA) yang ditunjukkan oleh URL.

Important Katalog atau kabut tanda tangan driver menyertakan tanda waktu untuk memberikan informasi yang diperlukan untuk pencabutan kunci jika kunci privat penandatangan kode penanda tangan disusupi.

Selama penginstalan perangkat, jika SPC yang digunakan untuk penandatanganan telah kedaluwarsa dan tanda tangan tidak diberi tanda waktu, file .cat tidak diinstal dan Windows tidak mengizinkan driver dimuat. Namun, jika tanda tangan diberi tanda waktu oleh Otoritas Stempel Waktu tepercaya, file .cat diinstal dan Windows memungkinkan driver dimuat.

Menandatangani file Unduhan Ekstrak Mandiri

Perangkat lunak yang diterbitkan untuk distribusi pada situs web dukungan produk biasanya dimas dalam file arsip ekstraksi mandiri. Executable ekstraksi mandiri diunduh menggunakan browser web, dan konten yang diekstrak sebelum pengguna mulai menginstal di komputer mereka. Gunakan SPC yang menandatangani file .cat paket driver untuk juga menandatangani file .exe ekstraksi mandiri secara digital.

Menandatangani file .exe ekstraksi mandiri secara digital mengidentifikasi penerbit file arsip dan memastikan integritas file .exe ekstraksi mandiri yang diunduh melalui Internet. Pengguna yang mengunduh file .exe ekstraksi mandiri biasanya akan mendapatkan dialog kepercayaan, atau Peringatan Keamanan, ketika mereka memilih untuk mengunduh dan menjalankan file ekstraksi mandiri.

Di Windows Vista, jika pengguna melihat detail dialog Peringatan Keamanan dan memilih, "Selalu instal perangkat lunak dari nama penerbit <>", opsi ini akan menyederhanakan konfirmasi nanti ketika paket driver diinstal. Ketika paket driver diinstal, pengguna akan ditanya apakah mereka mempercayai penerbit paket driver yang ditandatangani sebelum penginstalan driver dimulai. Jika pengguna memilih opsi untuk selalu menginstal perangkat lunak dari penerbit driver ketika mereka mengunduh file .exe ekstraksi mandiri, perintah dialog kepercayaan selama penginstalan driver tidak akan terjadi.

Cara Menginstal File .cat yang Ditandatangani

Untuk driver yang diinstal melalui Plug and Play, tidak ada perubahan dalam proses penginstalan yang diharapkan. Penginstalan driver yang ditandatangani tertanam tidak memerlukan pemrosesan khusus di luar INF standar dan mekanisme penyiapan. Perhatikan bahwa hanya pengguna yang merupakan anggota grup Administrator yang diizinkan untuk menginstal paket driver.

Driver yang tidak menginstal melalui Plug and Play harus menginstal file .cat mereka di folder akar katalog sistem. Penginstalan katalog di folder akar katalog dapat dikelola menggunakan panggilan API katalog Win32 yang ada, khususnya CryptCATAdminAddCatalog.

Menambahkan Tanda Tangan Yang Disematkan ke File Gambar Driver

Untuk mengoptimalkan performa verifikasi driver pada waktu boot, biner driver boot-start harus memiliki tanda tangan yang disematkan menggunakan SPC selain file .cat yang ditandatangani untuk paket. Tanda tangan yang disematkan menghemat waktu yang signifikan selama boot-up sistem operasi karena tidak perlu pemuat sistem operasi untuk menemukan file .cat di driver. Sistem Windows Vista yang khas mungkin memiliki lebih dari seratus file katalog yang berbeda di penyimpanan akar katalog. Menemukan file katalog yang benar untuk memverifikasi hash gambar driver tertentu dapat melibatkan banyak overhead sistem yang mencari beberapa katalog untuk file yang benar.

Driver boot-start diidentifikasi berdasarkan nilai StartType layanan SERVICE_BOOT_START (0).

Tanda tangan yang disematkan tidak mengganggu penandatanganan atau validasi file .cat. Perhatikan bahwa hash yang terkandung dalam katalog dan tanda tangan yang disematkan secara selektif mengecualikan bagian tanda tangan dari format file PE

Untuk menggunakan Signtool.exe menyematkan tanda tangan ke dalam biner driver boot-start menggunakan SPC dan kunci privat terkait yang diimpor ke penyimpanan sertifikat Windows, gunakan perintah berikut:

SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t http://timestamp.verisign.com/scripts/timestamp.dll winloaddriver.sys

Contoh ini menggunakan beberapa argumen yang didukung SignTool:

  • Sign
    Perintah
    tanda tangan mengonfigurasi alat untuk menandatangani driver bernama winloaddriver.sys.
  • /v
    Menentukan opsi verbose untuk keberhasilan eksekusi dan pesan peringatan*.*
  • /ac
    Menambahkan sertifikat silang dari file CrossCertificateFile ke tanda tangan digital
  • opsi
    Menentukan penyimpanan sertifikat bernama SPCCertificateStore
  • /n
    Menentukan sertifikat dengan nama subjek SPCSubjectName.
  • URL/t
    Menentukan bahwa tanda tangan digital harus diberi tanda waktu oleh TSA yang ditunjukkan oleh URL .

Penting: Katalog atau driver harus diberi tanda waktu, karena ini akan memberikan informasi yang diperlukan untuk pencabutan kunci jika kunci penanda tangan disusupi.

Cara Memverifikasi Tanda Tangan yang Disematkan

Prosedur berikut menunjukkan cara memverifikasi tanda tangan yang disematkan dengan Windows Explorer.

Untuk memverifikasi tanda tangan yang disematkan

  1. Saat menjalankan Windows Vista, klik kanan file .sys driver dan klik Properti di menu konteks.
  2. Klik tab Tanda Tangan Digital , jika ada.
    • Jika tab ini tidak ada, file tidak memiliki tanda tangan yang disematkan.
  3. Pilih penanda tangan dan klik Detail untuk membuka kotak dialog Detail Tanda Tangan .
  4. Klik Tampilkan Sertifikat untuk membuka halaman properti sertifikat.
    • Verifikasi bahwa tidak ada kotak dialog peringatan.
    • Verifikasi bahwa nama subjek sertifikat Publisher terdaftar di otoritas sertifikasi yang dikenali.
  5. Klik tab Jalur Sertifikasi .
    • Verifikasi bahwa nama subjek sertifikat teratas Microsoft Code Verification Root.

Untuk memverifikasi tanda tangan yang disematkan menggunakan signtool.exe untuk kebijakan penandatanganan kode mode kernel

  • Signtool.exe dapat digunakan untuk memverifikasi tanda tangan pada file .cat menggunakan perintah berikut:
Signtool verify /kp /c tstamd64.cat toaster.sys

Verifikasi bahwa hash gambar untuk file toaster.sys ditemukan dalam file katalog. Alat ini mengembalikan string "Success."

Cara Menonaktifkan Penegakan Tanda Tangan selama Pengembangan

Selama tahap awal pengembangan, pengembang dapat menonaktifkan penegakan di Windows sehingga penandatanganan driver tidak diperlukan. Opsi berikut tersedia bagi pengembang untuk menonaktifkan penegakan penandatanganan kode mode kernel untuk sementara waktu sehingga Windows Vista akan memuat driver yang tidak ditandatangani.

  • Melampirkan debugger kernel. Melampirkan debugger kernel aktif ke komputer target menonaktifkan penerapan tanda tangan mode kernel di Windows Vista dan memungkinkan driver dimuat.

  • Menggunakan opsi F8. Opsi Boot Lanjutan F8 yang diperkenalkan dengan Windows Vista—"Disable Driver Signature Enforcement"—tersedia untuk menonaktifkan penegakan penandatanganan kernel hanya untuk sesi boot saat ini. Pengaturan ini tidak bertahan di seluruh sesi boot.

  • Mengatur konfigurasi boot. Pengaturan konfigurasi boot tersedia dalam rilis Windows Vista Beta2 yang menonaktifkan penerapan tanda tangan mode kernel untuk dipertahankan di seluruh sesi boot.

    Windows Vista menyertakan alat baris perintah, BCDedit, yang dapat digunakan untuk mengatur opsi di Windows Vista Beta2 untuk menonaktifkan pemeriksaan tanda tangan. Untuk menggunakan BCDedit, pengguna harus menjadi anggota grup Administrator pada sistem dan menjalankan perintah dari prompt perintah yang ditinggikan. Prompt perintah yang ditinggikan dapat diluncurkan dengan membuat pintasan desktop untuk cmd.exe, lalu menggunakan klik kanan dan "Jalankan sebagai administrator."

    Berikut ini memperlihatkan contoh menjalankan BDCedit pada prompt perintah:

    // Disable enforcement – no signing checks
    Bcdedit.exe –set nointegritychecks ON 
    
    // Enable enforcement – signing checks apply
    Bcdedit.exe –set nointegritychecks OFF 
    
    // Disabling integrity check on an alternate OS 
    // specified by a GUID for the system ID
    Bcdedit.exe –set {4518fd64-05f1-11da-b13e-00306e386aee} nointegritychecks ON 
    

Catatan Opsi Bcdedit untuk menonaktifkan pemeriksaan integritas hanya tersedia untuk memuat driver yang tidak ditandatangani pada rilis Windows Vista Beta2. Untuk informasi selengkapnya, lihat FAQ Editor BCD di situs Web MSDN.

Cara menggunakan Penandatanganan Pengujian

Penandatanganan pengujian menyediakan opsi tambahan untuk organisasi pengembangan untuk menggabungkan penandatanganan kode mode kernel untuk perangkat lunak pra-rilis yang belum siap untuk publikasi. Penandatanganan pengujian memungkinkan penggunaan sertifikat penandatanganan kode "uji" untuk menandatangani driver yang akan dimuat pada Windows Vista ketika pengaturan konfigurasi boot Windows Vista memungkinkan tanda tangan pengujian.

Penandatanganan pengujian mungkin sesuai untuk digunakan dalam skenario berikut:

  • Tim pengembangan perlu menguji versi pra-rilis driver pada sistem pengujian di mana tidak praktis untuk melampirkan debugger kernel.
  • Pengujian otomatis perangkat lunak mode kernel membuatnya tidak praktis untuk menggunakan Opsi Boot Lanjutan F8 untuk menonaktifkan penegakan tanda tangan driver untuk sementara pada setiap siklus boot mesin.

Penandatanganan pengujian memungkinkan pengembang untuk menandatangani versi pra-rilis biner mode kernel sedemikian sehingga Windows Vista dapat memverifikasi dan memuat driver yang ditandatangani. Penandatanganan pengujian melibatkan perbedaan berikut dari produksi normal atau penandatanganan rilis:

  • Sertifikat yang digunakan untuk penandatanganan pengujian dapat dibuat menggunakan alat penandatanganan kode Makecert.exe, atau dikeluarkan oleh ENTERPRISE CA, alih-alih menggunakan SPC yang dikeluarkan oleh CA komersial.
  • Opsi konfigurasi boot Windows Vista untuk mengaktifkan Penandatanganan Pengujian harus diaktifkan pada sistem Windows Vista yang akan memuat driver yang ditandatangani pengujian.

Organisasi pengembangan dapat menyiapkan PKI perusahaan dan mengeluarkan sertifikat penandatanganan kode pengujian mereka sendiri untuk digunakan untuk penandatanganan pengujian. Ketika Windows Vista mengaktifkan Penandatanganan Pengujian, verifikasi tanda tangan digital pada biner driver akan menerima sertifikat yang dikeluarkan oleh CA atau otoritas Penerbit. Penandatanganan pengujian memverifikasi gambar driver ditandatangani, tetapi validasi jalur sertifikat yang dilakukan dalam mode kernel tidak mengharuskan penerbit untuk dikonfigurasi sebagai otoritas akar tepercaya. Ini memungkinkan organisasi untuk menggunakan tanda tangan individual pada biner pengujian, berdasarkan kredensial yang dikeluarkan untuk penandatanganan kode dalam organisasi. Microsoft merekomendasikan bentuk penyebaran ini untuk penandatanganan pengujian dalam Penandatanganan Kode Mode Kernel.

Menggunakan sertifikat yang dihasilkan oleh alat makecert.exe juga dapat diterima untuk penandatanganan pengujian. Namun, sertifikat yang dihasilkan oleh makecert sering kali tidak memberikan informasi identitas yang berguna dan tidak ada cara untuk melacak pengembang individu mana yang membuat versi uji biner yang ditandatangani sebelumnya.

Note Rilis Windows Vista Beta2 hanya menerima sertifikat pengujian yang dihasilkan oleh alat makecert. Sertifikat penandatanganan kode uji yang dikeluarkan oleh OS perusahaan untuk penandatanganan pengujian tidak tersedia di Windows Vista Beta2.

Instruksi Signtool dalam dokumen ini berfungsi dengan cara yang sama baik Anda menggunakan SPC, atau sertifikat yang dihasilkan oleh utilitas makecert, atau menggunakan sertifikat yang dikeluarkan oleh OS perusahaan. Satu-satunya perbedaan biasanya adalah penerbit dan nama subjek dalam sertifikat.

Program WHQL Test Signature juga didukung untuk penandatanganan pengujian. Peserta dalam program ini dapat mengirimkan paket driver untuk WHQL Test Signatures. Tanda tangan pada katalog yang ditandatangani pengujian dihasilkan oleh sertifikat yang dikeluarkan di bawah Otoritas Akar Pengujian Microsoft. Microsoft Test Root Authority diterima secara default pada Windows Vista Beta2 sebagai bagian dari program beta. Dalam rilis akhir Windows Vista, Microsoft Test Root Authority diterima ketika pengaturan konfigurasi boot Windows Vista memungkinkan Penandatanganan Pengujian.

Menguji biner mode kernel yang ditandatangani tidak akan dimuat pada sistem Windows Vista secara default. Tanda tangan digital pada biner yang ditandatangani pengujian tidak valid pada sistem Windows Vista secara default karena kebijakan penandatanganan kode mode kernel tidak menerima dan tidak mempercayai sertifikat penandatanganan pengujian.

Mengaktifkan Penandatanganan Pengujian

Gunakan alat baris perintah Bcdedit untuk mengaktifkan penandatanganan pengujian. Untuk menggunakan BCDedit, pengguna harus menjadi anggota grup Administrator pada sistem dan menjalankan perintah dari prompt perintah yang ditinggikan. Prompt perintah yang ditinggikan dapat diluncurkan dengan membuat pintasan desktop untuk cmd.exe, lalu menggunakan klik kanan dan "Jalankan sebagai administrator."

Berikut ini memperlihatkan contoh menjalankan BDCedit pada prompt perintah:

// Accept test signed kernel mode signatures
Bcdedit.exe –set TESTSIGNING ON 

// Do not accept test signed kernel mode signatures
Bcdedit.exe –set TESTSIGNING OFF 

Opsi konfigurasi boot TESTSIGNING menentukan apakah Windows Vista menerima biner mode kernel yang ditandatangani pengujian. Opsi ini tidak ditentukan secara default yang berarti tanda tangan digital pada driver mode kernel yang ditandatangani pengujian tidak akan memverifikasi dan tidak akan memuat. Ketika Windows Vista menerima biner mode kernel yang ditandatangani pengujian, beberapa konten premium yang dilindungi mungkin tidak dapat diakses pada sistem.

Pemecahan masalah

Ada langkah-langkah khusus yang dapat Anda ambil untuk mengidentifikasi dan memecahkan masalah potensial yang terkait dengan memverifikasi tanda tangan kode mode kernel. Bagian ini menyediakan informasi tentang pemecahan masalah dengan penegakan penandatanganan driver. Alat utama untuk memecahkan masalah penandatanganan driver adalah sebagai berikut:

  • Mendeteksi kesalahan beban driver
  • Mengaktifkan peristiwa log sistem diagnostik Integritas Kode.

Aplikasi pemanggil toaster yang disertakan dalam Windows Vista WDK digunakan sebagai contoh. Aplikasi pemanggil toaster dapat ditemukan di WDK di bawah direktori "src\general\toaster".

Mendeteksi kesalahan beban driver

Aplikasi pemangsa toaster menginstal driver perangkat (toaster.sys), yang untuk contoh ini, tidak ditandatangani. Gejala masalah dengan driver yang tidak ditandatangani adalah bahwa perangkat pemangsa toaster gagal dimulai. Dengan menggunakan Manajer Perangkat, Anda dapat memeriksa status perangkat Pemangsa dan melihat status driver, seperti yang ditunjukkan pada gambar layar berikut.

Bb530195.digitalsigskernmodules01(en-us,MSDN.10).gif

Gambar 1. Kesalahan driver tidak ditandatangani

Perangkat gagal dimulai karena driver perangkat tidak ditandatangani dan penegakan penandatanganan mode kernel memblokir driver agar tidak dimuat ke kernel. Untuk mengidentifikasi sumber masalah secara definitif, kami menyiapkan sistem untuk mengaktifkan diagnostik penegakan penandatanganan seperti yang dijelaskan di bawah ini.

Mengaktifkan peristiwa log sistem diagnostik Integritas Kode

Penerapan penandatanganan kode mode kernel diimplementasikan oleh komponen Windows Vista yang dikenal sebagai Integritas Kode. Integritas Kode menghasilkan peristiwa diagnostik dan peristiwa log audit sistem ketika tanda tangan modul kernel gagal diverifikasi dengan benar.

  • Peristiwa Operasional Integritas Kode selalu diaktifkan. Peristiwa Operasional adalah Peristiwa peringatan ketika pemeriksaan verifikasi gambar gagal saat memuat file biner mode kernel.
  • Peristiwa audit Sistem Integritas Kode dihasilkan ketika kebijakan audit Sistem diaktifkan. Kebijakan audit Sistem tidak diaktifkan secara default.
  • Peristiwa Verbose Integritas Kode adalah peristiwa informasi analitik dan debug yang menunjukkan semua pemeriksaan verifikasi gambar yang berhasil saat memuat file biner mode kernel. Peristiwa verbose tidak diaktifkan secara default.

Peristiwa Integritas Kode dapat dilihat di bawah Pemeriksa Peristiwa, yang merupakan bagian dari snapin MMC Manajemen Komputer. (Dari tombol Mulai , klik kanan Komputer , dan pilih Kelola).

Aliran peristiwa Integritas Kode terletak di bawah hierarki berikut:

Penampil Peristiwa - Log Aplikasi dan Layanan> -> Microsoft -> Windows -> CodeIntegrity

Bb530195.digitalsigskernmodules02(en-us,MSDN.10).gif

Gambar 2. Peristiwa integritas kode

Log Operasional Integritas Kode menunjukkan peristiwa yang dihasilkan oleh kernel ketika driver mode kernel gagal pemeriksaan verifikasi gambar saat driver dimuat. Kegagalan verifikasi gambar mungkin disebabkan oleh sejumlah alasan, termasuk hal-hal berikut:

  • Driver tidak ditandatangani, tetapi diinstal pada sistem oleh administrator dan Integritas Kode tidak memungkinkan driver untuk memuat.
  • Driver ditandatangani, tetapi file gambar driver dimodifikasi atau dirusak dan modifikasi membatalkan tanda tangan driver.
  • Perangkat disk sistem mungkin memiliki kesalahan perangkat saat membaca file gambar untuk perangkat dari sektor disk yang buruk.

Entri log Operasional untuk kegagalan verifikasi gambar driver yang tidak ditandatangani atau dimodifikasi terlihat seperti contoh berikut:

Bb530195.digitalsigskernmodules03(en-us,MSDN.10).gif

Gambar 3. Entri log operasional

Peristiwa menunjukkan driver pemangsa roti (toaster.sys) tidak dapat dimuat karena tidak ditandatangani (atau gambar toaster.sys yang mencoba memuat tidak sama dengan yang ditandatangani secara digital oleh penerbit).
Semua pesan log peristiwa Integritas Kode tercantum di bagian Pesan Log Peristiwa Integritas Kode di bawah ini.

Peristiwa Log Audit Sistem

Integritas Kode menghasilkan peristiwa log Audit Sistem yang sesuai dengan peristiwa peringatan operasional saat verifikasi gambar driver mode kernel gagal. Peristiwa log Sistem dapat dilihat di Pemandang Peristiwa di bawah Log Windows, tampilan log Sistem.

Kejadian audit sistem mungkin tidak diaktifkan pada semua sistem Windows Vista. Gunakan snap-in MMC Pengaturan Keamanan Lokal untuk memverifikasi atau mengaktifkan "Peristiwa sistem audit" di bawah Kebijakan Lokal, pengaturan Kebijakan Audit.

Peristiwa Informasi di Log Verbose

Peristiwa Informasi Integritas Kode Tambahan untuk semua pemeriksaan verifikasi gambar mode kernel tersedia menggunakan tampilan peristiwa Verbose. Peristiwa ini menunjukkan verifikasi gambar yang berhasil dari semua driver yang dimuat pada sistem.

Langkah-langkah untuk mengaktifkan tampilan peristiwa Code Integrity Verbose adalah sebagai berikut:

  1. Klik kiri pada tampilan Operasional untuk menampilkan peristiwa Integritas Kode saat ini (jika ada).
  2. Klik kiri pada simpul Integritas Kode untuk mengatur fokus.
  3. Klik kanan pada simpul Code Integrity untuk mendapatkan menu konteks.
  4. Pilih Tampilkan.
  5. Pilih Tampilkan Log Analitik dan Debug.
  6. Ini membuat sub-pohon dengan dua simpul tambahan, Operasional dan simpul verbose .
  7. Klik kanan pada simpul Verbose dan pilih properti .
  8. Pilih lembar Umum dan pilih opsi AktifkanPengelogan. Ini harus mengaktifkan mode pengelogan verbose.
  9. Reboot sistem untuk memuat ulang semua biner mode kernel.
  10. Setelah reboot, buka snap-in ManajemenKomputer dan lihatlogCodeIntegrityVerbose.

Anda dapat memeriksa apakah toaster.sys ditandatangani dengan benar sebagai berikut:

Dalam kasus khusus ini, toaster.sys adalah driver PnP dan dinamai dalam file katalog (tstamd64.cat di "\src\general\toaster\toastpkg\toastcd". Gunakan utilitas SignTool untuk memverifikasi apakah toaster.sys ditandatangani dengan benar menggunakan perintah berikut:

Signtool verify /kp /c tstamd64.cat toaster.sys

Opsi Penelusuran Kesalahan Verifikasi Driver

Dalam beberapa kasus, pengembang mungkin ingin memberlakukan kebijakan penandatanganan kode mode kernel wajib bahkan ketika debugger dilampirkan. Contohnya adalah ketika tumpukan driver memiliki driver yang tidak ditandatangani (seperti driver filter) yang gagal dimuat, yang mungkin membatalkan seluruh tumpukan. Karena melampirkan debugger memungkinkan driver yang tidak ditandatangani untuk dimuat, masalah tampaknya menghilang segera setelah debugger terpasang. Men-debug jenis masalah ini mungkin sulit. Untuk memfasilitasi penelusuran kesalahan dalam hal ini, Integritas Kode mendukung kunci registri yang dapat diatur untuk memberlakukan penegakan penandatanganan mode kernel bahkan ketika debugger dilampirkan.

Ada dua bendera yang ditentukan dalam registri yang mengontrol perilaku Integritas Kode di bawah debugger. Bendera tidak ditentukan secara default.

Buat nilai registri sebagai berikut:

Key:   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI
Value:   DebugFlags      REG_DWORD   

Nilai yang mungkin:

  • 00000001
    Hasil dalam debug masuk ke debugger dan driver yang tidak ditandatangani diizinkan untuk dimuat dengan g.
  • 00000010
    CI akan mengabaikan keberadaan debugger dan driver yang tidak ditandatangani diblokir agar tidak dimuat.

Nilai lain menghasilkan pemuatan driver yang tidak ditandatangani—ini adalah kebijakan default.

Pesan Log Peristiwa Integritas Kode

Berikut ini adalah Peristiwa peringatan yang dicatat ke log Operasional Integritas Kode:

  • "Integritas Kode tidak dapat memverifikasi integritas gambar file <nama file> karena hash file tidak dapat ditemukan pada sistem."
  • "Integritas Kode mendeteksi driver yang tidak ditandatangani."
  • "Kejadian ini terkait dengan Pemantauan Kualitas Perangkat Lunak (SQM)."

Berikut ini adalah Peristiwa informasi yang dicatat ke log Verbose Integritas Kode:

  • "Integritas Kode menemukan sekumpulan hash gambar per halaman untuk file <nama file> dalam katalog <nama katalog>."
  • "Integritas Kode menemukan sekumpulan hash gambar per halaman untuk file <nama file> dalam sertifikat yang disematkan gambar."
  • "Integritas Kode menemukan hash file untuk file <nama file> dalam katalog <nama katalog>."
  • "Integritas Kode menemukan hash file untuk file <nama file> dalam sertifikat yang disematkan gambar."
  • "Integritas Kode menentukan modul kernel yang tidak ditandatangani <nama file> dimuat ke dalam sistem. Tanyakan kepada penerbit untuk melihat apakah versi modul kernel yang ditandatangani tersedia."
  • "Integritas Kode tidak dapat memverifikasi integritas gambar file <nama file> karena kumpulan hash gambar per halaman tidak dapat ditemukan pada sistem."
  • "Integritas Kode tidak dapat memverifikasi integritas gambar file <nama file> karena kumpulan hash gambar per halaman tidak dapat ditemukan pada sistem. Gambar diizinkan untuk dimuat karena debugger mode kernel terpasang."
  • "Integritas Kode tidak dapat memverifikasi integritas gambar file <nama file> karena hash file tidak dapat ditemukan pada sistem. Gambar diizinkan untuk dimuat karena debugger mode kernel terpasang."
  • "Integritas Kode tidak dapat memuat nama file <> katalog."
  • "Integritas Kode berhasil memuat <nama file> katalog."

Sumber daya