728x90
1. 응용프로그램 인증서란?
2. 왜 필요한가?
3. 코드사인 테스트
4. 코드사인 서명방법
5. 인증서변환 방법

1. 응용프로그램 인증서란?

    최근 인터넷상에는 ActivX콘트롤이나 자바애플릿같은 응용프로그램을 다운받거나 설치하는 일이 많아지고 있다. 최종사용자(배포받을 사람의 PC) � 개발자나 회사들이 배포하고 싶은 프로그램을 받거나 받지 않거나 선택을 할수 있다.

    개발자가 유익한 프로그램을 만들수도 있고, 해킹 이나 바이러스를 만들수 도 있으므로, 최종사용자는 이것을 다운받아서 실행하기 이전에 어떠한 종류이며, 다운받아도 안전한지 알수 없다. 그러므로 배포할 이 프로그램이 절대 사용자의 PC 에 악영향을 주지 않고, 만약 악영향을 받았다면 보상을 해주겠다는 의미로 전자적 서명을 하게되며, 배포받을 최종사용자는 이것을 신뢰하고 다운로드받고 설치를 허락하게 된다.

2. 왜 필요한가?

    소프트웨어 개발사
    • 다운로드시 고객에게 보안경고창을 통해 자사의 정보를 표시할 수 있다.
    • 글로벌 인증기관인 Thawte CA로 부터 인증여부를 기재해 준다.
    • 고객이 다운로드 받을 때, 프로그램에 대한 신뢰감으로 배포에 도움을 준다.
    • 개발 프로그램의 바이너리 소스의 도용을 방지해 준다.

    고객

    • 다운로드 전 개발회사와 인증기관을 확인하여 프로그램의 정보유무 판단가능
    • 악의적인 코드를 가진 프로그램인지 여부 확인 가능 (인증기관이 신뢰)

    인증서가 설치된 경우
    아래와 같이 프로그램 개발회사가 ThawteCA 인증을 통해 이 프로그램이 사용자의 PC에 악영향을 주지않으며 만약 피해가 발생하면 적절한 보상을 해주겠다는 사실을 명시하게되면, 사용자는 안심하고 프로그램을 다운받아 이용할 수 있다.

    인증서가 설치되어 있지 않은 경우
    아래와 같이 인증이 되어있지 않은 경우에는 사용자가 프로그램의 신뢰도에 대해 의심을 할 수 밖에 없고 다운로드 여부를 망설이게 된다.

    * 만약 브라우저의 보안수준이 "높음"으로 설정되어 있거나 WindowsXP 사용자의 경우에는 글로벌 인증기관에서 인증받지 않은 프로그램은 다운로드 및 설치 자체가 불가능하다. 또한, WindowsXP에서는 인터넷을 통한 다운로드 이외에도 모든 설치프로그램에 응용프로그램 인증을 의무화 하고 있다.

    따라서 코드사인 인증을 받지 않게되면 해당 프로그램에 대한 고객들의 배포가 힘들어 져 매출에 영향을 주는 일이 생길 수 있다. 인증을 받으면 이러한 위험을 방지할 수 있을뿐더러 새로운 프로그램에 대한 사용자들의 거부감을 해소함으로써 프로그램 자체의 신뢰도를 높일수 있을 뿐만 아니라 회사의 대외 이미지 또한 제고시킬 수 있다.

