공동 인증서(구 공인인증서)에서 주체키와 기관키는 암호학적인 공공키 기반 구조(PKI, Public Key Infrastructure)에서 중요한 역할을 합니다. 이 두 키의 관계는 다음과 같습니다
#1. 주체키와 기관키 정의
- 주체키 (Subject Key):
- 주체키는 인증서의 주체, 즉 인증서 소유자(개인 또는 기업)가 보유한 개인키(Private Key)와 공개키(Public Key)를 의미합니다.
- 인증서 소유자는 개인키를 비밀로 유지하며, 공개키는 인증서에 포함되어 누구나 접근할 수 있습니다.
- 주체키는 주로 전자서명, 데이터 암호화/복호화 등에 사용됩니다.
- 공개키와 개인키는 쌍으로 이루어져 있으며, 개인키로 서명한 데이터를 공개키로 검증할 수 있습니다.
- 기관키 (CA 키, Certificate Authority Key):
- 인증 기관(CA, Certificate Authority)은 인증서를 발급하는 기관으로, 기관키는 해당 기관이 사용하는 개인키와 공개키를 의미합니다.
- 인증 기관의 공개키는 누구나 접근할 수 있으며, 이를 통해 인증 기관이 발급한 인증서를 검증할 수 있습니다.
- 인증 기관의 개인키는 비밀로 유지되며, 이 키를 사용하여 인증서에 서명합니다. 즉, 인증 기관이 발급하는 인증서는 CA의 개인키로 서명되어 있으며, 누구나 CA의 공개키로 이 서명을 검증할 수 있습니다.
관계 요약:
- 주체키는 인증서 소유자의 공개키/개인키 쌍을 의미하고, 기관키는 인증서를 발급하는 CA의 공개키/개인키 쌍을 의미합니다.
- 인증서를 사용할 때, 인증서에 포함된 주체의 공개키는 인증 기관의 서명(기관의 개인키로 서명됨)을 통해 신뢰성을 검증받습니다. 즉, 기관키는 주체키의 유효성을 검증하는 역할을 하며, 이 과정에서 인증 기관이 신뢰할 수 있는지를 보장해 줍니다.
이런 구조를 통해 PKI는 전자서명과 인증서의 신뢰성을 유지하며, 안전한 통신 환경을 제공합니다.
#2. 체인 검증
공동인증서에서 주체키와 기관키는 신뢰할 수 있는 인증 체계(PKI)를 통해 검증됩니다. 이 과정에서 체인 검증(Certificate Chain Validation)이 이루어지며, 주체키의 유효성과 신뢰성을 인증하는 중요한 단계입니다. 이 체인 검증은 다음과 같은 절차를 따릅니다.
1. 인증서 체인의 개념
- 인증서 체인은 여러 인증 기관(CA)의 인증서가 계층적으로 연결된 구조입니다. 일반적으로 **루트 인증서(CA)**부터 **중간 인증서(CA)**를 거쳐 **최종 사용자 인증서(End-entity Certificate)**까지 이어집니다.
- 최종 사용자 인증서는 공동인증서 소유자의 인증서(즉, 주체의 인증서)이며, 상위 기관의 서명을 통해 신뢰성을 얻습니다.
2. 체인 검증의 과정
인증서 체인 검증은 주체의 인증서가 신뢰할 수 있는 기관에 의해 발급되었는지 확인하는 절차입니다. 이는 다음 단계로 이루어집니다:
1) 주체 인증서 검증
- 주체 인증서는 공동인증서 소유자의 공개키를 포함하며, 상위 CA의 개인키로 서명되어 있습니다.
- 인증서 검증 과정에서, 주체 인증서의 서명이 올바른지, 즉 상위 CA의 공개키로 서명을 검증합니다.
- 이 상위 CA의 공개키는 중간 인증서에 포함되어 있습니다.
2) 중간 인증서 검증
- 상위 CA가 여러 단계일 경우, 중간 인증서가 존재합니다.
- 중간 CA의 인증서는 상위 인증 기관(CA)에 의해 발급되었으며, 상위 CA의 개인키로 서명되어 있습니다.
- 중간 CA의 인증서 서명도 상위 CA의 공개키로 검증됩니다.
3) 루트 인증서 검증
- 체인의 최상단에는 루트 CA 인증서가 있습니다.
- 루트 인증서는 자체 서명(self-signed)된 인증서로, 일반적으로 신뢰할 수 있는 기관에 의해 미리 신뢰 목록에 포함되어 있습니다.
- 이 루트 인증서는 더 이상 상위 인증서가 필요하지 않고, 운영체제(OS)나 브라우저에서 사전에 신뢰할 수 있는 루트 인증서 목록에 포함됩니다.
4) CRL과 OCSP 확인
- 인증서 체인 검증의 마지막 단계에서, 각 인증서가 폐지되지 않았는지 확인하는 절차가 있습니다.
- 이를 위해 CRL(인증서 폐지 목록, Certificate Revocation List) 또는 OCSP(온라인 인증서 상태 프로토콜, Online Certificate Status Protocol)를 사용하여 인증서의 상태를 확인합니다.
- 만약 주체 인증서 또는 중간 인증서가 폐지된 경우, 인증서 체인 검증은 실패합니다.
3. 체인 검증 요약
- 주체키(즉, 주체의 공개키)는 상위 CA에 의해 서명된 주체 인증서를 통해 신뢰성을 가집니다.
- 주체 인증서는 중간 인증서의 서명을 확인하고, 중간 인증서는 루트 인증서의 서명을 확인합니다.
- 루트 인증서는 신뢰할 수 있는 기관이 직접 신뢰하는 인증서이며, 이를 통해 전체 체인의 신뢰성이 보장됩니다.
- 체인 검증 과정에서 각 인증서의 유효성(서명 검증, 폐지 여부 등)을 확인하여, 해당 인증서가 올바르게 사용되고 있는지 확인합니다.
체인 검증 흐름 요약
- 주체 인증서 → 중간 CA 인증서 → 루트 CA 인증서 순으로 상위 인증 기관이 서명한 내용을 확인합니다.
- 각 단계에서 상위 기관의 공개키로 하위 인증서의 서명을 검증합니다.
- 루트 인증서가 신뢰되는 루트 저장소에 있는지 확인합니다.
- 각 인증서가 폐지되지 않았는지 CRL 또는 OCSP로 확인합니다.
이를 통해 최종적으로 주체 인증서(공동인증서)가 신뢰할 수 있는 인증 기관에 의해 발급되었음을 확인하게 됩니다.
'Development > Security' 카테고리의 다른 글
[Security] 공인인증 (0) | 2020.04.12 |
---|---|
[Security] 대칭키 암복호화 (0) | 2019.09.22 |
[Security] Proguard 사용시 파일 목록과 내용 (0) | 2019.09.22 |
[Security] Base64 정리 (0) | 2019.09.09 |
[Security] 전자서명 (0) | 2019.09.05 |