Bazinga!

HTTP/HTTPS 본문

공부

HTTP/HTTPS

Bazinga! 2024. 10. 10. 02:52

참고 : 드림핵

HTTP(HyperText Transfer Protocol)

웹상에서 서로 통신하기 위해 정해둔 규칙.

페이지가 보야주고 있는 정보들은 모두 웹 리소스에 명시되어있다.

 

웹 리소스 : 웹에 갖춰진 정보자산((HTML, JavaScript, CSS)

 

  • HTTP 메시지: HTTP 서버와 클라이언트가 교환하는 데이터. 헤드와 바디로 구성되며, 각 줄은 CRLF로 구분됨.
    • 헤드: 메시지에 대한 정보. 헤드의 끝에는 CRLF가 한 줄 있음.
    • 바디: 클라이언트가 서버에게, 또는 서버가 클라이언트에게 전달할 데이터
  • HTTP 요청(Request): 클라이언트가 서버에게 특정 동작을 요청하는 메시지
    • 메소드(Method): 요청 URI가 가리키는 리소스에 대해, 서버가 수행했으면 하는 동작을 지정
    • 요청 URI(Request-URI): 메소드의 대상이 되는 리소스를 지정
  • HTTP 응답(Response): 요청을 처리한 결과 및 이유, 그리고 클라이언트에 전송할 웹 리소스를 포함하는 메시지
    • 상태 코드(Status code): 요청을 처리한 결과
    • 처리 사유(Reason phrase): 상태 코드가 발생한 이유

HTTP 들어가는 내용

● 요청

Startline : 메서드 / 요청대상 / HTTP 버전

Header : 부가적인 요청 정보

Body : 실제 서버에 전달할 데이터

 

● 응답

Startline : HTTP버전 / 상태코드 / 처리사유

Header : 부가적인 응답 정보

Body : 실제 클라이언트에게 응답하고자 하는 데이터

 

해커는 상황에 따라 Headers와 Body의 부분을 변조하거나  StartLine나 StateLine을 공격하게 된다.

 

HTTP 요청과 응답은 평문으로 전달된다. 

-> 보안적으로 매우 취약하다. 누군가가 이를 가로챈다면 중요한 정보가 유출되는 것이다.

 

직접 만든 웹사이트 로그인 하는 과정의 메세지를 와이어샤크를 통해 살펴보았더니 아이디와 비밀번호가 그대로 보이는 것을 알 수 있다.

 

 

이런 점을 보완한것이 HTTPS라고 볼 수 있다.

 

HTTPS (HTTP on Secure socket layer) :  TLS프로토콜을 도입하여 HTTP의 약점을 보완한 프로토콜.

 

TLS(Transfer Layer Security) : 서버와 클라이언트 사이 오가는 모든 HTTP 메세지에 암호화 처리를 한다.

'공부' 카테고리의 다른 글

Proxy(프록시) - 우회 역할에 대하여  (0) 2024.10.12
Wireshark의 작동 구조와 원리  (0) 2024.10.10
익스플로잇(Exploit) 이란  (0) 2024.10.10