3. 코드사인 테스트

  • Test를 위해 Test용 인증서를 받는 방법
  • Download: codesign.exe
    실행하면 자동으로 압축이 풀립니다

    Test 용 인증서 만들기

    앞서 LPK 파일을 만들 때 간단했든이 test용 인증서를 만드는 것은 그렇게 어려운 일이 아니다. 아래의 cabSDK 파일을 다운받아 적당한 폴더에 압축을 풀고, dos 기반 프로그램이기 때문에 ms-dos 창을 하나 연다. msdos에서 시계 ActiveX Control 의 패키지가 모여있는 폴더로 이동한다. 다음과 같이 입력한다

    makecert -n "CN=test" -sv test.pvk test.cer

    그러면 개인 공개키를 생성하는 화면이 뜬다. 여기서 원하는 암호를 넣는데, 너무 어려운 것을 넣어서 나중에 잊어 버리지 않도록 주의한다.

    입력하고나면 한번더 위와 비슷한 박스가 뜬다. 여기서는 아까 넣었던 비밀번호를 한번더 입력한다. 이러한 과정은 pvk 파일과 cer 파일을 생성하기 위해서다. 이제 dir을 해서 test.pvk 와 test.cer 파일이 생성되었는지 확인한다.

    이제는 생성시킨 cer 파일을 이용해서 spc 파일을 생성한다. dos 창에서 다음과 같이 입력한다.

    cert2spc test.cer test.spc

    Succeeded 라는 말이 나오면 spc 파일을 생성하는데 성공한 것이다. 이제 생성시킨 pvk 파일과 spc 파일을 가지고 cab 파일에 서명한다. dos 창에서 다음과 같이 입력한다.

    signcode -spc test.spc -v test.pvk -n "test" 파일명.cab

    그러면, 비밀번호를 한번더 묻게 되는데, 이전에 입력한 공개키 비밀번호를 입력한다. 중간에 Warring은 서명한 시간이 없어서 그런 것인데, Test 용 sign 은 원래 시간을 적지 않는다. 테스트 인증이 완료되었으며, DOS 창에서 다음과 같이 인증확인을 해본다.

    chktrust 파일명.cab

    이제 Test Sign 과정이 성공하였다.

4. 코드사인 서명방법

    Thawte를 통해 응용프로그램인증서를 신청하고, 정해진 절차를 거치면 server.pvk 파일과 server.spc 파일을 발급 받게 됩니다. 다운 받은 파일을 기초로, 코드사인 프로그램으로 아래와 같이 서명하시면 됩니다.

    그러나, 아래 프롬프트 방식의 서명은 까다롭고 사용하기가 불편하므로 마법사 방식의 서멍방법을 추천합니다. 처음 코드사인을 하시는 분은 아래 방법을 사용하지 마시고, 쉽게 Wizwig방식의 코드 사인을 하시면 쉽고 에러 없이 사용가능합니다.

    위의codesign 프로그램 압출을 풀면 signcode.exe을 비롯한 각종 DLL등 관련 화일이 있습니다. DOS창에서 다음과 같이 cab 파일에 서명합니다.

    그러면, 개인키 패스워드를 묻는 창이 뜹니다.


    암호를 입력하고 나면, Succeed라는 메세지가 뜹니다. 그러면, 비밀번호를 한번더 묻게 되는데, 신청 시에 입력한 공개키 비밀번호를 입력합니다. 첫번째 과정에서 나오는 Warning은 서명을 한 시각을 정할 수 없어 생기는 경고입니다. -t 옵션은 인증서를 신청한 날짜를 서명하는 것으로 Thawte Developer 인증서의 경우 Verisign의 Timestamp를 함께사용할 수 있습니다.
    정확한 사용예는 다음과 같습니다.
    signcode -spc server.spc -v server.pvk -t http://timestamp.verisign.com/scripts/timstamp.dll 파일명

    서명이 끝났으면 아래의 방법으로 확인하면, 서명 결과에 대한 내용이 뜹니다.

    chktrust 파일명




    이제 응용프로그램을 웹페이지에서 배포를 합니다

5. 응용프로그램 인증서 변환

Thawte로 부터 하나의 응용프로그램 인증서를 구입하시면 마이크로소프트의 Office 2000/VBA Macro, 넷스케이프 플러그인, 맥용 애플프로그램, 마림바채널프로그램 등과 호환해서 사용하실 수 있습니다. (단, 자바프로그램은 따로 신청해야 하며 호환되지 않음)

아래에는 Thawte에서 받은 응용프로그램 인증서를 이용하여 다른 플랫폼의 인증서와 호환하는 가장 빠르고 쉬운 방법을 설명합니다.

'참고자료 > 인증서' 카테고리의 다른 글

