yooniiverse
개발 블로그
yooniiverse
전체 방문자
오늘
어제
  • 분류 전체보기
    • 운영체제
    • 네트워크
    • ~2023.02
      • 외부교육
      • 대외활동
      • 스터디
      • 동아리
      • TIL
      • IT지식
      • 기타
      • 트러블 슈팅
      • 프로그래밍
      • Python
      • Java
      • JS
      • DB(SQL)
      • JSP
      • Spring
      • 기술면접
      • 자바
      • 코딩테스트
      • 자료구조
      • 알고리즘
      • 백준 문제풀이
      • 인공지능
      • 머신러닝
      • 프로젝트
      • 안드로이드 앱개발
      • 웹개발
      • 웹 서비스
      • 웹퍼블리싱
      • Node.js 백엔드 개발
      • CS
      • 1일 1CS지식
      • 운영체제
      • 네트워크
      • 데이터베이스
      • 정보처리기사
      • 도서 리뷰
      • 개발 관련 도서
      • 기타 도서

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yooniiverse

개발 블로그

~2023.02/1일 1CS지식

http의 문제점은 무엇일까?

2022. 7. 13. 15:02

HTTP의 문제점

  1. 도청이 가능하다. (평문 통신)
  2. 위장이 가능하다. (통신 상대 확인X)
  3. 변조가 가능하다. (완전성 증명 불가)

- 다른 암호화하지 않은 프로토콜에도 공통되는 문제점들임

 

1. TCP/IP는 도청 가능한 네트워크이다.

TCP/IP 구조의 통신은 전부 통신 경로 상에서 엿볼 수 있다. 패킷을 수집하는 것만으로 도청을 할 수 있다. 평문으로 통신을 할 경우 메시지의 의미를 파악할 수 있기 때문에 암호화하여 통신해야 한다.

보완방법

  1. 통신 자체를 암호화
    • SSL(Secure Socket Layer) or TLS(Transport Layer Security) 라는 다른 프로토콜을 조합함으로써 HTTP의 통신 내용을 암호화할 수 있다. SSL을 조합한 HTTP를 HTTPS(HTTP Secure) or HTTP over SSL 이라고 부른다.
  2. 콘텐츠를 암호화
    • HTTP를 사용해서 운반하는 내용인, HTTP 메시지에 포함되는 콘텐츠만 암호화하는 것이다. 암호화해서 전송하면 받은 측에서는 그 암호를 해독하여 출력하는 처리가 필요하다.

 

2. 통신 상대를 확인하지 않기 때문에 위장이 가능하다.

HTTP에 의한 통신에는 상대가 누구인지 확인하는 처리는 없기 때문에 누구든지 리퀘스트를 보낼 수 있다. IP주소나 포트 등에서 그 웹 서버에 엑세스 제한이 없는 경우 리퀘스트가 오면 상대가 누구든지 무언가의 리스폰스를 반환한다.

 

3. 완전성을 증명할 수 없기 때문에 변조가 가능하다.

완전성이란 정보의 정확성을 의미한다. 서버나 클라이언트에서 수신한 내용이 송신측에서 보낸 내용과 일치한다라는 것을 보장할 수 없는 것이다. 리퀘스트나 리스폰스가 발신된 후에 상대가 수신하는 사이에 누군가에 의해 변조되더라도 이 사실을 알 수 없다. 이와 같이 공격차가 도중에 리퀘스트나 리스폰스를 빼앗아 변조하는 공격을 중간자 공격(Man-in-the-Middle)이라고 부른다.

보완 방법

MD5, SHA-1 등의 해시 값을 확인하는 방법과 파일의 디지털 서명을 확인하는 방법이 존재하지만 확실히 확인할 수 있는 것은 아니다. 확실히 방지하기에는 HTTPS를 사용해야 한다. SSL에는 인증이나 암호화, 다이제스트 기능을 제공하고 있다.

 

출처: Interview_Question_for_Beginner/Network at master · JaeYeopHan/Interview_Question_for_Beginner · GitHub

'~2023.02 > 1일 1CS지식' 카테고리의 다른 글

DNS와 DHCP란?  (0) 2022.07.16
동기와 비동기, 블로킹과 논-블로킹이란?  (0) 2022.07.15
대표적인 SQL의 종류 3가지와 종류별 명령어는?  (0) 2022.07.14
AVL 트리란?  (0) 2022.07.12
CORS(Cross-Origin Resource Sharing)란 무엇일까?  (0) 2022.07.11
    '~2023.02/1일 1CS지식' 카테고리의 다른 글
    • 동기와 비동기, 블로킹과 논-블로킹이란?
    • 대표적인 SQL의 종류 3가지와 종류별 명령어는?
    • AVL 트리란?
    • CORS(Cross-Origin Resource Sharing)란 무엇일까?
    yooniiverse
    yooniiverse

    티스토리툴바