넓고 얕은 IT 이야기

SSL(Secure Socket Layer)

TDCIAN 2024. 1. 30. 09:04

1. SSL(Secure Socket Layer) 개요

1-1. SSL의 정의

- 웹 브라우저와 웹 서버간에 데이터를 안전하게 주고 받기 위하여 전자상거래 등의 보안을 위해 개발된 인증서 기반 암호화 통신 프로토콜

- TLS(Transport Layer Security)로 표준화 되었으며, 기본적으로 인증, 암호화, 무결성을 보장

 

1-2. SSL의 특징

구분 설명
공개키 기반 인증방식 RSA 방식과 X.509 v3 인증서 사용
3가지 인증 모드 지원 익명 인증 모드(Anonymous Authentication), 서버 인증 모드(Server Authentication), 클라이언트-서버인증 모드(Mutual Authentication)
연결주소 https://로 시작되는 연결주소
지정포트 443번 포트, OSI 7 Layer에서 전송 -> 응용계층에서 동작
보안서비스 제공 비밀성, 무결성, 인증 및 효율성을 위한 데이터 압축 기능 제공
다양한 알고리즘 지원 여러 알고리즘을 지원하고, 실행과정에서 선택 사용 가능
핸드쉐이크를 통한 통신 클라이언트와 서버간 핸드쉐이크 프로토콜을 통한 인증 절차 진행

 

 

2. SSL의 구조 및 동작 원리

2-1. SSL의 구조

구분 구성요소 내용
동작 원리 SSL Handshake Protocol - 서버와 클라이언트간 상호 인증 수행
- 세션 키, 암호 알고리즘, 인증서 등 파라미터 협상
- Secret Key 암호 알고리즘 종류 및 키 설정 담당, 세션 정보 공유
SSL Change Cipher Spec - Handshake 프로토콜에 의해 협상된 암호화 방식이 이후부터 적용됨을 상대에게 알림
- SSL이 주고 받는 메시지 구체 내용(알고리즘과 키 관련)
SSL Alert Protocol 암호 오류, 압축 오류, 메시지 인증 오류, 인증 실패 등의 에러 발생을 수신자에게 알림
보안 서비시 SSL Record Protocol - 전송되는 메시지의 기밀성과 무결성 보장
- 단편화, 암호화, MAC(해시 함수 유형), 압축
- 사용되는 알고리즘
   - 비대칭 알고리즘 -> RSA 대칭 알고리즘: DES, RC2, 
   - Hash 알고리즘: MD5, SHA-1

 

 

2-2. SSL 동작 원리

- 전자 서명을 위한 RSA/디피헬만, Hash(HMAC) 함수 사용, 대칭키 AES 암호화 알고리즘 사용

 

(1) 웹브라우저: https://를 사용하여 암호화된 페이지를 요청함 - 통신 시작 알림

(2) 웹서버: 응답으로 공개키를 인증서(Certificates)와 함께 전송 - 인증서 전달 / 공개키 전송

(3) 웹브라우저: 인증서 판단(Verisign 등의 CA의 인증서 유효한지 판단-날짜, 서명 등)

(4) 웹브라우저: 공개키를 사용하여 데이터 암호화 전송(랜덤 대칭키 전송) - 암호화 전송

(5) 웹서버: 비밀키를 사용하여 데이터 복호화(랜덤 대칭키도 복호화) - 세션키 생성

(6) 웹서버: 대칭키(세션키)로 응답 내용을 전송 - 암호화된 보안 페이지 / 문서 전송

(7) 웹브라우저: 대칭키로 html 복호화 화면 출력