'keytool'에 해당되는 글 2건
- 2006.04.08 Keytool 사용법
- 2006.04.08 Keytool 에 관하여
keytool 사용법:
-certreq [-v] [-alias <별명>] [-sigalg <서명 알고리즘>]
[-file <csr 파일>] [-keypass <키 암호>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-delete [-v] -alias <별명>
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-export [-v] [-rfc] [-alias <별명>] [-file <인증서 파일>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-genkey [-v] [-alias <별명>] [-keyalg <키 알고리즘>]
[-keysize <키 크기>] [-sigalg <서명 알고리즘>]
[-dname <대상 이름>] [-validity <유효일>]
[-keypass <키 암호>] [-keystore <keystore>]
[-storepass <암호 입력>] [-storetype <입력 유형>]
[-provider <공급자 클래스 이름>] ...
-help
-identitydb [-v] [-file <idb 파일>] [-keystore <keystore>]
[-storepass <암호 입력>] [-storetype <입력 유형>]
[-provider <공급자 클래스 이름>] ...
-import [-v] [-noprompt] [-trustcacerts] [-alias <별명>]
[-file <인증서 파일>] [-keypass <키 암호>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-keyclone [-v] [-alias <별명>] -dest <대상 별명>
[-keypass <키 암호>] [-new <새 키 암호>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-keypasswd [-v] [-alias <별명>]
[-keypass <기존 키 암호>] [-new <새 키 암호>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-list [-v | -rfc] [-alias <별명>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-printcert [-v] [-file <인증서 파일>]
-selfcert [-v] [-alias <별명>] [-sigalg <서명 알고리즘>]
[-dname <대상 이름>] [-validity <유효일>]
[-keypass <키 암호>] [-keystore <keystore>]
[-storepass <암호 입력>] [-storetype <입력 유형>]
[-provider <공급자 클래스 이름>] ...
-storepasswd [-v] [-new <새 암호 입력>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-certreq [-v] [-alias <별명>] [-sigalg <서명 알고리즘>]
[-file <csr 파일>] [-keypass <키 암호>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-delete [-v] -alias <별명>
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-export [-v] [-rfc] [-alias <별명>] [-file <인증서 파일>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-genkey [-v] [-alias <별명>] [-keyalg <키 알고리즘>]
[-keysize <키 크기>] [-sigalg <서명 알고리즘>]
[-dname <대상 이름>] [-validity <유효일>]
[-keypass <키 암호>] [-keystore <keystore>]
[-storepass <암호 입력>] [-storetype <입력 유형>]
[-provider <공급자 클래스 이름>] ...
-help
-identitydb [-v] [-file <idb 파일>] [-keystore <keystore>]
[-storepass <암호 입력>] [-storetype <입력 유형>]
[-provider <공급자 클래스 이름>] ...
-import [-v] [-noprompt] [-trustcacerts] [-alias <별명>]
[-file <인증서 파일>] [-keypass <키 암호>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-keyclone [-v] [-alias <별명>] -dest <대상 별명>
[-keypass <키 암호>] [-new <새 키 암호>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-keypasswd [-v] [-alias <별명>]
[-keypass <기존 키 암호>] [-new <새 키 암호>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-list [-v | -rfc] [-alias <별명>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
-printcert [-v] [-file <인증서 파일>]
-selfcert [-v] [-alias <별명>] [-sigalg <서명 알고리즘>]
[-dname <대상 이름>] [-validity <유효일>]
[-keypass <키 암호>] [-keystore <keystore>]
[-storepass <암호 입력>] [-storetype <입력 유형>]
[-provider <공급자 클래스 이름>] ...
-storepasswd [-v] [-new <새 암호 입력>]
[-keystore <keystore>] [-storepass <암호 입력>]
[-storetype <입력 유형>] [-provider <공급자 클래스 이름>] ...
KEYTOOL - Key and Certificate Management Tool
private키및 그와 관련된 X.509인증고리를 관리한다. 또한 신뢰하는 인증서도 관리한다.
SYNOPSIS
keytool [commands]
DESCRIPTION
keytool은 키와 인증서를 관리하는 유틸리티이다.
keytool은 자신만의 개인키/공개된키 및 자신이 권한을 부여한 인증서를 관리할 수 있게하며, 자료의 보장과 전자서명에의한 인증을 관리할수 있게 하여준다.
인증서는 특정인이나 회사로부터 전자서명된 하나의 객체로 공개된키와 또다른 정보를 가지고 있다. data가 전자서명되었을때에, 전자서명은 자료의 무결성과 신빙성을 위하여 검사된다. 무결성의 의미는 자료가 수정되거나 조작되지 않았다는것을 의미하고, 신빙성은 생성자로부터 보내어진 화일이 맞다는것을 의미한다.
keytool은 키와 인증서를 keystore라고 하는곳에 저장한다. 디폴트 keystore구현은 keystore를 화일로 구현하며, 비밀번호로 개인키를 보호한다.
jarsigner에서는 Java ARchive(JAR)화일을 위한 전자서명을 생성하거나 확인하기 위하여 keystore를 사용한다. jarsigner는 JAR화일과 함께있는 인증서를 이용하여 JAR화일의 전자서명을 검증하고, 인증서의 공개키가 신뢰할수 있는지를 검사한다.
Note: keytool과 jarsigner는 JDK1.1의 javakey를 대체한다. 이 두가지 도구는 kavakey보다 많은 기능을 제공한다. jdk1.1.의 kavakey에서 사용하던 identify database는 keytool의 identitydb 명령어로 keystore로 저장할수 있다.
KeyStore Entries
keystore에는 두가지 다른 형태의 entries가 존재한다.
key entries - 아주 섬세안 암호화키 정보를 저장하고 있다. 이것은 불법적인 접근을 막기위하여 보호된 형태로 저장된다. 실질적으로 이키는 비밀키(개인키)와 인증서고리와 함께 오는 공개키를 저장한다. keytool과 jarsigner는 후자(공개키)만을 사용한다.(뒤에 뭐라고 있는데 모르겠다....)
trusted certificate entries - 또다른 곳에 속하는 하나의 공개키를 저장한다. 이것은 "trusted certificate"하고 하는것으로 keystore의 주인이 그 공개키를 신뢰할수 있다고 인정하는 경우에 keystore에 저장한다.
Keystore Aliases
모든 keystore 엔트리는 유일한 별명을 이용해서 접근한다. 별명은 대소문자를 구분하지 않으므로, Hugo와 hugo는 같은엔트리를 의미한다.
별명은 keystore에 새로운 엔트리를 저장할때에 지정한다. -genkey는 새로운 키를 생성할때 사용하며, -import는 인증서나 인증서고리를 keystore에 저장할때에 사용하며 -alias를 이용하여 별명을 지정한다. 나중에 keytool에서는 반드시 동일한 별명으로 각가의 엔트리를 참조할수 있다.
예를들어, 다음의 명령어로 self-sign된 인증서의 비밀키/공개키를 생성하면,
keytool -genkey -alias duke -keypass dukepassword
다음에 비밀번호를 바꾸려고 할때에는 다음 명령어처럼 별명을 주고 사용한다.
keytool -keypasswd -alias duke -keypass dukekeypasswd -new newpass
Keystore Location
모든 keytool의 명령은 -keystore선택사항을 이용하여 keystore의 위치를 지정할수 있다. 미리정의된 keystore의 이름과 위치는 사용자의 홈디렉토리에 .keystore로 되어있다.
C:WinntProfilesuNmae (다중사용자 NT시스템)
C:WindowsProfilesuNmae (다중사용자 Windows 95시스템)
C:Wdindows (단일사용자 Windows 95시스템)
Keystore Creation
keystore는 -genkey나 -import또는 -identitydb명령어에의해서 생성될수 있다. -keystore옵션을 사용하면 새로운 위치에 keystore를 생성할수 있다. 만약 -keystore옵션을 사용하지 않으면 기본적인 keystore는 .keystore라는 이름으로 사용자의 홈디랙토리에 생성된다.
Keystore Implementation
Keystore 클래스에 관한 내용.......생략
Supported Algorithms and Key Sizes
keytool은 등록된 Cryptographic Service Providers를 이용해서 비밀키/공개키를 생성할수 있도록 하여준다. keyalg와 sigalg선택사항을 이용하여 여러가지 다른 알고리즘을 사용할수 있다. 미리정의된 키쌍의 생성알고리즘은 "DSA"이며 서명알고리즘은 비밀키의 알고리즘에따라서 선택할수 있다. 만약 비밀키의 형태가 "DSA"이면, 미리정의된 서명 알고리즘은 "SHA1withDSA"이고, "RSA"이면 "MD5withRSA"로 서명알고리즘을 사용한다.
DSA를 이용하는 키쌍을 생성할때에는 512부터 1024비트의 키사이즈를 사용하여야 하며, 반드시 64의 배수이여야 한다. 기본적으로는 1024를 사용한다.
Certificates
인증서(공개키 인증서)는 전자서명된 문장이다
인증서와 관련하여 나오는 용어를 정리하면, 다음과 같다.
Public Keys
특정엔트리에 연관된 숫자들로, 모든사람이 신뢰할수 있도록 배포된다. 또한 public key는 전자서명의 검증에 사용된다.
Digitally Signed
Identity
Signature
Private Keys
Entity
private키및 그와 관련된 X.509인증고리를 관리한다. 또한 신뢰하는 인증서도 관리한다.
SYNOPSIS
keytool [commands]
DESCRIPTION
keytool은 키와 인증서를 관리하는 유틸리티이다.
keytool은 자신만의 개인키/공개된키 및 자신이 권한을 부여한 인증서를 관리할 수 있게하며, 자료의 보장과 전자서명에의한 인증을 관리할수 있게 하여준다.
인증서는 특정인이나 회사로부터 전자서명된 하나의 객체로 공개된키와 또다른 정보를 가지고 있다. data가 전자서명되었을때에, 전자서명은 자료의 무결성과 신빙성을 위하여 검사된다. 무결성의 의미는 자료가 수정되거나 조작되지 않았다는것을 의미하고, 신빙성은 생성자로부터 보내어진 화일이 맞다는것을 의미한다.
keytool은 키와 인증서를 keystore라고 하는곳에 저장한다. 디폴트 keystore구현은 keystore를 화일로 구현하며, 비밀번호로 개인키를 보호한다.
jarsigner에서는 Java ARchive(JAR)화일을 위한 전자서명을 생성하거나 확인하기 위하여 keystore를 사용한다. jarsigner는 JAR화일과 함께있는 인증서를 이용하여 JAR화일의 전자서명을 검증하고, 인증서의 공개키가 신뢰할수 있는지를 검사한다.
Note: keytool과 jarsigner는 JDK1.1의 javakey를 대체한다. 이 두가지 도구는 kavakey보다 많은 기능을 제공한다. jdk1.1.의 kavakey에서 사용하던 identify database는 keytool의 identitydb 명령어로 keystore로 저장할수 있다.
KeyStore Entries
keystore에는 두가지 다른 형태의 entries가 존재한다.
key entries - 아주 섬세안 암호화키 정보를 저장하고 있다. 이것은 불법적인 접근을 막기위하여 보호된 형태로 저장된다. 실질적으로 이키는 비밀키(개인키)와 인증서고리와 함께 오는 공개키를 저장한다. keytool과 jarsigner는 후자(공개키)만을 사용한다.(뒤에 뭐라고 있는데 모르겠다....)
trusted certificate entries - 또다른 곳에 속하는 하나의 공개키를 저장한다. 이것은 "trusted certificate"하고 하는것으로 keystore의 주인이 그 공개키를 신뢰할수 있다고 인정하는 경우에 keystore에 저장한다.
Keystore Aliases
모든 keystore 엔트리는 유일한 별명을 이용해서 접근한다. 별명은 대소문자를 구분하지 않으므로, Hugo와 hugo는 같은엔트리를 의미한다.
별명은 keystore에 새로운 엔트리를 저장할때에 지정한다. -genkey는 새로운 키를 생성할때 사용하며, -import는 인증서나 인증서고리를 keystore에 저장할때에 사용하며 -alias를 이용하여 별명을 지정한다. 나중에 keytool에서는 반드시 동일한 별명으로 각가의 엔트리를 참조할수 있다.
예를들어, 다음의 명령어로 self-sign된 인증서의 비밀키/공개키를 생성하면,
keytool -genkey -alias duke -keypass dukepassword
다음에 비밀번호를 바꾸려고 할때에는 다음 명령어처럼 별명을 주고 사용한다.
keytool -keypasswd -alias duke -keypass dukekeypasswd -new newpass
Keystore Location
모든 keytool의 명령은 -keystore선택사항을 이용하여 keystore의 위치를 지정할수 있다. 미리정의된 keystore의 이름과 위치는 사용자의 홈디렉토리에 .keystore로 되어있다.
C:WinntProfilesuNmae (다중사용자 NT시스템)
C:WindowsProfilesuNmae (다중사용자 Windows 95시스템)
C:Wdindows (단일사용자 Windows 95시스템)
Keystore Creation
keystore는 -genkey나 -import또는 -identitydb명령어에의해서 생성될수 있다. -keystore옵션을 사용하면 새로운 위치에 keystore를 생성할수 있다. 만약 -keystore옵션을 사용하지 않으면 기본적인 keystore는 .keystore라는 이름으로 사용자의 홈디랙토리에 생성된다.
Keystore Implementation
Keystore 클래스에 관한 내용.......생략
Supported Algorithms and Key Sizes
keytool은 등록된 Cryptographic Service Providers를 이용해서 비밀키/공개키를 생성할수 있도록 하여준다. keyalg와 sigalg선택사항을 이용하여 여러가지 다른 알고리즘을 사용할수 있다. 미리정의된 키쌍의 생성알고리즘은 "DSA"이며 서명알고리즘은 비밀키의 알고리즘에따라서 선택할수 있다. 만약 비밀키의 형태가 "DSA"이면, 미리정의된 서명 알고리즘은 "SHA1withDSA"이고, "RSA"이면 "MD5withRSA"로 서명알고리즘을 사용한다.
DSA를 이용하는 키쌍을 생성할때에는 512부터 1024비트의 키사이즈를 사용하여야 하며, 반드시 64의 배수이여야 한다. 기본적으로는 1024를 사용한다.
Certificates
인증서(공개키 인증서)는 전자서명된 문장이다
인증서와 관련하여 나오는 용어를 정리하면, 다음과 같다.
Public Keys
특정엔트리에 연관된 숫자들로, 모든사람이 신뢰할수 있도록 배포된다. 또한 public key는 전자서명의 검증에 사용된다.
Digitally Signed
Identity
Signature
Private Keys
Entity