2012-12-19 3 views
3

WinXP 이후 Windows DDK (현재 WDK)를 사용하지 않고 커다란 변화가 있음을 눈치 챘습니다.Win7 64 비트 레거시 NT4 드라이버 서명

나는 최신 Win7에 DDK와 (.inf없이 .cat없이) 기존 NT4 필터 드라이버를 개발하고 있어요, 내 환경은 아직도 개발하고 있어요 이후

Windows 7 64bit 
Visual Studio 2010 
WinDDK v7600.16385.1 
VisualDDK plugin for VS (latest version) 

내가,이 드라이버 문제 자체 서명이 있습니다 나는 적절한 WHQL 인증서가 없으므로 (그래서 얻는 법을 모르므로) 온라인에서 찾은 프로 시저를 따르고 있습니다.

@echo off 

set SIGNTOOL="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" 
set MAKECERT="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\makecert.exe" 
set PVK2PFX="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\pvk2pfx.exe" 
set CERTPVK="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.pvk" 
set CERTPFX="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.pfx" 
set CERT="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.cer" 
set DRIVER="C:\Users\myself\Desktop\testdriver\avtxagent\package\avtxagent.sys" 
set CERTSUBJ="mycompanyname (test)" 

del *.cer *.pfx *.pvk 
cls 
%MAKECERT% -r -n "CN=mycompanyname (test)" -sv %CERTPVK% %CERT% 
%PVK2PFX% -pvk %CERTPVK% -spc %CERT% -pfx %CERTPFX% 
pause 
cls 
%SIGNTOOL% sign /v /f %CERTPFX% /t "http://timestamp.verisign.com/scripts/timestamp.dll" %DRIVER% 
pause 
cls 
:: verification 
%SIGNTOOL% verify /pa /v %DRIVER% 

pause 

는 기본적으로 무엇을 내가 뭘하면 서명을 확인하려고 다음 내 드라이버를 체결하고, (나는 이미 한 번만 여전히 같은 문제가 발생 인증서로 시도했다) 증명서 각 시간을 생성합니다. 이 마지막 단계, 검증에서 , 나는이 문제 얻을 :

[SC] CreateService SUCCESS 
[SC] StartService FAILED 577: 

Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source. 
: 내가 설치 한 다음 모두 프로그래밍 및 SC와 기존 드라이버를 시작하려고하면 분명히

SignTool Error: A certificate chain processed, but terminated in a 
       root certificate which is not trusted by the trust provider. 

를, 나는 오류

이 가이드 http://technet.microsoft.com/en-us/library/cc754841.aspx을 따르고 신뢰할 수있는 인증 내에서 인증서를 가져 오는 경우 확인 프로세스가 잘 진행되지만 내가 sc에서 동일한 오류가 발생합니다.

내가 뭘 잘못하고 있니? 그리고 문서가 부족하기 때문에 프로덕션 환경에서 사용할 적절한 인증서를 얻으려면 내가해야 할 일을 누구나 설명 할 수 있습니까?

답변

1

당신은 커널 모드 드라이버에 서명하는 WHQL 서명이 필요하지 않습니다. GlobalSign 또는 Verisign에서 구입 한 코드 서명 인증서가 필요합니다 (다른 사용자는을 사용할 수 없습니다). 이 코드 서명 인증서를 사용하여 드라이버에 서명하십시오. 참고 : cross-certificate from Microsoft도 포함해야합니다.

또는 (디버깅 전용) 테스트 모드에서 시스템을로드 할 수 있습니다.이 모드에서는 서명이 확인되지 않습니다. 이렇게하려면 시스템 부팅 중에 F8 키를 누르고 메뉴에서 해당 옵션을 선택해야합니다.

0

이는 인증서를 생성하는 데 사용하는 개인 CA가 시스템에서 신뢰하지 않기 때문일 수 있습니다. 다음은 관련 찾습니다

http://technet.microsoft.com/en-us/library/dd441378(office.13).aspx

http://technet.microsoft.com/en-us/library/cc754841.aspx

+0

은 변경 신뢰할 수있는 루트 인증 기관 분기 및 아무것도에 .cer 파일을 가져옵니다. –

+0

읽은 내용을 기반으로 시스템이 CA 역할을 수행합니다. CA는 생성 된 인증서를 신뢰할 수 있도록 신뢰해야합니다. 컴퓨터를 신뢰할 수있는 자체 CA로 추가하는 방법을 찾아야합니다. –

+0

.pfx 파일을 사용하면 확인이 잘되지만, sc와 동일한 오류가 발생합니다. –

0

당신은 로컬 컴퓨터 저장소 (일반적으로, certmgr.msc 쇼가 사용자 계정의 저장소가 대신 관리)에 신뢰할 수있는 게시자으로 신뢰할 수있는 루트 인증 기관 및 로 자체 서명 된 인증서 을 설치해야합니다

certmgr.exe -add <your.cer> -s -r localMachine ROOT 
certmgr.exe -add <your.cer> -s -r localMachine TRUSTEDPUBLISHER 

여기서 알 수 있듯이 매번 새로운 인증서를 생성하는 것은 매우 실용적입니다. 차라리 한 번 생성 한 다음 다시 사용하십시오.

(http://winitpro.ru/index.php/2014/05/08/kak-samostoyatelno-podpisat-drajver-dlya-windows-7/의 의례; 같은 효과에 대한 지침 https://technet.microsoft.com/en-us/library/dd919238(v=ws.10).aspx에있다)

관련 문제