보안/인증서 / / 2025. 3. 4. 18:06

인증 경로와 인증서 체인

1. 개요

인증 경로와 인증서 체인은 공개 키 기반 구조(PKI, Public Key Infrastructure)에서 중요한 개념으로 사용된다. 해당 개념들은 신뢰할 수 있는 인증 기관(CA, Certificate Authority)에서 발급한 인증서들 간의 관계를 정의한다. 또한 네트워크 상에서의 보안성과 신뢰성을 보장하는데 필수적인 역할을 한다. 그러므로 인증 경로와 인증서 체인을 이해하는 것은 매우 중요하다.

 

<인증 경로>

 

2. 인증 경로와 인증서 체인이란?

  • 인증 경로(Certification Path)
인증 경로는 애플리케이션이 특정 인증서를 검증할 때, 해당 인증서가 어떤 상위 인증서로부터 발급되었는지를 보여주는 경로이다. 일반적으로 클라이언트가 서버의 인증서를 검증하기 위해 따라가는 경로로 설명된다.

 

  • 인증서 체인(Certificate Chain)
인증서 체인은 인증 경로를 구성하는 인증서들의 집합으로, 실제 인증서들이 연결되어 있는 구조를 나타낸다. 일반적으로 인증서 체인은 Entity 인증서, SubCA 인증서, 그리고 RootCA 인증서로 구성된다. 각 인증서는 상위 인증서를 참조하여 서로 연결되어 있으므로 클라이언트는 Entity ~ RootCA 인증서까지 신뢰할 수 있다.

 

일반적으로 인증 경로는 주로 클라이언트가 서버의 SSL 인증서를 검증하는 절차를 의미하며, 인증서 체인은 사용자 인증서와 CA 인증서들의 연결 구조를 나타낸다.

 

3. 인증서 체인의 구축

애플리케이션은 인증서 체인을 통해 서버의 사용자 인증서가 신뢰할 수 있는 인증 기관에서 발급된 것임을 확인한다. 인증서 체인은 다음과 같이 구축된다.

 

  1. RootCA는 자신의 개인키로 스스로 서명하여 RootCA 인증서를 생성한다. 이렇게 자기 서명(Self-Sign)된 RootCA 인증서는 발급자주체가 동일하다.
  2. RootCA는 자신의 개인키로 SubCA TBSCertificate에 서명하여 SubCA 인증서를 생성한다. SubCA 인증서의 발급자 정보는 RootCA 인증서의 주체 정보와 동일하다.
  3. SubCA는 자신의 개인키로 Entity TBSCertificate에 서명하여 Entity 인증서를 생성한다. Entity 인증서의 발급자 정보는 SubCA 인증서의 주체 정보와 동일하다.

이렇게 구성된 RootCA 인증서 - SubCA 인증서 - Entity 인증서는 각각의 상위 인증서를 참조하여 연결된 구조를 형성한다.

 

자가 서명하는 것과 CA의 개인키로 서명하여 인증서를 생성하는 것에 대해서는 이미 설명한 바 있으니 링크를 참조한다.

 

4. 인증 경로 작동 원리

인증 경로는 다음과 같이 동작한다.

 

  1. 검증자는 Entity 인증서를 수신한다.
  2. 검증자는 Entity 인증서에서 발급자를 확인하여 SubCA 인증서를 검색한다.
  3. 검증자는 필요에 따라 다수의 SubCA 인증서를 검토하여 최상위에 있는 RootCA 인증서로 이어지는 경로를 확인한다.
  4. 검증자는 최종적으로 RootCA 인증서에 도달하면 해당 인증서가 자신의 신뢰 저장소에 있는지 확인한다.
  5. 검증자는 인증서 유효성 검사 및 확장 필드 크리티컬 여부 등을 검토하여 사용 적합한 인증서 여부를 확인한다.

 

위의 과정이 가능한 이유는 각 인증서가 서로 연결된 인증서 체인을 따라 경로를 확인할 수 있기 때문이다.

 

※ 신뢰 저장소(Trust Store)

신뢰 저장소는 운영 체제나 웹 브라우저에 미리 설치된 RootCA 인증서들이 저장된 곳이다. 이 저장소는 필요한 경우 일부 중간 인증서도 저장할 수 있으며, 운영 체제나 웹 브라우저는 주기적으로 신뢰 저장소를 업데이트하여 최신 보안 상태를 유지한다.

해당 저장소에서 확인할 수 있는 인증서들은 모두 신뢰할 수 있는 것으로 인증서 검증 기준이 된다.

 

<MacOS 신뢰 저장소>

 

5. HTTPS 사례

인증 경로와 인증서 체인은 SSL/TLS에서 HTTPS 연결을 설정할 때 중요한 역할을 한다. 다음은 클라이언트와 서버 간 SSL Handshake 과정에서의 인증 경로 및 인증서 체인 사용 예시이다.

 

< SSH Handshake에서 인증 경로 및 인증서 체인을 활용한 검증 예시 >

 

  1. 클라이언트가 서버에 연결을 요청한다.
  2. 서버는 자신의 SSL 인증서를 전달하며 클라이언트 요청에 응답한다.
  3. 클라이언트는 인증서 체인을 따라가며 SubCA 인증서를 검색하고 최종적으로는 RootCA 인증서에 도달한다.
  4. 클라이언트는 도달한 RootCA 인증서가 자신의 신뢰 저장소에 존재하는지 확인한다.
  5. 클라이언트는 전달받은 SSL 인증서에 대하여 유효성 검증을 수행한다.
  6. 클라이언트는 통신에 사용할 대칭 키 암호화 방식의 세션 키를 생성하고 SSL 인증서의 공개 키로 해당 세션 키를 암호화한다.
  7. 클라이언트는 암호화된 세션 키를 서버에 전송한다.
  8. 서버는 자신의 보유한 개인 키로 암호화된 세션 키를 복호화한다.
  9. 이후 클라이언트와 서버는 세션 키를 사용하여 데이터를 암복호화하여 안전하게 통신한다.

 

즉, 3 ~ 5의 과정에서 인증서 체인 및 인증 경로를 활용하여 검증이 수행됨을 알 수 있다.

 

6. 마무리

이번 글을 정리하면 다음과 같다.

 

  • 인증 경로는 주로 클라이언트가 서버의 SSL 인증서를 검증하는 절차를 의미한다.
  • 인증서 체인은 Entity 인증서와 CA 인증서들의 연결 구조를 나타낸다.
  • 인증서 체인이 구축되는 과정과 인증 경로의 작동 원리에 대해 살펴보았다.
  • 인증 경로 및 인증서 체인이 SSL Handshake 과정 중 '서버 인증서 검증' 부분에서 사용됨을 확인하였다.

 

 

'보안 > 인증서' 카테고리의 다른 글

X.509 인증서 - 확장 필드  (0) 2025.02.17
X.509 인증서 - 기본 필드  (0) 2025.02.17
X.509 인증서 구조  (0) 2025.01.26
인증서와 ASN.1  (0) 2025.01.21
인증서란?  (0) 2025.01.20
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유