EV Codesign 코드사인 인증서 서명 메뉴얼

1. SigningTool설치

1-0. signing tool 설치

코드 서명 작업을 위해서는 서명하는 플랫폼에 해당하는 signing tool 사용해야 합니다.

11. Microsoft 서명 (signtool.exe)

Microsoft 서명에 사용되는 signtool.exe Microsoft SDK 포함된 유틸리티입니.

따라 Microsoft SDK 포함 signtool.exe 사용하 드립니다.

Microsoft SDK 다운로드 최신 Web Page(Windows 10)  : https://developer.microsoft.com/kokr/windows/downloads/windows10sdk

Microsoft SDK 다운로드 Archive Web Page(Windows 10, 8.1, 8, 7) : https://developer.microsoft.com/kokr/windows/downloads/sdkarchive

Microsoft SDK 설치 실패 시, Visual Studio 혹은 .Net Framework 와 충돌이 원인일 수 있습니다. 기존 프로그램을 삭제하거나, 새로운 환경에서 설치 부탁드립니다.

12. Java 서명 (jarsigner)

Java 서명에 사용되는 jarsigner Java JDK 포함된 유틸리티입니다. 따라서 Java JDK 설치 포함된 jarsigner 사용하는 것을 권장 드립니다.

Java JDK 다운로드 최신 Web Page(JDK 8) : https://www.oracle.com/technetwork/java/javase/downloads/jdk8downloads2133151.html

Java JDK 다운로드 Archive Web Page : https://www.oracle.com/technetwork/java/javase/archive-139210.html

2. Microsoft서명

2-0. 준비 사항

코드서명 인증서 : EV Code Sign 인증서가 설치된 USB Token USB Token Driver : SafeNet Client Tool

서명 유틸리티 : signtool.exe

Application

(작업 폴더를 생성하여, 관련된 파일을 모두 복사하시면 작업이 편리합니다.)

21. 코드 서명 진행 서명 기본 명령어 :

signtool.exe sign /s my sign_application

주로 사용되는 옵션을 포함한 서명 명령어 :

signtool.exe sign /s my /d [설명] /du [배포URL] /fd [sha1 or sha256]

/tr http://timestamp.digicert.comsign_application

사용하는 서명 옵션은 업체마다 상이할 있습니다. signtool.exe 옵션 설명은 아래 URL에서 확인 가능합니다.

https://docs.microsoft.com/ko-kr/dotnet/framework/tools/signtool-exe

서명 명령어 예시 :

서명 명령어 실행 시, SafeNet Authentication Client 실행하여 비밀번호를 요구하게 됩니.

USB Token 설치 , 설정된 비밀번호를 입력합니.

서명이 완료되면, “Successfully signed: signed_application” 문구가 나타납니다.

2-1. Microsoft 서명

** /fd 옵션 사용

배포 대상 Client Windows XP 환경이 존재할 경우, /fd sha1 으로 진행 부탁 드립니다. Windows 7 이상 환경일 경우 /fd sha256 으로 진행하는 것을 권장 드립니다.

** Kernel Mode 서명 변경 내용

이전 MS에서 제공하는 교차서명 인증서(ex : MSCSVSClass3.cer) 통한 커널 서명 방법은 MS 교 차 서명 인증서의 만료일자 도래에 따라 종료 됩니다.

MS 인증서 방법 종료 예정이며, 서명 대한 방법은 EV 코드서명 인증서를 사용한 MS Hardware Dev Center 인증 사용 방법으로 전환될 예정 입니다.

MS 공식 FAQ :

https://docs.microsoft.com/en-us/windows-hardware/drivers/install/deprecation-of- software-publisher-certificates-and-commercial-release-certificates

** Timestamp 옵션 사용

서명된 Application 의 사용 기간을 제한해야 하는 경우, Timestamp 옵션 없이 서명합니다. Timestamp 옵션이 없이 서명된 Application 은 발급된 인증서의 유효 기간까지만 유효합니다.

2-1. Microsoft 서명

22. 정상 서명 확인

2가지 방법으로 서명 여부를 확인할 있습니다.

* Windows 파일 속성을 통한 확인.

서명한 Application 의 파일 속성을 통해 확인이 가능합니다.

2-3. Microsoft 서명

“인증서 서명된 인증서 .

자세히 탭을 통해 인증서 상세 정보 확인.

디지털 서명 정보(Timestamp 정보)

서명자 정보 : Timestamp 서명 상세

“인증서 보기”를 통해 서명된 인증서 확인

“인증서보기”서명된Timestamp인증서확인. 자세히탭을통해인증서상세정보확인.

2.3 Microsoft 서명

* signtool.exe 명령 통한 확인.

서명 확인 명령어 :

signtool.exe verify /v /pa signed_application

서명 확인 명령어 예시

3. JAVA 서명

30. 준비 사항

코드서명 인증서 : EV Code Sign 인증서가 설치된 USB Token USB Token Driver : SafeNet Client Tool

서명 유틸리티 : jarsigner 서명 대상 Application

(Java 시스템 변수 설정 작업 폴더를 생성하여, 관련된 파일을 모두 복사하시면 작업이 편리합니다.)

31. Jarsigner 통한 서명 진행

eToken.cfg 파일 생성하여 아래 내용을 저장합니다. name=eToken

library=c:\WINDOWS\system32\eTPKCS11.dll ( 경로 eTKCS11.dll 확인)

USB Token 인식 설치된 인증서 alias 확인 keytool -list -keystore NONE storetype PKCS11

-providerclass sun.security.pkcs11.SunPKCS11 -providerArg ./eToken.cfg

(Java 시스템 변수 설정 여부에 따라 eToken.cfg 파일은 JDK_Path/bin 저장이 필요할 있습니다.)

USB Token 인식 및 설치된 인증서 확인 예시 :

서명 기본 명령어 :

jarsigner keystore NONE storetype PKCS11

-providerclass sun.security.pkcs11.SunPKCS11

-providerArg ./eToken.cfg [sign_application] [alias]

주로 사용되는 옵션을 포함한 서명 명령어 :

jarsigner tsa http://timestamp.digicert.comkeystore NONE storetype PKCS11

-providerclass sun.security.pkcs11.SunPKCS11 -providerArg

./eToken.cfg [sign_application] [alias]

사용하는 서명 옵션은 업체마다 상이할 있습니. jarsigner 옵션은 jarsigner h” 통해 확인이 가능합니.

서명 명령어 예시 :

3-2. 정상 서명 확인

코드 서명 사용된 jarsigner 명령어를 통해 서명 확인이 가능합니다.

서명 확인 명령어 :

jarsigner verify verbose -certs signed_application

서명 확인 명령어 예시 :