SSL 프로토콜

라이언양 위키
둘러보기로 가기 검색하러 가기

1 소개

Secure Socket Layer(SSL) Protocol은 한 때 웹 브라우저 시장을 독점하다시피 했던 Netscape가 1995년에 개발한 프로토콜이다. 1999년에 IETF(Internet Engineering Task Force, 국제인터넷표준화기구)를 통해 국제 표준이 되면서 Transport Layer Security(TLS)로 이름이 변경되었으며 버전으로는 1.0, 1.1, 1.2, 1.3이 있다.

참고로 TLS 1.0, TLS 1.1 은 POODLE, BEAST 같은 보안 취약점이 있으며 2020년 상반기부터 주요 브라우저에서 지원을 중단할 예정이다.

2 동작 계층

응용계층(Application Layer)과 전송계층(Transport Layer) 사이에서 동작한다.

3 프로토콜 구성

  1. SSL Record Protocol (메시지 압축 및 암호화)
  2. SSL Control Protocol
    1. Handshake Protocol (암호화 알고리즘 및 공유키 합의)
    2. Change Cipher Spec Protocol (암호 방법 변경)
    3. Alert Protocol (오류 전달)

4 동작 절차

간략히 요약된 동작 절차는 아래와 같다.

  1. [C → S] Client Hello (통신 시작 알림)
  2. [S → C] Server Hello (지원 가능한 알고리즘 선정 및 전달)
  3. [S → C] Server Key Exchange (공개키 전달)
  4. [S → C] Server Hello Done (전달완료)
  5. [C → S] Client Key Exchange (서버의 공개키로 비밀키를 암호화하여 전달)
  6. [C → S] Change Cipher Spec (암호화 통신 준비완료 알림)
  7. [C → S] Finished (인증 및 종료)
  8. [S → C] Change Cipher Spec (암호화 통신 준비완료 알림)
  9. [S → C] Finished (인증 및 종료)

(참고) C: 클라이언트, S: 서버

5 주요 취약점

  • POODLE(Padding Oracle On Downgraded Legacy Encryption)은 취약한 암호화 기법을 악용할 수 있게 하는 프로토콜 다운그레이드를 통한 해킹
  • BEAST(Browser Exploit Against SSL/TLS)는 사용자 브라우저의 취약점을 이용해 HTTPS 쿠키를 훔쳐 특정 세션을 탈취할 수 있는 공격
  • CRIME(Compression Ration Info-leak Mass Exploitation)은 HTTPS 압축에 따른 취약점을 이용해 HTTPS 세션을 가로채는 공격

6 참고 사이트