SSL (Secure Sockets Layer) : 인터넷 상에서 데이터를 안전하게 전송하기 위해 사용되는 암호화 프로토콜
현재는 SSL의 후속 버전인 TLS (Transport Layer Security)가 더 많이 사용된다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
SSL을 구성하는 프로토콜
1. Handshake 프로토콜
클라이언트와 서버가 안전한 통신을 위해 암호화 및 인증 정보를 교환하는 과정이다.
주요 역할:
- 암호화 방식과 세션 키를 협상한다.
- 서버의 신원을 인증하고, 필요시 클라이언트 인증도 수행한다.
크게 초기 협상 단계, 서버 인증 단계, 클라이언트 인증 단계, 종료 단계로 구분된다.
- 초기 협상 단계: 클라이언트와 서버가 암호화 알고리즘 및 프로토콜 버전을 협상.
- 서버 인증 단계: 서버 인증서를 전송하고 서버 신원 검증.
- 클라이언트 인증 단계 (선택적인 과정): 클라이언트 인증서를 사용해 클라이언트 신원 검증.
- 종료 단계: ChangeCipherSpec와 Finished 메시지로 암호화된 통신 준비 완료.
2. Record 프로토콜
SSL/TLS의 데이터 전송을 담당하는 핵심 프로토콜이다.
주요 역할:
- 데이터 단편화: 데이터를 적절한 크기로 분할한다.
- 암호화 및 압축: 데이터를 암호화하고 필요 시 압축하여 전송한다.
- 무결성 확인: MAC을 통해 데이터 변조를 방지한다.
3. ChangeCipherSpec 프로토콜
SSL/TLS 핸드셰이크 단계에서 암호화 상태로 전환되었음을 알리는 프로토콜이다.
주요 역할:
- 클라이언트와 서버가 세션 키와 암호화 알고리즘 협상이 완료되었음을 확인하고, 이후부터 암호화된 데이터를 사용하기 시작함을 선언
4. Alert 프로토콜
SSL/TLS 통신 과정에서 오류나 경고 메시지를 전송하는 프로토콜이다.
Record 프로토콜의 상위 프로토콜이다.
5. Application Data 프로토콜
실제 애플리케이션 계층에서 데이터 전송을 담당