Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
Mevcut bir sertifikanız varsa, sertifikayı kullanılabilir hale getirin.
Kuruluşunuzun sertifikası yoksa bir EV sertifikası satın alın.
İ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:
İmzalanacak ikili dosyaları tek bir dizinde toplayın. Bu örnek,
C:\Echoklasörünü kullanır.Yönetici ayrıcalıklarıyla bir Komut İstemi penceresi açın.
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).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.SysCAB dosyasını oluşturmak için aşağıdaki komutu girin:
C:\Echo> MakeCab /f "C:\Echo\Echo.ddfKomutun çıkışı,
MakeCaboluş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/secondAlt dizinde
Disk1CAB 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:
İş Ortağı Merkezi donanım panosuna gidin ve kimlik bilgilerinizle oturum açın.
Yeni donanım gönder'i seçin.
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.
Her iki test imzalama seçeneğini de işaretsiz bırakın (seçili değil).
İstenen İmzalar seçeneği için sürücü paketinize eklenecek imzaları seçin:
Sayfanın alt kısmındaki Gönder'i seçin.
İ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:
Gönderim dosyasını indirdikten sonra sürücü dosyasını ayıklayın.
Yönetici ayrıcalıklarıyla bir Komut İstemi penceresi açın.
Sürücünün beklendiği gibi imzalandığını doğrulamak için aşağıdaki komutu girin:
C:\Echo> SignTool verify Echo.SysDiğ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.SysSürücünün Gelişmiş Anahtar Kullanımlarını (EKU) onaylamak için aşağıdaki adımları tamamlayın:
Windows Gezgini'ni açın ve ikili dosyayı bulun. Dosyaya sağ tıklayın ve Özellikler’i seçin.
Dijital İmzalar sekmesinde, imza listesinde listelenen öğeyi seçin.
Ayrıntılar'ı ve ardından Sertifikayı Görüntüle'yi seçin.
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:
Microsoft SHA-2 gömülü bir imza ekleyin.
Sürücü ikili dosyaları müşteri tarafından kendi sertifikaları ile gömülü olarak imzalanmışsa, imzaları geçersiz kılın.
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:
Yönetici ayrıcalıklarıyla bir Komut İstemi penceresi açın.
Sürücü paketi klasörünüze gidin ve aşağıdaki komutu girin.
C:\Echo> devcon install echo.inf root\ECHOSü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:
Her sürücü için bir alt dizin oluşturun.
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