PKI Bootcamp - 디지털 인증서와 체인 검증

__〆( ̄ー ̄ ) ·2023년 2월 23일
1

PKI Bootcamp

목록 보기
3/4
post-thumbnail

이번 장에서는 디지털 인증서에 대해서 조금 더 자세히 다루려고 합니다. 이 문서의 내용은 아래 표준들을 토대로 작성되었어요.

  • X.509: 디지털 인증서의 형식, 구조, 필드 정의와 인증서 발급 및 검증 프로세스 등을 다루고 있는 표준
  • RFC 2459 (Internet X.509 Public Key Infrastructure Certificate and CRL Profile: 이 표준은 X.509 디지털 인증서와 인증서 폐지 목록 (CRL)의 형식과 구조, 필드 정의, 인증서 및 CRL의 발급, 검증, 배포와 관련된 내용을 다루고 있는 표준
  • RFC 5280 (Internet X.509 Public Key Infrastructure Certificate and CRL) Profile): RFC 2459를 대체하고 업데이트한 표준 문서로 같은 내용을 업데이트 및 확장하여 기술하고 있는 표준

해당 문서의 내용을 모두 다루지는 않고 디지털 인증서가 포함하고 있는 정보(프로파일)와 디지털 인증서의 검증 프로세스를 보면서 디지털 인증서 체인이 무엇인지 알아보려고 해요.

TL;DR

  • 디지털 인증서 프로파일에 대해 알 수 있어요
  • 디지털 인증서에서 경로(체인)가 무엇인지 알 수 있어요
  • 인증서를 검증하는 절차는 어떻게 이루어지는지 알 수 있어요

인증서 프로파일 (Certificate Profile)

디지털 인증서는 크게 3가지 필드로 구성되어 있어요.

  • 인증서 (TBSCertificate): 디지털 인증서의 기본 정보들을 포함하고 있는 필드에요.
  • 서명 알고리즘 (SignatureAlgorithm): 발급자 서명 알고리즘의 식별자 필드입니다.
  • 서명 (SignatureValue): 발급자 서명 데이터 필드입니다.

여기서 TBS는 To Be Signed의 약어로 서명 대상이 되는 필드라는 의미를 가지고 있어요. TBSCertificate는 PKI Bootcamp - PKI 소개에서 언급했던 디지털 인증서의 정보들을 포함하고 있는데 이번 장에서는 확장 필드에 대해 추가적으로 설명하려고 합니다.

TBSCertificate

TBSCertificate는 버전, 일련 번호, 서명 알고리즘, 발급자 정보, 유효 기간, 소유자 정보, 공개 키, 확장 필드로 구성됩니다. 다른 항목은 앞 장에서 설명했기 때문에 이번에는 확장 필드에 대해서 다뤄볼게요. 아래의 확장 필드들은 X.509 표준에 명시되어 있는 항목들이에요.

  • Key Usage: 인증서의 공개 키의 사용 용도를 지정합니다. 예를 들어, 디지털 서명, 암호화 등을 허용할 수 있습니다.
  • Extended Key Usage: 인증서의 확장된 공개 키 사용 용도를 지정합니다. 예를 들어, SSL/TLS 인증서로 사용될 수 있는지, 이메일 보안에 사용될 수 있는지 등을 정의할 수 있습니다.
  • Subject Alternative Name: 주체의 대체 이름을 지정합니다. 이메일 주소, IP 주소, 도메인 이름 등의 다른 식별 정보를 포함할 수 있습니다.
  • Certificate Policies: 인증서 발급 기관의 정책을 나타냅니다. 인증서가 어떤 정책에 따라 발급되었는지를 명시할 수 있습니다.
  • CRL Distribution Points: 인증서 폐기 목록(CRL)의 배포 지점을 지정합니다. CRL을 검색할 수 있는 위치를 나타냅니다.
  • Authority Key Identifier: 인증서 발급 기관의 공개 키 식별자를 포함합니다. 인증서 체인 검증 시 인증서 발급 기관의 신뢰성을 확인하는 데 사용됩니다.
  • Subject Key Identifier: 주체의 공개 키 식별자를 포함합니다. 인증서 체인 검증 시 주체의 공개 키를 식별하는 데 사용됩니다.

인증 기관은 TBSCertificate을 원문 데이터로 한 디지털 서명을 인증서에 추가해요. 디지털 인증서의 서명 구조는 다음과 같은 형태로 이루어집니다.
디지털 인증서 발급 예시

Root 인증서 부터 소유자 (End Entity)의 인증서까지 위와 같은 서명 구조가 생기는 것을 인증서 체인이라고 해요. 소유자의 인증서 검증은 인증서 체인을 추적하여 이루어집니다.

이런 검증 과정을 인증서 경로 검증 또는 체인 검증이라고 합니다.


인증서 경로 검증 (Certificate Path Validation)

인증서 경로 검증 또는 체인 검증은 소유자 인증서(Subject Certificate)부터 시작해서 인증서를 발급한 인증 기관 인증서(CA Certificate) 그리고 최종적으로 루트 인증 기관 인증서 (Root Certificate)를 검증하는 것을 말해요.

각 인증서 검증 항목은 다음과 같습니다.

  • 인증서 유효 기간 확인
  • 인증서 발급자 서명 검증
  • 인증서 폐지 여부 확인 (CRL, ARL)

루트 인증서의 경우는 발급자가 자기 자신이기 때문에 발급자 서명 검증 외에 해당 인증서가 신뢰할 수 있는 인증서 목록에 있는지 마지막으로 확인해요.

소유자 인증서 검증에 필요한 CA 인증서, Root 인증서, CRL(Certificate Revocation List), ARL(Authority Revocation List)은 일반적으로 CRL DP (Distribution Point)에 게시되어 있어요.


다음 장에서는 디지털 서명에 대해서 조금 더 자세히 다루겠습니다.

profile
뭐라도 적자

0개의 댓글