물먹는산세베리아

Protocol 본문

카테고리 없음

Protocol

suntall 2021. 1. 22. 02:57

01 | 프로토콜

  • 정의
    •  통신을 위해 만든 컴퓨터끼리 서로 이해할 수 있는 규칙과 약속
    • 프로토콜을 이용해 컴퓨터 간에 어떻게 통신할지 결정하고 규약에 맞춰 데이터를 주고 받음
    • 네트워크 객체들간의 규격, 순서가 정의된 통신 규약 즉, 네트워크 상의 컴퓨터 간 대화
  • 종류
    • TCP, HTTP, FTP 등

02 | HTTP

  • 정의
    • Hyper Text Transfer Protocol
    • WWW 상에서 데이터를 주고 받기 위한 클라이언트, 서버 간에 이루어지는 요청/응답 프로토콜
    • 웹 브라우저를 통해 인터넷으로 평문 통신을 수행할 수 있는 프로토콜

  • 특징
    • 주로 HTML 문서를 주고 받는데 쓰임(어떤 종류의 데이터든지 전송할 수 있도록 설계되어있긴 함)
      • 예) 웹 브라우저(client)가 HTTP를 통해 서버로부터 웹페이지 혹은 그림 정보를 요청한다면 서버는 요청에 응답하여 필요한 정보를 사용자에게 전달함
    • HTTP로 전달되는 자료는 http:로 시작하는 URL로 조회 가능, 주 사용 포트 번호 80
    • 웹 브라우저 외에도 시스템의 특정 프로그램(*curl, wget)을 이용하여 통신할 수 있음
    • 데이터가 평문으로 보이기 때문에  패킷을 캡쳐하면 평문이 그대로 노출됨 즉, 네트워크 상에서 패킷이 그대로 노출되는 취약점을 갖고 있음
  • HTTP 헤더 구조
    • HTTP 통신을 위해 필요한 정보들이 입력되어 있는 데이터 영역 (적절한 장소로 전송하기 위한 설정값)
    • 구조
      • Host : 요청이 전송되는 타켓의 host URL 주소
      • Accept : 클라이언트가 허용할 수 있는 파일 형식
      • User-Agent : 요청을 보내는 클라이언트 정보
      • Referer : 현재 요청된 페이지 이전의 페이지 주소
      • Cookie : 클라이언트에게 설정된 쿠키 정보
      • Content-Ype : Request에 실어 보내는 데이터의 type 정보
      • Content-Length : Request에 실어 보내는 데이터의 길이
  • HTTP Method&Content-Type
    • HTTP 통신이 어떤 형태로 통신할 건지 결정
    • Type
      • Header의 Content-Type에 표기되어 있음
Text 사람이 읽고, 직접 이해할 수 있는 텍스트 문자열 Text/xml
Image 그림 데이터 image/jpeg
Audio 음성 데이터 audio/mpeg
Video 동영상 데이터 video/mp4
Application 모든 종류의 이진 데이터 application/pdf
Multipart 복수의 데이터로 이루어진 복합 데이터 multipart/related
Message 전자 메일 메시지 message/rfc822
Model 복수 차원으로 구성하는 모델 데이터 model/vrml

 

03 | FTP

  • 정의
    • 인터넷을 통해 평문 통신으로 파일을 송수신 할 수 있도록 하는 프로토콜
    • File Transfer Protocol
    • 네트워크에 연결된 컴퓨터끼리 데이터를 원활하게 교환하기 위해 개발됨
    • '파일 전송 프로토콜', TCP/IP 프로토콜 테이블 응용 계층에 속함
  • 특징
    • 구분
      • FTP 제어연결
        • [클라이언트 -> 서버] 명령, 서버의 응답을 위한 연결
        • 포트번호 21
        • 명령 또는 응답 형태의 제어정보 전송
      • FTP 데이터연결
        • 파일이 전송될 때 생성되는 데이터 연결
        • 포트번호 20 or 1024이후
        • 각각의 파일 전송 때마다 설정되면 전송이 완료되고 데이터연결은 전송됨 
    • 현재
      • 최초의 FTP 클라이언트 어플리케이션은 운영 체제가 GUI를 갖추기 전에 개발된 명령줄 프로그램
      • 윈도우, 유닉스, 리눅스 운영 체제에 포함되어 있으나 보안상의 이유로 사용 금지
    • HTTP, Telnet처럼 인터넷 상에 정보를 전송하고 응답 받을 때는 평문으로 받음
    • 인터넷 상에 평문으로 데이터를 전송하면 통신 내용을 탈취당할 위험이 있음
    • 데이터가 평문으로 보이기 때문에  패킷을 캡쳐하면 평문이 그대로 노출됨 즉, 네트워크 상에서 패킷이 그대로 노출되는 취약점을 갖고 있음(==HTTP, TELNET)