코드사인 인증서  (0) 2009.04.09
VBA 매크로 코드사인(codesign)  (0) 2009.04.09
728x90

    코드사인 인증서란 무엇인가?

    최근 인터넷상에는 ActivX콘트롤이나 자바애플릿같은 코드사인을 다운받거나 설치하는 일이 많아지고 있습니다. 최종사용자(배포받을 사람의 PC) 는 개발자나 회사들이 배포하고 싶은 프로그램을 받거나 받지 않거나 선택을 할수 있습니다.


    [프로그램 배포시 인증된 경우]

    개발자가 유익한 프로그램을 만들수도 있고, 해킹 이나 바이러스를 만들수 도 있으므로, 최종사용자는 이것을 다운받아서 실행하기 이전에 어떠한 종류이며, 다운받아도 안전한지 알수 없습니다. 그러므로 배포할 이 프로그램이 절대 사용자의 PC 에 악영향을 주지 않고, 만약 악영향을 받았다면 보상을 해주겠다는 의미로 전자적 서명을 하게되며, 배포받을 최종사용자는 이것을 신뢰하고 다운로드받고 설치를 허락하게 됩니다.

    왜 코드사인 인증서가 필요한가?

    소프트웨어 개발업체

    • 다운로드시 고객에게 보안경고창을 통해 자사의 정보를 표시할 수 있다.
    • 글로벌 인증기관인 Thawte CA로 부터 인증여부를 기재해 준다.
    • 고객이 다운로드 받을 때, 프로그램에 대한 신뢰감으로 배포에 도움을 준다.
    • 개발 프로그램의 바이너리 소스의 도용을 방지해 준다.

    고객(웹 서비스 사용자)

    • 다운로드 전 개발회사와 인증기관을 확인하여 프로그램의 정보유무 판단가능
    • 악의적인 코드를 가진 프로그램인지 여부 확인 가능 (인증기관이 신뢰)

    어떤 소프트웨어를 지원하는가?

    Thawte에서 발급가능한 코드사인 인증서는 아래와 같습니다.

    1. Apple Developer Certificate: 매킨토시에서 사용되는 애플프로그램 개발자를 위한 전자인증서
    2. JavaSoft Developer Certificate: JDK1.3이나 이상의 자바프로그램에 사용되는 전자인증서
    3. Marimba Channel Signing Certificate: 마림바 플랫폼에서 사용되는 캐스터넷 푸시채널의 인증서
    4. Microsoft Authenticode (Multi-Purpose) Certificate: 마이크로소프트 InetSDK로 개발한 액티브X 콘트롤, .CAB, .EXE, .DLL 배포를 위한 인증서로서 IE4.0 이상에서 구동
    5. Netscape Code-Signing Certificate: 넷스케이프에서 사용하는 플러그인 프로그램을 위한 인증서
    6. VBA Developer Certificate: 오피스2000이나 비주얼베이직 6.0 환경에서 만든 매크로 프로그램등을 확인하는 마이크로소프트 인증서
출처 : 써트코리아(www.certkorea.co.kr)

'참고자료 > 인증서' 카테고리의 다른 글

응용프로그램 인증서 가이드  (0) 2009.04.09
VBA 매크로 코드사인(codesign)  (0) 2009.04.09
728x90

<코드사인 하시기 전에 아래의 timestamp 거는 방법을 먼저 읽어 주세요>

 

참고)  pfx 파일로 인증서 파일을 받으신 경우, 아래 5번 이후부터 진행하시면 됩니다.


1. 다음 경로에서 pvkimprt 를 다운 받는다.
   http://office.microsoft.com/downloads/2000/pvkimprt.aspx

2. pvkimprt 를 통해 받은 spc , pvk 파일을 레지스트리로 import 시킨다.
   > pvkimprt -import nine4u.spc nine4u.pvk
   a. 비밀번호를 물어보는 창에서 개인키 비밀번호를 입력한다.
   b. 다음
   c. 인증서 종류 기준으로 인증서 저장소를 자동으로 선택 (default) 에 체크 -> 다음
   d. 마침.
   e. 이상으로 레지스트리에 인증서가 import 된다.
   확인: IE(브라우저) 에서 도구>인터넷옵션>내용>인증서 에서 개인탭을 보시면 발급대상에 추가된 인증서 확인가능

