HTTPS와 SSL/TLS
1. HTTPS (Hypertext Transfer Protocol Secure)
개요
- HTTP에 SSL/TLS를 사용한 보안 강화 버전
- 서버-브라우저 간 암호화된 통신을 제공
- HTTP Body를 암호화 (Header는 암호화하지 않음)
장점
- 데이터 도난/탈취 방지
- 웹사이트 신뢰도 상승
- 검색 엔진 최적화(SEO) 가산점
- 데이터 무결성 보장
2. SSL/TLS (Secure Socket Layer/Transport Layer Security)
개요
- 서버와 브라우저 간 보안을 위한 프로토콜
- 공개키/개인키와 대칭키를 혼합하여 사용
- 현대에는 SSL의 후속 버전인 TLS를 주로 사용
암호화 방식
A. 대칭키 암호화
- 동일한 키로 암호화/복호화
- 장점: 빠른 암호화/복호화 속도
- 단점: 키 공유 시 탈취 위험
송신자 수신자 A B | | | 동일한 대칭키 공유 | |<---------------------------------------->| | | | 암호화된 데이터 (대칭키로 암호화) | |---------------------------------------->| | | | 암호화된 데이터 (대칭키로 복호화) | |<----------------------------------------| | |
B. 공개키/개인키 암호화 (비대칭키)
- 공개키: 암호화용 (공개)
- 개인키: 복호화용 (비공개)
- 장점: 안전한 키 교환
- 단점: 느린 처리 속도
송신자 수신자 A B | | | B의 공개키 전달 | |<----------------------------------------| | | | 암호화된 데이터 (B의 공개키로 암호화) | |---------------------------------------->| | | | B의 개인키로 복호화 | | |
3. SSL/TLS 통신 과정
A. 기본 SSL 통신
Client (A) Server (B)
| |
|----------- (1) 접속 요청 ----------------->|
| |
|<---------- (2) 공개키 전달 ----------------|
| |
|-- (3) 대칭키를 공개키로 암호화하여 전송 -->|
| |
| (4) 개인키로 복호화하여 |
| 대칭키 획득 |
| |
|<-------- (5) 대칭키로 암호화된 통신 ------>|
B. 인증기관(CA)을 통한 SSL 검증 과정
Client 인증기관(CA) Server
| | |
| | <-- [1] 인증서 요청 --- |
| | |
| | --- [2] 인증서 발급 --> |
| | |
|-- [3] 접속 요청 --------------------------------->|
| |
|<- [4] 인증서 전달 --------------------------------|
| |
| [5] 브라우저 내장 |
| CA 공개키로 |
| 인증서 검증 |
| |
|-- [6] 대칭키를 서버 공개키로 암호화하여 전송 --->|
| |
| [7] 서버 개인키로 |
| 대칭키 복호화 |
| |
|<----------- [8] 대칭키로 암호화된 통신 ---------->|
4. SSL/TLS 핵심 특징
- 혼합 암호화 시스템
- 공개키/개인키로 대칭키 안전하게 전달
- 실제 통신은 빠른 대칭키로 수행
- 인증서 기반 신뢰성
- CA가 발급한 인증서로 서버 신원 보증
- 브라우저에 내장된 CA 공개키로 검증
- 세션 관리
- 각 연결마다 새로운 세션키(대칭키) 생성
- 세션 종료시 키 폐기로 보안성 강화
5. 보안 강화 요소
- 인증서 체인을 통한 다단계 신뢰 구조
- 세션별 고유 키 사용으로 피해 최소화
- 주기적인 키 갱신으로 보안성 유지
6. 실제 적용
- 전자상거래
- 온라인 뱅킹
- 개인정보 처리 시스템
- API 통신
- 데이터 전송이 필요한 모든 보안 요구 상황
댓글