본문 바로가기
공부/정보보안기사

PKI(public key infrastructure)

by Skogkatt의 개인 블로그 2019. 8. 24.
반응형

 PKI

  • 인증기관(CA, Certification Authority)에서 공개키와 개인키를 포함하는 인증서(Certificate)를 발급받아 네트워크상에서 안전하게 비밀통신을 가능하게 하는 기반구조.
  • 특정 수신자만이 풀어볼 수 있는 내용을 전달하고 싶으면 공개 키 방식을 사용하면 되며,
    특정 사람이 어떠한 문서를 보냈다는 것을 확인하고 싶으면 문서를 당사자의 공개 키로 암호화화 하는 전자서명 방식을 사용하면 된다.
    위 두 가지 공개 키 암호 방식과 전자서명을 사용할 수 있도록 기반을 마련한 것이 PKI이다.
  • PKI는 알고리즘이나 프로토콜이 아닌, 공개 키 암호에 기반을 둔 구조(infrastructure)다.
  • 공개 키 시스템의 규약이나 시스템 외적으로 개인의 책임 절차 등 여러 가지 사향이 정의가 되어있기 때문에 넓은 의미로써 사용된다.

PKI는 '인터넷에서 신분증을 검사해주는 관청'이라고 생각할 수 있다.
우리가 다른 동네의 동사무소에서 자신의 신분을 밝히고 주민등록등본을 떼어볼 수 있는 것처럼 공개 키 기반 구조에 속하는 사람은 어디에서든지 자신의 인터넷상 신분을 인증기관(CA)에서 받은 공인인증서를 통해 증명할 수 있다.
여기서 CA는 일종의 동사무소이고, 공인인증서는 주민등록증과 같은 신분증인 것이다.

PKI의 구성

  1. 사용자가 RA에 인증서를 신청한다.
  2. RA는 신청자의 신분을 검증하여 해당 사용자의 인증서 발급을 CA에 요청한다.
  3. CA에서 암호화 키 쌍을 생성하여 사용자에게 개인키를, 공개 키와 인증서를 디렉터리에 저장한다.
    VA가 존재할 경우 거래 대상은 사용자에게 받은 키를 VA에 검증받는다.

