인디노트

오픈소스 PKI 문서 - 제 4 장. 일반 구현 개요 본문

인증기술/PKI 기술

오픈소스 PKI 문서 - 제 4 장. 일반 구현 개요

인디개발자 2018. 9. 27. 10:19

인증서를 만들고 인증 기관을 운영하는 프로세스에 대한 기술적 개요를 제공합니다.

선결 요건

여기서는 사용 가능한 인증 기관을 만드는데 필요한 소프트웨어에 대해 논의 할 것입니다.

유용한 오픈 소스 소프트웨어

다음 소프트웨어는 인증 기관의 전체 기능을 제공 할 수 있습니다.

  • 인증 기관 서버의 경우 모든 운영 체제를 사용 할 수 있습니다. 등록 기관과 수동으로 통신하는 경우 (예 : 데이터 파일이 플로피 디스크를 사용하여 전송되는 경우) 네트워크 지원이 필요하지 않습니다. 그러나 안정성에 대한 일종의 보증을 제공하고 관련없는 시스템 또는 네트워크 서비스를 쉽게 제거 할 수 있는 운영 체제를 사용하는 것이 좋습니다.  Unix ™ 또는  Unix ™와 유사한 운영 체제를 사용하는 것이 좋습니다 .

  • SSL / TLS 소프트웨어

  • SSL / TLS를 지원하는 웹 서버

  • LDAP 서버

  • 텍스트 / 그래픽 인터페이스, Java / HTML 가능

노트

PKIX 표준은 CA / RA 의 역할을 위한 웹 서버의 사용을 제안하거나 금지하지 않습니다. CA 와 RA 모두에 대해 독립형 네트워크 응용 프로그램을 작성해야하는 필요성을 없애기 위해 지정된 운영자가 운영하는 개별 웹 서버를 사용할 수 있습니다.


인증 기관의 초기화

여기에서는 CA 의 초기화 단계를 설명 합니다. 이것은 한번 발생합니다. CA 의 개인 키 보호에 특별한 주의가 필요합니다.

노트

다음 예제 에서는 워크 스테이션에 OpenSSL 소프트웨어가 설치 되어 있어야합니다. 또한 PATH 환경 변수에 OpenSSL 응용 프로그램이 상주하는 디렉토리가 있는 것이 좋습니다 OpenSSL 응용 프로그램의 사용 가능한 위치는 /usr/local/ssl/bin/ 또는 /usr/bin/ 입니다.


CA 에 대한 RSA 키 쌍 생성

다음 명령을 사용하여 RSA 키 쌍을 생성하십시오.

CA_Admin% openssl genrsa -des3 -out ca.key 2048

매개 변수

genrsa

OpenSSL 컴포넌트는 RSA 의 키 쌍을 생성.

~des3

키 쌍을 암호화하는 대칭 알고리즘,

-out ca.key

키 쌍을 저장 할 파일 이름,

2048

비트 단위의 RSA 모듈 크기.

위의 명령을 실행하면 사용자에게 다음 정보가 제공됩니다.

1112 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
.+++++
......................................................+++++
e is 65537 (0x10001)
Enter PEM pass phrase: enter the pass–phrase here
Verifying password - Enter PEM pass phrase: re–enter 
the pass–phrase here

이것은 ca.key 파일에 저장되어 있는 RSA 키 쌍을 생성합니다 이 키 쌍은 키 생성 중에 사용자가 제공한 암호를 사용하여 3DES 로 암호화됩니다 N 의 RSA (두 소수의 곱) 은 2048 비트 길이 입니다. 간략하게 하기 위해 2048-bit RSA 라고 사용합니다.

패스 문구로 암호화 된 샘플 키 쌍 은 부록 B 의 샘플 암호화 된 개인 키 (PEM 형식의 2048 비트) 섹션 에서 찾을 수 있습니다 암호문 암호화가 없는 동일한 키 쌍이 부록 B의 PEM 형식의 샘플 개인 키 (2048 비트) 섹션 에 있습니다 . 동일한 키의 디코딩 된 버전은 부록 B 에서 TXT 형식의 샘플 개인 키 (2048 비트) 섹션 에서 찾을 수 있습니다 .


자체 서명된 CA 인증서 만들기

자체 서명된 CA 인증서를 얻으려면 해당 개인 키를 사용하여 CA 의 인증서 요청에 서명해야 합니다. 결과적으로 인증서에는 X.509 구조가 사용됩니다.

CA_Admin% openssl req -new -x509 -days 365 -key ca.key -out ca.crt

매개 변수

req

openssl 구성 요소는 인증서 요청을 생성,

-new

새로운 인증서입니다.

-x509

X.509 인증서를 생성합니다.

-days 365

인증서가 유효 할 시간 (현재부터 계산)

-key ca.key

사용되는 키 페어 파일,

-out ca.crt

새로운 증명서가 기입 해지는 파일명

위의 명령을 실행하면이 대화 상자가 나타납니다.

Using configuration from /usr/local/ssl/openssl.cnf
Enter PEM pass phrase:  enter the pass–phrase here
You are about to be asked to enter information that will be 
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished 
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]:Surrey
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Best CA Ltd
Organizational Unit Name (eg, section) []:Class 1 Public Primary Certification Authority
Common Name (eg, YOUR name) []:Best CA Ltd
Email Address []:.
CA_Admin% 

