서명 도구는 파일에 디지털 서명을 하고, 파일의 서명을 확인하고, 파일에 타임스탬프를 기록하는 명령줄 도구입니다.
참고 |
---|
Microsoft Windows NT, Windows Me, Windows 98 또는 Windows 95에서는 서명 도구가 지원되지 않습니다. |
signtool [command] [options] [file_name | ...]
매개 변수
인수 | 설명 |
---|---|
command |
파일에서 수행할 작업을 지정하는 명령 플래그 중 하나입니다. |
options |
명령 플래그를 수정하는 옵션 플래그 중 하나입니다. |
file_name |
서명할 파일 경로입니다. |
다음은 서명 도구에서 지원되는 명령입니다.
명령 | 설명 |
---|---|
catdb |
카탈로그 데이터베이스에서 카탈로그 파일을 추가하거나 제거합니다. |
sign |
파일에 디지털 서명을 수행합니다. |
signwizard |
서명 마법사를 시작합니다. 파일 이름 명령줄 인수에는 단일 파일만 지정할 수 있습니다. |
timestamp |
파일에 타임스탬프를 기록합니다. |
verify |
파일의 디지털 서명을 확인합니다. |
다음은 catdb 명령에 적용되는 옵션입니다.
Catdb 옵션 | 설명 |
---|---|
/d |
기본 카탈로그 데이터베이스가 업데이트되도록 지정합니다. /d와 /g 옵션을 모두 사용하지 않을 경우 서명 도구에서 시스템 구성 요소와 드라이버 데이터베이스를 업데이트합니다. |
/g GUID |
고유한 전역 식별자(GUID)로 식별되는 카탈로그 데이터베이스가 업데이트되도록 지정합니다. |
/r |
지정된 카탈로그를 카탈로그 데이터베이스에서 제거합니다. 이 옵션을 지정하지 않으면 서명 도구는 지정된 카탈로그를 카탈로그 데이터베이스에 추가합니다. |
/u |
추가된 카탈로그 파일에 대해 고유한 이름이 자동으로 생성되도록 지정합니다. 필요한 경우 기존 카탈로그 파일과의 이름 충돌을 방지하기 위해 카탈로그 파일의 이름을 바꿉니다. 이 옵션을 지정하지 않으면 서명 도구는 추가하려는 카탈로그와 같은 이름의 기존 카탈로그를 덮어씁니다. |
참고 |
---|
카탈로그 데이터베이스는 카탈로그 파일 자동 조회에 사용됩니다. |
다음 옵션은 sign 명령에 적용됩니다.
Sign 옵션 | 설명 |
---|---|
/a |
가장 적합한 서명 인증서를 자동으로 선택합니다. 이 옵션이 없으면 서명 도구는 유효한 서명 인증서를 하나만 찾게 됩니다. |
/c CertTemplateName |
서명 인증서의 인증서 템플릿 이름(Microsoft 확장)을 지정합니다. |
/csp CSPName |
개인 키 컨테이너를 포함하는 CSP(암호화 서비스 공급자)를 지정합니다. |
/d Desc |
서명된 콘텐츠에 대한 설명을 지정합니다. |
/du URL |
서명된 콘텐츠에 대한 확장된 설명의 URL(Uniform Resource Locator)을 지정합니다. |
/f SignCertFile |
파일에 있는 서명 인증서를 지정합니다. 파일이 PFX(개인 정보 교환) 형식이면서 암호로 보호되는 경우, /p 옵션을 사용하여 암호를 지정합니다. 파일에 개인 키가 없으면 /csp와 /k 옵션을 사용하여 CSP 및 개인 키 컨테이너 이름을 각각 지정합니다. |
/i IssuerName |
서명 인증서의 발급자 이름을 지정합니다. 이 값은 발급자의 전체 이름에서 부분 문자열이 될 수 있습니다. |
/k PrivKeyContainerName |
개인 키 컨테이너 이름을 지정합니다. |
/n SubjectName |
서명 인증서의 주체 이름을 지정합니다. 이 값은 주체의 전체 이름에서 부분 문자열이 될 수 있습니다. |
/p Password |
PFX 파일을 열 때 사용할 암호를 지정합니다. PFX 파일은 /f 옵션을 사용하여 지정할 수 있습니다. |
/r RootSubjectName |
서명 인증서와 연결해야 하는 루트 인증서의 주체 이름을 지정합니다. 이 값은 루트 인증서 주체의 전체 이름에서 부분 문자열이 될 수 있습니다. |
/s StoreName |
인증서를 검색할 때 열 저장소를 지정합니다. 이 옵션을 지정하지 않으면 내 저장소가 열립니다. |
/sha1 Hash |
서명 인증서의 SHA1 해시를 지정합니다. |
/sm |
사용자 저장소 대신 컴퓨터 저장소가 사용되도록 지정합니다. |
/t URL |
타임스탬프 서버의 URL을 지정합니다. 이 옵션이 없으면 서명 파일에 타임스탬프가 기록되지 않습니다. 타임스탬프 기록에 실패하면 경고가 생성됩니다. |
/u Usage |
서명 인증서에 있어야 하는 EKU(향상된 키 용도)를 지정합니다. 용도 값은 OID 또는 문자열로 지정될 수 있습니다. 기본 용도는 "코드 서명"(1.3.6.1.5.5.7.3.3)입니다. |
다음 옵션은 timestamp 명령에 적용됩니다.
Timestamp 옵션 | 설명 |
---|---|
/t URL |
필수적 요소입니다. 타임스탬프 서버의 URL을 지정합니다. 타임스탬프가 기록되는 파일은 이전에 서명되었어야 합니다. |
다음은 verify 명령에 적용되는 옵션입니다.
Verify 옵션 | 설명 |
---|---|
/a |
모든 메서드를 사용하여 파일 확인을 할 수 있도록 지정합니다. 먼저 카탈로그 데이터베이스를 검색하여 카탈로그에서 파일이 서명되었는지 여부를 확인합니다. 어떤 카탈로그에서도 파일이 서명되지 않은 경우에는 서명 도구에서 파일에 포함된 서명을 확인하려고 합니다. 이 옵션은 카탈로그에서 서명되거나 서명되지 않은 파일을 확인할 때 권장됩니다. 서명되거나 서명되지 않은 파일의 예로 Windows 파일 또는 드라이버가 있습니다. |
/ad |
기본 카탈로그 데이터베이스를 사용하여 카탈로그를 찾습니다. |
/as |
시스템 구성 요소(드라이버) 카탈로그 데이터베이스를 사용하여 해당 카탈로그를 찾습니다. |
/ag CatDBGUID |
카탈로그 데이터베이스에서 GUID로 식별되는 카탈로그를 찾습니다. |
/c CatFile |
이름별로 카탈로그 파일을 지정합니다. |
/o Version |
운영 체제 버전별로 파일을 확인합니다. 버전 매개 변수의 형식은 PlatformID:VerMajor.VerMinor.BuildNumber입니다. |
/pa |
기본 인증 확인 정책이 사용되도록 지정합니다. /pa 옵션을 지정하지 않으면 서명 도구는 Windows 드라이버 확인 정책을 사용합니다. 이 옵션은 catdb 옵션과 함께 사용할 수 없습니다. |
/pg PolicyGUID |
GUID를 기준으로 확인 정책을 지정합니다. GUID는 확인 정책의 ActionID와 일치합니다. 이 옵션은 catdb 옵션과 함께 사용할 수 없습니다. |
/r RootSubjectName |
서명 인증서와 연결해야 하는 루트 인증서의 주체 이름을 지정합니다. 이 값은 루트 인증서 주체의 전체 이름에서 부분 문자열이 될 수 있습니다. |
/tw |
서명에 타임스탬프가 기록되지 않으면 경고가 생성되도록 지정합니다. |
다음 옵션은 모든 서명 도구 명령에 적용됩니다.
전역 옵션 | 설명 |
---|---|
/q |
성공한 실행에 대해서는 출력하지 않고 실패한 실행에 대해서만 최소 출력합니다. |
/v |
성공한 실행, 실패한 실행 및 경고 메시지에 대해 자세히 출력합니다. |
서명 도구를 사용하려면 로컬 컴퓨터에 CAPICOM 2.0 재배포 가능 파일이 설치되어 있어야 합니다. CAPICOM 2.0 재배포 가능 파일은 http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm에서 제공합니다.
서명 도구의 verify 명령은 신뢰할 수 있는 기관에서 발행한 서명 인증서인지, 해당 서명 인증서가 취소되었는지 그리고 서명 인증서가 특정 정책에 대해 유효한지를 선택적으로 확인합니다.
서명 도구는 종료 코드로 성공한 실행에 대해서는 0, 실패한 실행에 대해서는 1 그리고 경고로 끝난 실행에 대해서는 2를 반환합니다.
이 명령은 가장 적합한 인증서를 사용하여 파일에 자동으로 서명하는 방법을 보여 줍니다.
signtool sign /a MyFile.exe
'Windows Programming > 드라이버' 카테고리의 다른 글
[드라이버] 프로세스 풀패스구하기 (0) | 2009.07.01 |
---|---|
IoCompleteRequest in ReactOS (0) | 2009.06.11 |
IoCallDriver in ReactOS (0) | 2009.05.18 |
FsRtlRegisterFileSystemFilterCallbacks() - FileMap을 이용한 파일엑세스 모니터링 (1) | 2009.05.15 |
RtlVolumeDeviceToDosName() - 마운트된 디스크의 드라이브 문자 구하기 (0) | 2009.05.15 |