정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

SignTool

SignTool(Signtool.exe)은 파일을 디지털 서명하고, 파일의 서명을 검증하고, 파일을 타임스탬프하는 명령줄 CryptoAPI 도구입니다.


    SignTool [Operation] [Options] [FileName ...]

작업, 옵션 및 인수 목록(일부)

작업

catdb

카탈로그 데이터베이스를 업데이트할 수 있도록 SignTool을 구성합니다. SignTool은 데이터베이스에 카탈로그 파일을 추가하거나, 데이터베이스에서 카탈로그를 제거합니다. 기본적으로 catdb 명령은 시스템 구성 요소(드라이버) 데이터베이스에 이름이 FileName 인수에 의해 지정된 파일을 추가합니다.

참고  카탈로그 데이터베이스는 카탈로그 파일을 자동으로 조회하는 데 사용됩니다.

sign

이름이 FileName 인수에 의해 지정된 파일을 디지털 서명할 수 있도록 SignTool을 구성합니다.

timestamp

이름이 FileName 인수에 의해 지정된 파일을 타임스탬프할 수 있도록 SignTool을 구성합니다.

verify

이름이 FileName 인수에 의해 지정된 파일의 디지털 서명을 검증할 수 있도록 SignTool을 구성합니다.

Catdb 작업 옵션

/d

카탈로그 데이터베이스를 업데이트할 수 있도록 SignTool을 구성합니다. /d 또는 /g 옵션이 둘 다 사용되지 않으면 SignTool은 시스템 구성 요소와 드라이버 데이터베이스를 업데이트합니다.

/g Guid

GUID 인수에 의해 식별되는 카탈로그 데이터베이스를 업데이트할 수 있도록 SignTool을 구성합니다.

/r

카탈로그 데이터베이스에서 이름이 FileName 인수에 의해 지정된 각 카탈로그 파일을 제거할 수 있도록 SignTool을 구성합니다. 이 옵션을 지정하지 않으면 SignTool은 지정된 카탈로그 파일을 카탈로그 데이터베이스에 추가합니다.

/u

필요한 경우 카탈로그 데이터베이스에서 카탈로그 파일이 기존 카탈로그 파일과 충돌되지 않게 고유한 이름을 생성할 수 있도록 SignTool을 구성합니다. 이 옵션을 지정하지 않으면 SignTool은 추가할 카탈로그와 이름이 같은 기존 카탈로그를 덮어씁니다.

Sign 작업 옵션

/a

최상의 서명 인증서를 자동으로 선택할 수 있도록 SignTool을 구성합니다. 이 옵션이 표시되지 않으면 SignTool에서는 서명 인증서를 하나만 찾을 것이라고 예상합니다.

/ac CrossCertFileName

이름이 CertificateName이고 인증서 저장소 StoreName에 설치된 SPC(소프트웨어 게시자 인증서)에서 사용되는 상호 인증서 파일의 이름을 지정합니다. 이 옵션은 서명 인증서가 SPC일 경우에만 사용해야 합니다.

/c CertTemplateName

서명 인증서에 대한 인증서 템플릿 이름(Microsoft 확장)을 지정합니다.

/csp CSPName

개인 키 컨테이너가 포함된 CSP(암호화 서비스 공급자)를 지정합니다.

/d Desc

서명된 콘텐츠 설명을 지정합니다.

/du URL

서명된 콘텐츠의 확장된 설명에 대한 URL을 지정합니다.

/f SignCertFile

파일에 서명 인증서를 지정합니다. PFX(개인 정보 교환) 파일 형식만 지원됩니다. Pvk2Pfx 도구를 사용하여 SPC 및 PVK 파일을 PFX 형식으로 변환할 수 있습니다.

파일이 암호로 보호되는 PFX 형식일 경우 /p 옵션을 사용하여 암호를 지정합니다. 파일에 개인 키가 포함되지 않으면 /csp/k 옵션을 사용하여 CSP 및 개인 키 컨테이너 이름을 각각 지정합니다.

