TLS (Transport Layer Security) — 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약. 도청·간섭·위조를 방지하며, SSL 3.0을 기초로 IETF가 만든 프로토콜로 현재 표준은 TLS 1.3 (SSL 3.0이 TLS 1.0). OTA에서는 OTA Server ↔ MODEM 구간의 기밀성·무결성·인증을 책임지는 핵심 계층이다.
프로토콜 스택 위치
| HTTP 클라이언트 (Web 브라우저) | SMTP 클라이언트 | POP3 클라이언트 |
|---|---|---|
| HTTPS | SMTPS | POP3S |
| SSL / TLS | ||
| TCP | ||
| IP |
TLS 3단계 기본 절차
- [Handshake Protocol] 지원 가능한 알고리즘 서로 교환.
- [Handshake Protocol] 키 교환, 인증.
- [Record Protocol] 대칭키 암호로 암호화하고 메시지 인증.
Handshake Protocol — 4 Phases
협상된 cipher suite와 암호학적 secret들의 생성 절차. Client와 Server는 4단계를 거쳐 공유 키를 설정한다.
Phase I — Establishing Security Capabilities
Client Hello (client → server):
- 사용 가능한 버전 번호, 현재 시각, client random
- Session ID (최초 연결 시 빈 값, 재사용 시 기존 ID)
- 사용 가능한 Cipher Suite 목록
- 사용 가능한 압축 방법 목록
Server Hello (server → client):
- 사용하는 버전 번호, 현재 시각, Server random
- Session ID
- 결정된 Cipher Suite, 결정된 압축 방법
Phase I 이후 Client·Server가 공유하는 정보:
- SSL/TLS 버전
- 키 교환·메시지 인증·암호화 알고리즘
- 압축 방법
- 키 생성용 2개의 난수 (client random, server random)
Phase II — Server Authentication and Key Exchange
- Server Certificate (server → client) — 서버 인증서 목록 전송. 클라이언트는 인증서로 서버 신뢰성 확인.
- Server Key Exchange (server → client) — 키 교환에 필요한 정보 제공 (Cipher Suite에 따라 다름).
- Certificate Request (server → client) — 서버가 클라이언트 인증을 요구할 때 인증서 타입·CA 이름 목록 전송 (선택적).
- Server Hello Done — Server Hello 종료 신호.
Phase II의 4가지 케이스:
| 케이스 | Certificate | ServerKeyExchange 내용 |
|---|---|---|
| a. RSA | RSA Enc-cert | 없음 |
| b. Anonymous DH | 없음 | |
| c. Ephemeral DH | RSA or DSS Sig-cert | |
| d. Fixed DH | DH cert | 없음 |
Phase II 이후: 서버가 클라이언트에 인증됨. 필요 시 클라이언트가 서버 공개키 획득.
Phase III — Client Authentication and Key Exchange
- Certificate (client → server) — 서버가 요청한 경우에만 클라이언트 인증서 전송.
- Client Key Exchange (client → server) — Pre-master secret 전송. Pre-master secret은 대칭키 생성 기반이 되므로 절대 노출 금지 → Client random + Pre-master secret을 조합하고, 서버 인증서의 공개키로 암호화하여 전송. 서버는 자기 개인키로 복호화.
- 양측이 동일한 master secret 생성 (키 생성 알고리즘에 따라).
- Certificate Verify (client → server) — Certificate Request를 받은 경우, 인증서 개인키 소유를 증명하기 위해 master secret 등을 이용한 서명 전송.
Phase III의 4가지 케이스:
| 케이스 | Certificate | ClientKeyExchange 내용 |
|---|---|---|
| a. RSA | 없음 | 서버 공개키로 암호화한 Pre-master secret |
| b. Anonymous DH | 없음 | ClientKeyExchange |
| c. Ephemeral DH | RSA or DSS Certificate | ClientKeyExchange |
| d. Fixed DH | DH Certificate | 없음 |
Phase IV — Finalizing the Handshake Protocol
- Change Cipher Spec. (client → server) — 협상된 security parameter 적용·변경 통보.
- Finished (client → server) — 클라이언트 Handshake 종료 선언.
- Change Cipher Spec. (server → client) — 서버가 parameter 변경 통보.
- Finished (server → client) — 서버 Handshake 종료 선언.
Finished 메시지는 MD5 Hash + SHA Hash를 포함한다.
Phase IV 이후: Client·Server가 데이터 교환 준비 완료.
Handshake의 4가지 목적
- 클라이언트가 서버의 공개키 확인 및 서버 인증.
- 서버가 클라이언트의 공개키 확인 및 클라이언트 인증.
- Client·Server가 암호 통신용 공유 키 획득 (from master secret).
- Client·Server가 메시지 인증 코드용 공유 키 획득 (from master secret).
Record Protocol
Handshake 이후 실제 데이터 전송 단계. 협상된 대칭키로 암호화하고 MAC으로 메시지 인증한다.
Key Exchange — Handshake의 핵심
Diffie-Hellman (DH) 동의 프로토콜
공개 파라미터 하에서:
- Alice: 생성 후 전송
- Bob: 생성 후 전송
- 공유 키:
문제점 — Man-in-the-Middle (MITM) 공격:
인증이 없는 순수 DH는 중간자 공격에 취약.
- Alice → Eve → Bob 경로에서 Eve가 중간 개입
- , (Eve가 Alice에게 보냄), (Bob이 Eve에게 보냄)
- — Alice-Eve 키
- — Eve-Bob 키
- Alice·Bob은 Eve의 존재를 모른 채 Eve가 중계하는 모든 메시지를 교환
STS (Station-To-Station) 프로토콜
DH 교환에 서명 기반 상호 인증을 결합하여 MITM을 차단.
- Alice → Bob:
- Bob: 생성
- Bob → Alice: , ,
- Alice: 생성 + Bob 서명 검증
- Alice → Bob: ,
- Bob: Alice 서명 검증
TLS의 Ephemeral DH 케이스가 STS의 개념적 구현에 해당한다.
키 교환 프로토콜의 안전성 속성
| 속성 | 정의 |
|---|---|
| Forward Secrecy (전방향 안전성) | 사용자의 장기 비밀키가 노출되어도 이전에 성공적으로 확립된 세션키의 정보는 획득 불가. 사례: 들이 저장된 상태에서 가 노출되면 이전 세션들이 모두 복호화 — Forward Secrecy 결여 |
| Known-Key Secrecy (기지-키 안전성) | 이전 세션키가 노출되어도 향후·다른 세션키의 기밀성에는 영향 없음. 형태로 이전 세션키에서 도출하는 방식은 위배 |
| Session State Reveal 안전성 | 세션키 생성에 사용된 난수가 노출되어도 세션키 획득 불가. 장기 비밀키보다 일회성 난수가 더 쉽게 노출될 수 있음 |
| Key Compromise Impersonation 안전성 | Alice의 비밀키를 획득한 Eve가 Bob으로 가장하는 공격을 차단 |
| Unknown Key Share 안전성 | Alice가 Bob과 키 교환 중이라 인식하면 Bob도 Alice와 통신 중임을 인식해야 함 (파트너 혼돈 공격 방지) |
OTA에서의 역할
OTA 통신 스택에서 OTA Server ↔ MODEM 구간의 보안 계층으로 사용된다. OTA 보안 5요소 중:
- 기밀성: Record Protocol의 대칭키 암호화
- 무결성: Record Protocol의 MAC
- 인증: Handshake Phase II·III의 인증서 기반 상호 인증
- 최신성: client/server random으로 replay 방지