SSL/TLS 인증서 (Digital Certificate) 기초
SSL/TLS 인증서는 웹 서버의 신원(Identity)을 보장하고, 서버와 클라이언트(브라우저) 간의 통신을 암호화할 수 있도록 하는 디지털 파일입니다.
이 인증서를 통해 HTTP 통신은 안전한 HTTPS 통신으로 전환됩니다.
1. SSL/TLS 인증서의 두 가지 핵심 역할
① 신원 인증 (Authentication)
클라이언트(사용자)가 접속하려는 서버가 해커가 위장한 가짜 서버가 아닌, 실제 웹사이트 소유자(예: 네이버, 은행)가 운영하는 정당한 서버임을 증명합니다.
- 원리: 신뢰할 수 있는 제삼자인 인증 기관(CA, Certificate Authority)이 서버의 정보를 확인하고 서명합니다. 브라우저는 이 서명을 검증하여 서버를 신뢰합니다.
② 암호화 통신 (Encryption)
공개키 기반 구조(PKI)를 사용하여 클라이언트와 서버가 서로 암호화에 사용할 공개키를 안전하게 교환할 수 있게 합니다.
- 결과: 통신 중 오가는 모든 데이터(비밀번호, 결제 정보 등)의 기밀성을 확보합니다.
2. 인증서에 포함되는 주요 정보
SSL/TLS 인증서는 X.509 표준 형식을 따르며, 다음과 같은 필수 정보가 포함됩니다.
| 정보 | 설명 | 역할 |
|---|---|---|
| 주체 (Subject) | 인증서가 발급된 도메인 이름 (예: www.google.com) 및 조직 정보. |
서버의 신원 확인 |
| 공개키 (Public Key) | 해당 서버의 공개키입니다. 클라이언트가 이 키를 이용해 암호화된 데이터를 서버로 보냅니다. | 암호화의 기초 |
| 발급자 (Issuer) | 인증서를 발급한 인증 기관(CA)의 이름입니다. | 신뢰도의 출처 |
| 유효 기간 | 인증서가 유효한 시작일과 만료일. | 인증서의 사용 기간 제한 |
| CA의 디지털 서명 | CA가 인증서의 무결성을 보장하기 위해 서명한 값. | 위변조 방지 |
3. 작동 원리의 간략화 (HTTPS 핸드셰이크)
- 클라이언트 요청: 브라우저가 HTTPS 통신을 요청합니다.
- 인증서 전송: 서버가 자신의 SSL 인증서와 공개키를 브라우저에 보냅니다.
- 인증서 검증: 브라우저는 인증서가 신뢰할 수 있는 CA에 의해 서명되었는지, 만료되지 않았는지 등을 확인합니다.
- 보안 채널 구축: 검증이 완료되면, 브라우저는 이 공개키를 이용해 비밀 통신에 사용할 대칭키를 암호화하여 서버로 보내고, 이 대칭키를 이용해 본격적인 데이터 암호화 통신을 시작합니다.