/fd

파일 서명을 만드는 데 사용할 파일 다이제스트 알고리즘을 지정합니다. 기본값은 SHA1입니다.

/i IssuerName

서명 인증서의 발급자 이름을 지정합니다. 이 값은 전체 발급자 이름의 하위 문자열일 수 있습니다.

/j DLL

서명의 특성을 제공하는 DLL 이름을 지정합니다.

/jp ParameterName

/j 명령에 의해 지정된 DLL로 전달되는 매개 변수를 지정합니다.

/kc PrivKeyContainerName

개인 키의 키 컨테이너 이름을 지정합니다.

/n SubjectName

서명 인증서의 주체 이름을 지정합니다. 이 값은 전체 주체 이름의 하위 문자열일 수 있습니다.

/nph

지원되는 경우 실행 파일에 대한 페이지 해시를 표시하지 않습니다. 기본값은 SIGNTOOL_PAGE_HASHES 환경 변수 및 wintrust.dll 버전에 따라 결정됩니다. PE 파일이 아닌 경우 이 옵션이 무시됩니다.

/p Password

PFX 파일을 열 때 사용할 암호를 지정합니다. PFX 파일은 /f 옵션을 사용하여 지정할 수 있습니다.

/p7 Path

지정된 각 콘텐츠 파일에 대한 PKCS(공개 키 암호 표준) #7 파일이 생성되도록 지정합니다. PKCS #7 파일의 이름은 경로\파일 이름.p7입니다.

/p7ce Value

서명된 PKCS #7 콘텐츠에 대한 옵션을 지정합니다. PKCS #7 파일에 서명된 콘텐츠를 포함하려면 값을 "Embedded"로 설정하고 분리된 PKCS #7 파일의 서명된 데이터 부분을 생성하려면 "DetachedSignedData"로 설정합니다. /p7ce 옵션을 사용하지 않으면 서명된 콘텐츠가 기본적으로 포함됩니다.

/p7co OID

서명된 PKCS #7 콘텐츠를 식별하는 OID(개체 식별자)를 지정합니다.

/ph

지원되는 경우 실행 파일에 대한 페이지 해시를 생성합니다.

/r RootSubjectName

서명 인증서의 체인으로 설정할 루트 인증서의 주체 이름을 지정합니다. 이 값은 루트 인증서의 전체 주체 이름의 하위 문자열일 수 있습니다.

/s StoreName

서명 파일에 사용할 인증서를 검색할 때 열 인증서 저장소의 이름을 지정합니다. 이 옵션을 지정하지 않으면 My 인증서 저장소가 열립니다.

/sha1 Hash

서명 인증서의 SHA1 해시를 지정합니다.

/sm

사용자 인증서 저장소 대신 컴퓨터 인증서 저장소를 사용할 수 있도록 SignTool을 구성합니다.

/t URL

타임스탬프 서버에 대한 URL을 지정합니다. 이 옵션을 제공하지 않으면 서명된 파일이 타임스탬프되지 않습니다. 서명자의 키가 손상된 경우 타임스탬프에서 파일 서명에 사용된 키를 해지하는 데 필요한 정보를 제공하므로 카탈로그 파일 또는 드라이버 파일은 타임스탬프해야 합니다.

/td alg

/tr 옵션과 함께 사용하여 RFC 3161 타임스탬프 서버에서 사용되는 다이제스트 알고리즘을 요청합니다.

/tr URL

RFC 3161 타임스탬프 서버의 URL을 지정합니다. 이 옵션(또는 /t)이 없으면 서명된 파일이 타임스탬프되지 않습니다. 타임스탬프에 실패하는 경우 경고가 생성됩니다. 이 옵션은 /t 옵션과 함께 사용할 수 없습니다.

/u Usage

