1. SSL/TLS 프로토콜 스택
ㅇ 크게, 두 그룹으로 구성
- 상위 핸드세이크 관련 프로토콜들
- 하위 레코드 프로토콜 (단편화,압축,무결성,암호화 기능 제공)
2. SSL/TLS 핸드세이크 프로토콜
ㅇ Application 데이터의 교환 이전의 세션 초기화 중에 이루어짐
- 서버와 클라이언트가 상호 인증
- `암호 키 교환` 및 `암호화 알고리즘` 협상 및 확립을 도모하기 위한 정보 교환
- DES 알고리즘 등에 기반하여 세션키를 생성
ㅇ 주요 협상 내용
- 키 교환 방식 협상
- 암호화 방식 협상
- HMAC 방식 협상
- 압축 방식 협상
ㅇ 클라이언트/서버 간에 공유 암호 키를 만들기 위해 공개 키 방식을 활용
- `데이터 암호화`를 위한 공유 암호 키를 정의 함
- `메세지 인증`을 위한 메세지 인증 코드(TLS : HMAC 코드) 생성
ㅇ 메세지 종류 (Handshake type)
- Hello request (0)
- Client Hello (1) (클라이언트 → 서버)
. 주요 정보 : Version, Client Random Number, Session ID, Cipher Suite,
Compression Method
. Cipher Suite 이란?
.. 클라이언트가 지원 가능한 보안 방식들을 2 바이트 코드 값으로 열거한 것
.. 키 교환 방식, 암호화 방식, MAC 코드 방식
- Server Hello (2) (서버 → 클라이언트)
. 주요 정보 : Version, Server Random Number, Session ID,
Selected Cipher Set, Selected Compression Method
- Certificate (11) : 서버,클라이언트가 송신하는 X.509 v3 인증서가 이에 수납됨
- Server Key Exchange (12)
- Certificate Request (13)
- Server Hello Done (14)
- Certificate Verify (15)
- Client Key Exchange (16)
- Finished (20)
3. Change Cipher Spec 프로토콜
ㅇ 상호 암호 통신을 위한,
- 일련의 보안 알고리즘 정보의 결정과,
- 일련의 보안 매개변수(암호학적 비밀)를 상대에게 신속하게 전송하는데 사용
ㅇ 또한, 현재 작동되고 있는 보안 매개변수를 변경하기 위함
4. Alert 프로토콜
ㅇ 핸드세이크 과정에서,
- 상대방이 제시한 암호화 방식을 지원할 수 없을 때 등의 경우에,
- 즉, 오류 발생시 상대방에게 오류 통보 기능 수행
5. Record 프로토콜 (또는 데이터 교환 프로토콜)
ㅇ 특징
- 상위 프로토콜들인 핸드세이크,Change Cipher Spec,Alert 프로토콜 등의 제어 메세지와
- Application 메세지들을 수납하여,
- 레코드 단위(TLS record)로 운반하면서,
- 분할,압축,무결성,인증,암호화 등의 기능을 레코드 단위로 제공하는 프로토콜
ㅇ 주요 기능
- 메세지 분할(Fragmentation) : 214 또는 그 이하의 블록으로 데이터를 나눔
- 메세지 압축(Compression)
- 메세지 무결성(Message Integrity)
- 메세지 인증(Message Authentication)
- 메세지 암호화(Encryption)
ㅇ 계층 위치
- TCP 전송계층 바로 위에 위치
. 양단간 통신 연결 시 보안 제공
ㅇ 제공 보안서비스 : 기밀성, 무결성
- 기밀성 : DES 등과 같은 암호화 방식을 선택하여 이를 이용하여 보안성을 제공
- 무결성 : 매 메세지별 HMAC 이용
ㅇ 프로토콜 구성
- 필드 구성 : 4개로 구성
. type field, version field, length field, fragment field
- 상위 메세지 종류 (content type)
. Change Cipher Soec 프로토콜 (20)
. Alert 프로토콜 (21)
. Handshake 프로토콜 (22)
. Application Data (23)