테마
06. 키 교환과 하이브리드 암호
학습 목표
- 대칭키의 인터넷 환경 한계(키 전달 문제)를 이해한다.
- 비대칭키로 키 교환을 해결하는 방법을 설명할 수 있다.
- 하이브리드 암호(대칭키 + 비대칭키 혼합)의 원리를 이해한다.
- **세션 키(Session Key)**의 개념과 장점을 설명할 수 있다.
- 실제 인터넷 통신에서 암호가 어떻게 적용되는지 전체 흐름을 그릴 수 있다.
전체 구조
1. 대칭키의 인터넷 환경 한계
키 전달 문제
대칭키는 효율이 뛰어나지만, 인터넷 환경에서 치명적인 문제가 있다.
핵심 문제: 인터넷이라는 공개 구간을 통해 키를 안전하게 전달할 방법이 없다.
암기 포인트: 대칭키는 효율적이지만, 인터넷에서 키를 안전하게 전달할 방법이 없어서 단독 사용이 부적합하다.
2. 비대칭키로 키 교환하기
비대칭키가 해결하는 것
비대칭키에서는 공개키를 인터넷에 공개해도 된다. 공개키로 암호화한 것은 개인키로만 풀 수 있으니까.
공개키는 인터넷에 노출되어도 괜찮다. 공개키로 암호화한 것은 개인키로만 풀 수 있기 때문이다.
비대칭키만 쓰면 되지 않나?
가능은 하지만 효율이 나쁘다. 데이터를 주고받을 때마다 비대칭키 연산을 하면 CPU를 너무 많이 쓴다.
3. 하이브리드 암호: 최선의 해결책
아이디어
두 방식의 장점만 조합한다.
| 역할 | 방식 | 이유 |
|---|---|---|
| 키 교환 | 비대칭키 | 공개키로 안전하게 키 전달 가능 |
| 데이터 암호화 | 대칭키 | 빠르고 효율적 |
전체 흐름
흐름을 단계별로 정리
왜 이 방식이 좋은가?
- **세션 키(대칭키)**는 서버 공개키로 암호화되어 전달된다 → 도청해도 풀 수 없다
- 실제 데이터 통신은 **대칭키(세션 키)**로 한다 → 빠르고 효율적
- 비대칭키 연산은 키 교환 한 번만 한다 → CPU 부담 최소화
4. 세션 키(Session Key)
세션 키란?
PC가 생성한 대칭키를 **세션 키(Session Key)**라고 부른다. 하나의 통신 세션에서만 사용하는 키다.
세션별 고유 키의 장점
하나의 서버에 여러 PC가 접속하면, 각각 다른 세션 키를 사용한다.
| 특성 | 설명 |
|---|---|
| 채널별 고유 | PC마다 다른 세션 키 사용 |
| 한시적 사용 | 세션이 끝나면 키 폐기 |
| 피해 제한 | 하나가 유출되어도 다른 세션에 영향 없음 |
| 효율 | 대칭키이므로 빠른 암호화/복호화 |
5. 터널(Tunnel)이란?
PC와 서버 사이에 세션 키로 암호화된 통신 채널이 형성되면, 이것을 **터널(Tunnel)**이라 부른다.
- TCP/IP 연결 위에서 키 교환을 하고 비밀 통신을 하면 → Secured Session
- 이 보안 세션을 비유적으로 터널이라 부른다
- VPN 등에서 "터널링"이라는 표현이 여기서 나온 것이다
6. 키 쌍 생성의 비용
비대칭키든 대칭키든, 키를 생성하는 것은 상당한 전산 자원을 소모한다.
암기 포인트: 키 쌍 생성은 비용이 크므로, 한 번 만들어서 일정 기간(보통 1년) 재사용한다. 이것이 인증서 유효기간의 이유다.
핵심 암기 포인트
대칭키의 한계: 인터넷에서 키를 안전하게 전달할 방법이 없다.
하이브리드 암호: 비대칭키로 키 교환 + 대칭키로 데이터 통신. 양쪽 장점만 취한다.
세션 키: PC가 생성한 대칭키. 서버 공개키로 암호화하여 전달. 세션별로 고유.
터널: 세션 키로 암호화된 통신 채널. VPN의 "터널링"이 이 개념.
흐름 요약: 서버 공개키 전달 → PC가 세션 키 생성 → 공개키로 암호화 전달 → 대칭키 통신.
확인 질문
- 대칭키만으로 인터넷 비밀 통신이 어려운 이유는 무엇인가?
- 하이브리드 암호에서 비대칭키와 대칭키 각각의 역할은 무엇인가?
- 세션 키가 채널별로 다른 것이 보안에 어떤 이점을 주는가?
- 세션 키를 서버에 전달할 때 왜 서버의 공개키로 암호화하는가?
- "터널"이라는 표현이 어떤 상황을 비유하는 것인가?