서명 인증서에 있어야 하는 EKU(확장된 키 사용)를 지정합니다. OID 또는 문자열로 사용 값을 지정할 수 있습니다. 기본 사용은 "코드 서명"(1.3.6.1.5.5.7.3.3)입니다.

/uw

"Windows 시스템 구성 요소 검증"(1.3.6.1.4.1.311.10.3.6) 사용을 지정합니다.

타임스탬프 작업 옵션

/p7

PKCS #7 파일을 타임스탬프합니다.

/t URL

타임스탬프 서버의 URL을 지정합니다. 타임스탬프된 파일은 이전에 서명했었어야 합니다.

/td alg

RFC 3161 타임스탬프 서버에서 사용되는 다이제스트 알고리즘을 요청합니다. /td/tr 옵션과 함께 사용됩니다.

/tp index

인덱스에서 서명을 타임스탬프합니다.

/tr alg

RFC 3161 타임스탬프 서버에서 사용되는 다이제스트 알고리즘을 요청합니다. /td/tr 옵션과 함께 사용됩니다.

검증 작업 옵션

/a

파일을 검증하는 데 사용할 수 있는 모든 방법을 지정합니다. 먼저 카탈로그 데이터베이스가 검색되어 파일이 카탈로그에서 서명되어 있는지 확인합니다. 파일이 어떤 카탈로그에서도 서명되어 있지 않으면 SignTool은 파일의 포함 서명을 검증합니다. 이 옵션은 카탈로그에서 서명되어 있거나 서명되어 있지 않은 파일을 검증할 때 권장됩니다.

/ad

파일이 서명된 카탈로그에서 기본 카탈로그 데이터베이스만 검색되도록 지정합니다.

/all

여러 서명이 포함된 파일의 모든 서명을 검증합니다.

/as

파일이 서명된 카탈로그에서 시스템 구성 요소(드라이버) 카탈로그 데이터베이스만 검색되도록 지정합니다.

/ag CatDBGUID

파일이 서명된 카탈로그에서 CatDBGUID 인수를 통해 식별된 카탈로그 데이터베이스만 검색되도록 지정합니다.

/c CatalogFileName

카탈로그 파일의 이름을 지정합니다.

/d

SignTool이 설명과 설명 URL을 인쇄하도록 지정합니다.

/ds index

지정된 위치에서 서명을 검증합니다.

/hash {SHA1|SHA256}

카탈로그에서 파일을 검색할 때 사용할 선택적 해시 알고리즘을 지정합니다.

/kp

FileName 인수에 의해 지정된 각 파일의 디지털 서명이 Windows Vista 및 이후 버전의 Windows의 커널 모드 코드 서명 정책PnP 장치 설치 서명 요구 사항을 준수하는지 검증할 수 있도록 SignTool을 구성합니다. 이 옵션을 지정하지 않으면 SignTool은 서명이 PnP 장치 설치 서명 요구 사항을 준수하는지 검증만 합니다.

/ms

여러 검증 시맨틱을 사용합니다. 이는 Windows 8 이상에서 WinVerifyTrust function 호출의 기본 동작입니다.

/o Version

운영 체제 버전에 따라 파일을 검증합니다. Version 인수 형식은 PlatformID:VerMajor.VerMinor.BuildNumber입니다.

/o 옵션을 사용하는 것이 좋습니다. /o를 지정하지 않으면 SignTool이 예상치 못한 결과를 반환할 수 있습니다. 예를 들어 /o 옵션을 포함하지 않으면 이전 운영 체제에서 올바르게 유효성이 검사되는 시스템 카탈로그가 최신 운영 체제에서는 올바르게 유효성이 검사되지 않을 수 있습니다.

/p7

PKCS #7 파일을 검증합니다. 기존 정책이 PKCS #7 유효성 검사에 사용되지 않습니다. 서명이 확인되고 서명 인증서에 대한 체인이 빌드됩니다.

/pa

FileName 인수에 의해 지정된 각 파일의 디지털 서명이 PnP 장치 설치 서명 요구 사항을 준수하는지 검증할 수 있도록 SignTool을 구성합니다.