3. pvkimprt 를 통해 pfx 파일로 export 시킨다.
   > pvkimprt -pfx nine4u.spc nine4u.pvk
   a. 비밀번호를 물어보는 창에서 개인키 비밀번호를 입력한다.
   b. 다음
   c. 예, 개인키를 내보냅니다. (default) 에 체크 -> 다음
   d. 가능하면 인증 경로에 있는 인증서 모두 포함 (체크)
      그외 체크 모두 없애고 다음
   e. 암호 , 암호확인 입력 후 다음
   f. 파일이름은 저장할 pfx 파일 이름을 입력합니다. (예: nine4u.pfx) 다음.
   g. 마침.


4. 레지스트리의 인증서 삭제
   a. IE(브라우저) 에서 도구 > 인터넷옵션 > 내용 > 인증서에서 개인탭의 인증서를 선택후 제거 합니다.

5. 3에서 pfx 로 export 시킨 파일을 다시 import
   a. IE(브라우저) 에서 도구> 인터넷옵션> 내용> 인증서 에서 가져오기
   b. 다음
   c. 저장된 pfx 파일을 찾아 입력 후 다음
   d. 암호 입력
      개인 키를 내보낼 수 있는 것으로 표시 에 체크
      다음
   e. 인증서 종류 기준으로 인증서 저장소를 자동으로 선택 체크 (default)
      다음
   f. 마침


6. 이제 VBA 프로젝트를 코드사인 합니다.
   a. Visual Basic Editor 를 open (엑셀에서 도구> 매크로)
   b. sign 하실 프로젝트를 선택합니다.
   c. 도구 > 디지털 서명
   d. 선택 버튼 누르시고 좀전에 import 하신 인증서를 찾아서 선택 후 확인.
   e. 확인
   f. vb editor 닫기 전에 저장.
   g. excel 닫기 전에 저장.

 

 

(꼭!!!! 참고) VBA signing 시 timestamp 걸기

 

코드사인 인증서는  인증서 발급시 해당 인증서의 유효기간이 있습니다.

코드사인시에 timestamp를 등록해 주지 않은 경우에 인증서 유효기간 만료후에 signing 된 매크로 등이 invalid 하게 표시됩니다.

이를 방지하기 위해 코드사인시에 반드시 timestamp를 등록할 수 있도록 아래의 작업을 먼저 해 주셔야 합니다.

 

VBeditor 로 매크로 사이닝시에.. 별도의 timestamp 를 등록하는 UI가 없습니다.

아래와 같이 직접 레지스트리를 수정하셔서 등록해 주셔야 합니다.

 

VBA Project를 사인시 아래 3개의 레지스트리값을 먼저 등록하시고,
사이닝을 하시면 timestamp가 등록됩니다.


HKEY_Current_User\Software\Microsoft\VBA\Security\TimeStampURL
HKEY_Current_User\Software\Microsoft\VBA\Security\TimeStampRetryCount
HKEY_Current_User\Software\Microsoft\VBA\Security\TimeStampRetryDelay

 

TimeStampURL : String 값으로
                        timestamp 서버 URL을 입력합니다.
                        TimeStampURL 은  다음 URL을 사용하시면 됩니다. 
                        http://timestamp.verisign.com/scripts/timstamp.dll
                        (timstamp.dll <- time에 e 가 없습니다. 주의!!!)
TimeStampRetryCount : DWord 값으로
                      VB editor가 timestampurl 접속에 실패하는 경우 재시도 횟수를 입력합니다.
TimeStampRetryDelay : Dword
                      VB editor 가 timestampUrl 접속에 retury 할때 delay 하는 시간을 입력합니다.

 - 써트코리아 (http://www.certkorea.co.kr )

'참고자료 > 인증서' 카테고리의 다른 글

응용프로그램 인증서 가이드  (0) 2009.04.09
코드사인 인증서  (0) 2009.04.09

+ Recent posts