이론공부/네트워크통신

HTTPS란 무엇인가?

멍토 2020. 10. 1.

HTTPS란 HyperText Transfer Protocol over Secure Socket Layer의 약자이다

HTTPS는 왜사용하는가?

외부에서 내가보낸 데이터를 훔처보지 못하게 하기위해서 사용한다.

http통신에서는 평문통신을 하게되는데 이럴때는 외부에서 감청을 할 수 있게된다.

여기서 평문을 서버에서만 알아볼수 있도록 암호화 하는것이 https 이다.

어떻게 암호화를 하는것인가?

대칭키와 비대칭키를 이용한 암호화를 한다.

대칭키 : 암호화와 복호화 하는 방식이 같다.

ex) 1 -> A, A->1

결국 대칭키를 전달하는 과정이 필요하기 때문에 문제점이 생긴다.(중간탈취)

비대칭키(공개키, 개인키) : 암호화와 복호화 하는 방식이 다른다.

A키와 B키가 있다고 할때 A키로 암호화를 하면 B키로만 풀 수가 있다.

공개키는 아무에게나 공개할 수 있는 키이고 개인키는 서버가 가지고 있는 키이다.

공개키로 암호화를 하게되면 개인키로만 풀수 있기대문에 중간에 탈취당해도 해독할 수 없게된다.

우리가 연결한 사이트가 맞는지 증명을 하는방법

우리가 연결한 사이트가 네이버라고 할때 네이버가 보낸정보는 개인키로 암호화되어있기때문에 우리는 공개키로 열어볼 수 있다.

다른사이트에서 네이버인척 데이터를 보내면 공개키로 열어볼때 에러가 나기때문에 증명이 가능하다.

그렇다면 공개키가 맞는다는것은 어떻게 증명할까?

CA(Certificate Authority)라는 제 3의 기관에서 증명을 하게된다.

이것은 크롬, 사파리, 파이어폭스와 같은 브라우저에 CA목록이 내장되어 있다.

인증과정

클라이언트(사용자)는 서버를 신뢰할 수 없는 상태이다.

따라서 서로를 신뢰하기 위해 handshake 과정을 하게된다.

  • 클라이언트는 랜덤한 데이터를 생성하여 서버에 보내게 된다.
  • 데이터를 받은 서버는 무작위로 생성한 데이터와 인증서를 같이 보내 응답한다.
  • 여기서 받은 데이터와 인증서를 이용하여 CA에게 인증을 부탁하게 된다.
  • CA의 인증을 받은 인증서는 CA의 개인키로 암호화가 되어있다.
  • 인증서를 복호화 하게된다면 서버와 통신할 수 잇는 공개키가 들어있다.

여기서 공개키를 받아서 끝날수도 있다고 생각할 수 있지만 비대칭키를 이용한 통신은

암호화 복호화 하는과정에서 많은 비용이 발생하기 때문에 비대칭키과 대칭키를 혼용하게 된다.

  • 비대칭키를 이용하여 대칭키를 공유받고 앞으로는 이 대칭키를 이용하여 통신을 하게된다.

  • 비대칭키를 이용하여 공유를 받았기때문에 중간에 탈취당할 염려가 사라지게 된다.

  • 대칭키는 아까 handshake 과정을 거치면서 보낸 임시의 데이터들을 이용하여 대칭키를 만들게 된다.

'이론공부 > 네트워크통신' 카테고리의 다른 글

웹훅(Webhook)이란 무엇인가?  (0) 2021.08.23
OAuth란 무엇인가?  (0) 2021.08.22
인터넷은 어떻게 동작하는가?  (0) 2020.08.12
HTTP는 무엇인가?  (0) 2020.08.09
OSI7계층에 대해서  (0) 2020.08.08

댓글

💲 광고입니다.