04 | TELNET

  • 정의
    • 원격으로 시스템에 접근하여 제어할 수 있도록 하는 프로토콜
    • 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 네트워크 프로토콜
  • 특징
    • 1969년 개발, 최초의 인터넷 표준들 중 하나 (IEFT STD 8)
    • Telnet 클라이언트는 대부분 유닉스 시스템에서 사용할 수 있었으나 현재는 모든 플랫폼에서 개별적으로 설치하여 사용 가능
    • 플랫폼 내부에 설치되는 바이너리(일종의 작은 프로그램) 이외에도, 다양한 프로그램으로 텔넷 프로토콜 이용 가능
      • 예) Putty, Xshell, MobaXterm
    • 현재
      • 최초의 TELNET 클라이언트 바이너리 운영체제는 GUI를 갖추기 전에 개발된 명령줄 프로그램
      • 현재는 보안상의 이유로 사용 금지
    • HTTP, FTP와 마찬가지로 인터넷 상에 정보를 전송, 응답 받을 때 평문으로 받음
    • 인터넷 상에 평문으로 데이터를 전송하면 통신 내용을 탈취당할 위험이 있음
    • 데이터가 평문으로 보이기 때문에  패킷을 캡쳐하면 평문이 그대로 노출됨 즉, 네트워크 상에서 패킷이 그대로 노출되는 취약점을 갖고 있음(==HTTP, TELNET)

05 | SSL

  • 정의
    • 기존의 프로토콜에 보안 계층을 추가할 수 있도록 하는 프로토콜
    • Secure Socker Layer
    • 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약
    • TCP/IP 네트워크 사용하는 통신에 적용
  • 특징
    • 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보해줌
    • 웹 브라우징, 전자 메일, 인스턴트 메신저, Voice-over-IP 등의 응용 부분에 적용됨
    • HTTP, FTP, TELNET 등과 같은 프로토콜에 SSL과 같은 보안 프로토콜을 결합하여 HTTPS, SFTP, SSH 프로토콜 사용
  • TSL : Transport Layer Security, SSL과 유사 
  • 절차
    • 1. 지원 가능한 알고리즘 서로 교환
    • 2. 키 교환 및 인증
    • 3. 대칭키 암호로 암호화하고 메시지 인증
  • 원리_3-HandShake
    • 연결성을 유지하는 통신이니까 연결 먼저 수행
    • 서버는 연결 가능시에 SYN/ACK 패킷을 보냄
    • 응답을 들었다는 패킷인 ACK 패킷을 보내 연결 수행
    • 그 이후 SSL, TLS 보안 통신을 위한 암호화 통신 준비과정 시작
  • 원리_암호화 통신 과정
    • 1. 암호화를 수행할 알고리즘 교환
    • 2. 사용자는 서버와 암호화 통신을 수행하기 위해 자신이 사용할 수 있는 암호알고리즘 리스트 전송, 서버가 암호화에 사용할 알고리즘 선택
    • 3. 암호화 통신은 중간자 공격이 가능하기 때문에 제 3자에게 인증 받은 인증서를 기반으로 통신하여 보호함
    • 4. 인증이 정상적으로 완료되면 암호화 통신에 사용할 암호 알고리즘을 최종적으로 교환
    • 5. 위 과정이 모두 끝난 후 암호화가 적용된 안전한 데이터 통신 가능

 

06 | SECURE PROTOCOL

  • 안전한 프로토콜이란?
    • 안전하지 않은 프로토콜 + SSL, TLS 적용한 프로토콜
  • 네트워크 설계 초기에 규약한 HTTP, FTP, TELNET은 데이터 전송에 목적을 두고 개발되어서 취약점이 많음
  • 이를 보완하기 위해 암호화 통신을 위한 SSL, TLS 적용하여 새로운 규약 만듦 -> HTTPS, SFTP, SSH

 

 

 

출처 https://raonctf.com/essential/study/web/what_is_protocol

 

RAON CTF - WEB Essential

일상생활에서 우리가 사람과 대화할 때, 명시적으로 말을 하지 않아도 암묵적으로 같은 언어와 서로 알고 있는 용어를 쓰며 대화합니다. 또한 대화 도중 의미 전달을 위해 다양한 몸짓과 표정

raonctf.com