Self-Improvement
TLS(SSL 3.0) 통신 과정 본문
https://blog.hangadac.com/2017/07/28/%ED%99%88%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%EA%B8%B0-https%EC%99%80-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%9D%B4%EB%A1%A0/
https://blog.hangadac.com/2017/07/31/%ED%99%88%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%EA%B8%B0-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EC%97%B0%EC%8A%B5/
TLS Handshake 과정 (https://opentutorials.org/course/228/4894)
1. Client Hello
-클라이언트가 랜덤한 데이터와 SSL 통신을 하기 위해서 현재 지원가능한 암호화 방식을 서버에게 전송한다.
2. Server Hello
-서버에서 생성한 랜덤한 데이터와 클라이언트가 지원가능한 암호화 방식에 맞춰 현재 서버에서 제공할 수 있는 가장 안전한 암호화 수단 방식을 클라이언트에 전송한다.
-인증서
※서버가 인증서를 클라이언트에게 전송하면 클라이언트는 인증서에서 CA를 확인하고 웹 브라우저 CA List에 있는지 확인한다. 해당 CA를 브라우저가 가지고 있으면 CA에 대한 공개 키로 복호화를 한다.(복호화가 이루어진다면 해당 인증서는 CA의 비밀키에 의해서 암호화 된 것을 의미하여 신뢰할 수 있게된다)
※클라이언트는 서버로부터 받은 랜덤데이터와 본인이 생성한 랜덤데이터를 조합해서 pre master secret라는 키를 생성한다.(대칭키로 사용)
이러한 pre master secret를 서버에 전송하기 위해 서버가 전송한 인증서 안에 공개키가 존재한다. 이러한 서버의 공개키를 이용하여 pre master secret값을 암호화하고 서버로 전송하게 된다.
서버는 클라이언트가 전송한 pre master secret값을 자신의 비공개키로 복호화한다. 그리고 서버와 클라이언트는 모두 일련의 과정을 거쳐서 pre master secret값을 master secret값으로 만든다. master secret는 session key를 생성하며 이 값을 이용하여 데이터를 대칭키 방식으로 암호화하여 주고받는다.
'개인' 카테고리의 다른 글
웹 소스 난독화 사이트 (0) | 2018.11.05 |
---|---|
TLS 1.2 VS 1.3 (0) | 2018.10.20 |
CVE (0) | 2018.10.20 |
IPS/IDS (0) | 2018.10.20 |
UTM (United Threat Management) (0) | 2018.10.20 |