일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- shadow
- Frida
- K-shield Jr 10기
- Android
- disk
- Reversing
- crack
- 써니나타스
- Autoware
- swing
- 파일해시생성
- 안티디버깅
- 포렌식
- tar
- K-sheild Jr
- 리버싱핵심원리
- ctf-d
- CodeEngn
- Mobile
- SW에듀서포터즈
- Multimedia
- 디스크
- Interceptor
- John the ripper
- 침해사고대응
- upx
- 케쉴주
- 모바일프로그래밍
- ZIP
Archives
- Today
- Total
물먹는산세베리아
Protocol 본문
01 | 프로토콜
- 정의
- 통신을 위해 만든 컴퓨터끼리 서로 이해할 수 있는 규칙과 약속
- 프로토콜을 이용해 컴퓨터 간에 어떻게 통신할지 결정하고 규약에 맞춰 데이터를 주고 받음
- 네트워크 객체들간의 규격, 순서가 정의된 통신 규약 즉, 네트워크 상의 컴퓨터 간 대화
- 종류
- TCP, HTTP, FTP 등
02 | HTTP
- 정의
- Hyper Text Transfer Protocol
- WWW 상에서 데이터를 주고 받기 위한 클라이언트, 서버 간에 이루어지는 요청/응답 프로토콜
- 웹 브라우저를 통해 인터넷으로 평문 통신을 수행할 수 있는 프로토콜
- 특징
- 주로 HTML 문서를 주고 받는데 쓰임(어떤 종류의 데이터든지 전송할 수 있도록 설계되어있긴 함)
- 예) 웹 브라우저(client)가 HTTP를 통해 서버로부터 웹페이지 혹은 그림 정보를 요청한다면 서버는 요청에 응답하여 필요한 정보를 사용자에게 전달함
- HTTP로 전달되는 자료는 http:로 시작하는 URL로 조회 가능, 주 사용 포트 번호 80
- 웹 브라우저 외에도 시스템의 특정 프로그램(*curl, wget)을 이용하여 통신할 수 있음
- 데이터가 평문으로 보이기 때문에 패킷을 캡쳐하면 평문이 그대로 노출됨 즉, 네트워크 상에서 패킷이 그대로 노출되는 취약점을 갖고 있음
- 주로 HTML 문서를 주고 받는데 쓰임(어떤 종류의 데이터든지 전송할 수 있도록 설계되어있긴 함)
- 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 제어연결
- 현재
- 최초의 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