HTTPS 흐름

HwangSoonhwan·2023년 1월 9일
0

hppts 란? 컴퓨터 네트워크를 통한 보안 통신

- https 에서 프로토콜은 SSL/TLS 로 암호화 된다.
- https 프로토콜을 사용하기 위해서는 인증기관(CA)으로부터 SSL을 발급받아야한다.
*TLS- 넷스케이프는 IEFT 에 SSL 프로토콜 제어권을 넘겼고 이후에 TLS버전이 출시됨

- SSL 인증서 -

  • 인증서 발급 과정 및 원리
    1. 서버의 public key 와 private key 를 생성한다.
    2. 1에서 발급받은 public key와 각종 정보를 CA에 넘긴다.
    3. 2에서 받은 정보로 SSL인증서를 발급한다.
    4. 3에서 만든 인증서를 암호화 하기위해 CA의 public key 와 private key를 생성하고 CA의 private key 로 암호화 한다.
    5. 4에서 암호화된 SSL인증서를 서버에 전달한다.

- SSL handshake -

- handshake란 서버와 클라이언트가 통신을 연결할때 서로 악수(협상)를 통한 정보를 주고받고, 신뢰 할 수 있는 서버인지, 통신할때 암호화는 어떻게 할지 등등 정하는 과정이다.
- 서버와 클라이언트가 주고받을 데이터의 암호화 알고리즘 결정 및 암호화를 위한 동일한 대칭키 얻기가 주 목적이다.
  • SSL handshake 동작 원리 및 과정

    1. client에서 server로 연결시도 (Client hello)

      • client에서 통신하고 싶은 서버로 연결을 시도하는 Packet을 보낸다.
        *Packet - pack + bucket 합성어로 내부에는 Data, Version, Protocol, Header Checksum, Session id 등이 있다.
    2. server에서 client로 응답 (server hello)

      • client에서 받은 packet에 대해 서버가 응답한다.
      • certificate packet(server의 SSL인증서 내용이 포함되어있다)도 보낸다.
    3. client에서 server의 SSL인증서 검증

      SSL인증서 검증 방법
       - client는 인증서를 발급한 인증기관의 public key를 구하고 CA의 public key를 사용하여 SSL 인증서를 복호화 한다. 복호화가 성공하면 인증서 검증완료.
      구하는 방법
       - client는 browser 또는 android에 CA의 리스트와 public key를 가지고 있다. 그래서 매번 CA에 요청이 아닌 list에서 확인해본다. 하지만 없으면 외부 인터넷을 통해 인증기관의 정보와 public key를 확보한다.
    4. client에서 server로 대칭키(private key)전달

      • 이제 client에서는 server와 안전하게 데이터를 주고받기위해 데이터를 암호화 해야한다.
      • client는 암호화하기위한 대칭키를 생성하고 보안없이 서버로 옮기면 위험하기 때문에 server의 public key로 암호화 하여 넘긴다.
    5. server/client SSL hand shake 끝

      • server는 client에서 전달받은 암호화된 대칭키를 server의 private key로 복호화 한다.
      • 이제 server와 client에 동일한 대칭를 가지고 있으니 통신준비가 완료된다.
profile
👨‍🍳요리사의 "쿠킹" 스토리가 아닌 "코딩" 스토리💻

0개의 댓글