일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- MSYS2
- FIDO2
- 앱리소스
- OSX
- Xcode
- 앱스토어
- 앨범북
- fido
- Android
- SSL
- OTP
- 안드로이드
- appres
- kmip
- SSH
- 애플
- MFA
- SWIFT
- SwiftUI
- Nodejs
- WebAuthn
- css
- MYSQL
- 2FA
- 인증
- git
- apple
- otpkey
- openssl
- albumbook
- Today
- Total
인디노트
오픈소스 PKI 문서 - 제 4 장. 일반 구현 개요 본문
인증서를 만들고 인증 기관을 운영하는 프로세스에 대한 기술적 개요를 제공합니다.
선결 요건
여기서는 사용 가능한 인증 기관을 만드는데 필요한 소프트웨어에 대해 논의 할 것입니다.
유용한 오픈 소스 소프트웨어
다음 소프트웨어는 인증 기관의 전체 기능을 제공 할 수 있습니다.
인증 기관 서버의 경우 모든 운영 체제를 사용 할 수 있습니다. 등록 기관과 수동으로 통신하는 경우 (예 : 데이터 파일이 플로피 디스크를 사용하여 전송되는 경우) 네트워크 지원이 필요하지 않습니다. 그러나 안정성에 대한 일종의 보증을 제공하고 관련없는 시스템 또는 네트워크 서비스를 쉽게 제거 할 수 있는 운영 체제를 사용하는 것이 좋습니다. 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 을 백엔드로 사용합니다 . 후자의 경우에는 여러 단계를 수행해야 하므로 수동 절차가 아닌 스크립트를 사용합니다. 이 단계는 이 책의 범위를 벗어납니다. 이 문서의 향후 버전에서는 이 문제를 다시 검토 할 것입니다.
'인증기술 > PKI 기술' 카테고리의 다른 글
오픈소스 PKI 문서 - 제 6 장. 인터넷 X.509 PKIX (Public Key Infrastructure) (0) | 2018.09.27 |
---|---|
오픈소스 PKI 문서 - 제 5 장. PKI 표준 및 사양 (0) | 2018.09.27 |
오픈소스 PKI 문서 - 제 3 장. 공개 키 기반 구조의 기본 기능 (0) | 2018.09.27 |
오픈소스 PKI 문서 - 제 2 장. 암호 소개 (0) | 2018.09.27 |
오픈소스 PKI 문서 - 제 1 장. 이책의 목적 (0) | 2018.09.27 |