5. 정보보안/보안기술(암호화)

PKI(Public Key Infrastructure)

SWExpert 2022. 8. 11. 22:43

1. PKI의 정의

PKI는 안전한 거래를 위해 필요한 암호화, 인증 등에 필수 요소라 할 수 있는 공개키 관리를 위한 기반 구조로서 정보보안 서비스를 제공해 주는 암호화 및 복호화 키와 인증서(Certificate)를 안전하게 분배하기 위한 기반 구조이다. PKI는 정보시스템 보안, 전자상거래 등 안전한 통신을 원하는 여러 응용 분야에서 인증서의 사용 및 암호화 통신을 용이하도록 하는 정책, 수단, 도구 등을 수립하고 제공하는 객체들의 네트워크 구조이다.

 

2. PKI의 구성요소

공개키 기반 구조는 정책승인기관(PAA), 정책인증기관(PCA) 인증기관(CA), 등록기관(RA) 및 공인 인증서(Certificate)등으로 구성된다. 

 

구성 세부내용
정책승인기관(PAA), PKI 전반에 사용되는 정책과 절차를 생성하여 수립(행정안전부)
정책인증기관(PCA) 정책승인기관에서 승인된 정책에 대한 세부정책 수립(한국인터넷 진흥원)
인증기관(CA) 사용자의 공개키 인증서발행, 인증서 폐기 목록관리(한국정보인증, 코스콤, 금융결제원, 한국전자인증, 한국무역정보통신)
등록기관(RA) 인증기관의 업무대행, 공인인증서 등록 신청서 접수(은행, 증권사)
인증서 소유자 인증서를 발급받고, 전자문서에 서명하고 암호화를 하는 공개키 인증서의 소유자
사용자 인증기관의 공개키를 이용하여 인증경로 및 전자서명을 검증하는 사용자
공인 인증서(Certificate)CRL 저장소 X.509 v3 표준을 준수하는 인증서 표준을 사용
전자서명 검증 키와 소유자 관계를 증명해 주는 전자적 파일
폐기된 인증서들의 목록을 관리하기 위한 CRL 저장소

3. PKI의 운영

사용자가 등록기관(RA)의 지점에서 가입신청 및 신원확인 완료 후 등록기관(RA)에 인증서 발급요청을 하면 등록기관(RA)은 인증기관(CA)에 발급 등록 요청 정보를 송신한다. 인증기관(CA)은 인증기관(CA)의 개인키로 서명한 인증서를 발생하여 디렉터리 서버에 게시하고 등록기관(RA)을 통하여 사용자에게 전달한다. 사용자는 발급 받은 인증서를 PC의 하드디스크나 이동식 디스크에 저장하여 금융거래 및 전자상거래 등에서 사용하게 되는데 이때 금융기관에서는 공인인증기관을 통하여 인증서 검증을 수행한다.

 

[공개키 기반 구조의 참가자들과 이들간의 업무흐름]

(4) PKI에서의 전자서명과 암호화

PKI 환경 즉, 송신자와 수신자 모두가 공인인증서 암호체계를 운용하고 있을 때, 사용자 인증과 메시지 기밀성을 목적으로 활용하는 과정은 위 그림이다. 송신측과 수신측의 주요 동작 단계에 대한 설명은 아래 표이다. 아래 그램에서 세션키(Session Key)란 메시지에 대해 비밀키 방식을 적용하기위해 송신자가 생성한 일회용 비밀키로, 이 키를 안전하게 전송하기 위해 수신자의 공개키를 이용하여 암호화시켜 전달한다. 이 암호화시킨 세션키를 전자봉투라 한다.

 

[공개키 기반 구조에서의 전자서명 및 암호화 처리 절차]

 

[송신측과 수신측의 동작 단계]

구분 순서 설명
송신측 1단계 메시지 원문에 해쉬 알고리즘을 적용하여 메시지 다이제스트 생성
2단계 생성된 메시지 다이제스트에 공개키 암호화 알고리즘을 적용하여 송신자의 개인키로 암호화(전자서명 생성)
3단계 메시지 원문에 비밀키 암호화 알고리즘을 적용하여 세션키로 암호화
4단계 암호화에 사용된 세션키를 수신자의 공개키로 암호화(전자봉투)
수신측 1단계 전자서명문을 송신자의 공개키로 복호화하여 메시지 다이제스트 생성
2단계 암호화된 세션키를 수신자의 개인키로 복호화하여 세션키 추출
3단계 추출된 세션키를 이용하여 암호화된 원문의 복호화
4단계 복호화된 원문에 해쉬 알고리즘을 적용하여 메시지 다이제스트 생성
5단계 생성된 두 메시지 다이제스트 비교

 

(5) 공개키 인증서

공개키 인증서는 X.509 표준을 준수하여 공인 인증기관에서 발급하는 것으로, 일반 국민들이 금융거래 및 전자상거래에서 사용하기 위한 NPKI 인증서와 행정기관에서 행정업무용으로 사용되는 GPKI 인증서 등이 있으며, 이들을 공인인증서라 부른다.

공인인증서 암호체계는 2011년부터 고도화가 시행되어 RSA 알고리즘의 전자 서명키의 길이가 1024비트에서 2048비트로 증가되었고 해쉬함수는 SHA-1(160비트 출력값을 가지는 해쉬함수) 대신 SHA-256(256비트 출력값을 가지는 해쉬 함수)으로 교체되었다. NPKI 인증서에 포함되는 주요내용은 아래 표와 같다. 

 

[공개키 인증서의 주요 내용]

내용 설명
버전(Version) 인증서 형식의 버전구분
일련번호(Serial Number) 발행 CA 내에서의 인증서 일련번호로 유일한 정수값
알고리즘 식별자(Algorithm Identifier) 인증서를 생성하는데 이용된 서명 알고리즘 OID(Object Identifier)
발급자(Issuer) 인증서를 발행한 CADN(Distingish Name)
유효기간(Period of Validity) 인증서의 유효기간으로 시작일과 만료일을 초 단위까지 표기
주체(Subject) 인증서 소유자의 DN
공개키정보(Public-Key Information) 주체의 공개키와 이 키가 사용될 알고리즘의 식별자
서명(Signature) CA의 개인키로 서명한 서명문

(6) 인증서 유효성 검증방법

CRL(Certificate Revocation List): 인증서 폐기 목록

인증서 발급자(CA)로부터 폐기된 인증서 목록을 의미하며 폐기된 인증서의 Serial, 폐기날짜, 폐기 사유 등을 담고 있음, RFC 3280에 의하면 영구적인 폐기(Revoked)와 임시적인 폐기(Hold)가 있음 CRL 배포지점으로부터 주기적으로 다운로드 해야하며 해당 주기가 너무 길면 폐기된 인증서를 사용할 수 있고 너무 짧으면 인증서를 사용할 때마다 오버헤드가 증가함

OCSP(Online Certificate Status Protocol): 온라인 인증서 상태 프로토콜

CRL을 주기적으로 갱신해줘야 하는 단점을 보완한 프로토콜이다. OCSP는  사용자가 서버에 접근을 시도하면 인증서 상태정보를 실시간으로 요청하여 인증서의 유효성 여부를 즉시 응답해 줌. RFC 6090에 정의되어 있으며, 일반적으로 HTTP로 구성된 서버를 이용