PKI Bootcamp - 구성 요소와 역할

__〆( ̄ー ̄ ) ·2023년 2월 20일
3

PKI Bootcamp

목록 보기
2/4
post-thumbnail

이번 장에서는 PKI의 구성 요소와 역할에 대해서 설명하려고 합니다.

TL;DR

  • PKI의 구성 요소와 역할에 대해서 알 수 있어요.
  • 디지털 인증서의 발급과 유효성 검증에 대한 개요를 알 수 있어요

용어

  • 소유자 (End Entity): 디지털 인증서 발급 대상 객체

구성 요소와 역할

PKI 구성 요소는 다음 그림과 같아요.

PKI 구성 요소

여러 구성 요소들이 복잡하게 얽혀 있지만 모두 디지털 인증서의 발급, 사용, 검증을 위한 역할을 수행하고 있어요. 각각의 관점에서 나누어 보면 어렵지 않습니다.

디지털 인증서 발급

디지털 인증서의 발급과 관련이 있는 구성 요소들이에요.

각 구성 요소에 대해 설명하기 전에 우리가 디지털 인증서를 신뢰할 수 있는 이유에 대해 생각해봐야 해요. 결론부터 얘기하면 디지털 인증서를 발급 해준 기관을 신뢰하기 때문이에요. 해당 인증서를 발급한 인증 기관이 올바른 절차를 통해 소유자의 신원을 확인했을 거라고 신뢰하는 겁니다.

그렇다면 인증 기관은 어떻게 신뢰할 수 있을까요? 그것은 그 인증 기관의 신뢰성을 보증하는 또 다른 상위 기관이 있기 때문입니다. 이런 구조를 신뢰 체인이라고 하며 디지털 인증서 체인 (Certificate Chain)을 통해 이 신뢰 체인을 확인할 수 있어요.

이 신뢰 체인의 최상위에 위치하는 것이 최상위 인증 기관 (Root CA, Root Certificate Authority)입니다.

Root CA (Root Certificate Authority): 최상위 인증 기관

Root CA(최상위 인증 기관)은 신뢰 체인의 최상위에 위치하는 인증 기관이에요. Root CA는 다른 인증기관들과 역할이 다르며, 다음과 같은 주요 역할을 수행합니다.

  • 신뢰 체인의 뿌리 역할: Root CA는 디지털 인증서를 신뢰하는 기반이 됩니다. Root CA가 신뢰를 바탕으로 하위 인증 기관과 소유자의 디지털 인증서를 신뢰할 수 있어요.
  • 자체 서명 인증서 발급: Root CA는 디지털 인증서 체인 (Certificate Chain)을 구성하기 위해 자기 자신의 디지털 서명이 들어간 인증서(Root Certificate)를 발급해요.
  • 인증 기관 신뢰 체계 구축: Root CA는 인증 기관(CA)을 지정하고 인증 기관 인증서(CA Certificate)를 발급합니다. 또한 인증 기관에 대한 권한을 관리 감독하기 위해 ARL (Authority Revocation List, 권한 폐기 목록) 게시해요.

Root CA는 온라인 상에서 신뢰성을 보증해줄 별도의 기관이 존재하지 않기 때문에 보통 정부 기관과 같은 곳이 이 역할을 수행합니다. 공동인증서의 경우 한국인터넷진흥원(Korea Information Security Agency, KISA)가 이에 해당돼요.

CA (Issueing Certificate Authority): 인증 기관

CA는 소유자(End Entity)의 디지털 인증서를 발급하고 관리하는 역할을 담당합니다.

  • 인증서 발급: CA는 신원 확인이 완료된 소유자에게 디지털 인증서를 발급해요.
  • 인증서 관리: CA는 발급한 인증서에 대한 관리 작업 (갱신, 폐기, 재발급, 효력 정지 등) 수행해요.
  • 신뢰 체계 구성: CA는 Root CA를 기반으로 하는 신뢰 체인의 중간 역할을 해요.
  • 인증서 유효성 검증: CA는 소유자의 인증서의 유효성을 확인하기 위한 수단을 제공해요. 디지털 인증서의 유효성 검증 수단에는 CRL (Certificate Revocation List, 인증서 폐기 목록)OCSP(Oline Certificate Status Protocol, 실시간 인증서 상태 확인) 서비스가 있어요.