인증기관(CA, Certification Authority)

  • 인증정책을 수립하고, 인증서의 등록, 발급, 조회 등 관리를 총괄하며 인증서 폐기 목록(CRL, Certificate Revocation List를 생성한다.
  • 다른 CA와의 상호 인증을 제공한다.
  • 공개 키의 등록과 본인에 대한 인증을 등록기관이나 사람에게 분담시키는 경우도 있다.
  • 우리나라의 경우 행정안정부 산하에 5개의 민간 최상위 인증기관과 정부 최상위 인증기관[/footnote]최상위 인증기관 - KISA / 공인인증기관 - 한국정보인증(주), (주)코스콤, 금융결제원, 한국무역정보통신, 한국전자인중(주)[/footnote] 을 두고 있다.

등록기관(RA, Registraion Authority)

  • 사용자의 요청이 있을 경우, 사용자의 신원을 확인하고 CA에 인증서 발급을 요청한다. (인증기관 대신 인증서 등록 및 사용자 신원확인을 대행)
  • RA가 꼭 필요한 것은 아니다. RA가 없을 때에는 CA가 RA의 기능을 수행한다.

검증기관(VA, Validation Authority)

  • 인증서와 관련된 거래의 유효성을 확인하여 이 인증서가 검증된 인증서라는 것을 당사자에게 확인시켜준다.
  • VA 없이 CA만 존재할 수 있으나, 적절한 인증서 검증 기능이 없다면, 보안 측면에서 불완전한 것으로 간주될 수 있다.
  • 외주로 운영하거나 CA이 직접 운영할 수도 있다.

사용자(Entitiy)[각주:1]

  • 인증서를 신청하고 인증서를 사용하는 주체로 이는 사람뿐만 아니라 이용하는 시스템 모두를 의미한다.

저장소/디렉터리(Repository, Directory)

  • 사용자의 인증서를 저장하는 장소로 일종의 데이터베이스 역할을 맡는다.
  • CA는 발급한 인증서를 발급과 동시에 이곳에 저장하며, 사용자는 자신이 원하는 상대방의 인증서를 이곳에서 검색할 수 있다.
  • 사용자의 정보는 포괄적으로 관리되며 디렉터리는 상황에 따라 적절한 접근 제한을 제공한다.
  • 디렉터리 표준 형식으로는 ITU-T에서 정의한 X.500과 이를 간략화시킨 LDAP(Light weight Directory Access Protocol) 등이 있다.[각주:2]

PKI의 구조 형태

계층 구조

특징
  • 최상위 루트 CA가 존재하고 그 아래 하위 CA가 존재하는 트리 형태의 구조이다.
  • 루트 CA의 인증 정책이 하위 CA에 그대로 영향을 받는다.
  • 최상위 인증기관 간의 상호 인증은 허용하지만 하위 인증기관 간의 상호인증은 원칙적으로 배제한다.
  • 정부와 같은 계층적 조직 체계에 적합하다.
장점
  • 인증 서비스의 영역이 확장된다
  • 인증 서비스 추가 시 용이하다.
  • 인증 경로 탐색이 용이하다.
  • 모든 사용자가 최상위  CA의 공개키를 알고 있으므로 인증서 검증에 용이하다.
단점
  • 최상위 CA에 집중되는 오버헤드 가능성이 존재한다.
  • PKI가 협동 업무나 상업적인 분야에 이용될 때에는 부적합하다.
  • 루트 CA의 비밀 키가 유출될 경우 심각한 피해가 생기며 복구를 위해서는 PKI 내 모든 사용자에게 새로운 공개키의 분배가 필요하다.

네트워크 구조

특징
  • 상위 인증기관 없이 독립적인 CA들이 개별적으로 인증서를 발행하고 관리한다.
  • CA 간에 인증을 위해 상호 인증서를 발행하여 인증서비스를 수행한다.
장점
  • CA들 간 유연한 인증 관계가 형성되며 실질적인 업무 관계에 적합하다.
  • 인증서비스 영역이 확장된다.
  • CA의 비밀키 노출 시 계층형보다 적은 국소적 피해가 발생한다.
단점
  • 인증 경로 탐색이 계층적 구성에 비해 훨씬 복잡하다.
  • 모든 상호인증이 허용되면 상호인증의 수가 대폭 증가하며, 인증기관의 추가 시에도 다른 인증기관의 수만큼 인증서를 생성해야 한다.
  • 사용자는 PKI의 다른 사용자에게 단일 인증 경로를 제공할 수 없다.[각주:3]
  • 인증정책 수립 및 적용이 어렵다.

혼합형 구조

  • 계층 구조와 네트워크 구조의 장점을 취한 방법이다.
  • 각 CA의 독립적인 구성과 계층적 구성을 허용하여 효율적인 활동을 보장한다.

인증서 표준 규격 X.509

  • 인증서는 인증기관에서 발행하고, 이용자가 그것을 검증하기 때문에 인증서의 형식이 서로 다르면 매우 불편하다.
    이 때문에 인증서의 표준 규격이 정해져 있으며, 현재는 ITU-T의 표준인 X.509를 가장 많이 사용한다.
  • X.509는 인증서의 작성, 교환을 수행할 때 표준 규격으로 많인 애플리케이션에서 지원된다.
  • IP Security, SSL(Secure Sockets Layer), SET(Secure Electronic Transaction) 등의 네트워크 보안 응용에서 널리 사용된다.

인증서 구조 (X.509 v3)

http://www.jidum.com/jidums/view.do?jidumId=625

요소 구분 설명
버전(Version) 필수 인증서의 버전
일련번호
(Serial Number)
필수 발급하는 인증기관(CA)이 인증서에 지정한 고유 일련번호
일련번호는 인증기관에서 발행한 각 인증서에 대해 반드시 유일해야 한다.
(발행자의 이름과 일련번호를 이용하여 인증서를 유일하게 구분해 낼 수 있어야 한다.)
서명 알고리즘 식별자
(Signature Algoritm ID)
필수 인증기관이 인증서에 서명할 때 사용하는 알고리즘과 알고리즘 식별자
이 필드는 인증서 끝 부분에 있는 서명 필드에도 포함되기 때문에 거의 필요 없다.
발행자 이름
(Issuer name)
필수 인증서를 발급한 인증기관에 관한 정보
국가명(Country), 조직명(organization), 부서명(organizational-unit), 일반 이름(common name) 등 으로 구성된다.
유효 기간
(Validity period)
필수 유효 기간 시작 날짜(notBefore)와 유효 기간 종료 날짜(botAfter) 두 개로 구성된다.
주체 이름
(Subject name)
필수 인증서 소유자(피발급자)의 이름을 나타낸다.
상위 인증기관이 하위 인증기관에게 인증서를 발행하는 경우 소유자는 인증기관이 된다.
사용자 공개 키 정보
(Subject Public Key)
필수 사용자의 공개키를 나타내며 인증서의 핵심이다.
사용자의 공개 키 값과 공개 키에 사용된 알고리즘이 포함된다.
서명(Signature) 필수 인증기관의 개인 키로 서명된 서명문
이 필드는 인증서의 나머지 필드 전체를 보호한다.
발행자 유일 식별자
(Issuer Unique Identifier)
선택 인증서 발행기관(CA) Unique ID
발급자나 사용자의 이름이 중복되는 경우 이를 구별하기 위한 수단으로 제공된다.
통상적으로 고유 식별자는 사용하지 않을 것을 권장한다.
v2에 추가된 필드이다.
사용자 유일 식별자
(Subject Unique Identifier)
선택 인증서 사용자(발급 대상)의 Unique ID
다른 개체가  X.509 이름을 재사용 할 경우, 사용자 이름을 구별하기 위해 사용된다.
v2에 추가된 필드이다.
확장(Extensions) 선택 발행자가 인증서에 추가적으로 사적인 정보를 넣을 수 있는 필드
v3에 추가된 필드이다.

인증서 확장(Extensions) 영역

사용자의 공개 키 정보와 연관된 추가적인 정보와 인증서의 계층 구조를 관리할 수 있는 방법을 제공하는 영역이다.

키와 정책 정보(key and policy information)
키의 용도 및 인증서 정책에 관한 부가적인 정보를 포함
  • 기관 키 식별자(authority key identifier) : 해당 개인 키에 사용할 수 있는 공개 키를 구분하는 식별자.
  • 사용자 키 식별자(subject key identifier) : 최종 개체가 여러 인증서를 받은 경우[각주:4], 특정 공개 키의 인증서를 빠르게 구분할 수 있도록 하는 식별자.
  • 키 사용(key usage) : 인증서에 포함된 키의 용도[각주:5]를 정의한다.
  • 인증서 정책(certificate policies) : 인증기관은 자신이 발행한 인증서에 대한 정책을 인증서 내에 명시할 수 있다.
사용자와 발행자 속성(subject and issuer attribute)
인증서 사용자와 발행자에 대한 여러 형식의 대체 이름 지원
  • 사용자 대체 이름(subject alternative name)
  • 발급자 대체 이름(issuer alternative name)
인증 경로 제약조건(certification path constraints)
다른 CA가 발행한 인증서에 포함될 제한사항 제공
  • 기본 제한(basic constraints) : 인증서의 사용자가 인증기관인지 여부를 구분한다.
  • 이름 제한(name constraints) : 사용자 구분명(DN, Distinguished Name)이나 사용자 대체 이름에 제약을 걸 수 있다.
  • 정책 제한(policy constraints) : 인증기관에게 발급된 인증서 내에는 정책 제한 확장을 적용할 수 있다.

PKI 인증서 검증 방식

CRL(Certification Revocation List)
  • 폐지된 인증서들에 대한 목록을 말한다.
  • CA는 폐지된 인증서 정보를 가지고 있는 CRL리스트를 통해 인증서의 유효성을 최신 상태로 유지해야 한다.
  • 버전, 서명 알고리즘, 발급 기관, 발급일, 갱신일, 취소된 인증서 정보(일련번호, 폐지 일자, 폐지 사유) 등이 포함된다.
OCSP(Online Certificate Status Protocol)
  • IETF(Internet Engineering Task Force)에서 승인된 실시간으로 인증서의 유효성을 검증할 수 있는 프로토콜이다.
  • CRL을 대신하거나 보조하는 용도[각주:6]로 사용되며 구현 시 백그라운드에서 자동으로 수행된다.
  • OCSP 클라이언트, OCSP 서버, 인증 서버로 구성된다.

 

참고 링크

광이랑 님의 블로그 - https://crazia.tistory.com/entry/PKI-PKI-%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%EA%B0%84%EB%8B%A8-%EC%84%A4%EB%AA%85

iLiFO Ji-Dum http://www.jidum.com/jidums/view.do?jidumId=625

  1. PKI에서는 이용자나 인증기관이 반드시 '사람'이 아니기 때문에(컴퓨터 등이 될 수 있다.) 개체(entitiy)라 부른다. [본문으로]
  2. 주로 LDAP를 이용하여 디렉터리 서비스를 제공한다. [본문으로]
  3. 트워크형에서의 두 사용자 간의 인증 경로는 여러 개가 존재하기 때문이다. [본문으로]
  4. 특히 여러 인증기관으로부터 인증서를 받은 경우 [본문으로]
  5. 암호화, 서명, 인증서 서명 등) [본문으로]
  6. CA에 의해 관리되고 있는 CRL을 검사하는 등의 작업 [본문으로]
반응형

댓글