Computer Science/Network

[Network] HTTP와 HTTPS

깨구르르 2024. 5. 29. 14:44
728x90

1. HTTP

 

- 정의

  • HyperText Transfer Protocol 하이퍼텍스트 전송 규약
  • 클라이언트와 서버 간 하이퍼텍스트를 교환하거나 전송할 때 사용하는 통신 규약

 

- 작동

  • 클라이언트는 서버에 HTTP 요청 메시지를 보냄
    👉 서버는 클라이언트에 응답 메시지(완료 상태, 요구받은 콘텐츠 등의 요청 관련 정보 포함)를 회신함
  • 응용 계층에서 작동함
    : 최상위 차원에서 웹 브라우저와 웹 서버가 서로 이해하고 소통할 수 있게 돕는 언어
  • 데이터 전송TCP(전송 계층 프로토콜)로 이루어짐

 

응용 계층이 궁금하다면? ↓ ↓

2024.05.29 - [Computer Science/Network] - [Network] OSI 7계층과 TCP/IP 4계층

TCP가 궁금하다면? ↓ ↓

2024.05.30 - [Computer Science/Network] - [Network] TCP와 UDP

 

- HTTP 헤더

  • HTTP는 HTTP에 헤더에 요청 및 응답에 관한 정보를 모두 저장하고
    브라우저와 웹 서버는 이 헤더를 읽음
  • 대표적인 HTTP 상태 코드
    • 200 = 성공(요청 완료)
    • 404 = 찾을 수 없음
    • 500 = 내부 서버 오류

 

- HTTP의 보안 문제

1) 평문 전송

  • HTTP 자체는 암호화되지 않음. 데이터를 평문으로 전송
    👉도청(스니핑) 및 중간자 공격에 취약함

2) 데이터 무결성

  • HTTP는 데이터가 전송 중에 변조될 수 있음
    (사용자가 방문하는 웹사이트는 HTTP 헤더와 발신 및 대상 IP 주소는 물론, 응답 데이터까지 HTTP를 통해 전송되는 모든 정보를 읽고 수정할 수 있음)

3) 인증 문제

  • HTTP는 서버 인증을 제공하지 않음
    👉 사용자는 자신이 신뢰할 수 있는 서버와 통신하고 있는지 알 수 없음

👉 프라이버시와 보안 기능을 강화한 HTTPS가 등장함

 


 

2. HTTPS

 

- 정의 및 특징

  • HyperText Transfer Protocol Secure 하이퍼텍스트 전송 규약 보안
  • 보안 HTTP, Secure HTTP라고도 함
  • HTTP + TLS/SSL = HTTPS
  • 텍스트를 암호화함

 

- 작동

  • 암호화 프로토콜인 TLS/SSL을 사용하여 통신을 암호화함
  • 비대칭 공개 키 인프라로 알려진 것을 사용
  • HTTP 메시지를 네트워크로 전송하기 전 암호화된 봉투에 메시지를 넣음
    이 봉투 안에는 메시지 본문과 HTTP 헤더가 있고,
    발신 및 대상 IP 주소는 암호화하지 않음
    👉 어느 노드가 서로 통신해야 하는지는 봉투를 뜯지 않아도 알 수 있음

 

- TLS : 전송 계층 보안(Transport Layer Security)

  • 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되어 널리 채택된 보안 프로토콜
  • 웹 응용 프로그램과 서버 간의 커뮤니케이션을 암호화하는 것
  • SSL(Secure Sockets Layer)이라고 불리는 이전의 암호화 프로토콜에서 발전한 것
  • HTTPS는 HTTP 프로토콜 상위에서 TLS 암호화를 구현한 것
  • 역할
    • 암호화: 제3자로부터 전송되는 데이터를 숨김
    • 무결성: 데이터가 위조되거나 변조되지 않았는지 확인함
    • 인증: 정보를 교환하는 당사자가 요청된 당사자임을 보장함

 


 

출처

 

https://github.com/Songwonseok/CS-Study/blob/main/Network/HTTP%26HTTPS.md

https://github.com/devSquad-study/2023-CS-Study/blob/main/Network/network_https.md

https://www.cloudflare.com/ko-kr/learning/ssl/what-is-https/

 

728x90