CA는 디지털 인증서를 발급하기 위해 필요한 설비와 시스템을 구축해야 하고 정해진 절차와 규칙 등을 준수해야 해요. 일반적으로 주기적인 인증 기관 심사를 받으며 만약 권한이 박탈된 경우 CA Certificate 를 폐기하고 ARL (Authority Revocation List, 권한 폐기 목록)에 해당 인증서가 게시 됩니다.

CA는 디지털 인증서 발급을 위한 창구로 하나 이상의 등록기관 (RA, Registration Authority)을 가지고 있어요.

RA (Registration Authority): 등록기관

RA는 디지털 인증서 발급을 위한 창구로 인증서 발급 절차에서 등록 및 신청 과정을 수행합니다. 주민등록증을 예로 들면 CA는 행정안전부고 RA는 주민센터라고 보면 됩니다.

  • 등록 및 인증서 신청: RA는 소유자의 등록 및 인증서 신청을 처리해요. 여기서 소유자의 신원과 인증서 발급에 필요한 정보들을 수집합니다.
  • 신원 확인: RA는 CA를 대신하여 소유자의 신원을 확인해요. 이 신원 확인 절차는 충분히 신뢰할 수는 방법이어야 해요. 가장 확실한 수단은 대면하여 신분증을 확인하는 것 입니다.
  • 인증서 발급 요청 전달: RA는 신원이 확인된 소유자의 인증서 발급을 위해 수집한 신청 정보를 CA에게 전달해요. CA는 신청 정보를 바탕으로 인증서를 발급하여 전달합니다.
  • 인증서 관리: RA는 디지털 인증서 소유자가 인증서를 관리할 수 있도록 기능을 제공하며 소유자의 요청에 따라 CA에게 인증서 관리 기능을 요청해요.
  • 사용자 지원: RA는 디지털 인증서 발급을 위한 창구로써 사용자의 문의나 기술적인 도움을 제공해요.

RA는 인증 기관들(Root CA, CA)과는 다르게 신뢰 체계와는 관련이 없기에 따로 디지털 인증서를 가지고 있지는 않습니다.


디지털 인증서 사용

디지털 인증서의 사용과 관련이 있는 요소들이에요.

End Entity: 소유자

End Entity(소유자)는 디지털 인증서를 소유하고 사용하는 개체를 의미해요. 소유자는 PKI에서 어떤 역할을 수행한다기 보다는 다음과 같은 용도로 디지털 인증서를 사용해요.

  • 디지털 서명: 소유자는 온라인에서 디지털 서명 용도로 인증서를 사용해요.
  • 신원 증명: 소유자는 온라인에서 인증서를 통해 자신의 신원을 증명할 수 있어요.
  • 보안 통신: 소유자는 디지털 인증서의 공개 키 암호화를 통해 정보를 안전하게 전달 받을 수 있어요.

소유자는 사람 뿐만 아니라 기관, 장치, 데이터 등도 될 수 있고 사람의 경우도 사용 목적에 따라 구분될 수 있어요. 실제로 NPKI(국민용), GPKI(행정전자서명용), MPKI(국방인증용) 등 모두 사람을 대상으로하는 PKI지만 모두 독립적으로 구성되어 있어요.

Relying Party: 요청자

Relying Party(요청자)는 디지털 인증서를 사용하여 소유자의 신원을 확인하고 안전한 통신을 수행하는 개체를 의미해요. 요청자는 소유자 인증서 (End Entity Certificate)를 전달 받아 다음과 같은 일들을 수행해요.

  • 인증서의 신뢰성 확인: 요청자는 소유자 인증서의 신뢰성을 확인해요. 인증서의 신뢰성을 판단하는 기준은 여러가지가 있을 수 있지만 일반적으로 유효 기간, 폐지 여부, 발급 기관의 신뢰 여부, 발급 기관 서명 검증 등을 수행해요.
  • 신원 확인: 요청자는 소유자 인증서를 통해 상대방의 신원을 확인합니다.
  • 디지털 서명 검증: 요청자는 소유자 인증서의 공개 키를 통해 디지털 서명을 검증합니다.
  • 보안 통신: 요청자는 소유자의 인증서를 기반으로 상 호간에 안전한 통신 채널을 구축해요.

실제 디지털 인증서를 사용하는 형태를 보면 이 둘의 관계를 이해하기 쉽습니다.