참고  이 옵션은 catdb 옵션과 함께 사용할 수 없습니다.

/pg PolicyGUID

GUID에 의한 검증 정책을 지정합니다. PolicyGUID는 검증 정책의 ActionID에 해당합니다.

참고  이 옵션은 catdb 옵션과 함께 사용할 수 없습니다.

/ph

SignTool이 페이지 해시 값을 인쇄하고 검증하도록 지정합니다.

/r RootSubjectName

서명 인증서의 체인으로 설정할 루트 인증서의 주체 이름을 지정합니다. 이 값은 루트 인증서의 전체 주체 이름의 하위 문자열일 수 있습니다.

/tw

서명이 타임스탬프되지 않으면 경고가 생성되도록 지정합니다.

일반 옵션

/q

실행 성공 시 출력 없음을, 실행 실패 시 최소 출력을 표시할 수 있도록 SignTool을 구성합니다.

/v

자세한 작업 정보 및 경고 메시지를 표시할 수 있도록 SignTool을 구성합니다.

/?

명령 창에 도움말 정보를 표시할 수 있도록 SignTool을 구성합니다.

FileName ...

파일 이름이 하나 이상인 목록을 지정합니다. 명령에 따라 SignTool은 지정된 파일을 서명하거나, 타임스탬프하거나, 검증합니다. catdb 명령이 사용되면 SignTool은 지정된 파일을 카탈로그 데이터베이스에 추가하거나 카탈로그 데이터베이스에서 제거합니다.

sign, timestampverify 명령의 경우 파일은 드라이버 패키지의 카탈로그 파일이거나 드라이버 파일일 수 있습니다.

catdb 명령의 경우 파일은 드라이버 패키지의 카탈로그 파일이어야 합니다.

설명

SignTool은 많은 옵션을 지원합니다. 이 항목에서 설명하는 옵션은 드라이버 패키지 또는 드라이버 파일을 서명 또는 검증하는 데 사용할 수 있는 스위치로 제한됩니다.

전체 SignTool 매개 변수 목록은 Microsoft SignTool(영문) 웹 사이트를 참조하세요.

서명 파일에 대한 자세한 내용은 Microsoft 암호화 도구(영문) 웹 사이트를 참조하세요.

SignTool 32비트 버전은 WDK의 bin\i386 폴더에 있고, 64비트 버전의 도구는 WDK의 bin\amd64 및 bin\ia64 폴더에 있습니다.

서명 예제

다음은 SPC(소프트웨어 게시자 인증서)와 해당하는 상호 인증서를 사용하여 드라이버 패키지의 카탈로그 파일에 서명하는 방법을 보여 주는 예입니다. 이 예제는 커널 모드 코드 서명 정책을 시행하는 Windows Vista 64비트 버전 및 이후 버전의 Windows용 드라이버 패키지 서명에 적합합니다. 이 예에서는 드라이버 패키지의 카탈로그 파일 AbcCatFileName.cat에 서명합니다. 카탈로그 파일에 서명하기 위해 여기서는 상호 인증서 AbcCrossCertificate와 AbcSPCCertificate 인증서를 사용합니다. AbcSPCCertificate 인증서는 AbcCertificateStore 인증서 저장소에 있습니다.

또한 이 예에서는 공개적으로 사용 가능한 타임스탬프 서버를 사용하여 카탈로그 파일에 서명합니다. 타임스탬프 서버는 VeriSign에서 제공되며, URL은 http://timestamp.verisign.com/scripts/timstamp.dll입니다.


SignTool sign /ac AbcCrossCertificate.cer /s AbcCertificateStore /n AbcSPCCertificate /t http://timestamp.verisign.com/scripts/timstamp.dll AbcCatFileName.cat

