DongSup
dev's gait
DongSup
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • flask (13)
    • iOS (11)
    • python (22)
    • CS (21)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 한걸음
  • 첫글
  • 언어공부
  • 파이썬
  • Swift

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DongSup
CS

HTTP와 HTTPS

HTTP와 HTTPS
CS

HTTP와 HTTPS

2022. 11. 13. 15:21

 

 

 

HTTP ?

 

 

Hyper Text Transfer Protocol

 

 

  • 서버와 클라이언트 사이에 요청과 응답을 주고 받는 프로토콜로 
    인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약

  • 흔히 웹브라우저 주소창에 입력하는 웹 주소인 URL을 통해 요청과 응답이 이루어짐

  • 실제 전송은 TCP를 통해 작동이 이루어지며 80번 포트를이용함
    HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보냄

 

 

프로토콜 ?

 

컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계

 

 

 

HTTP 취약점

 

 

 

  • HTTP는 상태를 가지고 있지 않는 무상태(Stateless) 프로토콜로, 
    Method, Path, Version, Headers, Body 등으로 구성됨

  • 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜
    서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 것으로,
    보안에 취약하다는 단점이 존재함

이러한 단점을 보완한 것이 HTTPS 

 

 


 

 

HTTPS ?

 

 

HyperText Transfer Protocol Secure

 

  • HTTP에 데이터 암호화가 추가된 프로토콜
  • 인터넷 상에서 정보를 암호화하는 SSL(보안 소켓 계층) 프로토콜을 사용하여 
    클라이언트와 서버가 자원을 주고받을 때 사용하는 통신 규약
  • 443번 포트를 사용하며, 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 공개키 암호화를 지원

 

 

HTTPS는 대칭키 암호화 방식과 비대칭키 암호화 방식(참고 링크)을 기반으로 데이터를 암호화하고 있음

그렇기에 임의의 사용자가 데이터를 조회하여도 원본의 데이터를 보는 것은 불가능함

 

HTTPS 연결 과정(Hand-Shaking)에서는 먼저 서버와 클라이언트 간에 세션키를 교환함

여기서 세션키는 주고 받는 데이터를 암호화하기 위해 사용되는 대칭키이며, 

데이터 간의 교환에는 빠른 연산 속도가 필요하므로 세션키는 대칭키로 만들어짐

 

문제는 이 세션키를 클라이언트와 서버가 어떻게 교환할 것이냐 인데, 이 과정에서 비대칭키가 사용됨

즉, 처음 연결을 성립하여 안전하게 세션키를 공유하는 과정에서 비대칭키가 사용되는 것이고,

이후에 데이터를 교환하는 과정에서 빠른 연산 속도를 위해 대칭키가 사용되는 것임

 

 

 


 

 

HTTPS 동작 과정

 

 

 

  1. 클라이언트(브라우저)가 서버로 최초 연결 시도를 함
  2. 서버는 공개키(인증서)를 브라우저에게 넘겨줌 
  3. 브라우저는 인증서의 유효성을 검사하고 세션키를 발급함 
  4. 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송함 
  5. 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음
  6. 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행함

 

 


 

 

추가적으로, 서버는 클라이언트가 요청을 보낼 때 암호화를 하기 위한 공개키를 생성해야 하는데,

일반적으로는 인증된 기관(Certificate Authority) 에 공개키를 전송하여 인증서를 발급받고 있음

 

 

 


 

Reference Path

 

 

How Does HTTPS Work? RSA Encryption Explained « TipTopSecurity

10 Sep, 2017 Bobby How Security Works TipTopSecurity has finally been transitioned to a fully HTTPS website! So naturally, I thought this would be the perfect time to explain what that means. Read on for a complete explanation. Note: This article explains

tiptopsecurity.com

 

[네트워크] HTTP와 HTTPS

HTTP (HyperText Transfer Protocol) 인터넷 상에서 하이퍼텍스트를 교환하기 위한 통신 규약 특징 80번 포트 사용 Application 레벨의 프로토콜 상태를 가지도 있지 않은 stateless 프로토콜 보안 이슈: 암호화

hammii.tistory.com

 


'CS' 카테고리의 다른 글

GET과 POST 방식  (0) 2022.11.13
대칭키와 비대칭키(공개키)  (0) 2022.11.13
TCP vs UDP  (0) 2022.11.06
TCP의 3/4 way Handshake  (0) 2022.11.06
OSI 7계층  (0) 2022.11.06
  •  
  • HTTP ?
  • HTTP 취약점
  • HTTPS ?
  • HTTPS 동작 과정
'CS' 카테고리의 다른 글
  • GET과 POST 방식
  • 대칭키와 비대칭키(공개키)
  • TCP vs UDP
  • TCP의 3/4 way Handshake
DongSup
DongSup

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.