반응형
1. TLS의 주요 기능
- 암호화: 데이터를 제3자가 읽지 못하도록 암호화합니다.
- 인증: 서버/클라이언트의 신원을 확인합니다 (주로 서버 인증에 사용).
- 무결성: 데이터가 전송 중 변조되지 않았음을 보장합니다.
2. TLS 동작 과정 (핸드셰이크)
- Client Hello:
- 클라이언트가 지원하는 TLS 버전, 암호화 스위트(Cipher Suites), 임의의 데이터(Client Random)를 서버에 전송.
- Server Hello:
- 서버는 선택한 TLS 버전, 암호화 스위트, 서버 인증서(공개키 포함), Server Random을 응답.
- 인증서 검증:
- 클라이언트는 서버 인증서를 CA(인증 기관)를 통해 검증합니다.
- 키 교환 (Key Exchange):
- 클라이언트는 Pre-Master Secret을 생성해 서버의 공개키로 암호화해 전송합니다.
- 양측은 Client Random, Server Random, Pre-Master Secret으로 세션 키를 생성합니다.
(대칭키 암호화에 사용될 키)
- 암호화 통신 시작:
- 세션 키로 데이터를 암호화해 통신합니다 (AES 등 대칭키 암호화 사용).
세션 키는 매 연결마다 새로 생성되므로, 한 키가 유출되어도 다른 세션은 안전합니다.
3. TLS 버전 역사
- SSL 1.0~3.0: Netscape이 개발했지만 보안 결함으로 폐기됨.
- TLS 1.0 (1999): SSL 3.0의 업그레이드 버전.
- TLS 1.2 (2008): 현대적 암호화 방식 지원 (AES, SHA-256 등).
- TLS 1.3 (2018):
- 핸드셰이크 간소화 (1-RTT 또는 0-RTT 지원).
- 불필요한 암호화 스위트 제거 (보안 강화).
- 이전 버전보다 훨씬 빠르고 안전합니다.
TLS 1.0/1.1은 2020년 이후 대부분의 브라우저에서 지원 중단되었습니다.
TLS 1.3 을 주로 사용함
4. TLS vs SSL
- TLS는 SSL의 후속 버전이지만, 여전히 "SSL/TLS"로 혼용되어 언급됩니다.
- 차이점:
- TLS는 더 강력한 암호화 알고리즘을 지원합니다.
- SSL은 POODLE, DROWN 등의 취약점으로 사용되지 않습니다.
5. TLS의 적용 예시
- HTTPS: HTTP + TLS (웹 보안의 기본).
- 이메일: SMTP, IMAP, POP3에 TLS 적용 (Ex: Gmail의 STARTTLS).
- VPN: OpenVPN, WireGuard 등에서 TLS 활용.
- API 통신: RESTful API에 TLS를 적용해 데이터 보호.
TLS에서 CA(인증 기관)의 PEM 키는 서버/클라이언트 인증서의 신뢰성을 검증하는 데 사용되는 파일입니다.
주로 루트 인증서(Root CA) 또는 중간 인증서(Intermediate CA)의 공개키가 PEM 형식으로 저장됩니다.
1. CA PEM 파일의 내용
- 파일 확장자: .pem, .crt, .cer (PEM 형식)
- 내용:
- 공개키 인증서 (ASCII 텍스트 형식)
- -----BEGIN CERTIFICATE-----와 -----END CERTIFICATE----- 사이에 Base64로 인코딩된 X.509 인증서 데이터가 포함됩니다.
- 예시:
-----BEGIN CERTIFICATE----- MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw ... (Base64 인코딩 데이터) ... vpzMGQ== -----END CERTIFICATE-----
2. CA PEM 파일의 역할
- 서버 인증서 검증:
- 클라이언트(브라우저 등)는 서버가 제공한 인증서가 신뢰할 수 있는 CA에 의해 발급되었는지 확인합니다.
- CA의 공개키(PEM 파일)로 서버 인증서의 서명을 검증합니다.
- 체인 인증서 구성:
- 서버는 인증서 체인 (서버 인증서 + 중간 CA 인증서)을 클라이언트에 전송합니다.
- 클라이언트는 CA PEM 파일을 통해 체인의 유효성을 확인합니다.
3. CA PEM 파일의 종류
- 루트 CA 인증서:
- 최상위 인증 기관의 공개키 (Ex: DigiCert, Let's Encrypt).
- OS/브라우저에 기본적으로 내장됩니다.
- 중간 CA 인증서:
- 루트 CA의 서명을 받은 하위 기관의 인증서.
- 서버 인증서와 함께 전송되어 체인을 완성합니다.
4. 직접 CA PEM 파일을 사용하는 경우
- 사설 CA 인증서를 사용할 때 (Ex: 내부 테스트 환경).
- 특정 CA를 신뢰하도록 클라이언트에 강제해야 할 때.
- 예시 (cURL):
-
bash
curl --cacert /path/to/ca.pem https://example.com
5. PEM 파일 생성/변환
- DER → PEM 변환:
openssl x509 -inform der -in ca.cer -out ca.pem - 인증서 내용 확인:
openssl x509 -in ca.pem -text -noout
반응형
'Computer Science > CS 지식' 카테고리의 다른 글
| .env 파일 - 환경 변수로 설정 관리하기 (0) | 2025.10.29 |
|---|---|
| Kafka에 대해 간략하게 알아보기 (0) | 2025.08.22 |
| 정보처리기사 실기에 나오는 네트워크 관련 용어 (0) | 2025.07.16 |
| 정보처리기사 실기에 나오는 해킹, 보안 관련 키워드 (0) | 2025.07.14 |
| 3상 전력계측 시 위상 틀어짐 진단 방법 (0) | 2025.07.04 |