developer-ellen
인간 디버거의 로그 찍기
developer-ellen
전체 방문자
오늘
어제
  • 분류 전체보기 (217)
    • 회고록 (0)
    • 취뽀 및 커리어 여정의 Stack (2)
      • SSAFY 7기 (2)
    • 프로그래밍공부 (24)
      • c++ (0)
      • JAVA (3)
      • Spring (5)
      • design pattern (3)
      • BackDB (1)
      • Servlet&JSP (3)
      • Vue (4)
      • JPA (4)
      • Infra (1)
      • Linux (0)
    • AI (3)
      • papers (3)
      • trend (0)
    • 프로젝트진행 (0)
      • 데이터베이스 (0)
      • 서버개발 (0)
      • 인공지능 (0)
      • 하루정리 (0)
    • 포트폴리오 (0)
    • 알고리즘 (158)
      • 알고리즘문풀 (155)
      • 알고리즘공부 (3)
    • 통계공부 (15)
      • 시계열분석 (15)
      • 회귀분석 (0)
    • CS (14)
      • 컴퓨터네트워크 (4)
      • 운영체제 (8)
      • 데이터베이스 (2)
    • 주저리주저리 (0)
      • 필사 (0)
    • 취업관련정보 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • c++디자인패턴
  • 삼성코테기출자바풀이
  • 운영체제인터럽트
  • 삼성코테준비
  • MA모형
  • 통계학
  • SW역량테스트파이썬풀이
  • 삼성코테구현풀이
  • 삼성코테파이썬
  • 카카오코테java풀이
  • 시계열
  • 데이터분석
  • Arima
  • 백준파이썬풀이
  • 시계열분석
  • 삼성코테파이썬풀이
  • c++ 빌더 패턴
  • SW역량테스트파이썬
  • 통계분석
  • BOJ파이썬풀이
  • 삼성코테기출
  • 삼성코테파이썬준비
  • 코테파이썬
  • 카카오코테
  • 삼성코테자바풀이
  • 삼성코테자바꿀팁
  • ARIMA모형
  • 삼성코테구현문제추천
  • 삼성코테자바준비
  • AR모형

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
developer-ellen

인간 디버거의 로그 찍기

CS/컴퓨터네트워크

HTTP와 HTTPS의 개념과 차이점에 대하여

2022. 7. 31. 19:26

1.  HTTP

1) HTTP(Hypertext Transfer Protocol)

  • HTTP(Hypertext Transfer Protocol)은 서로 다른 시스템들 사이에 통신을 주고 받게 해주는 가장 기본적인 프로토콜이다.
  • 웹 서핑을 할 때 서버에서 자신의 브라우저로 데이터를 전송해주는 용도로 많이 사용되며, 서버-클라이언트 모델에 맞춰 데이터를 주고 받기 위한 프로토콜이다.
  • 인터넷 초기에 모든 웹 사이트에서 기본적으로 사용되었던 프로토콜이었다.
  • 80번 포트를 기본적으로 사용하고 있다.
프로토콜 ?
컴퓨터 내부에서 또는 컴퓨터 사이에 데이터 교환 방식을 정의하는 규칙 세계이다. 기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구하며 이런 형식을 정의하는 규칙의 집합이다.

 

2) HTTP의 구조

  • HTTP는 애플리케이션 레벨의 프로토콜이기 때문에 TCP/IP 위에서 동작한다. HTTP는 상태를 가지지 않은 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성된다.

3) HTTP의 단점

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

 

2.  HTTPS

1) HTTPS(Hypertext Transfer Protocol Secure)

  • HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜이다.
  • HTTPS는 HTTP와 다르게 443포트를 기본으로 사용하며 네트워크 상에서 제 3자가 정보를 볼 수 없도록 암호화하여 전송한다.
  • HTTPS 프로토콜은 SSL(보안 소켓 계층)을 이용해서 HTTP의 보안상 문제를 해결했으며 SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고 서버 브라우저가 민감한 정보를 주고 받을 때도 도난당하는 것을 막아준다.

 

2) HTTPS의 보안 방식

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

 

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

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

 

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

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

 

 

 

'CS > 컴퓨터네트워크' 카테고리의 다른 글

CORS란? (Spring Boot+Security 처리)  (0) 2022.08.07
HTTP 상태코드  (0) 2022.07.10
URI와 웹 브라우저 요청 흐름  (0) 2022.07.10
    'CS/컴퓨터네트워크' 카테고리의 다른 글
    • CORS란? (Spring Boot+Security 처리)
    • HTTP 상태코드
    • URI와 웹 브라우저 요청 흐름
    developer-ellen
    developer-ellen

    티스토리툴바