다음을 통해 공유


SetupAPI를 사용하여 드라이버 Authenticode 서명 확인

다음 절차를 사용하여 드라이버 패키지에 유효한 Authenticode 디지털 서명이 있는지 확인할 수 있습니다. 이러한 절차는 Microsoft Windows Server 2003부터 지원됩니다.

드라이버에 유효한 Authenticode 서명이 있는지 확인하려면

DNF_AUTHENTICODE_SIGNED 플래그를 확인합니다.

드라이버 패키지에 유효한 Authenticode 서명이 있는 경우 Windows는 드라이버 노드의 SP_DRVINSTALL_PARAMS 구조의 Flags 멤버에서 이 플래그를 설정합니다. 또한 드라이버에 WHQL 릴리스 서명이 있거나, 시스템에서 제공하는 드라이버이거나, Authenticode 서명이 있는 경우 Windows에서 DNF_INF_IS_SIGNED 플래그를 설정합니다.

INF 파일에 유효한 Authenticode 서명이 있는지 확인하려면

  1. SetupVerifyInfFile을 호출합니다.

  2. 함수에서 반환된 오류 코드를 확인합니다.

    INF 파일이 시스템에 제공되지 않고 유효한 WHQL 디지털 서명이 없지만 유효한 Authenticode 서명이 있는 경우 SetupVerifyInfFileFALSE 를 반환하고 GetLastError 는 다음 오류 코드 중 하나를 반환합니다.

    ERROR_AUTHENTICODE_TRUSTED_PUBLISHER
    게시자의 인증서가 신뢰할 수 있는 게시자 인증서 저장소에 설치되어 있으므로 게시자가 신뢰할 수 있음을 나타냅니다.

    ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED
    게시자의 서명 인증서가 신뢰할 수 있는 게시자 인증서 저장소에 설치되어 있지 않으므로 트러스트를 자동으로 설정할 수 없음을 나타냅니다. 그러나 반드시 오류를 나타내는 것은 아닙니다. 대신 호출자가 게시자에 대한 신뢰를 설정하기 위해 호출자별 정책을 적용해야 했음을 나타냅니다.

INF 파일에 유효한 Authenticode 서명이 있는 경우 SetupVerifyInfFile 은 SP_INF_SIGNER_INFO 출력 구조에서 다음 정보도 반환합니다.

  • DigitalSigner 멤버는 서명자의 이름으로 설정됩니다.

  • CatalogFile 멤버는 해당 서명된 카탈로그 파일의 전체 경로로 설정됩니다.

그러나 SetupVerifyInfFileDigitalSignerVersion 멤버의 버전을 반환하지 않습니다.

파일에 유효한 Authenticode 서명이 있는지 확인하려면

SPQ_SCAN_USE_CALLBACK_SIGNERINFO 플래그를 사용하여 SetupAPI 함수 SetupScanFileQueue 를 호출합니다.

SetupScanFileQueue 는 호출자의 콜백 루틴에 SPFILENOTIFY_QUEUESCAN_SIGNERINFO 요청을 보내고 포인터를 FILEPATHS_SIGNERINFO 구조체에 전달합니다. 파일이 유효한 Authenticode 서명으로 서명된 경우 함수는 파일의 콜백 루틴을 호출하기 전에 오류 코드를 적절한 ERROR_AUTHENTICODE_Xxx 값으로 설정합니다. 또한 함수는 FILEPATHS_SIGNERINFO 구조에서 다음 정보를 설정합니다.

  • DigitalSigner 멤버는 서명자의 이름으로 설정됩니다.

  • CatalogFile 멤버는 해당 서명된 카탈로그 파일의 전체 경로로 설정됩니다.

그러나 버전 멤버에서 버전이 설정되지 않았습니다.

SetupScanFileQueue 는 이 항목의 앞부분에서 SetupVerifyInfFile에 대해 설명한 것과 동일한 방식으로 ERROR_AUTHENTICODE_Xxx 오류 코드를 설정합니다.