985. X.509 인증서 - PKI 전자 서명 인증서 표준 규격 구조 발급자 만료일 공개키 저장 뼈대 보안 통신망 기본 템플릿

핵심 인사이트 (3줄 요약)

  • 절대적 글로벌 표준 규격: X.509는 국제전기통신연합(ITU-T)에서 제정한 공개키 기반 구조(PKI)의 전자 인증서 포맷으로 전 세계 100% 공통 규격입니다.
  • 핵심 정보의 결합: 인증서 안에는 소유자의 신원 정보(Subject), 유효기간(Validity), 그리고 가장 중요한 소유자의 '공개키(Public Key)'가 포함되어 있습니다.
  • 위조 불가능한 구조: CA(인증기관)의 전자서명(Digital Signature)이 포함되어 있어, 내용이 단 1비트라도 조작되면 즉시 위조 사실이 발각됩니다.

Ⅰ. X.509 인증서의 개념과 뼈대

국제전기통신연합(ITU-T)에서 제정한 **PKI(공개키 기반 구조) 전자 인증서의 절대적 글로벌 표준 규격(포맷)**입니다. 인터넷 쇼핑(HTTPS)을 할 때 브라우저 자물쇠 아이콘을 눌러보면 나오는 복잡한 인증서 내용들, 예전 은행에서 쓰던 내 PC의 '공동인증서(구 공인인증서)' 파일들이 지구상 예외 없이 100% 이 X.509 템플릿 뼈대대로 찍혀 나온 파일들입니다.

