HTTP/HTTPS

고유·2022년 3월 8일
1

목록 보기
1/11

1. HTTP란?

브라우저와 서버 간 요청과 응답을 주고 받는 메시지의 커뮤니케이션 형식

  • 브라우저와 서버는 어떤 로직으로 유저에게 서버의 데이터를 보여줄 수 있을까? 요청과 응답으로 보여준다.
  • 요청과 응답은 Hyper Text Transfer Protocol이라는 커뮤니케이션 형식에 의해 주고 받아진다.
  • Transfer Protocol은 통신 장비 간 데이터 교환 방식에 대해 합의한 내용이다.
  • 통신을 원하는 두 개체가 무엇을, 어떻게 통신할 것인가에 대해 약속하고 이를 규칙으로 정의해놓은 것이라 보면 된다.
  • 결국, HTTP는 HyperText를 전송하기 위한 통신 규약이다.

브라우저 측

  • 유저가 어느 사이트에 방문하면 URL 상 주소의 서버로 요청을 보내게 된다.
  • 이 때 HTTP 통신 규약에 의해서 데이터를 요청하게 된다.

서버 측

  • 서버는 이 요청에 따른 응답을 브라우저에게 하는데 이 또한 HTTP 통신 규악으로 이루어진다.

브라우저 측

  • 브라우저는 이를 받아 유저에게 데이터를 보여주는 로직이다.

2. HTTPS란?

HTTP의 보안적인 약점을 커버하는 프로토콜(Secure)

1) HTTP의 문제점

옷도 안입은 데이터

  • HTTP는 요청과 응답에 의한 데이터를 주고 받을 때 그 데이터들이 날 것 그대로 오고 간다.
  • 즉 form에 아이디를 "sopa"로 비밀번호를 "1234"로 작성하고 이 데이터를 싣어 요청을 보내면 암호화되지 않고 그대로 전송되는 과정에 그대로 노출된다는 것이다.
  • 해커라면 아주 땡큐한 상황이다.

2) HTTPS의 보안

어떤 점에서 보안이 좋은데?

① 데이터 암호화

  • 일반 HTTP와는 달리 오고가는 데이터들이 암호화된다.
  • 예를 들자면 아이디인 "sopa"는 "a@31Bx!3sk$"로 비밀번호인 "1234"는 "z@41bj6Sfq"로 서버로 보내진다.
  • 서버는 자신이 가진 키(아래 참조)로 이를 복호화하여 확인한다.

② HTTPS 자체로 신용

  • HTTPS라는 프로토콜은 신뢰할 수 있는 공인기관이 검증이 끝난 사이트에게만 부여할 수 있다.
  • 이런 점에서도 보안적인 장점이 있다.

3. 암호화 원리

HTTPS는 어떻게 데이터를 암호화해서 주고 받을까?

1) 대칭키

① 원리

  • 브라우저와 서버가 동일한 키를 갖고 브라우저는 이 키를 통해 데이터를 암호화하여 전송한다.
  • 동일한 키를 갖고 있는 서버는 암호화된 데이터를 복호화할 수 있는 로직이다.

② 문제점

  • 단, 대칭키는 한 쪽에서 다른 한 쪽으로 한 번 전송되어야 한다는 단점이 있다.
  • 전송되는 과정에서 키를 탈취당한다면 말짱 도루묵이므로 대칭키만을 사용하는 것은 좋지 않다.

2) 비대칭키

① 원리

  • 서버는 개인키를 가지고 공개키를 대중에게 뿌린다.
  • 사용자가 접속하고 데이터를 보내면 이 공개키에 의해 암호화되어 서버에 보내진다.
  • 서버는 개인키로 이를 복호화한다.

② 문제점

  • 비대칭키만으로 모든 것을 하기엔 너무 헤비해서 컴퓨터가 힘들다.

3) 결론

  • 브라우저는 대칭키를 비대칭키의 공개키로 암호화하여 서버에 보낸다.
  • 서버는 이 개인키로 복호화하여 대칭키를 확인한다.
  • 데이터의 공유는 대칭키 방식을 사용하되 대칭키를 공유하는 과정을 비대칭키로 한다.
  • 대칭키의 공유 위험, 비대칭키의 헤비함을 잡는 방법이다.

프린이의 공부 공간입니다! 틀린 부분 있으면 언제든 태클 걸어주세요.

profile
프론트엔드

0개의 댓글