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
댓글
댓글 쓰기