Aracılığıyla paylaş


Windows sürücüleri için doğrulama imzası

Bu makalede, onay imzalama kullanarak bir sürücünün nasıl imzalanacağı açıklanır.

Uyarı

Perakende hedef kitlelerini hedefleyen kanıtlama imzalı sürücüler Windows Update'da yayımlanmaz. CoDev veya Test Kayıt Defteri Anahtarı / Surface SSRK seçenekleriyle senaryoları test ederken attestasyon imzalı sürücüler için destek devam etmektedir.

Önkoşullar

  • Test senaryoları için kanıtlama imzalı sürücülerin gereksinimlerini okuyun ve anlayın.

  • Donanım Geliştirici Programı'na kaydolun. Kayıtlı değilseniz, Microsoft Windows Donanım Geliştirici Programı için Register içindeki adımları izleyin.

  • Genişletilmiş doğrulama (EV) kod imzalama sertifikanız olmalıdır. Kuruluşunuzun zaten bir kod imzalama sertifikası olup olmadığını denetleyin.

  • İndirme ve Windows ADK bölümünde açıklanan işlemi izleyerek Windows Değerlendirme ve Dağıtım Seti'ni (Windows ADK) indirip yükleyin.

  • (İsteğe bağlı) GitHub'da bulunan bu makalede kullanılan Echo sürücü örneğini indirin.

CAB dosyasını oluşturma

Aşağıdaki yordam, adımları göstermek için Echo sürücü örneği kullanarak bir CAB dosyaları gönderimi oluşturur.

Tipik bir CAB dosyası gönderimi aşağıdaki bileşenleri içermelidir:

  • Sürücünün kendisi (örneğin, Echo.sys).

  • Gösterge tablosu tarafından kullanılan sürücü INF (.inf) dosyası, imzalama işlemini kolaylaştırır.

  • Echo.pdb gibi hata ayıklama bilgileri için kullanılan sembol dosyası. Microsoft'un otomatik kilitlenme çözümleme araçları için .pdb dosyası gereklidir.

  • Katalog (.cat) dosyaları gereklidir ve yalnızca şirket doğrulaması için kullanılır. Microsoft katalog dosyalarını yeniden oluşturur ve daha önce gönderilen tüm katalog dosyalarını değiştirir.

Uyarı

CAB dosyanızdaki her sürücü klasörü aynı mimari kümesini desteklemelidir. Örneğin, x86, x64'i desteklemeli veya tümü hem x86 hem de x64'i desteklemelidir.

Sürücü konumlarınıza (\server\share) başvururken UNC dosya paylaşımı yollarını kullanmayın. CAB dosyasının doğru şekilde çalışabilmesi için eşlenmiş bir sürücü harfi kullanmanız gerekir.

CAB dosyasını oluşturmak için şu adımları izleyin:

  1. İmzalanacak ikili dosyaları tek bir dizinde toplayın. Bu örnek, C:\Echo klasörünü kullanır.

  2. Yönetici ayrıcalıklarıyla bir Komut İstemi penceresi açın.

  3. MakeCab /? Komut seçeneklerini görmek için komutunu girin:

    C:\Echo> MakeCab /?
    Cabinet Maker - Lossless Data Compression Tool
    
    MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
    MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]
    
    source         File to compress.
    destination    File name to give compressed file. If omitted, the
                   last character of the source file name is replaced
                   with an underscore (_) and used as the destination.
    /F directives  A file with MakeCAB directives (may be repeated). Refer to
                   Microsoft Cabinet SDK for information on directive_file.
    /D var=value   Defines variable with specified value.
    /L dir         Location to place destination (default is current directory).
    /V[n]          Verbosity level (1..3).
    
  4. BIR CAB dosyası cihaz açıklama çerçevesi (DDF) giriş dosyası hazırlayın. Bu örnekteki Echo sürücüsü için giriş aşağıdaki koda benzer olabilir:

    ;*** Echo.ddf example
    ;
    .OPTION EXPLICIT     ; Generate errors
    .Set CabinetFileCountThreshold=0
    .Set FolderFileCountThreshold=0
    .Set FolderSizeThreshold=0
    .Set MaxCabinetSize=0
    .Set MaxDiskFileCount=0
    .Set MaxDiskSize=0
    .Set CompressionType=MSZIP
    .Set Cabinet=on
    .Set Compress=on
    ;Specify file name for new cab file
    .Set CabinetNameTemplate=Echo.cab
    ; Specify the subdirectory for the files.
    ; Your cab file should not have files at the root level,
    ; and each driver package must be in a separate subfolder.
    .Set DestinationDir=Echo
    ;Specify files to be included in cab file
    C:\Echo\Echo.Inf
    C:\Echo\Echo.Sys
    
  5. CAB dosyasını oluşturmak için aşağıdaki komutu girin:

    C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
    

    Komutun çıkışı, MakeCab oluşturulan CAB dosyasındaki dosya sayısını göstermelidir. Bu durumda, iki dosya olmalıdır.

    C:\Echo> MakeCab /f Echo.ddf
    Cabinet Maker - Lossless Data Compression Tool
    
    17,682 bytes in 2 files
    Total files:              2
    Bytes before:        17,682
    Bytes after:          7,374
    After/Before:            41.70% compression
    Time:                     0.20 seconds ( 0 hr  0 min  0.20 sec)
    Throughput:              86.77 Kb/second
    
  6. Alt dizinde Disk1 CAB dosyasını bulun. Beklenen dosyaları içerdiğini doğrulamak için Dosya Gezgini'nde CAB dosyasını seçebilirsiniz.

