오늘의 인기 글
최근 글
최근 댓글
Today
Total
11-24 10:55
관리 메뉴

우노

[보안] SSL(Secure Socket Layer) 프로토콜이란? 본문

Network & Security/Concept

[보안] SSL(Secure Socket Layer) 프로토콜이란?

운호(Noah) 2020. 9. 16. 17:33

SSL(Secure Socket Layer) 프로토콜

  • SSL은 CA를 통해, 클라이언트와 서버가 암호화된 데이터를 송수신 하는 방식이다.

HTTP & HTTPS

  • HTTPS는 HTTP를 안전하게 만드는 방식이며, SSL 프로토콜 위에서 돌아가는 프로토콜을 의미한다.

  • HTTP

    • 클라이언트와 서버 사이에서 정보를 주고 받기 위해 이루어지는 요청/응답 프로토콜(양식과 규칙의 체계)
    • 암호화되지 않은 방법으로 데이터를 전송한다. (악의적인 감청, 데이터 변조의 가능성)
  • HTTPS(Hypertext Transfer Protocol Over Secure Socket Layer)

    • 보안이 강화된 HTTP이며,

    • 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화된다.

    • HTTPS는 HTTP의 하부에 SSL과 같은 보안계층을 제공함으로써 동작한다

SSL 프로토콜의 암호화

  • SSL 프로토콜의 핵심은 암호화이다.
  • SSL은 보안과 성능상의 이유로, 대칭키와 공개키 두가지 암호화 기법을 혼용해서 사용하고 있으며,
  • SSL의 동작방법을 이해하기 위해서는, 이 암호화 기법들에 대한 이해가 필요하다.

SSL 인증서

  • SSL 프로토콜에는 SSL 인증서가 사용된다.
  • SSL 인증서는 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서이다.
  • 클라이언트가 서버에 접속할 때, 서버는 클라이언트에게 SSL 인증서 정보를 전달하게 된다.
  • 또한, 클라이언트는 SSL 인증서 정보가 신뢰할 수 있는 것인지 검증 한 후에, 다음 절차를 수행하게 된다.
  • 이렇게 제3자가 인증해준 SSL 인증서를 통해, 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장할 수 있게 된다.
  • SSL 인증서에는 다음과 같은 정보가 포함되어 있다.
    • 서비스의 정보 (인증서를 발급한 CA, 서비스의 도메인 등등)
    • 서버 측 공개키

CA

  • SSL 인증서를 만들어주는 민간기업들을 CA(Certificate authority) 혹은 Root Certificate 라고 부른다.
  • CA는 아무 기업이나 할 수 있는 것이 아니고, 신뢰성이 있는 공인된 기업들만 참여할 수 있다.

SSL 프로토콜 동작 방법

  • SSL 프로토콜은 암호화된 데이터를 전송하기 위해, 공개키와 대칭키를 혼합해서 사용한다.

  • SSL 프로토콜 통신 순서

    • ClientHello
      • 클라이언트가 서버에 접속(서버에게 통신 시작 알림)
    • ServerHello, ServerKeyExchange, ServerHelloDone
      • 서버는 인증기관이 전자서명한 서버의 공개키를 클라이언트에게 전송
    • 클라이언트는 서버가 보낸 인증서를 확인하여, 신뢰할 수 있는 인증서인지 검토 후, 서버의 공개키를 사용
    • ClientKeyExchange, ChangechiperSpec, Finished
      • 클라이언트는 서버의 공개키로 대칭키를 암호화 한 뒤 서버에게 전달
    • ChangechiperSpec, Finished
      • 서버는 자신의 개인키로 대칭키를 복호화 해서 사용
    • 이제 클라이언트와 서버는 암호화 방식으로 통신
    • 통신 종료 시 대칭키 폐기
Comments