공개 릴리스용 드라이버 서명
드라이버 패키지를 일반에 릴리스하기 전에 인증을 위해 패키지를 제출하는 것이 좋습니다. 자세한 내용은 Windows 하드웨어 인증 및 [하드웨어 대시보드 서비스](.를 참조하세요. /dashboard/index.md. 인증을 위해 드라이버 패키지를 제출하려면 VeriSign과 같은 신뢰할 수 있는 인증 기관에서 가져온 인증서를 사용하여 패키지에 서명해야 합니다. 자세한 내용은 VeriSign 인증서 가져오기를 참조 하세요. Microsoft에서 제공하는 교차 인증서도 필요합니다.
Verisign에서 PVK(프라이빗 키 파일) 및 SPC(소프트웨어 게시 인증서)라는 파일 쌍을 얻었다고 가정합니다. 또한 MyDriver라는 드라이버 프로젝트와 MyDriver Package라는 드라이버 패키지 프로젝트가 포함된 Microsoft Visual Studio 솔루션이 있다고 가정합니다. 드라이버 패키지에 서명하려면 다음 단계를 수행합니다.
Pvk2Pfx 도구를 사용하여 PFX(개인 정보 교환) 인증서를 만듭니다. Pvk2Pfx 도구는 PVK 및 SPC 파일을 입력으로 사용하고 단일 PFX 파일을 만듭니다. 이 연습에서는 PFX 파일의 이름이 MyCert.pfx라고 가정합니다.
참고 PFX 파일을 만든 후에는 다른 드라이버 프로젝트 및 다른 드라이버 개발 컴퓨터에 다시 사용할 수 있습니다.
필요한 교차 인증서를 확인하려면 커널 모드 코드 서명에 대한 인증서 간을 참조하세요. 필요한 교차 인증서가 $(BASEDIR)\CrossCertificates에 있는지 확인합니다. 여기서 $(BASEDIR)는 Windows 키트의 기본 디렉터리입니다(예: c:\Program Files (x86)\Windows Kits\8.0\CrossCertificates). 필요한 교차 인증서가 없는 경우 Microsoft에서 교차 인증서를 다운로드하고 $(BASEDIR)\CrossCertificates에 복사합니다.
Visual Studio에서 MyDriver 및 MyDriver 패키지 프로젝트가 포함된 솔루션을 엽니다. 솔루션 탐색기 창이 아직 열려 있지 않으면 보기 메뉴에서 솔루션 탐색기 선택합니다. 솔루션 탐색기 창에서 패키지 프로젝트인 MyDriver 패키지를 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 속성을 선택합니다.
패키지의 속성 페이지에서 구성 속성 > 드라이버 서명 > 일반으로 이동합니다. 서명 모드 드롭다운 목록에서 프로덕션 로그를 선택합니다. 프로덕션 인증서의 경우 다음 중 하나를 수행합니다.
서명 인증서의 경로(예: c:\Certs\MyCert.pfx)를 입력합니다.
파일에서 선택을 선택하고 서명 인증서로 이동합니다.
스토어에서 선택을 선택하고 이전에 인증서 저장소로 가져온 인증서를 선택합니다.
참고 인증서를 저장소로 가져오려면 인증서 파일(PFX 파일)을 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) PFX 설치를 선택합니다. 인증서 가져오기 마법사의 지침을 따릅니다.
참고 나중에 다른 인증서를 사용하기로 결정한 경우 새 인증서를 인증서 저장소로 가져와야 합니다. 파일에서 선택을 선택하고 새 인증서로 이동하면 새 인증서가 인증서 저장소로 자동으로 가져옵니다. 그러나 새 인증서의 경로를 수동으로 입력하면 인증서 저장소로 자동으로 가져오지 않습니다. 이 경우 새 인증서 파일을 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) PFX 설치를 선택해야 합니다.
드라이버 서명 > 일반 속성 페이지의 TimeStampServer에 대한 드롭다운 목록에서 타임스탬프 서버 중 하나를 선택합니다.
참고 드롭다운 목록에서 타임스탬프를 사용하려면 드라이버 패키지를 빌드할 때 인터넷에 연결해야 합니다. 드라이버 패키지를 빌드할 때 인터넷에서 연결을 끊어야 하는 경우 TimeStampServer 필드를 지웁니다.
패키지의 속성 페이지에서 구성 속성 > Inf2Cat > 일반으로 이동합니다. Inf2Cat 실행 드롭다운 목록에서 예를 선택합니다.
패키지의 속성 페이지를 닫습니다.
드라이버 프로젝트 MyDriver를 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 속성을 선택합니다 .
드라이버의 속성 페이지에서 구성 속성 > 드라이버 서명 > 일반으로 이동합니다. TimeStampServer를 드라이버 패키지 속성에서 사용한 것과 동일한 값으로 설정합니다. 서명 모드를 프로덕션 서명으로 설정하고 프로덕션 인증서를 드라이버 패키지 속성에서 사용한 것과 동일한 값으로 설정합니다.
드라이버 패키지를 빌드할 준비가 되면 F5 키를 누릅니다. Visual Studio는 패키지 및 드라이버 파일에 자동으로 서명합니다. 배포를 구성한 경우 Visual Studio는 서명된 드라이버 패키지를 테스트 컴퓨터에도 배포합니다. 자세한 내용은 드라이버 배포 및 테스트를 위한 컴퓨터 프로비전(WDK 8.1)을 참조하세요.
드라이버 패키지 파일 보기
솔루션을 빌드한 후 파일 탐색기 드라이버 패키지가 포함된 폴더로 이동합니다. 패키지의 파일 중 하나는 카탈로그 파일입니다. 카탈로그 파일에는 패키지의 디지털 서명이 포함되어 있습니다. 서명된 패키지의 파일을 보는 예제는 템플릿을 기반으로 KMDF 드라이버 작성을 참조하세요.
WHQL 릴리스 서명 가져오기
드라이버 패키지가 인증 테스트를 통과하면 Windows WHQL(하드웨어 품질 랩)에서 서명할 수 있습니다. 드라이버 패키지가 WHQL로 서명된 경우 Windows 업데이트 프로그램 또는 기타 Microsoft 지원 배포 메커니즘을 통해 배포할 수 있습니다.
Windows 10, 8.1, 8 및 7에 설치하려면 드라이버 패키지에 단일 SHA1 서명이 있을 수 있습니다.
Windows 10부터 Windows 하드웨어 개발자 센터 대시보드 포털에서 디지털 서명을 위해 새 Windows 10 커널 모드 드라이버를 제출해야 합니다. 커널 및 사용자 모드 드라이버 제출 모두 유효한 확장 유효성 검사("EV") 코드 서명 인증서가 있어야 합니다.
** 참고 ** SHA1 사용 중단은 드라이버에 적용되지 않습니다.
개별 드라이버 파일 서명과 비교하여 패키지 서명
드라이버 패키지에는 여러 파일이 포함되어 있습니다. 일반적으로 드라이버 패키지에는 하나 이상의 드라이버 파일, 정보 파일(INF 파일) 및 카탈로그 파일이 있습니다. 카탈로그 파일에는 패키지의 다른 파일에 대한 정보가 포함되어 있습니다. 카탈로그 파일에 서명하면 카탈로그 파일의 서명이 전체 드라이버 패키지에 대한 서명 역할을 합니다. 즉, 카탈로그 파일에 서명하는 것은 드라이버 패키지에 서명하는 것과 같습니다.
대부분의 경우 드라이버 패키지에 서명하는 것으로 충분하며 개별 드라이버 파일에 서명할 필요가 없습니다. 그러나 패키지와 개별 드라이버 파일 모두에 서명해야 하는 경우도 있습니다. 예를 들어 부팅 시작 드라이버 파일은 개별적으로 서명되어야 합니다. 개별 드라이버 파일에 서명하는 것은 드라이버 파일에 서명을 포함하는 것이라고 합니다.
MyDriver라는 드라이버 프로젝트와 MyDriver 패키지라는 드라이버 패키지 프로젝트가 포함된 Visual Studio 솔루션이 있다고 가정합니다. Visual Studio는 두 개의 속성 페이지 집합을 제공합니다. 하나는 내 드라이버용이고 다른 하나는 내 드라이버 패키지용입니다. 드라이버 패키지에 서명하려면 내 드라이버 패키지의 드라이버 서명 속성을 설정합니다. 개별 드라이버 파일에 서명을 포함하려면 내 드라이버의 드라이버 서명 속성을 설정합니다.
프로덕션 서명에 대한 드라이버 패키지 속성을 설정할 때는 개별 드라이버 파일의 서명 속성을 적절하게 조정해야 합니다. 개별 드라이버 파일에 대한 서명을 해제하거나 패키지에 대해 지정한 것과 동일한 인증서를 사용하도록 개별 드라이버 파일을 설정합니다.
참고 인증서의 해시(지문이라고도 함)를 보려면 명령 프롬프트 창을 열고 인증서가 포함된 디렉터리로 이동합니다. certName.pfx가 인증서의 이름인 certutil -dump CertName.pfx 명령을 입력합니다.