┌────────────────────────────────────────────────────────┐
│                   X.509 Certificate                    │
├────────────────────────────────────────────────────────┤
│ [ 1. 기본 데이터 (Basic Certificate Fields) ]          │
│  - Version      : v3                                   │
│  - Serial No    : 0x1A2B3C4D5E... (일련번호)           │
│  - Signature    : SHA-256 with RSA                     │
│  - Issuer       : Let's Encrypt Authority (발급자 CA)  │
│  - Validity     : 2023.01.01 ~ 2024.01.01 (유효기간)   │
│  - Subject      : *.naver.com (인증서 소유자)          │
│  - Public Key   : [ 0101101... ] (소유자의 공개키) ★  │
├────────────────────────────────────────────────────────┤
│ [ 2. 확장 필드 (v3 Extensions) ]                       │
│  - Key Usage    : Digital Signature, Key Encipherment  │
│  - Subject Alt  : naver.com, www.naver.com             │
├────────────────────────────────────────────────────────┤
│ [ 3. 발급자의 전자 서명 (CA's Digital Signature) ] ★  │
│  - CA의 개인키로 위 데이터의 해시값을 암호화한 서명 값 │
│  - [ 1011001010111000101010... ]                       │
└────────────────────────────────────────────────────────┘

📢 섹션 요약 비유: 인터넷 서버들에게 신분증을 나눠주는 PKI가 '국가 행정안전부'라면, X.509 인증서는 전 국민이 지갑에 하나씩 들고 다니는 가로 8.6cm 세로 5.4cm짜리 **'플라스틱 주민등록증의 완벽한 국가 절대 규격'**입니다. 만약 규격이 없으면 어떤 놈은 A4 용지에 자기소개서를 써오고, 어떤 놈은 두루마리 휴지에 써와서 경찰(브라우저)이 신원 조회를 하다가 미쳐버립니다. 전 세계 100% 통일된 서식의 기적입니다.

Ⅱ. X.509 인증서의 내부 해부도 (필수 기출 3대 요소)

인증서라는 파일 안에는 크게 3개의 덩어리가 존재합니다.

1. 기본 데이터 (누구의 신분증인가?)

가장 기본적인 빈칸 채우기 항목들입니다.

  • 버전 (Version): 현재는 모두 확장 필드를 지원하는 v3를 사용합니다.
  • 일련번호 (SerialNumber): CA(인증기관)가 발급할 때 부여하는 전 세계 유일한 식별 번호입니다.
  • 발급자 (Issuer): 이 신분증을 발급하고 보증해 준 CA의 이름입니다.
  • 유효기간 (Validity): 시작일과 만료일. 만료일이 지나면 인증서는 폐기됩니다.
  • 주체 (Subject): 이 인증서의 진짜 소유자(예: 도메인 이름, 개인 이름)입니다.
  • 주체의 공개키 (Subject Public Key Info): 이 신분증이 존재하는 진짜 이유로, 소유자가 전 세계에 배포하고자 하는 '공개키'가 담겨 있습니다.

2. 확장 필드 (v3 Extensions)

버전 3으로 오면서 추가된 부록입니다.

  • 인증서의 용도(Key Usage)를 제한하거나, 주체 대체 이름(SAN, Subject Alternative Name)을 통해 여러 도메인을 하나의 인증서로 커버하는 등의 세부적인 추가 정보를 제공합니다.

3. 발급자의 전자 서명 (CA's Digital Signature)

이 서류가 가짜가 아님을 증명하는 무적의 방패(홀로그램 도장)입니다.

  • CA는 위 1번과 2번 항목 전체를 해시 함수(예: SHA-256)로 돌려 지문(해시값)을 만듭니다.
  • 그 지문을 철저히 보호받는 **'CA의 개인키'**로 암호화합니다. 이것이 바로 전자 서명입니다.
  • 클라이언트(웹 브라우저)는 미리 내장된 'CA의 공개키'로 이 서명을 복호화하여 해시값을 비교함으로써, 단 1글자의 위조도 없음을 완벽히 검증해 냅니다.

📢 섹션 요약 비유: X.509 규격은 선언합니다. "모든 신분증은 상단에 무조건 '이름(Subject)'을 적고, 우측 하단에 '만료일(Validity)'을 적어라! 그리고 뒷면 정중앙에는 무조건 네가 세상에 뿌리고 싶은 '자물쇠(공개키)'를 강철로 용접해 붙여놔라! 마지막으로 맨 밑에는 위조 방지용 '동사무소 홀로그램 스티커(CA 전자서명)'를 꽉 찍어라!"

Ⅲ. 파일 형식(확장자)의 종류

내용물(X.509 구조)은 완전히 동일하지만, 글씨를 인코딩(작성하는 방식)하는 방법에 따라 파일 확장자가 나뉩니다.

  • .DER / .CER: 바이너리(0과 1) 형태로 인코딩되어 압축된 파일입니다. (주로 윈도우, 자바 환경에서 사용)
  • .PEM / .CRT: 바이너리 데이터를 인간이 읽을 수 있는 Base64 문자열로 변환한 텍스트 파일입니다. 메모장으로 열면 -----BEGIN CERTIFICATE-----로 시작하는 특징이 있습니다. (주로 리눅스, 아파치/엔진엑스 환경에서 사용)

📢 섹션 요약 비유: 똑같은 '대한민국 주민등록증(X.509)' 정보지만, 이것을 컴퓨터가 읽기 편하게 '바코드(DER)'로 빽빽하게 인쇄해 놓았는지, 아니면 사람이 눈으로 읽을 수 있게 '알파벳(PEM)'으로 쭉 풀어서 적어 놓았는지의 차이일 뿐입니다.

👶 어린이를 위한 3줄 비유 설명

  1. X.509 인증서는 인터넷 세상에서 사용하는 **'공무원이 만들어준 전국 공통 주민등록증 양식'**이에요.
  2. 이 주민등록증 안에는 내 이름표, 유효기간, 그리고 친구들에게 나눠줄 **'마법의 자물쇠(공개키)'**가 예쁘게 들어있어요.
  3. 그리고 주민등록증 맨 밑에는 **'동장님의 절대 위조 불가능한 마법 도장(전자서명)'**이 찍혀 있어서 아무도 내용을 고칠 수 없답니다!