다음은 SPC 및 상호 인증서를 사용하여 드라이버 파일에 서명을 포함하는 방법을 보여 주는 예입니다. 서명된 파일이 카탈로그 파일 AbcCatFileName.cat가 아니라 AbcDriverFile.sys인 점을 제외하고는 모든 매개 변수가 카탈로그 파일에 서명한 예제에서와 같습니다.


SignTool sign /ac AbcCrossCertificate.cer /s AbcCertificateStore /n AbcSPCCertificate /t http://timestamp.verisign.com/scripts/timstamp.dll AbcDriverFile.sys

다음은 상업적 출시 인증서 또는 상업적 테스트 인증서를 사용하여 드라이버 패키지의 카탈로그 파일에 서명하는 방법을 보여 주는 예입니다. 이 예제는 커널 모드 코드 서명 정책을 시행하지 않는 Windows Vista 32비트 버전 및 이후 버전의 Windows용 드라이버 패키지 서명에 적합합니다. 이 예에서는 드라이버 패키지의 카탈로그 파일 CatalogFileName.cat에 서명합니다. 여기에서는 TestCertificateStore 인증서 저장소에 있는 AbcTestCertificate 테스트 인증서를 사용하여 카탈로그 파일에 서명합니다.

또한 이 예에서는 공개적으로 사용 가능한 타임스탬프 서버를 사용하여 카탈로그 파일에 서명합니다. 타임스탬프 서버는 VeriSign에서 제공되며, URL은 http://timestamp.verisign.com/scripts/timstamp.dll입니다.


SignTool sign /s TestCertificateStore /n AbcTestCertificate /t http://timestamp.verisign.com/scripts/timstamp.dll CatalogFileName.cat

검증 예제

다음은 드라이버 패키지 카탈로그 파일의 서명이 커널 모드 코드 서명 정책과 PnP 장치 설치 서명 요구 사항을 준수하는지 검증하는 방법을 보여 주는 예입니다. 이 예에서는 카탈로그 파일 AbcCatalogFile.cat의 서명을 검증합니다.


SignTool verify /kp CatalogFileName.cat

다음은 드라이버 패키지 카탈로그 파일에 나열된 파일 서명이 커널 모드 코드 서명 정책과 PnP 장치 설치 서명 요구 사항을 준수하는지 검증하는 방법을 보여 주는 예입니다. 이 예에서는 파일 AbcDriverPackage.inf의 서명을 검증합니다. 이 파일에는 카탈로그 파일 CatalogFileName.cat의 지문 항목이 있어야 합니다.


SignTool verify /kp /c CatalogFileName.cat AbcDriverPackage.inf

다음은 포함 서명이 Windows Vista 및 이후 버전의 Windows에서 커널 모드 코드 서명 정책을 준수하는지 검증하는 방법을 보여 주는 예입니다. 이 예에서는 드라이버 파일 AbcDriverFile.sys에 포함된 서명을 검증합니다.


SignTool verify /kp AbcDriverFile.sys

다음은 드라이버 패키지 카탈로그 파일의 서명이 PnP 장치 설치 서명 요구 사항을 준수하는지 검증하는 방법을 보여 주는 예입니다. 이 예에서는 카탈로그 파일 CatalogFileName.cat의 서명을 검증합니다.


SignTool verify /pa CatalogFileName.cat

카탈로그 파일을 시스템 구성 요소(드라이버) 데이터베이스에 추가하는 예제

다음은 시스템 구성 요소(드라이버) 데이터베이스에 카탈로그 파일 CatalogFileName.cat를 추가하는 방법을 보여 주는 예입니다. /v 옵션은 자세한 정보 표시 모드로 작동할 수 있도록 SignTool을 구성하고, /u 옵션은 이름이 CatalogFileName.cat로 같은 기존 카탈로그 파일의 대체를 방지하기 위해 추가할 카탈로그 파일에 고유한 이름을 생성할 수 있도록 SignTool을 구성합니다.


SignTool catdb /v /u CatalogFileName.cat

 

 

표시:
© 2014 Microsoft