티스토리 뷰

dev

http https 차이

IT's me 2019. 8. 14. 03:04

오늘은 http https 차이에 대해서 알아보자. IT쪽 일을 하다보면 http https에 대해서 대충 보안이 된다라고만 애매하게 이해하고 넘어가는 경우가 많다.

 

아마 이쪽 일을 계속 한다면 평생 기본으로 깔아야할 지식에 속하므로 http https 차이에 대해서 확실하게 이해하고 넘어가보자. http https 차이를 이해하기 위해서는 먼저 http에 대해서 알아야 한다. (당연한 소릴...)

 

http https 차이에 대해 알아보자.

http란 HyperText Transfer Protocol의 약자다. HyperText(하이퍼텍스트)는 링크가 걸려있는 텍스트를 생각하면 되고 ( 이렇게 링크가 걸린것 ) 이를 넷상에서 전송하는 프로토콜이 http 되시겠다.

 

조금 더 쉽게 생각한다면 http는 텍스트 통신이다. 브라우저에 텍스트 주소를 치면 브라우저는 해당 도메인 주소 서버에 텍스트로 데이터 요청을 하게 된다. 아래는 내가 만약 http://m.naver.com/index.html을 브라우저에 입력 했을 때에 가게 되는 텍스트 값이다.

 

"GET /index.html HTTP 1.1" ===>>> 네이버 웹 서버

 

물론 개념상으로만 알기 위해 정말 기본적인 값만 명시 한것이고 실제로는 부가적인 텍스트 값들 몇개가 더 붙어서 가게 된다. 그러면 네이버 웹 서버가 저 값을 받고 index.html을 찾아서 내보내주게 된다. 다음은 크롬 브라우저에서 F12를 눌러 개발자도구를 띄워서 응답 내용을 캡처한 것이다.

 

http https 차이

요렇게 텍스트를 주거니 받거니 하는 것을 http라고 할 수 있다. 개념적으로 이해가 되었는가? 네이버 서버에서 텍스트를 받으면 우리 브라우저가 예쁘게 표현해서 보여주는 것 뿐이다. (ㄹ..레... 렌더링이라고 ...)

 

이제 http에 대해서 알았으니 https와 무슨 차이가 있는지 알아보자. http https 차이를 이해해볼 시간이다.

 

http https 차이

우선 저 추가된 S Secure(보안)의 S다. http는 암호화되지 않은 상태로 텍스트가 왔다리 갔다리 한다고 생각하면 된다.

 

예를 들어 생각해보자.

공공 와이파이를 사용할 때 조심.

 

나나 여러분이 스타벅스에 맥북을 가지고 가서 인터넷을 한다고 생각해보자. 당연히 커피숍에 있는 와이파이를 사용하게 될거다. 일반적 http를 사용해서 인터넷을 한다면 이 와이파이를 들여볼 수 있는 사람들은 당신이나 내가 어떤 사이트에 접속해서 뭘 하는지 들여다 볼수 있게 된다. 심지어 계정정보를 비롯해 개인정보들까지 고스란히 갖다바칠수 있게 된다.

 


그렇다면 https는 내 pc나 스마트폰등의 브라우저나 앱과 인터넷 웹서버와의 http(텍스트 통신)에 대해서 암호화 해준다고 할 수 있다. 위키 https에 따르면 https는 

 

HTTPS(HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS,[1][2] HTTP over SSL,[3] HTTP Secure[4][5])는 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전이다. HTTPS는 통신의 인증과 암호화를 위해 넷스케이프 커뮤니케이션즈 코퍼레이션이 개발했으며, 전자 상거래에서 널리 쓰인다.

HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다. 따라서 데이터의 적절한 보호를 보장한다. HTTPS의 기본 TCP/IP 포트는 443이다.

보호의 수준은 웹 브라우저에서의 구현 정확도와 서버 소프트웨어, 지원하는 암호화 알고리즘에 달려있다.

 

머 이라는데 됐다. 우리는 전문가가 아니라 개념적으로만 익히면 되는데 좀 더 쉽게 익히고자 함이다. 자 이건 머리 넣자.

 

http, https 차이는 초기에 통신을 하며 암호화 키를 서로 안전하게 주고 받는다. 이때 암호화 키값이 노출되지 않도록 안전하게 해주는게 https 서버 인증서다.(요거 두줄이 학샘이다.) 이 서버 인증서는 여러분 공인인증서와 거의 비슷하다고 생각해도 된다. 한번 값을 주고 받는 과정을 거친 뒤에는 서로 암호화를 하며 값을 주고 받아 통신 값이 노출되어도 다른 이가 알아볼수 없기 때문에 안전하다고 하는 것이다. 

 

요 과정을 설명하는 그림이 아래 그림인데 IT 하는 사람에겐 조금 쉽게, 안하는 사람에겐 조금 어려운 그림이 이 그림인데...

 

https, ssl handshake 개요

 

암호화 키 값을 주고 받는 과정이 악수하는 것과 비슷하다 하여 SSL Handshake 라고 한다. 뭐 갑자기 SSL(Secure Socket Layer)이 왜 나와? 라고 할지 모르겠는데 여기선 https와 ssl이 거의 같다고 생각해도 무방하다. 

 

자 아는척을 하기 위해서 두줄만 복습하자. http와 달리 https는 초기에 통신을 하며 암호화 키를 서로 안전하게 주고 받는다.(SSL Handshake) 이때 암호화 키값이 노출되지 않도록 안전하게 해주는게 https 서버 인증서다.

 

 

즉 공개키 방식과 비밀키 방식을 혼용하는 하이브리드형태라 할수 있다. 여기까지 http https 차이에 대해 알아봤다.


댓글
최근에 올라온 글
최근에 달린 댓글