증명 서명 Windows 드라이버
이 문서에서는 증명 서명을 사용하여 드라이버에 서명하는 방법을 설명합니다. 증명 서명에 대한 자세한 내용 및 요구 사항은 Windows 10 증명 서명 드라이버를 참조 하세요.
Important
2023년 3월 1일부터 소매 고객을 대상으로 하는 증명 서명 드라이버가 더 이상 Windows 업데이트 게시되지 않습니다. CoDev 또는 테스트 레지스트리 키/Surface SSRK 옵션을 선택할 때 테스트 시나리오에 대한 증명 서명된 드라이버는 계속 지원됩니다.
필수 조건
Windows 10 증명 서명 드라이버에 대한 요구 사항을 읽고 이해합니다.
하드웨어 개발자 프로그램에 등록합니다. 아직 등록되지 않은 경우 Microsoft Windows 하드웨어 개발자 프로그램에 등록하는 방법의 단계를 따릅니다.
EV(확장 유효성 검사) 코드 서명 인증서가 있어야 합니다. 조직에 이미 코드 서명 인증서가 있는지 확인합니다. 회사에 인증서가 이미 있는 경우 인증서를 사용할 수 있습니다. 조직에 인증서가 없는 경우 EV 인증서를 구매해야 합니다.
Windows 10용 다운로드 키트 및 도구에 설명된 프로세스를 따라 WDK(Windows 드라이버 키트)를 다운로드하고 설치합니다.
(선택 사항) 이 문서에 사용되는 에코 드라이버 샘플을 다운로드합니다.
CAB 파일 만들기
이 섹션에서는 CAB 파일 제출을 만드는 프로세스를 단계별로 안내합니다. 에코 드라이버 샘플을 사용하여 프로세스를 설명합니다.
일반적인 CAB 파일 제출에는 다음이 포함되어야 합니다.
드라이버 자체(예: Echo.sys
서명 프로세스를 용이하게 하기 위해 대시보드에서 사용하는 드라이버 INF 파일입니다.
정보를 디버깅하는 데 사용되는 기호 파일입니다. 예를 들어 Echo.pdb입니다. .pdb 파일은 Microsoft의 자동화된 크래시 분석 도구에 필요합니다.
카탈로그 .CAT 파일은 필수이며 회사 확인에만 사용됩니다. Microsoft는 카탈로그 파일을 다시 생성하고 제출된 카탈로그 파일을 대체합니다.
참고 항목
CAB 파일의 각 드라이버 폴더는 동일한 아키텍처 집합을 지원해야 합니다. 예를 들어 x86, x64를 지원하거나 모두 x86 및 x64를 모두 지원해야 합니다.
드라이버 위치(\\\server\share
)를 참조할 때 UNC 파일 공유 경로를 사용하지 마세요. CAB가 유효하려면 매핑된 드라이브 문자를 사용해야 합니다.
CAB 파일을 만들려면 다음을 수행합니다.
단일 디렉터리에 로그인할 이진 파일을 수집합니다. 이 예시에서는
C:\\Echo
를 사용합니다.관리자 권한으로 명령 프롬프트 창을 엽니다.
MakeCab 옵션을 보려면 다음을 입력
MakeCab /?
합니다.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).
cab 파일 DDF 입력 파일을 준비합니다. Echo 드라이버의 경우 다음과 같이 표시될 수 있습니다.
;*** 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
다음 명령을 입력하여 CAB 파일을 만듭니다.
C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
MakeCab의 출력은 생성된 CAB 파일의 파일 수를 표시해야 합니다. 이 경우 두 개의 파일이 있어야 합니다.
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
하위 디렉터리에서
Disk1
CAB 파일을 찾습니다. 파일 탐색기 CAB 파일을 선택하여 예상 파일이 포함되어 있는지 확인할 수 있습니다.
EV 인증서를 사용하여 CAB 파일 서명
EV 인증서를 사용하여 CAB 파일에 서명하려면 EV 인증서 공급자가 권장하는 프로세스를 사용합니다. 예를 들어 SHA256 인증서/다이제스트 알고리즘/타임스탬프를 사용하여 CAB 파일에 서명하려면 다음 명령을 입력합니다.
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"
Important
업계 모범 사례를 사용하여 EV 코드 서명 프로세스의 보안을 관리해야 합니다.
파트너 센터를 사용하여 EV 서명된 Cab 파일 제출
파트너 센터 하드웨어 대시보드로 이동하여 자격 증명을 사용하여 로그인합니다.
새 하드웨어 제출을 선택합니다.
패키지 및 서명 속성 섹션에서 드라이버 제출의 제품 이름을 입력합니다. 이 이름은 드라이버 제출을 검색하고 구성하는 데 사용할 수 있습니다.
참고 항목
드라이버를 다른 회사와 공유하는 경우 이 이름이 표시됩니다.
두 테스트 서명 옵션을 모두 선택 취소된 상태로 둡니다.
요청된 서명의 경우 드라이버 패키지에 포함할 서명을 선택합니다.
페이지 아래로 이동하고 제출을 선택합니다.
서명 프로세스가 완료되면 하드웨어 대시보드에서 서명된 드라이버를 다운로드합니다.
드라이버가 제대로 서명되었는지 확인
드라이버가 제대로 서명되었는지 확인하려면 다음 단계를 완료합니다.
제출 파일을 다운로드한 후 드라이버 파일을 추출합니다.
관리자 권한으로 명령 프롬프트 창을 엽니다.
다음 명령을 입력하여 드라이버가 예상대로 서명되었는지 확인합니다.
C:\Echo> SignTool verify Echo.Sys
추가 정보를 나열하고 SignTool이 여러 서명이 있는 파일의 모든 서명을 확인하도록 하려면 다음 명령을 입력합니다.
C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
드라이버의 EKU를 확인하려면 다음 단계를 완료합니다.
Windows 탐색기를 열고 이진 파일을 찾습니다. 파일을 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 속성을 선택합니다.
디지털 서명 탭의 서명 목록에서 나열된 항목을 선택합니다.
세부 정보를 선택한 다음 인증서 보기를 선택합니다.
세부 정보 탭에서 향상된 키 사용을 선택합니다.
대시보드에서 드라이버를 사임하면 다음 프로세스가 사용됩니다.
- Microsoft SHA2 포함된 서명을 추가합니다.
- 드라이버 이진 파일이 고객이 자체 인증서로 서명한 경우 해당 서명을 덮어쓰지 않습니다.
- SHA2 Microsoft 인증서를 사용하여 새 카탈로그 파일을 만들고 서명합니다. 이 카탈로그는 고객이 제공하는 기존 카탈로그를 대체합니다.
Windows에서 드라이버 테스트
다음 지침을 사용하여 샘플 드라이버를 설치합니다.
관리자 권한으로 명령 프롬프트 창을 엽니다. 드라이버 패키지 폴더로 이동하여 다음 명령을 입력합니다.
C:\Echo> devcon install echo.inf root\ECHO
드라이버 설치 프로세스에 "Windows에서 이 드라이버 소프트웨어의 게시자를 확인할 수 없습니다."가 표시되지 않는지 확인합니다. Windows 보안 대화 상자.
여러 드라이버를 사용하여 제출 만들기
동시에 여러 드라이버를 제출하려면 다음을 수행합니다.
각 드라이버에 대한 하위 디렉터리를 만듭니다.
하위 디렉터리를 참조하는 CAB 파일 DDF 입력 파일을 준비합니다. 다음과 비슷하게 표시될 수 있습니다.
;*** 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