공개 키 기반 구조

인증서 체인, Root CA와 Intermediate CA, 안전한 인증서 검증으로 PKI에서 신뢰를 확립하십시오.

공개 키 기반 구조

신뢰의 확립

클라이언트가 특정 Root CA에 대한 신뢰를 표명하는 방식

클라이언트는 인증서 신뢰 체인을 거치는 과정을 통해 특정 Root 인증 기관(CA)에 대한 신뢰를 나타냅니다. 작동 방식은 다음과 같습니다.

  • 사전 설치된 루트 인증서: 대부분의 운영 체제와 웹 브라우저에는 신뢰할 수 있는 CA의 루트 인증서가 미리 설치되어 함께 제공됩니다. 이 루트 인증서는 신뢰할 수 있는 루트 저장소에 보관됩니다.
  • 인증서 검증: 클라이언트가 서버에 연결하면, 예를 들어 웹 사이트를 방문하면 서버가 자신의 TLS 인증서를 제시합니다. 이 인증서는 보통 Intermediate CA가 서명하고, 그 Intermediate CA는 다시 Root CA가 서명합니다.
  • 신뢰 체인 검증: 클라이언트는 제시된 인증서가 신뢰할 수 있는 Root CA의 서명을 받았는지 확인하여 신뢰 체인을 검증합니다. 체인에 포함된 Intermediate CA가 신뢰할 수 있는지도 함께 확인합니다.
  • 디지털 서명: 체인의 각 인증서는 바로 위 CA가 디지털 서명합니다. 클라이언트는 해당 CA의 공개 키로 이 서명들을 검증하여 인증서가 변조되지 않았음을 확인합니다.
  • 신뢰 판단: 신뢰 체인 전체가 유효하고 신뢰할 수 있는 Root CA로 거슬러 올라간다면, 클라이언트는 서버의 인증서를 신뢰합니다. 그러면 안전한 통신을 이어 갈 수 있습니다.

단일 Root CA 대신 Intermediate CA를 두는 이점

인프라 PKI에서는 오히려 단일 Root가 유리할 수도 있습니다.

Intermediate CA가 인증서를 취득하는 방식

Intermediate 인증 기관(CA)은 Root CA에 의한 교차 서명이라는 과정을 거쳐 자신의 인증서를 취득합니다. 작동 방식은 다음과 같습니다.

  1. 인증서 서명 요청(CSR): Intermediate CA를 구축하려는 조직이 CSR을 생성합니다. 이 CSR에는 Intermediate CA의 공개 키와 식별 정보가 담깁니다.
  2. Root CA에 제출: CSR을 신뢰할 수 있는 Root CA에 제출합니다.
  3. 확인: Root CA는 Intermediate 인증서를 요청한 조직의 신원과 적법성을 확인합니다.
  4. 서명: 확인이 끝나면 Root CA가 자신의 개인 키로 CSR에 서명하여 Intermediate 인증서를 만듭니다. 이렇게 서명된 인증서는 Intermediate CA를 Root CA에 연결하여 신뢰 체인을 형성합니다.
  5. 발급: Root CA는 서명한 Intermediate 인증서를 요청한 조직에 발급하고, 그 조직은 이를 사용해 최종 개체 인증서, 예를 들어 웹 사이트용 TLS 인증서에 서명할 수 있습니다.

이 과정을 통해 Intermediate CA는 이미 브라우저와 운영 체제가 신뢰하는 Root CA와 연결되어 있다는 사실만으로 신뢰를 얻습니다.

인증서 체인과 그 작동 방식

신뢰 체인이라고도 하는 인증서 체인은 디지털 인증서의 진위성과 신뢰성을 보장하는 일련의 인증서입니다. 작동 방식은 다음과 같습니다.

  • 검증 과정: 웹 브라우저 같은 클라이언트가 서버에 연결하면 서버가 자신의 최종 개체 인증서를 제시합니다. 그러면 클라이언트는 인증서 체인을 확인하여 각 인증서가 체인의 다음 인증서로 서명되어 있는지를 루트 인증서에 이르기까지 검사합니다.
  • 신뢰 체인: 체인의 각 인증서는 바로 위 인증서의 공개 키로 검증됩니다. 이 과정은 클라이언트가 이미 신뢰하는 루트 인증서에 도달할 때까지 이어집니다.
  • 신뢰 확립: 체인 전체가 유효하고 신뢰할 수 있는 루트 인증서로 거슬러 올라간다면, 클라이언트는 최종 개체 인증서를 신뢰하고 안전한 통신을 이어 갑니다.

