HTTP/HTTPS 프로토콜의 개념과 작동 원리 (WireShark)

📌 HTTP/HTTPS?

https://seo.tbwakorea.com/wp-content/uploads/2023/12/http-1.png


  • HTTP(Hypertext Transfer Protocol)

  • HTTP는 OSI 7 Layer에서 Application Layer에 속함

  • HTTP는 숫자 코드 및 데이터 양식으로 다양한 유형의 HTTP 응답을 전송

    • 200 - OK 🟩
    • 302 - Found 🟨

    • 400 - Bad Request 🟥

    • 405 - Method Not Allowed 🟥

    • 503 - Service Unavailable ❌

  • HTTPS(Hypertext Transfer Protocol Secure) = HTTP(Hypertext Transfer Protocol) + SSL(Secure Sockets Layer) 

  • HTTPS는 HTTP의 확장 버전(보안 강화)



📌 HTTP/HTTPS의 차이점

https://www.cloudflare.com/img/learning/security/glossary/what-is-ssl/http-vs-https.svg


  • HTTPS를 사용하는 웹사이트 URL은 "https://"로 시작함 HTTP는  "http://"

  • HTTPS는 통신할 때 SSL/TLS 인증서를 이용해 통신 데이터를 암호화

  • HTTP는 HTTP/1 HTTP/2 TCP/IP를 사용하고 HTTP/3 QUIC 프로토콜을 사용함

    • Google에서 개발한 QUIC(Quick UDP Internet Connections)

    • 기존의 TCP와 TLS를 개선하려는 목적에서 만들어짐

    • 내장된 TLS 암호화 보유

    • UDP기반의 QUIC 프로토콜은 TCP기반의 HTTPS보다 월등히 빠름
       
    • 특히 모바일 네트워크 환경에서 큰 성과를 거둠 (특히 Youtube 영상 버퍼 스트리밍)

  • HTTPS는 SEO(Search Engine Optimization)에 최적화 ➡️ 웹사이트가 검색 엔진에서 상위에 노출될 수 있도록 최적화가 되어있음

  • HTTP는 기본 포트를 80, HTTPS는 기본 포트를 443를 사용 함

    💡 리빙 포인트Google, Naver 및 대형 사이트를 "http://"로 접속하면 "https://" 로 강제로 Redirection이 됨

    • HSTS(HTTP Strict Transport Security) 기능

    • 오직 HTTPS 연결만 허용하도록 지시하는 보안 기능임

    • 이걸 하지 않으면 중간자 공격을 통해 데이터 탈취 요청과 응답 데이터 수정 (DNS 하이재킹 공격, HTTP 트래픽 변조, 도메인 스푸핑, BGP 하이재킹 등...)

    • 필자의 기억으로는 2010년대 초반에 HTTP접속이 되었던 걸로 기억(하지만 2012년부터 HSTS 표준화)


📌 HTTP/HTTPS의 요청 및 응답 암호화 관찰하기 (Wire Shark)

    ✅ HTTP

  • HTTP 접속이 가능한 미니플 동맹 홈페이지를 SYN(클라이언트 첫번째 요청)로 시작한 것을 오른쪽 버튼 클릭하고 따라가기를 누르면 SYN의 요청이 어디서 끝났는지 보여준다.

  •  자세히 보면 TCP의 4-way handshake 방식이다. (3-way에서 FIN 플래그가 추가된 것)

  • TCP는 연결을 할 때 3 - way handshake 연결을 종료 할 때는 4-way handshake를 사용



  • HTTP는 Request Body 부분이 암호화가 되어 있지 않아 HTML 태그가 그대로 드러남

  • 또한 어떤 요청을 보내고 어떤 응답을 받는지 볼 수 있음.


  ✅ HTTPS


  • HTTPS 접속이 되는 velog.io 홈페이지

  • TLS도 TCP를 기반으로 만들어진 통신이므로 4-way handshake의 특징을 띄고있다.

  • SSL/TSL 인증서 통신 방식의 시작인 Hello Client, Hello Server가 보여진다.

  • 요청 정보가 Encrypted Application Data 섹션을 보면 암호화가 되어있다는 것을 알 수 있다

  • Encrypted Application Data 섹션은 TLS 통신에서 암호화된 실제 애플리케이션 데이터(요청 헤더나 본문)을 확인하는 곳( 출저 :Gpt-4o )

🔖 정리

  • HTTP와 HTTPS 는 둘 다 4-way handshake를 사용한다 하지만 HTTPS 통신은 비대칭키 암호화와 대칭키 암호화가 함께 사용된 하이브리드 통신 방식이다.


함께 보면 좋은 글-------------------------------------------------

참고-----------------------------------------------------------------

HTTPS HTTP? | HTTPS보안 | Cloudflare

HTTPS란? - HTTP와의 차이점 및 전환의 중요성 | TBWA 데이터랩

HTTP와 HTTPS 비교 - 전송 프로토콜 간의 차이점 - AWS

QUIC 프로토콜 | 구글 또 너야?. QUIC 프로토콜은 2012년 구글이 처음 발표한 범용 전송 계층… | by scalalang2 | 취미로 논문 읽는 그룹 | Medium

미니플동맹

velog

댓글

이 블로그의 인기 게시물

[보안] CA인증서, 서버인증서, 클라이언트 인증서와 Openssl