네트워크 - HTTP 와 HTTPS

yejz0715·2022년 3월 24일
0

CS

목록 보기
3/6
post-thumbnail

HTTP(Hypertext Transfer Protocol)

  • 텍스트 기반의 통신 규약으로, 웹에서 클라이언트와 서버 간에 요청/응답으로 데이터를 주고 받을 수 있는 프로토콜이다.
    • 흐름: 클라이언트가 어떠한 서비스를 URL을 통해 서버에 요청(Request)하면 서버에서 그 결과를 응답(Response)하는 형태
    • HTML 문서 외에도 JSON 데이터나 XML 데이터 등의 정보를 주고받을 수 있다.(초기 HTTP는 오직 HTML 문서를 주고받기 위해 설계됨)
  • 특징
    • 상태가 없는 무상태 : 비연결성 특성으로 클라이언트와 서버의 연결이 해제되면 이전에 요청한 결과는 사라진다. 클라이언트가 바로 이전에 요청한 데이터를 원해도 다시 서버에 연결해 동일한 요청을 해야한다.
    • 연결 상태를 유지하지 않는 비연결성 : 클라이언트 요청에 대한 서버의 응답이 마치면 연결을 끊어 버린다. 수십만명이 사용하더라도 접속 유지는 최소한으로 할 수 있어 많은 유저의 요청을 처리할 수 있지만 클라이언트의 이전 상태를 알 수 없다.

HTTP의 문제점

  • 평문 통신이기에 도청이 가능하다.
  • 완전성을 증명할 수 없기 떄문에 변조가 가능하다.
  • 통신 상대를 확인하지 않기 때문에 위장이 가능하다.

암호화되지 않은 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 외부에서 볼 수 있다 → 보안에 매우 취약함

(→해결하기 위해 HTTPS)

HTTPS(Hypertext Transfer Protocol)

  • 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전의 프로토콜이다.
    • HTTP + 데이터 암호화 추가(HTTP+SSL)
    • SSL: 응용 계층과 전송 계층 사이에서 동작하는 보안 소켓 계층을 뜻하고, 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜
  • 공개키 암호화 방식 사용
  • 흐름:

클라이언트는 서버에 접속하면, 서버인증서(CA)를 받음→ 서버인증서 신뢰 여부 체크 후, 공개키를 추출 → 클라이언트는 서버와 통신하는 동안만 사용할 대칭키를 임의로 만들고, 해당 대칭키를 공개키로 암호화 후 전송→ 서버는 개인키로 클라이언트가 보낸 메시지를 복호화하여 대칭키를 추출하고, 해당 대칭키를 이용하여 클라이언트와 통신함

profile
포기하지말자!

0개의 댓글

관련 채용 정보