이 구조는 최종 개체 인증서가 정당하며 신뢰할 수 있는 기관이 발급했음을 보장하여, 디지털 통신의 무결성과 보안을 유지합니다.

Basic Constraints 확장이 해결하려는 문제

디지털 인증서의 Basic Constraints 확장은 서로 다른 유형의 인증서와 공개 키 기반 구조(PKI) 안에서의 역할을 구분하는 문제를 다룹니다. 작동 방식은 다음과 같습니다.

  • 인증 기관(CA) 식별: 해당 인증서가 CA 인증서인지 최종 개체 인증서인지를 지정합니다. CA 인증서는 다른 인증서를 발급할 수 있지만 최종 개체 인증서는 그럴 수 없으므로, 이 구분은 매우 중요합니다.
  • 경로 길이 제약: 인증서 체인에서 이 CA 아래에 존재할 수 있는 Intermediate CA의 수를 제한할 수 있습니다. 덕분에 비효율적이고 잠재적으로 안전하지 않은, 지나치게 긴 인증서 체인을 막을 수 있습니다.

해결되는 문제:

  • 허가되지 않은 인증서 발급 방지: 어떤 인증서가 CA 역할을 할 수 있는지 명확히 표시함으로써, 최종 개체 인증서가 다른 인증서를 발급하지 못하게 막아 PKI의 무결성을 지킵니다.
  • 인증서 체인 길이 관리: 경로 길이를 제한하면 인증서 체인이 관리 가능하고 안전한 범위에 머물러, 긴 체인에 따르는 잠재적 취약점을 막을 수 있습니다

이 문제를 해결하는 데 쓰이는 메커니즘

디지털 인증서의 Basic Constraints 확장은 CA 인증서와 최종 개체 인증서를 구분하고 인증서 체인 길이를 관리하는 문제를 해결하기 위해 다음 메커니즘을 사용합니다.

  • CA 플래그: 이 플래그는 해당 인증서가 인증 기관(CA) 인증서인지 최종 개체 인증서인지를 나타냅니다. 플래그가 TRUE로 설정되어 있으면 다른 인증서에 서명하는 데 사용할 수 있으며, 이는 CA 인증서임을 뜻합니다. FALSE로 설정되어 있으면 최종 개체 인증서이며 다른 인증서를 발급할 수 없습니다.
  • 경로 길이 제약: 유효한 인증 경로에서 이 인증서 뒤에 올 수 있는, 자체 발급이 아닌 Intermediate 인증서의 최대 개수를 지정합니다. 이 제약을 설정하면 확장이 인증서 체인의 길이를 제한하여 체인이 관리 가능하고 안전한 범위에 머물도록 합니다.

이 메커니즘의 작동 방식:

  • CA 플래그: 인증서를 발급할 때 의도한 용도에 맞게 CA 플래그를 설정합니다. 인증서 검증 과정에서 클라이언트는 이 플래그를 확인하여 해당 인증서가 다른 인증서를 발급할 수 있을 만큼 신뢰할 수 있는지 판단합니다.
  • 경로 길이 제약: 이 값은 검증 과정에서 확인되며, 인증서 체인이 지정된 길이를 넘지 않도록 보장합니다. 체인이 너무 길면 해당 인증서는 유효하지 않은 것으로 간주됩니다.

이러한 메커니즘은 허가된 인증서만 다른 인증서를 발급할 수 있게 하고 지나치게 긴 인증서 체인을 막음으로써, 공개 키 기반 구조(PKI)의 무결성과 보안을 유지하는 데 기여합니다.