이번 포스팅에서는 PKI(공개키 기반 인프라)를 활용한 공개키 배포 방식, 암복호화 과정, 그리고 인증서 발급 절차와 인증서 갱신 및 폐지에 대해 설명하려한다. PKI는 데이터의 기밀성, 무결성, 신원 인증, 부인 방지 등의 요소를 보장하기 위해 필수적인 보안 인프라이다. 아래에서 각 요소가 어떻게 작동하고, 이들이 서로 연결되어 데이터 보안을 강화하는지 공부해보려한다 !!
1. PKI 기반 공개키 배포
PKI 기반 공개키 배포는 공개키의 신뢰성을 보장하기 위해 CA(인증기관)에서 발급한 인증서를 사용하는 방식이다. 이 방식에서 CA는 사용자의 공개키와 신원 정보를 포함한 인증서를 발급하여, 해당 공개키가 신뢰할 수 있는 사용자에게 속함을 증명한다.
디렉토리를 통한 공개키 관리 방식
- 공개 디렉토리 사용: 공개 디렉토리에 사용자의 인증서를 저장하여 누구나 필요할 때 이를 조회할 수 있도록 한다.
- 공개키 요청: 송신자가 수신자의 인증서를 요청하고, 이 인증서에 포함된 공개키를 사용해 데이터를 암호화한다.
- 인증서 검증: 인증서를 받은 송신자는 해당 인증서가 신뢰할 수 있는 CA에 의해 발급된 것인지를 확인하여 공개키의 신뢰성을 확보한다.
2. PKI 기반 암복호화
암호화와 복호화는 데이터의 기밀성을 보장하기 위한 중요한 과정이다. PKI는 대칭키 암호화와 비대칭키 암호화를 모두 사용하여 효율성과 안전성을 동시에 확보한다.
- 대칭키 암호화: 송신자는 데이터를 대칭키(비밀키)로 암호화한다. 대칭키 암호화는 속도가 빠르기 때문에 대량의 데이터 암호화에 적합하다.
- 대칭키의 비대칭 암호화: 대칭키 자체는 송신자의 개인키와 수신자의 공개키를 사용한 비대칭키 암호화 방식으로 보호한다. 이를 통해 대칭키가 전송 중에 노출되지 않도록 한다.
- 복호화 과정: 수신자는 자신의 개인키를 사용해 대칭키를 복호화한 후, 이 대칭키로 암호화된 데이터를 복호화하여 원본 데이터를 획득한다.
3. 사용자, RA, CA를 포함한 인증서 발급 절차
PKI 시스템에서 인증서 발급 절차는 사용자, RA(등록기관), CA(인증기관) 간의 협력으로 이루어진다. 각 기관은 다음과 같은 역할을 수행한다:
- 사용자
- 키 쌍 생성: 사용자는 개인키와 공개키로 이루어진 키 쌍을 생성한다.
- 인증서 발급 요청: 사용자는 RA를 통해 인증서 발급 요청 메시지를 생성하고, 이 메시지에 자신의 공개키와 신원 정보를 포함시킨다.
- RA(등록기관)
- 사용자 정보 확인: RA는 사용자의 신원을 확인하고 사용자가 신뢰할 수 있는지 검증한다.
- 요청 전송: RA는 사용자의 인증서 발급 요청을 CA로 전달한다.
- CA(인증기관)
- 인증서 발급: CA는 사용자가 제공한 정보를 바탕으로 인증서를 발급한다. 이 인증서에는 사용자의 공개키와 신원 정보가 포함되며, CA의 서명을 통해 신뢰성을 부여한다.
- CA의 서명: CA는 서버에서 받은 인증서에 자신의 개인키로 서명을 한다. 이를 통해 해당 인증서가 신뢰할 수 있는 CA에 의해 발급되었음을 보장한다.
- 인증서 게시: 발급된 인증서는 공개 디렉토리에 게시되어 다른 사용자가 접근할 수 있도록 한다.
- 클라이언트의 검증: 클라이언트는 CA가 서명한 인증서를 받아서 CA의 공개키로 서명을 검증한다. 이를 통해 인증서의 신뢰성을 확인하고, 서버의 공개키를 신뢰할 수 있게 된다.
4. 인증서 갱신
인증서 갱신은 인증서의 유효 기간이 만료되기 전에 수행되어야 한다. 갱신 과정은 기존 인증서와 동일한 정보를 포함하되, 새로운 유효 기간을 설정한다. 갱신 과정에서는 다음과 같은 단계가 수행된다.
- 갱신 요청: 사용자는 기존 인증서의 만료 기간이 다가오면 CA에 갱신을 요청한다.
- RA 확인: RA는 사용자의 신원을 다시 한번 확인하고 갱신 요청을 승인한다.
- CA 발급: CA는 새로운 인증서를 발급하여 디렉토리에 게시한다.
- 기존 인증서 폐지: 기존의 만료된 인증서는 폐지 리스트에 등록되어 더 이상 사용할 수 없게 된다.
5. 인증서 폐지
인증서 폐지는 인증서가 더 이상 유효하지 않음을 선언하는 과정이다. 인증서가 폐지되는 이유는 여러 가지가 있으며, 그중에는 비밀키 유출, 사용자의 신원 변경, 인증서 만료 등이 있다. 폐지된 인증서는 CRL 또는 OCSP를 통해 관리된다.
- CRL(Certificate Revocation List): 폐기된 인증서 목록을 관리하여 특정 인증서가 유효하지 않음을 알리는 방법이다. 사용자는 CRL을 조회하여 인증서의 유효성을 확인할 수 있다.
- OCSP(Online Certificate Status Protocol): 실시간으로 인증서의 상태를 확인할 수 있는 프로토콜로, 사용자가 요청한 인증서가 유효한지, 폐지되었는지 즉시 확인할 수 있도록 한다.
6. CRL과 OCSP를 통한 인증서 유효성 검증
- CRL 방식: 주기적으로 갱신되는 폐기된 인증서 목록을 통해 인증서의 상태를 확인한다. CRL은 대규모 환경에서 효율적으로 사용될 수 있지만, 목록이 커질수록 관리와 다운로드가 어려워지는 단점이 있다.
- OCSP 방식: 실시간으로 인증서의 상태를 확인할 수 있어, 최신 정보에 대한 신뢰성을 제공한다. OCSP는 RFC2560 표준에 맞춰 운영되며, 인증서의 상태가 변할 때마다 빠르게 반영된다.
7. PKI 기반 암복호화와 인증서 발급의 종합적인 이해
- PKI 기반 공개키 배포는 CA가 발급한 인증서를 통해 사용자가 공개키의 신뢰성을 보장받을 수 있도록 한다. 이러한 인증서에는 공개키와 함께 사용자의 신원 정보가 포함되어 있어, 이를 통해 공개키가 올바른 사용자에게 속하는지를 보장한다.
- PKI 기반 암복호화는 대칭키와 비대칭키 암호화를 혼합하여 사용한다. 대칭키 암호화를 통해 데이터의 암호화를 빠르게 수행하고, 대칭키 자체를 비대칭 암호화를 통해 보호하여 보안성을 높인다.
- 사용자, RA, CA 간의 인증서 발급 과정에서는 각 역할이 명확하게 정의되어 있어, 사용자의 신원 확인 및 인증서 발급의 신뢰성을 보장한다.
이번 포스팅에서는 PKI 기반 공개키 배포, 암복호화, 인증서 발급 및 갱신 절차에 대해 다루었다. CA와 RA의 역할을 이해하고, CRL과 OCSP를 통해 인증서의 유효성을 검증하는 방법을 통해 PKI 환경에서 데이터의 기밀성, 무결성, 신원 인증, 부인 방지를 보장할 수 있다. 이를 통해 신뢰할 수 있는 안전한 통신 환경을 구축하는 것이 PKI의 핵심 목표인것이다 !