Infrastructure
                응용프로그램 인증 가이드
               
              
                duraboys
                 2009. 11. 20. 16:12
              
              
                            
        
        
                                
            
| 응용프로그램 인증 가이드 | 
|  | 
| 
| 
 
| ※ 인증 작업을 진행하시다가 에러가 발생하는 경우에는 코드사인 에러 
테이블을 참조하시기 바랍니다.
 -> 코드사인 에러 테이블
 |  
| 일반적인 순서 |  
| ① Cab 파일 생성 |  
| ② 생성된 Cab파일 Codesign 하기 |  
| ③ 사인된 Cab파일 확인 |  
|  |  
|  |  
|  |  
| 세부 설치 가이드 |  
|  | 1. 인증서를 설치하기 위하여 다음 프로그램을 다운로드 받아 압축을 풉니다 |  
|  | 
| 
|  | • 실행하면 압축이 자동으로 풀립니다. • 발급받은 인증키(*.pvk, *.spc)가 저장되어진 폴더에 압축을 
풉니다.
 |  |  
| 
| 
| < Codesign.exe 
파일구성 > |  
| • CabArc.exe | Cabinet Archive를 생성해 주는 프로그램. 우리의 애플릿 클래스 파일들을 Cabinet 파일로 만들어 준다. |  
| • SignCode.exe | Cabinet 파일을 우리의 비밀키와 인증서로 사인해준다. |  
| • ChkTrust.exe | 사인 작업이 잘 수행되었는가 검증해 주는 프로그램. |  
| • MakeCert.exe | 시험용 인증서를 만들어 주는 프로그램 |  
| • Cert2Sp | MakeCert로 만들어진 시험용 인증서를 사인하는 작업에 사용될 수 있도록 변환해 주는 프로그램 |  
| • Javasign.dll | 사인 작업 시 필요한 정보를 지정해 주는 데에 사용되는 
프로그램 |  |  
 |  |  
|  | 2. MS-DOS에서 해당 파일이 저장되어있는 폴더로 이동합니다. |  
|  |  |  
|  | 3. -CAB 파일 생성- Application을 사인하기 위하여 CAB Archive 파일을 만든다. |  
|  | 
| 
| Usage: CABARC [options] command cabfile [@list] 
[files] [dest_dir] 기본 예> cabarc -s 6144 N ABC.cab 
ABC1.ocx ABC2.ocx
 |  
|  |  
| 1) 하나의 파일을 Cab 파일로 생성 CabArc n ABC.cab 
ABC.class
 |  
| 2) 적은수의 파일을 Cab 파일로 생성 - 3개의 파일(ABC1.ocx, ABC2.ocx, ABC1.inf)로 Cab 파일 
생성
 Cabarc n ABC.cab ABC1.ocx ABC2.ocx 
ABC.inf
 
 |  
| 
| < Cabarc Guide 
> |  
| Command |  
| L | Cabinet(CAB) 파일의 목록 보기 (예: CabArc l test.cab) |  
| N | 새로운 cabinet 파일 생성 (예: CabArc n test.cab *.c app.mak 
*.h) |  
| X | Cabinet 파일로부터 파일 꺼내기 (예: CabArc x test.cab foo*.c) |  
| Options |  
| -c | 작업할 파일 확인하기 |  
| -o | 파일을 꺼낼 때, 사용자에게 묻지 않고 덮어쓰기 |  
| -m | 압축 형태 지정 [LZX:<15..21>|MSZIP|NONE], (기본 형태는 MSZIP) |  
| -p | 파일명에 파일 경로 포함하기 (단, 상대 경로만 허용) |  
| -P | 파일 포함 시 지정된 접두어 생략하기 (주로, 파일 경로의 일부가 지정됨) |  
| -r | 하위 디렉토리의 파일까지 포함하기 (주로, -p 옵션과 함께 사용) |  
| -s | Cabinet 파일 내에 사인 정보를 둘 여유 공간 확보 (예: -s 6144 => 6K bytes). 
Java SDK 2.0부터는 필요 없음 |  
| -I | Cabinet 생성시 'Cabinet Set ID' 지정 (기본 아이디는 
0) |  |  
 |  |  
