formulous

주니어 개발자의 개발 지식 공유 블로그입니다.

CS

[CS] HTTP와 HTTPS 차이점과 개념에 대해 알아봅시다.

formulous 2022. 12. 22. 14:23

 

 

안녕하세요.

 

오늘은 HTTP와 HTTPS가 어떤 점에서 다른지, 또 왜 쓰는 건지 그 이유에 대해 알아보도록 할게요.

 

대부분의 사람들이 자주 사용하는 사이트인 구글, 네이버 등등의 URL을 검색해서 들어가면

 

 

위의 사진과 같이 자물쇠 모양과 함께 입력하지도 않은 https://라는 문구가 들어가는걸 종종 보셨을 텐데요.

 

이 https:// 문구는 왜 들어가는 걸까요?

 

 

저와 같이 HTTP와 HTTPS에 대해 공부하며 그 이유에 대해 탐구해 봅시다.

 

먼저 HTTP에 대해 알아볼까요?

 

 

  • HTTP (Hyper Text Transfer Protocol)

 

HTTP는 서버와 클라이언트 간에 데이터를 주고받는 데에 필요한 프로토콜입니다.

 

예를 들면 클라이언트인 웹 브라우저가 서버에게 웹 페이지나 데이터를 요청하면 서버는 이 요청에 응답하여 필요한 데이터를 전달하게 되는데, 이 일련의 과정을 담당하는 것이 HTTP 프로토콜입니다.

 

하지만 HTTP는 점점 사라지고 있는 과거의 것이죠.

 

그 이유는 바로 보안 취약성인데요.

 

HTTP는 클라이언트와 서버 간의 통신에 있어서 별다른 보안 조치가 없습니다.

 

그 말은 즉슨 네트워크 신호를 누군가 가로채간다면 통신 중인 데이터가 그대로 외부로 노출될 수 있음을 이야기하는 것이죠.

 

 

이러한 보안 문제를 해결하기 위해 HTTP의 변화는 언젠가는 불가피한 것이었는데요.

 

이 변화에 큰 가속을 붙였던 이벤트가 있었습니다.

 

바로 2014년 구글에서 HTTPS를 적용하는 사이트들에게 검색 엔진 최적화의 어드벤티지를 제공하겠다고 선언한 것입니다.

 

그렇다면 여기서 궁금해야 할 사항, HTTPS가 뭐길래 구글에서까지 나서서 바꾸려는 것일까요?

 

계속해서 HTTPS의 개념과 보안 이슈 해결법에 대해서 알아보도록 하겠습니다.

 

 

  •  HTTPS (HTTP Secure)

 

기존의 HTTP는 주로 80번 포트를 사용하고 전송계층의 TCP 프로토콜만으로 동작했는데요. (모르셔도 됩니다)

 

HTTPS는 일반적으로 443번 포트를 사용하며 기존 HTTP위에 SSL(Secure Socket Layer)라는 보안계층이 얹어진 프로토콜입니다.

 

여기서 SSL은 네트워크 상에서 제삼자가 정보를 탈취하지 못하도록 두 가지 암호화 방식을 지원합니다.

 

 

* 대칭키 암호화 방식

 

대칭키 암호화 방식은 클라이언트와 서버가 동일 키를 사용하여 암호화∙복호화를 진행합니다.

 

해당 방식은 같은 키로 암호화∙복호화를 둘 다 진행하기 때문에 연산 속도가 빠르다는 장점을 가지고 있는데요.

 

하지만 키 하나만으로 진행하기에 키가 외부에 유출되었을 때 보안 위협이 크다는 단점도 동시에 가지고 있습니다.

 

 

 

* 비대칭키 암호화 방식

 

비대칭키 암호화 방식은 한 쌍으로 구성된 공개키와 개인키를 암호화∙복호화에 사용하게 됩니다.

 

키가 노출되어도 비교적 안전하다는 장점이 있긴 하지만 연산 속도가 느리다는 단점도 동시에 존재합니다.

 

 

 

각자 암호화 방식에 장점과 단점이 존재하는데요.

 

HTTPS는 두 가지 방식을 모두 사용하여 속도가 빠르기도 하면서 보안도 강화하여 사용하고 있습니다.

 

어떻게 두 가지 암호화 방식을 모두 사용할 수 있었는지 알아볼까요?

 

 

  • HTTPS의 동작 원리

 

HTTPS는 클라이언트와 서버 간의 연결 과정에서 세션키를 교환하게 되는데요.

 

처음 클라이언트가 서버에게 세션키를 발급받을 때는 보안 안정성을 갖기 위해 비대칭키 교환 방식을 이용하게 됩니다.

 

그리고 비대칭키 교환 방식으로 안정성을 가지고 발급된 세션키를 이용해 클라이언트와 서버가 데이터를 주고받게 되는 거죠.

 

데이터를 주고받을 때 세션키를 대칭키로서 사용하여 빠른 속도로 데이터를 주고받을 수 있게 되겠죠?

 

그렇게 되면 비대칭키 교환 방식으로 발급받은 세션키는 안정성을 가지고,  세션키를 대칭키로 이용하는 데이터 교환은 빠른 속도를 가질 수 있게 되는 것입니다.

 

이런 방식으로 HTTPS는 안정성과 빠른 속도 모두를 가진 프로토콜이 되었습니다.

 

 

 

오늘은  HTTP와 HTTPS의 개념에 대해서 알아보았어요.

 

기본적인 개념이고 자주 만나게 되는 단어인 만큼 알아두면 좋을 거라 생각해요.

 

잘 이해되셨으면 좋겠습니다!

 

오늘 포스팅은 여기까지입니다.

 

감사합니다.