증명 기호 Windows 10+ 드라이버

이 문서에서는 증명 서명을 사용하여 드라이버에 서명하는 방법을 설명합니다. 증명 서명에 대한 자세한 내용 및 요구 사항은 Windows 10 증명 서명 드라이버를 참조하세요.

중요

2023년 3월 1일부터 소매 고객을 대상으로 하는 증명 서명된 드라이버는 더 이상 Windows 업데이트 게시되지 않습니다. 테스트 시나리오에 대한 증명 서명된 드라이버는 CoDev 또는 테스트 레지스트리 키/Surface SSRK 옵션을 선택할 때 계속 지원됩니다.

사전 요구 사항

CAB 파일 만들기

이 섹션에서는 CAB 파일 제출을 만드는 프로세스를 단계별로 안내합니다. 프로세스를 설명하기 위해 에코 드라이버 샘플을 사용합니다.

일반적인 CAB 파일 제출에는 다음이 포함되어야 합니다.

  • 드라이버 자체(예: Echo.sys

  • 서명 프로세스를 용이하게 하기 위해 dashboard 사용하는 드라이버 INF 파일입니다.

  • 정보를 디버깅하는 데 사용되는 기호 파일입니다. 예를 들어 Echo.pdb입니다. .pdb 파일은 Microsoft의 자동화된 크래시 분석 도구에 필요합니다.

  • 카탈로그 .CAT 파일은 필수이며 회사 확인에만 사용됩니다. Microsoft는 카탈로그 파일을 다시 생성하고 제출된 카탈로그 파일을 대체합니다.

참고

CAB 파일의 각 드라이버 폴더는 동일한 아키텍처 집합을 지원해야 합니다. 예를 들어 x86, x64를 지원하거나 모두 x86 및 x64를 모두 지원해야 합니다.

드라이버 위치(\\\server\share)를 참조할 때 UNC 파일 공유 경로를 사용하지 마세요. CAB가 유효하려면 매핑된 드라이브 문자를 사용해야 합니다.

CAB 파일을 만들려면 다음을 수행합니다.

  1. 단일 디렉터리에 로그인할 이진 파일을 수집합니다. 이 예제에서는 를 사용합니다 C:\\Echo.

  2. 관리자 권한으로 명령 프롬프트 창을 엽니다.

  3. 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).
    
  4. cab 파일 DDF 입력 파일을 준비합니다. 에코 드라이버의 경우 다음과 같이 보일 수 있습니다.

    ;*** 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 파일을 만들려면 다음을 입력합니다.

    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
    
  6. 하위 디렉터리에서 Disk1 CAB 파일을 찾습니다. 파일 탐색기 CAB 파일을 선택하여 예상되는 파일이 포함되어 있는지 확인할 수 있습니다.

EV 인증서로 CAB 파일 서명

  1. EV 인증서 공급자가 권장하는 프로세스를 사용하여 EV 인증서로 CAB 파일에 서명합니다. 예를 들어 SHA256 인증서/다이제스트 알고리즘/타임스탬프를 사용하여 CAB 파일에 서명하려면 다음 명령을 입력합니다.

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

    중요

    업계 모범 사례를 사용하여 EV 코드 서명 프로세스의 보안을 관리해야 합니다.

파트너 센터를 사용하여 EV 서명된 Cab 파일 제출

  1. 파트너 센터 하드웨어 dashboard 이동하여 자격 증명을 사용하여 로그인합니다.

  2. 새 하드웨어 제출을 선택합니다.

    제출된 하드웨어 목록의 스크린샷

  3. 패키지 및 서명 속성 섹션에서 드라이버 제출의 제품 이름을 입력합니다. 이 이름은 드라이버 제출을 검색하고 구성하는 데 사용할 수 있습니다.

    참고

    드라이버를 다른 회사와 공유하는 경우 이 이름이 표시됩니다.

  4. 두 테스트 서명 옵션을 모두 선택 취소된 상태로 둡니다.

  5. 요청된 서명의 경우 드라이버 패키지에 포함할 서명을 선택합니다.

    서명에 대한 에코 드라이버를 제출하는 옵션을 보여 주는 스크린샷

  6. 페이지 아래로 이동하고 제출을 선택합니다.

  7. 서명 프로세스가 완료되면 하드웨어 dashboard 서명된 드라이버를 다운로드합니다.

드라이버가 제대로 서명되었는지 확인

드라이버가 제대로 서명되었는지 확인하려면 다음 단계를 완료합니다.

  1. 제출 파일을 다운로드한 후 드라이버 파일을 추출합니다.

  2. 관리자 권한으로 명령 프롬프트 창을 엽니다.

  3. 다음 명령을 입력하여 드라이버가 예상대로 서명되었는지 확인합니다.

    C:\Echo> SignTool verify Echo.Sys
    
  4. 추가 정보를 나열하고 signtool에서 여러 서명이 있는 파일의 모든 서명을 확인하려면 다음 명령을 입력합니다.

     C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
    
  5. 드라이버의 EKU를 확인하려면 다음 단계를 완료합니다.

    1. Windows Explorer 열고 이진 파일을 찾습니다. 파일을 선택하고 길게 누르거나 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

    2. 디지털 서명 탭의 서명 목록에서 나열된 항목을 선택합니다.

    3. 세부 정보를 선택한 다음 인증서 보기를 선택합니다.

    4. 세부 정보 탭에서 향상된 키 사용을 선택합니다.

드라이버가 dashboard 사임하면 다음 프로세스가 사용됩니다.

  • Microsoft SHA2 포함된 서명을 추가합니다.
  • 고객이 자체 인증서로 서명한 드라이버 이진 파일이 포함된 경우 해당 서명을 덮어쓰지 않습니다.
  • SHA2 Microsoft 인증서를 사용하여 새 카탈로그 파일을 만들고 서명합니다. 이 카탈로그는 고객이 제공하는 기존 카탈로그를 대체합니다.

Windows 10 드라이버 테스트

다음 지침을 사용하여 샘플 드라이버를 설치합니다.

  1. 관리자 권한으로 명령 프롬프트 창을 엽니다. 드라이버 패키지 폴더로 이동하여 다음 명령을 입력합니다.

    C:\Echo> devcon install echo.inf root\ECHO
    
  2. 드라이버 설치 프로세스에 "Windows에서 이 드라이버 소프트웨어의 게시자를 확인할 수 없습니다."가 표시되지 않는지 확인합니다. Windows 보안 대화 상자.

여러 드라이버를 사용하여 제출 만들기

여러 드라이버를 동시에 제출하려면 다음을 수행합니다.

  1. 아래와 같이 각 드라이버에 대한 하위 디렉터리를 만듭니다.

    예제 드라이버 서명 디렉터리 구조를 보여 주는 다이어그램

  2. 하위 디렉터리를 참조하는 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