Pencabutan Sertifikat OPM

Sertifikat manajer perlindungan output (OPM) dapat dicabut oleh Microsoft. Daftar sertifikat yang dicabut disimpan dalam daftar pencabutan global (GRL). GRL memiliki format berikut:

Bagian Deskripsi
Header Struktur GRL_HEADER .
Core Berisi daftar pencabutan berikut:
  • Pencabutan biner kernel
  • Pencabutan biner mode pengguna
  • Pencabutan sertifikat
  • Akar tepercaya (dicadangkan)
Daftar akar tepercaya saat ini tidak digunakan, dan dicadangkan untuk digunakan di masa mendatang.
Entri yang dapat diperluas Berisi informasi yang digunakan oleh komponen lain. Bagian ini tidak relevan dengan OPM.
Perpanjangan: Berisi GUID yang menentukan pengidentifikasi Windows Update. Bagian ini berisi pengidentifikasi untuk daftar berikut:
  • Pencabutan biner kernel
  • Pencabutan biner mode pengguna
  • Pencabutan sertifikat
Aplikasi dapat menggunakan pengidentifikasi ini untuk meminta versi biner yang dicabut, jika tersedia.
Tanda tangan: Bagian inti Menandatangani bagian header dan inti.
Tanda tangan: Bagian yang dapat diperluas Menandatangani header dan bagian yang dapat diperluas.

 

Header GRL adalah struktur GRL_HEADER . Anggota dwSequenceNumber dari struktur berisi nomor versi GRL. Jumlah ini bertahas setiap kali GRL diperbarui dan versi baru ditempatkan di komputer pengguna.

Sertifikat OPM yang dicabut tercantum dalam daftar pencabutan sertifikat bagian Inti. Setiap entri Core dalam GRL adalah array 20 byte yang berisi hash SHA-1 dari kunci publik sertifikat yang dicabut.

Bagian Tanda Tangan berisi tanda tangan yang dapat digunakan untuk memverifikasi bahwa GRL belum diubah. Setiap bagian Tanda Tangan berisi struktur MF_SIGNATURE . Tanda tangan pertama menandatangani header ditambah bagian Inti. Tanda tangan kedua menandatangani header ditambah bagian Yang Dapat Diperluas; tanda tangan ini tidak relevan dengan OPM.

Untuk memastikan bahwa GRL itu sendiri belum dirusak, verifikasi tanda tangan sebagai berikut:

  1. Temukan awal struktur MF_SIGNATURE . Lokasi struktur MF_SIGNATURE diberikan dalam anggota cbSignatureCoreOffset dari struktur GRL_HEADER . Lokasi ditentukan sebagai offset dalam byte dari awal GRL.
  2. Uraikan struktur MF_SIGNATURE sebagai tanda tangan PKCS #7 dengan rantai sertifikat.
  3. Verifikasi rantai sertifikat hingga akar tepercaya.
  4. Verifikasi bahwa sertifikat daun memiliki pengidentifikasi objek berikut di EKU: "1.3.6.1.4.1.311.10.5.4".
  5. Menghitung hash byte yang menyertakan header dan bagian inti GRL.
  6. Verifikasi bahwa hash cocok dengan tanda tangan dalam sertifikat daun.

Manajer Perlindungan Output

GRL_HEADER

MF_SIGNATURE