SSL ?

Jaymee·2021년 11월 4일
1

HTTP - 클라이언트와 서버간의 통신 규약(약속)
HTTPS - 클라이언트와 서버간의 통신 규약(secure)
클라이언트에서 서버쪽으로 데이터를 보낼 시 암호화를 하여 보낸다면 HTTPS,
그렇지 않다면 HTTP.

https 는 ssl protocol 기반으로 작동하는 통신이다


SSL ?

secure sockets layer

SSL 인증서

클라이언트와 서버간의 통신을 제 3자가 인증해주는 문서이다.
1. 클라이언트가 서버에 접속을 하게 되면,
2. 서버는 클라이언트에게 이 문서를 전달
3. 클라이언트는 받은 문서를 보고 해당 서버가 믿을만한가 판단한다.
4. 믿을만하다고 판단되면 공개키를 통해 데이터를 암호화하고, 복호화해서 주고 받는다.

과정

  1. 클라이언트가 랜덤데이터(abc)와 사용가능한 암호화 방식들을 서버로 보낸다.

  2. 서버가 생성한 랜덤데이터(def)와 선택한 암호화 방식, 인증서를 클라이언트로 보낸다.(클라이언트와 서버 둘다 인증서를 가지고 있는 상황)

  3. 서버가 보낸 인증서를 기존에 내장되어 있던 CA 리스트에 있는 CA 공개키를 이용하여 해당 인증서를 복호화한다. 복호화에 성공하면 믿을 만한 서버임을 판단하고, abc와 def를 가지고 pre master key(추후에 암호화 키가 된다.)를 생성한다.

  4. 주고 받은 인증서안의 공개키를 가지고 pre master key를 암호화하여 서버로 보낸다.

  5. 서버는 받은 pre master key를 가지고 있던 복호화 키를 가지고 pre master key를 복호화 한다. (클라이언트와 서버 둘다 pre master key를 가지고 있는 상황)
    pre master key를 가지고 session key를 생성한다.

  6. 해당 암호화 키 (pre master key)를 가지고 주고 받을 데이터를 암호화 하고 복호화 하여 통신한다.

profile
backend developer

0개의 댓글