Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

HTTP와 HTTPS 본문

IT/Computer Science

HTTP와 HTTPS

빌드이너프 2022. 12. 27. 22:55

HTTP(Hypertext Transfer Protocol)

  • 서로 다른 시스템들 사이에 통신을 주고 받게 해주는 가장 기본적인 프로토콜
  • 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜
  • 웹 서핑을 할 때 서버에서 자신의 브라우저로 데이터를 전송해주는 용도로 많이 사용됨
  • 인터넷 초기에 모든 웹 사이트에서 기본적으로 사용되었던 프로토콜
  • 인터넷에서 하이퍼텍스트를 교환하기위한 통신규약으로 80번 포트 사용
  • 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜
  • HTTP로 비밀번호나 개인정보를 주고받으면 제3자가 정보를 조회할 수 있다는 보안부분의 취약점이 발생할 수 있음
  • 하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 protocol(통신 규약)
  • 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 "통신 형식" 혹은 "통신 구조
  • HTTP는 TCP/IP 기반으로 되어있음

 

HTTP의 구조

  • HTTP는 애플리케이션 레벨의 프로토콜이기 때문에 TCP/IP 위에서 동작
  • HTTP는 상태를 가지지 않은 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성됨
  • HTTP 기본적으로 요청/응답 (request/response) 구조로 되어있음
  • 클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조
  • 클라이언트와 서버의 모든 통신이 요청과 응답으로 이루어 짐

 

HTTP의 단점

  • 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜 -> HTTP로 비밀번호나 주민등록처럼 중요한 정보를 주고 받으면 제 3자가 정보를 조회할 수 있음
  • 이런 보안의 문제를 해결하기 위해 HTTPS가 등장하게 되었다.

 

HTTPS(Hypertext Transfer Protocol Secure)

  • HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜
  • HTTPS는 HTTP와 다르게 443포트를 기본으로 사용하며 네트워크 상에서 제 3자가 정보를 볼 수 없도록 암호화하여 전송
  • SSL(보안 소켓 계층)을 이용해서 HTTP의 보안상 문제를 해결
  • SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와줌 -> 서버 브라우저가 민감한 정보를 주고 받을 때도 도난당하는 것을 막아줌
  • HTTP의 보안 취약점을 개선 -> SSL(Secure Socket Layer) 보안 소켓 계층 이용해서 문제를 해결
  • 검색엔진 최적화(SEO)에 있어서도 큰 혜택을 볼 수 있음(실제 사용자들이 https로 만들어진 웹사이트가 더 안전하다고 느끼기 때문에 방문율을 높일 수 있음)

 

HTTPS 보안 방식

  • SSL 인증서를 HTTP 프로토콜에 추가하여 만들어진 것이 HTTPS
  • SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화하는데 이용됨
  • 제 3자가 데이터를 훔쳐낸다고 하더라도 데이터가 암호화처리 되어 있기 때문에 해독을 할 수 없어 데이터를 읽을 수 없음
  • TLS(전송 계층 보안) 프로토콜을 사용해서 보안을 유지
  • TLS는 데이터 무결성을 보장해서 데이터가 전송 중에 수정되거나 손상되는 것을 방지, 사용자가 접속하려는 웹사이트와 통신하고 있음을 증명할 수 있는 인증 기능 보유

 

HTTPS의 대칭키 암호화와 비대칭키 암호화

  • 대칭키 암호화
    • 클라이언트와 서버가 동일한 키를 사용해서 암호화와 복호화를 진행
    • 키가 노출되면 매우 위험할 수 있지만 연산속도가 빠른 장점
  • 비대칭키 암호화
    • 1개의 쌍으로 구성된 공개키와 개인키를 이용해 암호화와 복호화를 진행
    • 키가 노출되어도 비교적 안전할 수 있지만 연산속도가 느린 단점
  • HTTPS는 대칭키 암호화와 비대칭키 암호화 방식 둘 다를 사용

 

HTTPS의 비대칭키 암호화에서 공개키와 개인키

  • 비대칭키 암호화에서 공개키와 개인키 암호화 방식을 이용해 데이터 암호화를 진행하며 공개키와 개인키는 서로를 위한 1쌍의 키
    • 공개키 : 모두에게 공개 가능한 키이다.
    • 개인키 : 나만 가지고 있어야 하는 키이다.
  • 공개키와 개인키를 암호화할 경우의 좋은 점
    • 공개키 암호화를 하면 개인키로만 복호화 가능 -> 개인키는 나만 갖고 있기 때문에 나만 데이터 정보를 볼 수 있음
    • 개인키를 암호화하면 공개키로만 복호화 가능 -> 공개키는 모두에게 공개되어 있어 내가 인증한 정보임을 알려 신뢰성을 보장받을 수 있음

 

프로토콜

  • 컴퓨터 내부에서 또는 컴퓨터 사이에 데이터 교환 방식을 정의하는 규칙 세계
  • 기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구하며 이런 형식을 정희하는 규칙의 집합

 

SSL

  • 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버 브라우저가 개인정보같은 민감한 정보를 주고받을 때 도난 당하거나 해킹당하는 것을 막아줌

 

TSL

  • 데이터 무결성을 제공, 데이터가 전송 중에 수정되거나 손상되는 것을 방지, 사용자가 자신이 의도하는 웹사이트와 통신하고 있음을 입증하는 인증 기능 제공

TCL/IP

  • TCP/IP라고 알려진 인터넷 프로토콜 스위트(Internet Protocol Suite)는 인터넷과 유사한 컴퓨터 네트워크 사이에서 정보를 주고받는데 이용되는 통신 프로토콜의 모음
  • TCP/IP는 네트워크 프로토콜 스위트로, 온라인상의 안전하고 효율적인 데이터 전송의 필수 요건을 정의
  • 인터넷 프로토콜 스위트의 현재 기본 프로토콜은 TCP(전송 제어 프로토콜)과 IP(인터넷 프로토콜)이 있음
  • TCP: 한 기기에서 다른 기기로 데이터 전송하는 것을 담당
  • IP: 프로토콜은 데이터의 조각을 최대한 빨리 대상 IP 주소로 보내는 역할을 표시