|  |  |  
|  | 4. - Codesign - 발급된 인증서를 사용하여 코드사인 합니다. |  
|  | 
| 
| < Uage: SignCode [options] 
FileName > ※ 대표적으로 5개의 Option을 가장 많이 
사용합니다.
 |  
| 1) 기본사인하기 : signcode -spc [파일.spc] -v [파일.pvk] -n 
[프로그램이름] -i [부가설명URL]
 -t 
http://timestamp.verisign.com/scripts/timestamp.dll [사인할파일명]
 |  
| 2) 개인키 패스워드 창이 나오면 지정된 암호를 입력하시기 바랍니다. |  
| ※ signcode 작업을 진행하시다가 에러가 발생하는 경우에는 [애니서트 코드사인 에러 
테이블]을 참조하시기 바랍니다.
 -> [애니서트 코드사인 에러 
테이블]
 
 만약, [애니서트 코드 사인 에러 테이블]을 보시고 잘 해결되지 않는 부분에 대해서는 애니서트 
메일로 에러 상황을 리포트해 주신다면 코드 사인 에러에 대해서 지원해 드릴 수 있습니다.
 |  
|  |  
|  |  
| ※ 대부분 codesign에 성공하나 아래와 같은 오류 메시지가 나올 수 있습니다. 이는 
잘못된 명령이 아니오며, Timestamp 서버에 접속이 실패한 것입니다.
 다시 Succeded 멧세지가 나올때까지 시도하시기 
바랍니다.
 |  
|  |  
| 3) 사인이 끝났습니다. 서명된 내용을 확인합니다. : Chktrust 
[파일명]
 |  
|  |  
|  |  
 
 
| 
| < SignCode Option 
Guide > |  |  
| 
| Options | Parameter | 설 명 |  
| -spc | file | SPC를 포함하는 파일명 |  
| -v | pvkFile | 비밀키를 포함하고 있는 파일명 |  
| -k | KeyName | 레지스트리 내의 키 이름 |  
| -n | name | 사인할 내용에 대한 텍스트 이름 |  
| -I | info | 사인할 내용에 대한 부가 설명이 있는 장소(예:URL) |  
| -p | provider | 시스템내의 암호화 시스템 제공자 이름 |  
| -y | type | 시스템내의 암호화 시스템 제공자 형태 |  
| ky | keytype | 키의 종류 <signature|exchange|<정수>> 중 하나 |  
| -$ | authority | 인증서를 인증한 기관의 종류. <individual|commercial> 중 하나 |  
| -a | algorithm | 사인에 이용된 해쉬 알고리즘. <md5|sha1> 중 하나. MD5가 기본 |  
| -t | URL | Timestamp를 찍어줄 서버의 HTTP 주소 |  
| -tr | Number | Timestamp 간 간격(초단위) 기본은 0 초 |  
| -j | DllName | 사인에 필요한 부가 특성들을 포함하는 Dll 파일명(예:보안레벨) |  
| -jp | Param | Dll 파일에 넘실 Parameter |  
| -c | File | 인코딩된 spc를 포함한 X.509 파일명 |  
| -s | Store | 인증서를 가지고 있는 인증서 보관소명, 기본은 my store |  
| -r | Location | 레지스트리 내의 인증서 보관소의 위치 <localMachine|currentUser> 중 하나. 기본은 
currentUser
 |  
| -sp | Policy | 인증서 검증에 필요한 모든 인증서를 포함할 것인가 아니면 SPC 보관소(Store)에 들어있는 인증서가 나올 때까지 포함할 것인가에 대한 
정책. <chain|spcstore> 중 하나. 기본은 spcstore. |  
| -cn | Name | 인증서의 일반 이름(별명) |  
| -x |  | 사인하지 말고 Timestamp만 받을것을 
명시 |  |  
 
 |  |  |  |