SSL은 웹 브라우저를 위한 보안 프로토콜로 처음 제안되어 현재 SSL 3.0 버전까지 나왔다. SSL 3.0을 기반으로 표준화한 것이 TLS이다. 통상적으로 SSL과 TLS을 같은 말로 부르는듯하다.
SSL/TLS는 클라이언트/서버 환경에서 TCP 기반의 어플리케이션에 대한 종단 간 보안 서비스를 제공하기 위해 만들어진 전송계층 보안 프로토콜이다. 각 애플리케이션 프로토콜이 SSL을 이용할 경우 이를 구분하기 위해 고유한 well-know 포트를 할당한다. 가장 대표적인 예는 아래와 같다.
- HTTPS(443/tcp)
- SMTPS(465/tcp)
- FTPS(990/tcp)
- TELNETS(992/tcp)
SSL/TLS 가 제공하는 보안 서비스
1. 기밀성(Confidentiality)
대칭 암호를 이용한 송수신 메시지 암호화를 통해 기밀성을 제공한다.
2. 무결성(Integrity)
메시지 인증 코드를 통해 송수신 메시지의 위변조 여부를 확인할 수 있는 무결성을 제공한다.
3. 인증(Authentication)
공개키 인증서를 이용한 서버/클라이언트 간 상호 인증을 수행한다.
SSL/TLS 프로토콜 구조
SSL/TLS 프로토콜은 크게 2계층으로 이루어진 프로토콜이다.
1. 상위 계층
Handshake
종단 간에 보안 파라미터를 협상하기 위한 프로토콜
Change Cipher Spec
종단 간에 협상된 보안 파라미터를 이후부터 적용, 변경함을 알리기 위한 프로토콜
Alert
SSL/TLS 통신 과정에서 발생하는 오류를 통보하기 위한 프로토콜
Application Data 프로토콜
Application 계층의 데이터를 전달하기 위한 프로토콜
2. 하위계층
Record
적용/변경된 보안 파라미터를 이용하여 실제 암호화/복호화, 무결성 보호, 압축/압축해제 등의 기능을 제공하는 프로토콜
상태 유지(Stateful) 프로토콜
1. 세션과 연결 기반의 상태 유지 프로토콜이다.
완전 협상을 통해 세션을 생성, 이 세션 정보를 공유하는 다수의 연결을 단축 협상을 통해 생성한다.
2. 세션 상태 정보
완전 협상을 통해 생성되는 상태정보로 보안 파라미터 정보를 관리한다. 대표적인 세션 상태 정보는 "대칭 암호 알고리즘", "HMAC용 해시 알고리즘" 등이 있다.
3. 연결 상태정보
실제 통신이 이루어지는 단위로 단축 협상을 통해 생성되며 세션 상태를 공유하면서 통신을 수행한다. 대표적인 연결 상태 정보로 "암호키", "인증키" 등이 있다.
4. 세션 상태 정보와 연결 상태 정보를 이용한 키 생성
완전 협상을 통해 주고받은 Premaster Secret, Client Random, Server Random을 조합하여 해시한 결과로 Master Secret을 생성한다. Master Secret은 다수 연결이 사용할 수 있도록 세션 상태에 저장한다. 단축 협상을 통해 주고 받은 Client Random, Server Random과 세션에 저장된 Master Secret를 조합하여 해시한 결과로 키 블록을 생성한다. 키 블록으로부터 서버/클라이언트 각각의 암호용 비밀키, MAC용 인증키 등을 계산해낸다.
'Computer Science > Network' 카테고리의 다른 글
FQDN과 PQDN에 대해 다시 한번 고민하기 (0) | 2022.11.12 |
---|---|
FQDN(Fully Qualified Domain Name)과 PQDN(Partially Qualified Domain Name) (0) | 2021.12.02 |
NAT(Network Address Translation) 이해 (0) | 2021.12.01 |