Jak cyfrowo podpisać 64-bitowy sterownik trybu jądra?

4

Mam sterownik trybu jądra i muszę go zainstalować na 64-bitowej wygranej 7. Musi być podpisany cyfrowo. Podpisałem go cyfrowo za pomocą programu dseo13b.exe. Ale po załadowaniu sterownika pojawia się błąd w dzienniku zdarzeń systemowych

Uruchomienie sterownika nie powiodło się z powodu następującego błędu: Windows nie może   zweryfikuj podpis cyfrowy dla tego pliku. Najnowszy sprzęt lub   zmiana oprogramowania mogła mieć zainstalowany niepoprawnie podpisany plik   lub uszkodzone lub może to być złośliwe oprogramowanie z nieznanego   źródło.

Nie chcę korzystać z trybu podpisywania testu. Jak to rozwiązać? Czy muszę uzyskać certyfikat Microsoft?

Opracowałem sterownik, który teraz działa na komputerze 64-bitowym.

Moja firma może kupić certyfikat od verisign, ale co mam zrobić po uzyskaniu certyfikatu. Jak połączyć plik sterownika z otrzymanym certyfikatem? A także, jak połączyć certyfikat krzyżowy pobrany z Internetu z certyfikatem otrzymanym od verisign? Przeczytałem dokument KMSC_WalkThru (Jak wydać podpisać moduł jądra), ale nie było to jasne. Czy możesz mi pomóc?

Również w jaki sposób uzyskać następujące informacje:

mySPCfile.spc   Your public key certificate file. 
myPVKfile.pvk   Your private key certificate file. 
myPVKpassword   

Hasło do pliku certyfikatu klucza prywatnego. Wspomniany w tutaj

Neha
źródło

Odpowiedzi:

7

Tak, musisz kupić certyfikat od zaufanego certyfikowanego urzędu certyfikacji. Gdyby ktoś mógł wydać certyfikat, byłyby niezliczone certyfikaty, które twierdzą, że są „Microsoft Corporation” i byłoby to niebiańskie wirusy.

Ten dokument, o którym wspomniałeś, był tym, czego nauczyłem się podpisywać sterowniki. Gorąco polecam, abyś odłożył na kilka dni i przeszedł przez nią od początku do końca. Spędziłem przez ten czas dużą część tygodnia.

Wszystko, co mogę zaoferować, to następujący plik wsadowy, który wykonuję z VS2010 w wersji post-build. Używa certyfikatu z magazynu certyfikatów komputera, a nie pliku. Powód jest tak złożony, że używam go w wielu różnych okolicznościach do wielu różnych projektów.

Sign.bat

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Signs the project output.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Usage
:: 
:: Post-build event command line:
:: Call "$(ProjectDir)..\..\Sign.bat" "$(ConfigurationName)" "$(TargetPath)"
:: 
:: Run the post-build event:
:: When the build updates the project output

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Input Parameters
:: 
:: %~1   $(ConfigurationName)    The file's configuration.  This function will
::                               use a different certificate for "Debug"
::                               configurations.
:: %~2   $(TargetPath)           The full path of the first file to sign.
:: %~3+  FileName                The names of the remaining files to sign.
::                               These files must reside in the same directory
::                               as %2.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Validate the parameters.
If "%~1"=="Debug" Exit /B 0
If "%~1"=="" Goto Error
If "%~2"=="" Goto Error
Goto Valid

:Error
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Report that the syntax is incorrect.
Echo One or more parameters are missing.
Echo.
Echo %~nx0 configuration filename1 [filename2 ...]
Echo.
Echo configuration      The project configuration.  Usually "Debug" or "Release".
Echo filename1          The full path of the first file to sign.
Echo filename2          The names of addition files to sign.  These files must
Echo                    reside in the same folder as "filename1".
Echo.
Exit /B 1

:Valid
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Change to the assembly's folder.
%~d2
CD %~dp2

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Prepare the list of files to sign.
Set FileList=
:CreateFileList
Set FileList=%FileList% %~snx2
Shift /2
If Not "%~2"=="" Goto CreateFileList

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Sign the assembly files.
Set Store=my
Set Certificate=type the name of your certificate here
Set TimeStampUrl=http://timestamp.verisign.com/scripts/timestamp.dll
C:\WinDDK\7600.16385.1\bin\x86\SignTool.exe Sign /s "%Store%" /n "%Certificate%" /t "%TimeStampUrl%" %FileList%
If %ErrorLevel%==1 Exit /B 1

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Verify the digital signature is valid.
C:\WinDDK\7600.16385.1\bin\x86\SignTool.exe Verify /pa %FileList%
Hand-E-Food
źródło
ok Dzięki spróbuję tego i powiadomię Cię ..
Neha
2
Najlepsza metoda tutaj. Własny znak ftw.
surfasb