CS/Network

HTTPS 동작원리

whyWhale 2023. 1. 8.

Build Up


HTTP는 인터넷 상에서 정보를 주고받을 수 있는 프로토콜이다.

  • 보통 시중이 출시된 앱이나 웹페이지들은 보통 HTTP를 기반으로 통신한다.
  • 이와 관련되서 CORS 등을 잘 알고 있어아야 한다.

HTTP 의 대표적인 특징으로 2가지 있다.

  1. 무상태
  2. 비 연결성

 

암호화 방식 : 공개키(비대칭키), 대칭키

공개키 

  • 키 2개를 운용하여 암/복호화 하는 방식
  • 둘 중 하나를 비공개키(Private Key) 혹은 개인키라 부르며, 이는 자신만 가지고 있고 공개되지 않는다.
  • 나머지 하나를 공개키(Public Key)라고 부르며 타인에게 제공한다.
  • 공개키는 유출이 되어도 비공개키를 모르면 복호화 할 수 없기 때문에 안전하다.

대칭키

  • 동일한 키로 암/복호화 하는 방식
  • 공개키보다 암/복호화가 빠르다
  • 단, 대칭키를 도둑맞으면 무시무시한 일이 벌어진다

 

What


HTTPS란?

 

HTTP 기본 골격에 보안요소를 추가한 프로토콜이다.

기존 HTTP는 80포트를 사용하지만 HTTPS는 443을 사용한다.

Why


  • 민감정보(카드번호, 카드 비밀번호, 휴대폰번호, 통장 비밀번호)가 인터넷을 통해 공개된다면? 믿고 사용할 수 없을 것이다.
  • 인터넷을 이용하는 사용자안심하고 이러한 민감정보 전달하기 위함이다.

How


 

  • 인증서 발급 (서버)

1. 인터넷 사이트(서버)는 공개키와 개인키를 만들고, 신뢰할 수 있는 인증 기관(CA)에 자신의 정보와 공개키를 관리해달라고 계약하고 (경우에 따라) 돈을 지불한다.
2. 이 때, 계약을 완료한 인증 기관은 기관만의 공개키와 개인키가 있다. 인증 기관은 사이트가 제출된 데이터를 검증하고, 인증 기관의 개인키로 사이트에서 제출한 정보를 암호화해서 인증서를 만들어 제공한다. 사이트는 인증서를 가지게 되었다.
3. 인증 기관은 웹 브라우저에게 자신의 공개키를 제공한다.

why. 인증기관과 사이트(서버)와 무슨 관계길래 이러한 행위를 하는가?

실생화에 빗대어 보자면 장사를 시작한다고 가정해보자

그러면 가게는 상가를 사고 바로 시작해야 되는가? 아니다

정부에 “장사할 거에요”라고 요청하여 정부에서 인정한 사업자 번호를 가지고 장사를 시작한다.

 

 

  • 사용자 요청에 의해 이루어진 통신 과정 (HTTPS )

1. 사용자가 사이트에 접속하면 서버는 자신의 인증서를 웹 브라우저(클라이언트)에게 보낸다.예를 들어, 웹 브라우저가 index.html 파일을 달라고 요청했다면, 서버의 정보를 인증 기관의 개인키로 암호화한 인증서를 받게 되는 것이다.
2. 웹 브라우저는 3.에서 미리 알고 있던 인증기관의 공개키로 인증서를 해독하여 검증한다. 그러면 사이트의 정보와 서버의 공개키를 알 수 있게 된다. 이 부분은 보안상의 의미는 없다. 단지 해당 서버로부터 온 응답임을 확신할 수 있게 된다.
3. 이렇게 얻은 서버의 공개키로 대칭키를 암호화해서 다시 사이트에 보낸다.
4. 사이트는 개인키로 암호문을 해독하여 대칭키를 얻게 되고, 이제 대칭키로 데이터를 주고받을 수 있게 된다.



    이제 민감정보와 같은 정보 교환이 이루어지고 대칭키는 폐기 된다.

    실제로 TCP 3-way- handshaking 이 종료된 후 위 과정을 거쳐 키를 교환한다

'CS > Network' 카테고리의 다른 글

DNS Round Robin  (0) 2021.05.14
HTTP와 HTTPS  (0) 2021.05.11
TCP 와 UDP  (0) 2021.05.05
TCP - handShake  (0) 2021.05.04
HTTP의 GET과 POST  (0) 2021.05.03

댓글