본문 바로가기
코딩이야기/웹알아보기

[HTTPS] 3. TLS/SSL 소개

by GiraffeB 2019. 5. 18.

0. SSL/TLS 목적

SSL은 처음 넷스케이프 사에 의해서만들어 졌고 이후 표준화 과정을 거치면서 TLS로 이름을 변경했다.
TLS는 클라이언트/서버 응용 프로그램이 네트워크로 통신을 하는 과정에서 도청, 간섭, 위조를 방지하기 위해서 설계되었다. 그리고 암호화를 해서 최종단의 인증, 통신 기밀성을 유지시켜준다.

1. TLS의 3단계 절차

TLS의 3단계 기본 절차:

  1. 서버와 클라이언트가 서로 지원 가능한 암호화 알고리즘 교환
  2. 키 교환, 인증
  3. 대칭키 암호로 암호화하고 메시지 인증

서로 지원 가능한 암호화 알고리즘을 정하고,
서버의 공개키를 클라이언트에 전달해 준다.

서버에 전달한 메시지들을 공개키로 암호화해서 전송하고,
서버는 비밀키로 이 메시지를 해석한다.

서버와 클라이언트가 각각 임시 생성 값을 만들고
서로 공개키 방식으로 이 값과 암호화 방식을 안전하게 교환한다.

서로 교환한 임시생성 값으로 대칭키를 생성하고 대칭키와 암호화 알고리즘을 사용해서
앞으로의 데이터를 안전하게 교환한다.

2. 서버 인증서(Server Certificate)와 인증기관(Certificate Authority)

  1. 신뢰할 수 있는 별도의 기관으로 부터 서버를 인증받고, 이 결과물로 서버 인증서를 받는다.
  2. 이 과정에서 인증받는 서버에서 사용할 공개키를 제출하고, 이 공개키가 서버 인증서에 포함된다.
  3. 사용자가 서버에 접속을 요청하면 서버는 이 인증서를 사용자에게 전달한다.
  4. 사용자는 브라우저 내의 인증기관(Root CA)들의 목록을 확인해서 인증서가 어떤 인증기관으로부터 만들어졌는지, 확인 후 해당 기관에 해당하는 공개키로 암호를 해제하여 서버의 공개키를 얻어낸다.
  5. 서버의 공개키를 이용해서 서버와 사용자간 대칭키 생성과 배포에 사용한다.

3. TLS를 사용해서 얻을 수 있는 점, 즉 TLS의 목적

  1. 서버가 알려진 기관으로부터 인증된 사이트인지 알 수 있다.
  2. 우리가 접속을 요청한 주소와 접속된 서버가 일치하는지 확인할 수 있다.
  3. 서로간에 사용될 대칭키를 공개키를 이용해서 안전하게 교환할 수 있다.
  4. 서로 주고 받는 메시지가 암호화되어 도청 또는 변조되지 않았음을 알 수 있다.