PKCS#12와 .p12 파일은 사실상 같은 것을 의미합니다. PKCS#12는 Public-Key Cryptography Standards #12의 약자로, 개인 키와 공개 키(또는 인증서)를 함께 안전하게 저장하고 전송하기 위한 파일 형식 및 표준입니다. .p12는 PKCS#12 파일 형식의 파일 확장자입니다.
주요 내용 및 차이점
- PKCS#12
- 표준의 이름으로, 암호화된 컨테이너 형식을 정의.
- 개인 키, 인증서(공개 키), 중간 CA 인증서 등을 포함.
- 암호화되어 있으며, 이를 열기 위해 **암호(PIN)**가 필요.
- 다양한 운영 체제 및 애플리케이션에서 지원.
- .p12 파일
- PKCS#12 형식의 파일을 저장한 실제 파일.
- 파일 확장자로 .p12 또는 .pfx를 사용.
- PKCS#12 표준에 따라 구조화된 내용을 담고 있음.
PKCS#12의 주요 특징
- 구성 요소:
- 개인 키(Private Key).
- 인증서(공개 키 인증서).
- 중간 CA 인증서(필요 시).
- 루트 인증서(필요 시).
- 기타 속성 정보(옵션).
- 암호화:
- 파일 자체가 암호화되어 있어 안전하게 저장 가능.
- 개인 키는 절대 평문으로 저장되지 않음.
- 범용성:
- 다양한 시스템에서 사용 가능 (Windows, Linux, macOS 등).
- SSL/TLS를 설정하거나 클라이언트 인증에 널리 사용.
- 확장자:
- .p12 또는 .pfx 파일로 저장됨.
- 두 확장자는 동일한 형식을 나타내며, 이름만 다를 뿐 차이가 없음.
PKCS#12 파일의 주요 사용 사례
- SSL/TLS 인증서 설치:
- 웹 서버(Nginx, Apache, IIS 등)에 SSL/TLS 인증서를 설정할 때 개인 키와 인증서를 함께 제공.
- 서버는 PKCS#12 파일에서 개인 키와 인증서를 추출해 사용.
- 클라이언트 인증:
- 사용자가 클라이언트 인증을 위해 개인 키와 인증서를 보유해야 할 때.
- 예: 기업 내부 네트워크, VPN 접속 등.
- 키와 인증서의 안전한 저장 및 전송:
- 개인 키와 인증서를 하나의 암호화된 파일에 묶어 안전하게 전송.
.p12파일 생성 예시
openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt -certfile ca_bundle.crt
PKCS#12 vs PKCS#11: 주요 차이점
특징
PKCS#12 PKCS#11
정의 | 개인 키와 인증서를 안전하게 저장하고 전송하는 파일 형식 표준. | 보안 장치(HSM, 스마트카드 등)와 상호작용하는 API 표준. |
주요 목적 | 개인 키와 인증서를 암호화하여 파일로 저장 및 공유. | 보안 장치 내에서 암호화 작업 및 키 관리 수행. |
구현 방식 | 파일 기반. | 하드웨어와 소프트웨어 간의 인터페이스(API). |
구성 요소 | 개인 키, 인증서, CA 체인 등을 포함하는 암호화된 컨테이너. | 암호화 키, 인증서, 보안 토큰 등이 보안 장치 내부에 저장됨. |
사용 사례 | SSL/TLS 인증서 저장 및 배포, 클라이언트 인증. | HSM, 스마트카드와 통신하여 암호화 작업 수행. |
암호화 작업 수행 | 파일 내용 암호화 및 보호. | 암호화, 복호화, 디지털 서명, 키 생성 등을 HSM 내부에서 처리. |
의존성 | 파일 형식으로 동작하므로 특정 하드웨어에 의존하지 않음. | HSM, 스마트카드, USB 보안 토큰 등 보안 장치가 필요. |
파일 확장자 | .p12, .pfx | 파일이 아닌 인터페이스(API) 표준이므로 확장자가 없음. |
암호화 키 보관 위치 | 암호화된 파일 내부. | 보안 장치 내부에서만 키 관리 및 사용. |
PKCS#12와 PKCS#11의 사용 사례 비교
사용 사례
PKCS#12 PKCS#11
SSL/TLS 인증서 설정 | 웹 서버에서 SSL/TLS 인증서를 설치하기 위해 사용. | 웹 서버가 HSM에서 키를 안전하게 사용하도록 지원. |
클라이언트 인증 | 클라이언트 장치에 개인 키와 인증서를 저장하여 인증 수행. | 클라이언트가 HSM 또는 스마트카드 기반 인증 수행. |
디지털 서명 생성 | 개인 키를 파일에서 읽어 디지털 서명 생성. | HSM에서 개인 키를 사용해 디지털 서명 생성. |
암호화 키 관리 | 개인 키와 인증서를 암호화된 파일로 저장. | 암호화 키가 장치 내부에서만 관리되고 사용. |
보안성 | 암호화된 파일 수준의 보안. | 키가 장치 외부로 유출되지 않으므로 높은 보안성. |