CAB dosyasını EV sertifikanızla imzalama

Sonraki adım, CAB dosyasını EV sertifikanızla imzalamaktır.

EV sertifika sağlayıcınız tarafından önerilen işlemi kullanın. Örneğin, CAB dosyanızı sha256 zaman damgasıyla imzalamak için aşağıdaki komutu girin:

C:\Echo> SignTool sign /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"

Önemli

EV kod imzalama işleminin güvenliğini yönetmek için sektörün en iyi yöntemlerini kullanmayı unutmayın.

EV imzalı CAB dosyasını İş Ortağı Merkezi'nde gönderme

CAB dosyasını imzaladıktan sonra, dosyayı İş Ortağı Merkezi'nde göndermeye hazırsınız demektir:

  1. İş Ortağı Merkezi donanım panosuna gidin ve kimlik bilgilerinizle oturum açın.

  2. Yeni donanım gönder'i seçin.

    Donanım gönderimleri listesinin ekran görüntüsü.

  3. Paketler ve imzalama özellikleri bölümünde, sürücü gönderiminiz için bir ürün adı girin. Sürücü gönderimlerinizi aramak ve düzenlemek için bu adı kullanın.

    Uyarı

    Sürücünüzü başka bir şirketle paylaştığınızda ad görünür.

  4. Her iki test imzalama seçeneğini de işaretsiz bırakın (seçili değil).

  5. İstenen İmzalar seçeneği için sürücü paketinize eklenecek imzaları seçin:

    İmzalama için Echo sürücüsünü gönderme seçeneklerini gösteren ekran görüntüsü.

  6. Sayfanın alt kısmındaki Gönder'i seçin.

  7. İmzalama işlemi tamamlandıktan sonra, imzalı sürücünüzü donanım panosundan indirin.

Sürücünün düzgün imzalandığını doğrulama

Sürücünüzün bu adımları izleyerek doğru bir şekilde imzalandığını onaylayın:

  1. Gönderim dosyasını indirdikten sonra sürücü dosyasını ayıklayın.

  2. Yönetici ayrıcalıklarıyla bir Komut İstemi penceresi açın.

  3. Sürücünün beklendiği gibi imzalandığını doğrulamak için aşağıdaki komutu girin:

    C:\Echo> SignTool verify Echo.Sys
    
  4. Diğer bilgileri listelemek ve SignTool'un birden çok imzaya sahip bir dosyadaki tüm imzaları doğrulamasını sağlamak için aşağıdaki komutu girin:

     C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
    
  5. Sürücünün Gelişmiş Anahtar Kullanımlarını (EKU) onaylamak için aşağıdaki adımları tamamlayın:

    1. Windows Gezgini'ni açın ve ikili dosyayı bulun. Dosyaya sağ tıklayın ve Özellikler’i seçin.

    2. Dijital İmzalar sekmesinde, imza listesinde listelenen öğeyi seçin.

    3. Ayrıntılar'ı ve ardından Sertifikayı Görüntüle'yi seçin.

    4. Ayrıntılar sekmesinde Gelişmiş Anahtar Kullanımı'nı seçin.

Sürücü, sürücüyü devre dışı bırakırken aşağıdaki işlemi kullanır:

  1. Microsoft SHA-2 gömülü bir imza ekleyin.

  2. Sürücü ikili dosyaları müşteri tarafından kendi sertifikaları ile gömülü olarak imzalanmışsa, imzaları geçersiz kılın.

  3. SHA-2 Microsoft sertifikasıyla yeni bir katalog dosyası oluşturun ve imzalayın. Katalog, müşteri tarafından sağlanan mevcut katalogların yerini alır.

Sürücünüzü Windows'de test edin

Örnek sürücüyü yükleyin ve Windows üzerinde test edin:

  1. Yönetici ayrıcalıklarıyla bir Komut İstemi penceresi açın.

  2. Sürücü paketi klasörünüze gidin ve aşağıdaki komutu girin.

    C:\Echo> devcon install echo.inf root\ECHO
    
  3. Sürücü yükleme işleminin şu hata iletisini göstermediğini onaylayın: "Windows bu sürücü yazılımının yayımcısını doğrulayamaz."

Birden fazla sürücüyle gönderi oluştur

Aşağıdaki adımları izleyerek aynı anda birden çok sürücü gönderin:

  1. Her sürücü için bir alt dizin oluşturun.

    Örnek bir sürücü imzalama dizini yapısını gösteren diyagram.

  2. Alt dizinlere başvuran bir CAB dosyası DDF giriş dosyası hazırlayın. Bu örnekte giriş aşağıdaki koda benzer olabilir:

    ;*** Submission.ddf multiple driver example
    ;
    .OPTION EXPLICIT     ; Generate errors
    .Set CabinetFileCountThreshold=0
    .Set FolderFileCountThreshold=0
    .Set FolderSizeThreshold=0
    .Set MaxCabinetSize=0
    .Set MaxDiskFileCount=0
    .Set MaxDiskSize=0
    .Set CompressionType=MSZIP
    .Set Cabinet=on
    .Set Compress=on
    ;Specify file name for new cab file
    .Set CabinetNameTemplate=Echo.cab
    ;Specify files to be included in cab file
    ; First Driver
    .Set DestinationDir=DriverPackage1
    C:\DriverFiles\DriverPackage1\Driver1.sys
    C:\DriverFiles\DriverPackage1\Driver1.inf
    ; Second driver
    .Set DestinationDir=DriverPackage2
    C:\DriverFiles\DriverPackage2\Driver2.sys
    C:\DriverFiles\DriverPackage2\Driver2.inf