728x90

▣ 실행 파일에 디지털 서명 넣기 (Ver 0.1)

▷ 준비물
    - 개인 키 파일(mycert.pvk) 및 PKCS #7 인증서 파일(mycert.spc)
    - 인증서 작업을 위한 프로그램 (signcode.exe)
    - 인증서 확인을 위한 프로그램 (chktrust.exe)


▷ 개인 키 파일(*.pvk) 및 PKCS #7 인증서 파일(*.spc)
    - 정식 인증서를 이용하는 경우 인증 기관을 통해 개인 키 파일과 PKCS #7 인증서를 발급 받는다.
    - 테스트 인증서를 이용하는 경우에는 makecert.exe, cert2spc.exe 프로그램을 이용해서 직접 만들어 사용한다.
    - [ActiveX] 테스트 인증서 만들기 내용 참고 (http://www.enjoydev.com/blog/70)


▷ 참고
    - 아래에서 테스트로 사용된 Project1.exe는 VB에서 기본으로 생성되는 "표준EXE" 프로젝트를 컴파일한 것입니다.
      단지 윈도우 폼만 나타날 뿐 아무런 작업도없으니 실행하셔도 괜찮습니다.
      VB 6.0에서 컴파일 했으므로 VB 런타임 라이브러리가 설치되어있지 않으면 실행되지 않습니다.


▷ 디지털 서명 작업 전후 비교 (Before)
    - 인터넷 주소창에 실행 파일의 경로를 입력하고, 실행 버튼을 누르면 다음의 화면을 볼 수 있다.

사용자 삽입 이미지


사용자 삽입 이미지


    - 디지털 서명이 없기 때문에 "알 수 없는 게시자"로 나타난다.


▷ 디지털 서명 작업 전후 비교 (After : 정식 인증서를 적용한 경우)
    - 인터넷 주소창에 실행 파일의 경로를 입력하고, 실행 버튼을 누르면 다음의 화면을 볼 수 있다.

사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


    - 디지털 서명을 하면 위에서 처럼 게시자 정보가 표시되고 자신의 홈페이지로 연결시킬 수 있다.

    - 또한 클라이언트 PC에서 인증서 설치 과정을 거치면 보안 경고 없이 바로 실행되도록 할 수도 있다.

▷ 디지털 서명 작업 전후 비교 (After : 테스트 인증서를 적용한 경우)
    - 인터넷 주소창에 실행 파일의 경로를 입력하고, 실행 버튼을 누르면 다음의 화면을 볼 수 있다.

사용자 삽입 이미지


    - 디지털 서명을 넣더라도 테스트 인증서를 사용하는 경우에는 "알 수 없는 게시자"로 표시된다.

    - 로컬인트라넷 등 제한된 사용자에게 배포하는 경우에는 해당 인증서 설치를 유도함으로써 좀더 유연하게 사용 가능하다.
      (2007.01.23 현재 적용 방법 정리중)

▷ 디지털 서명 넣기 (윈도우 화면에서 클릭, 클릭으로 서명 작업)
    1. 탐색기에서 signcode.exe 프로그램을 더블클릭하면 "디지털 서명 마법사"가 시작된다.

    2. [파일 선택] "찾아보기" 버튼을 누른 후 서명할 파일 선택 (Project1.exe)

    3. [서명 옵션] "사용자 지정" 옵션 선택
        - "표준"을 선택하는 경우 "저장소" 설치된 인증서만 선택가능하다.
        - 인증서 파일을 직접 선택하기 위해서는 "사용자 지정"을 선택해야한다.

    4. [서명 인증서] "파일에서 선택" 버튼 클릭 후 인증서 파일(mycert.spc)을 선택한다.

    5. [개인 키 암호 입력] 인증서 비밀번호를 입력한다.

    6. [개인 키] 개인 키 파일(mycert.pvk)을 선택한다.

    7. [해시 알고리즘] "sha1"(기본)을 선택한다.

    8. [추가 인증서] "루트 인증서를 포함하여 인증 경로에 있는 모든 인증서"를 선택한다.
        - "테스트 인증서 만들기" 과정을 통해 만든 인증서(mycert.spc)에는 루트 인증서(root.cer) 정보가
          포함되어있으므로, 어느 항목을 선택하든 동일한 결과를 보인다.

    9. [데이터 설명] 게시자 설명과 게시자 정보 클릭에서 연결할 홈페이지 주소를 입력한다.

    10. [타임스탬프] 타임서버를 통해 인증시간을 기록한다.
        - 타임스탬프를 데이터를 생략해도 무관하지만, 타임스탬프 정보를 넣음으로서 신뢰성도를 높일 수 있다.
        - 또한 타임스탬프 정보를 통해 실제 디지털 서명한 시간을 기록으로 남길 수 있다.

    11. [디지털 서명 마법사 완료] 마법사 완료 전 설정 내용 확인

    12. [디지털 서명 마법사 완료] 마법사 정상 완료


▷ 디지털 서명 넣기 (도스창에서 서명 작업)
    - 다음의 도스명령으로 처리하면 번거로운 서명 작업을 쉽게 처리 할 수 있다.

    - signcode -spc "mycert.spc" -v "mycert.pvk" -n "EnjoyDev" -i "http://www.EnjoyDev.com" -t "http://timestamp.verisign.com/scripts/timestamp.dll" "Project1_cert.exe"
      ; 좀 길지만 하나의 문장이다.

    - 사용 형식
      ; signcode -spc "인증서파일" -v "개인키파일" -n "게시자설명" -i "홈페이지" -t "타임서버" "실행파일명"

    - 도스창에서 "signcode /?"를 입력하면 상세 설명을 볼 수 있다.


▷ 디지털 서명 확인
    - 도스창에서 "chktrust Project1_cert.exe"를 입력하면 다음과 같이 디지털 서명 결과를 볼 수 있다.

사용자 삽입 이미지




▣ Ver 0.1
    ; ActiveX 배포 관련 내용을 정리하다보니 많은 부분과 연결되고 있어 부분적으로 나누고 있습니다.
      추가적으로 정리되는 부분은 위 내용을 바탕으로 살을 붙여가도록 하겠습니다.


☞ 본문 출처 : http://www.enjoydev.com/blog/71

☞ 본인의 글 입니다. 이 글을 다른 곳에 게재하는 경우 본문 출처를 밝혀주시기 바랍니다.

☞ 위 내용은 정식 문서 번역이 아닌, 실무 적용에 따른 경험을 바탕으로 어느정도 자의적인 설명이 포함되어있습니다.
   잘못된 내용이 있는 경우 지적 바랍니다.


▣ 참고 사이트
    * Signing and Checking Code with Authenticode
       ; http://msdn.microsoft.com/workshop/secu … ning.asp
    * .cab 파일 서명 단계
       ; http://support.microsoft.com/kb/247257/ko

+ Recent posts