그러면 ca.crt 라는자가 서명 인증서가 만들어집니다 수령일로부터 365 일 동안 유효합니다. 이 단계에서 CA 관리자는 CA 루트 인증서의 X.509 세부 정보를 입력해야합니다.

PEM 형식의 샘플 CA 인증서 는 부록 B의 PEM 형식의 샘플 CA 인증서 섹션 에서 찾을 수 있습니다 TXT 또는 사람이 읽을 수있는 동일한 인증서는 부록 B의 TXT 형식의 샘플 CA 인증서 섹션 에서 찾을 수 있습니다 .



사용자 / 서버 키 생성 및 서명

사용자는 CA 에서 인증해야하는 해당 사용자나 엔티티가 사용할 인증서의 키 쌍을 생성합니다. 또한 서명 절차를 보여줍니다.

사용자 / 서버에 대한 RSA 키 쌍 생성

RSA 키 쌍을 생성 하려면 이 명령을 사용하십시오.

user% openssl genrsa -des3 -out user.key 2048

매개 변수

genrsa

OpenSSL 컴포넌트는 생성 RSA 의 키 쌍을 생성

-des3

키 쌍을 암호화하는 대칭 알고리즘,

-out user.key

키 쌍을 저장할 파일 이름,

2048

비트 단위의 RSA 모듈 크기.

위의 명령을 실행하면 사용자에게 다음과 같은 대화 상자가 표시됩니다.

1112 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
.+++++
........................................................++++++++++++
e is 65537 (0x10001)
Enter PEM pass phrase: enter the pass–phrase here
Verifying password - Enter PEM pass phrase: re–enter pass–phrase here

이렇게 하면 user.key 파일에 저장된 RSA 키 쌍이 만들어집니다 키 쌍은 키 생성 중에 사용자가 제공한 암호로 3DES 암호화됩니다. RSA 의 N 은 2048 비트입니다.

CA 키 쌍 생성과 동일한 절차임을 유의해야합니다. 샘플 키 쌍은 CA 의 RSA 키 쌍 생성 절에 나열된 부록을 참조하십시오 .

인증서 요청 생성

사용자는 이 명령으로 인증서 요청을 생성합니다. CSR 은 서명을 위해 CA 로 전송됩니다. CA 는 서명된 인증서를 리턴 합니다.

user% openssl req -new -key user.key -out user.csr

매개 변수

req

인증서 요청을 생성,

-new

이것은 새로운 인증서입니다.

-key user.key

사용되는 키 페어 파일,

-out user.csr

새로운 증명서 요구가 기입되는 파일명

위의 명령을 실행하면 다음과 같은 대화 상자가 표시됩니다.

Using configuration from /usr/local/ssl/openssl.cnf
Enter PEM pass phrase:  type the pass–phrase here
You are about to be asked to enter information that will 
be incorporated into your certificate request.
What you are about to enter is what is called a 
Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]:Surrey
Locality Name (eg, city) []:Egham
Organization Name (eg, company) [MyCo Ltd]:Arts Building Ltd
Organizational Unit Name (eg, section) []:Dept. History
Common Name (eg, YOUR name) []:Simos Xenitellis
Email Address []:S.Xenitellis@rhbnc.ac.uk

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
User% 

이 명령은 user.csr 파일에 저장된 인증서 요청을 작성합니다 이 단계에서 사용자는 그림과 같이 X.509 인증서의 필드 값을 입력합니다. PEM 형식의 인증서 요청에 대해서는 부록 B의 PEM 형식의 인증서 요청 샘플 섹션을 참조하십시오 A 에 대한 TXT 또는 사람이 읽을 수 있는 버전을 확인하십시오 TXT 형식의 샘플 인증서 요청  섹션 부록 B를 를 참조하십시오.


인증서 요청 (CSR) 에 서명하도록 CA 에 요청

CA 는 인증서 요청 (CSR) 을 수신하고 사용된 정책에 따라 CSR 서명 여부를 결정합니다. 사용자를 신뢰하는 경우 다음과 같이 CSR에 서명합니다.

CA_Admin% ./sign.sh user.csr
CA signing: user.csr -> user.crt:
Using configuration from ca.config
Enter PEM pass phrase: enter the pass–phrase
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName           :PRINTABLE:'GB'
stateOrProvinceName   :PRINTABLE:'Surrey'
localityName          :PRINTABLE:'Egham'
organizationName      :PRINTABLE:'Arts Building Ltd'
organizationalUnitName:PRINTABLE:'Dept. History'
commonName            :PRINTABLE:'Simos Xenitellis'
emailAddress          :IA5STRING:'S.Xenitellis@rhbnc.ac.uk'
Certificate is to be certified until Feb  6 13:30:41 2001 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
CA verifying: user.crt <-> CA cert
user.crt: OK
CA_Admin% 

이 명령은 사용자 인증서 user.crt 라는 파일을 생성합니다 sign.sh의 스크립트는 /pkg.contrib/ 디렉토리에 있는 modssl 패키지에서 찾을 수 있습니다이 스크립트는 openssl 을 백엔드로 사용합니다 후자의 경우에는 여러 단계를 수행해야 하므로 수동 절차가 아닌 스크립트를 사용합니다. 이 단계는 이 책의 범위를 벗어납니다. 이 문서의 향후 버전에서는 이 문제를 다시 검토 할 것입니다.




반응형
Comments