0. SSL/TLS 목적
SSL은 처음 넷스케이프 사에 의해서만들어 졌고 이후 표준화 과정을 거치면서 TLS로 이름을 변경했다.
TLS는 클라이언트/서버 응용 프로그램이 네트워크로 통신을 하는 과정에서 도청, 간섭, 위조를 방지하기 위해서 설계되었다. 그리고 암호화를 해서 최종단의 인증, 통신 기밀성을 유지시켜준다.
1. TLS의 3단계 절차
TLS의 3단계 기본 절차:
- 서버와 클라이언트가 서로 지원 가능한 암호화 알고리즘 교환
- 키 교환, 인증
- 대칭키 암호로 암호화하고 메시지 인증
서로 지원 가능한 암호화 알고리즘을 정하고,
서버의 공개키를 클라이언트에 전달해 준다.
서버에 전달한 메시지들을 공개키로 암호화해서 전송하고,
서버는 비밀키로 이 메시지를 해석한다.
서버와 클라이언트가 각각 임시 생성 값을 만들고
서로 공개키 방식으로 이 값과 암호화 방식을 안전하게 교환한다.
서로 교환한 임시생성 값으로 대칭키를 생성하고 대칭키와 암호화 알고리즘을 사용해서
앞으로의 데이터를 안전하게 교환한다.
2. 서버 인증서(Server Certificate)와 인증기관(Certificate Authority)
- 신뢰할 수 있는 별도의 기관으로 부터 서버를 인증받고, 이 결과물로 서버 인증서를 받는다.
- 이 과정에서 인증받는 서버에서 사용할 공개키를 제출하고, 이 공개키가 서버 인증서에 포함된다.
- 사용자가 서버에 접속을 요청하면 서버는 이 인증서를 사용자에게 전달한다.
- 사용자는 브라우저 내의 인증기관(Root CA)들의 목록을 확인해서 인증서가 어떤 인증기관으로부터 만들어졌는지, 확인 후 해당 기관에 해당하는 공개키로 암호를 해제하여 서버의 공개키를 얻어낸다.
- 서버의 공개키를 이용해서 서버와 사용자간 대칭키 생성과 배포에 사용한다.
3. TLS를 사용해서 얻을 수 있는 점, 즉 TLS의 목적
- 서버가 알려진 기관으로부터 인증된 사이트인지 알 수 있다.
- 우리가 접속을 요청한 주소와 접속된 서버가 일치하는지 확인할 수 있다.
- 서로간에 사용될 대칭키를 공개키를 이용해서 안전하게 교환할 수 있다.
- 서로 주고 받는 메시지가 암호화되어 도청 또는 변조되지 않았음을 알 수 있다.
'코딩이야기 > 웹알아보기' 카테고리의 다른 글
문자 인코딩 정리 (0) | 2019.09.21 |
---|---|
[HTTPS] 0. HTTPS 개념적으로 이해하기 (0) | 2019.05.20 |
[HTTPS] 2. 이해를 위한 관련용어 보기 (0) | 2019.05.18 |
[HTTPS] 1. HTTPS에 이해하기 (0) | 2019.05.17 |
springboot jdbc 미 설정시 발생 에러 (0) | 2018.09.28 |