형태End EntityRelying Party사용 목적
공동인증서사람 또는 법인은행 등온라인 은행 업무 시 고객 신원 확인
SSL웹 사이트웹 브라우저클라이언트 - 서버 통신 시 데이터 암호화
전자 세금계산서세금계산서 발행 기관국세청전자 세금계산서 발행
전자 계약사람 또는 법인전자계약 시스템전자 서명 및 부인 방지
코드 서명프로그램 배포 기관운영 체제 (Windows 등)프로그램 코드 서명 및 위변조 방지

디지털 인증서 검증

디지털 인증서의 검증과 관련이 있는 요소들이에요.

CRL DP (CRL Distribution Point, 인증서 폐기 목록 배포 지점)

CRL DP(Certificate Revocation List Distribution Point, 인증서 폐기 목록 배포 지점)는 CRL이 배포되는 위치를 의미해요. 발급되는 디지털 인증서에 포함되는 정보 중 하나입니다.

CRL DP는 누구나 접근 가능한 공개된 저장소에요. 보통 LDAP(Lightweight Directory Access Protocl을 이용합니다. 여기에 기본적으로 CRL (Certificate Revocation List, 인증서 폐기 목록), ARL (Authority Revocation List, 권한 폐기 목록), CA Certificate, Root CA Certificate들이 배포됩니다.

요청자(Relying Party)는 CRL을 통해 인증서의 신뢰성 확인에 필요한 것들을 가져올 수 있어요.

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

CRL은 인증 기관(CA)에 의해 게시되며 아래와 같은 정보를 포함하고 있어요

  • CRL Issuer: CRL을 발행한 인증 기관(CA) 정보
  • CRL Version: CRL의 버전 정보 (2: X.509 v2 인증서 폐지 목록, 3: X.509 v3 인증서 폐지 목록)
  • CRL Issuance Date:: CRL의 발행일
  • CRL Expiration Date: CRL의 만료일
  • Revoked Certificates: 폐지된 인증서 목록 (인증서 일련번호 및 폐지 일자 목록)

인증서 폐기 목록이 필요한 이유는 인증서가 데이터이기 때문에 쉽게 복사본을 만들 수 있고 유출될 위험이 높기 때문이에요.

그렇기 때문에 소유자는 자신의 인증서를 폐기할 수 있는데 단순히 데이터를 삭제하는 것 뿐만 아니라 해당 인증서가 폐기되었음을 알릴 필요가 있어요. 이때 사용되는 것이 CRL (Certificate Revocation List, 인증서 폐기 목록) 입니다.

CA는 CRL을 CRL DP에 일반적으로 하루에 한 번 배포하여 Relying Party가 해당 디지털 인증서의 폐지 여부를 알 수 있게 합니다.

ARL (Authority Revocation List, 권한 폐기 목록)

ARL은 Root CA에 의해 게시되며 CRL과 동일한 기능을 해요. 단지 대상이 CA Certificate인 것만 달라요. Root CA는 ARL로 CA의 권한 상태를 확인하고 신뢰할 수 있는 CA 목록을 유지하는데 사용해요.

만약 CA Certificate를 폐지하는 경우 해당 인증 기관이 발행한 모든 인증서가 영향을 받아요. 따라서 권한 폐기는 신중하게 결정해야 하고 만약 하게 되는 경우 유예 기간을 두어 문제 없이 전환할 수 있도록 해야 돼요.

OCSP (Online Certificate Status Protocl, 실시간 인증서 상태 조회) Responder

OCSP Responder는 디지털 인증서의 상태를 실시간으로 조회하기 위해 사용되는 프로토콜이에요. CRL은 하루에 한 번 게시되기 때문에 내가 인증서를 폐기했다고 하더라도 CRL이 갱신되기전 까지는 유효한 인증서로 사용할 수 있어요.

하지만 전자 계약과 같은 일부 중요한 비즈니스에서는 이러한 상황을 용납하지 않을 수도 있습니다. 이때 사용하는 것이 OCSP (Online Certificate Status Protocl, 실시간 인증서 상태 조회) 입니다.

OCSP Responder는 API 형태로 제공되며 CRL을 게시하는 것보다 네트워크 비용이 많이 들기 때문에 별도의 비용을 청구하는 유료 서비스인 경우가 많아요.


이 장에서는 PKI를 구성하는 요소들에 대해 대략적인 개념들을 설명했어요. 이 다음의 내용들은 표준에 기반한 조금 더 상세한 내용을 다루고 있습니다.

profile
뭐라도 적자

0개의 댓글