프로토콜 1

김윤성·2026년 1월 12일

정보보안 공부

목록 보기
4/14

1️⃣파일 전송 프로토콜 FTP

1. FTP란

  • FTP(File Transfer Protocol)의 약자로, TCP/IP 네트워크에서 파일을 교환하기 위한 프로토콜이다.
  • 7계층(OSI) 기준 응용 계층의 대표 프로토콜이다.
  • 데이터를 주고받기 위해 FTP 서버와 FTP 클라이언트가 필요하다.

2. 동작 원리(제어 채널, 데이터 채널)

  • FTP는 일반적인 프로토콜들과 달리 제어 채널과 데이터 채널로 분리되어 있다.
  • 쉽게 말해, 팩스를 보낼 때 전화로 “지금 팩스 보낼게”라고 먼저 연락하고 실제 자료는 팩스로 보내는 방식과 비슷하다.
  • 제어 채널
    • 클라이언트와 서버가 요청/응답을 주고받기 위한 연결이다.
    • 주로 21번 포트를 사용하며, FTP 세션 동안 연결이 유지된다.
  • 데이터 채널
    • 실제 파일 같은 데이터를 주고받기 위한 연결이다.
    • 주로 20번 포트를 사용하지만, 동작 방식에 따라 다양한 포트를 사용할 수 있다.
    • 파일 전송이 끝나면 연결이 종료된다

3. 모드(액티브, 패시브 모드)

(1) 액티브 모드

  • 동작 흐름
    • 클라이언트가 서버의 21번 포트(제어 채널)로 접속한 뒤, 데이터 채널로 사용할 두 번째 포트 번호를 서버에 알려준다.
    • 서버의 20번 포트(데이터 채널)가 클라이언트가 알려준 포트 번호로 접속을 시도한다.
  • 특징
    • 데이터 채널은 서버가 클라이언트로 접속을 시도한다.
    • 클라이언트에서 방화벽이 외부(서버)에서 들어오는 접속을 차단하면 오류가 생길 수 있다.

(2) 패시브 모드

  • 동작 흐름
    • 클라이언트가 서버의 21번 포트(제어 채널)로 접속을 시도한다.
    • 서버가 데이터 채널로 사용할 포트 번호(무작위)를 알려준다.
    • 클라이언트가 서버가 알려준 포트 번호로 접속한다.
  • 특징
    • 데이터 채널을 연결할 때 클라이언트가 서버로 연결을 시도한다.
    • 방화벽 문제는 줄었지만, 클라이언트의 접속을 받기 위해 넓은 포트 범위를 열어야 하므로 보안 설정이 필요하다.

4. 장단점

(1) 장점

  • 단순하고 범용적이며, 파일 전송이라는 기본 기능에 충실하다.
  • 대용량 파일 전송에 적합하다.
  • 자동화 작업에 사용하기 용이하다.

(2) 단점

  • FTP는 평문 기반이라 스니핑, 중간자 공격 등 보안에 취약하다.
  • 액티브 모드는 방화벽에 의한 오류, 패시브 모드는 넓은 포트 범위 개방으로 보안 관리 문제가 존재한다.
  • 현재의 보안 요구사항과 맞지 않는다.

5. FTP의 확장

(1) FTPS(FTP over SSL/TLS)

  • 기존 FTP 프로토콜에 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 암호화 계층을 추가한 형태이다.
  • FTP의 기본 구조(제어 채널과 데이터 채널 분리)를 그대로 유지한다.
  • SSL/TLS를 적용해 아이디, 비밀번호, 파일 데이터 등이 평문으로 노출되는 것을 방지한다.

(2) SFTP(SSH File Transfer Protocol)

  • 단순히 FTP에 보안을 더한 것이 아니라, SSH(Secure Shell) 프로토콜을 기반으로 하는 별도의 파일 전송 방식이다.
  • SSH는 원격 컴퓨터에 안전하게 접속해 명령을 실행하고 파일을 주고받게 해주는 보안 프로토콜이다.
  • 단일 채널 구조로, SSH의 암호화 채널 위에서 모든 데이터와 명령을 전송한다.
  • 보안성이 뛰어나고 관리가 용이해 현대 환경에서 널리 사용되는 보안 파일 전송 방식이다.

6. 현재 FTP의 사용

  • 현재 FTP는 평문 전송으로 보안 문제가 발생할 수 있어 많이 사용하지는 않는다. fortra.com+1
  • 그래서 보안을 추가한 FTPS, SFTP를 주로 사용한다.
  • 실제 사용 예로는 B2B 간에 매일 주고받아야 하는 데이터(발주, 납품, 매출, 물류 관련 등)가 있다.
  • 개인과 개인 간 파일 전송은 HTTP(HTTPS) + API 기반의 메신저, 클라우드, 메일 등을 이용해 주고받는다.
  • 서비스와 서비스(예: B2B) 환경에서는 FTPS, SFTP를 사용해 데이터를 주고받는다. 또한 요즘은 클라우드 환경에서 제공되는 FTPS/SFTP 서비스도 존재한다.
  • HTTP(HTTPS) + API는 더 다양한 기능을 구현할 수 있지만 구현과 운영이 복잡할 수 있고, FTPS, SFTP는 파일 전송이라는 목적에 표준화되어 있어 구현이 용이하다.

2️⃣ 이메일전송 프로토콜 (SMTP,POP3,IMAP)

1. SMTP (Simple Mail Transfer Protocol)

  • 요약: 클라이언트가 메일 서버로 메일을 보낼 때, 또는 메일 서버끼리 메일을 중계할 때 사용하는 전송 전용 프로토콜이다.
  • 주요 역할: 이메일 메시지를 목적지 서버까지 전달(중계)하는 역할을 한다.
  • 포트 번호
    • 25번: 서버 간 전송 시 기본으로 사용되지만, 스팸 방지 등의 이유로 일반 환경에서는 차단되는 경우가 많다.
    • 587번: 클라이언트-서버 간 메일 전송에 주로 사용되며, 보안 설정과 함께 사용하는 경우가 많다.
  • 특징: 전송만 담당하며, 메일 수신이나 보관함 관리 기능은 없다.

2. POP3 (Post Office Protocol version 3)

  • 요약: 메일 서버에 도착한 메일을 내 디바이스로 다운로드해 저장하는 수신 전용 프로토콜이다.
  • 핵심 역할: 서버에 도착한 메일을 클라이언트가 로컬로 내려받는다.
  • 포트 번호
    • 110번: 표준 POP3에 사용되는 포트 번호
    • 995번: 보안이 강화된 POP3에 사용되는 포트 번호
  • 장단점
    • 장점: 메일을 한 번 다운로드하면 인터넷 연결 없이도 오프라인에서 확인할 수 있고, 서버의 저장 공간을 적게 차지한다.
    • 단점: 여러 기기(스마트폰, PC 등)에서 동시에 접속할 경우 메일이 동기화되지 않아 관리가 어렵다.
  • 특징: 일반적으로 메일을 로컬로 받은 후에는 서버에서 삭제한다.

3. IMAP (Internet Message Access Protocol)

  • 요약: 서버의 사서함을 기준으로 메일을 실시간으로 동기화해 읽고 관리하는 수신 프로토콜이다.
  • 핵심 역할: 메일을 서버에 보관하면서 여러 기기에서 서버에 접근해 관리하고, 실시간으로 동기화한다.
  • 포트 번호
    • 143/TCP : 표준 IMAP에서 사용되는 포트번호
    • 993/TCP : 보안이 강화된 IMAP에서 사용되는 포트번호
  • 장단점
    • 장점: 여러 기기에서 접속해도 읽음 표시, 삭제, 폴더 생성 등의 상태가 동일하게 유지되어 현대적인 환경에 적합하다.
    • 단점: 메일을 확인하기 위해 보통 인터넷 연결이 필요하며, 서버의 저장 공간을 많이 사용한다.

4. 비교

구분SMTPPOP3IMAP
핵심 목적보내기/중계(전송)받아서 내려받기(다운로드)서버 기준 동기화/관리
메일 저장 기준발송/릴레이 과정보통 로컬 중심(설정에 따라 서버 삭제)서버 중심(동기화)
다중 기기 사용성해당 없음(전송)불리한 편유리
대표 포트25 / 587 / 465110 / 995143 / 993

5. 현대의 사용

  • 메일을 작성해서 보낼 때는 SMTP를 사용한다.
  • 메일을 읽을 때는, 웹을 사용하면 HTTPS + API를 사용하고, 메일 앱을 사용할 때는 IMAP 또는 POP3를 사용한다.
  • 웹에서도 설정을 통해 IMAP 또는 POP3를 사용할 수 있다.

3️⃣ IP

1. IP란

  • OSI 3계층(네트워크 계층) 핵심 프로토콜
  • IP(Internet Protocol) 는 인터넷에서 데이터를 보낼 때 쓰는 주소(출발지/목적지) + 길찾기(라우팅) 규칙

2. IP 특징

  1. connectionless(비연결형) 이고, 패킷 단위로 그냥 보냄.
  2. Best-effort로 최선을 다해 전송하지만 순서나 신뢰성 보장이 없다
  3. IP 헤더의 목적지 IP를 통해 라우팅이 가능하게 한다
  4. 경로마다 MTU가 달라 패킷이 크면 (IPv4 기준) 단편화될 수 있고, DF가 설정되면 단편화가 금지되어 전달 실패 시 ICMP 오류가 발생할 수 있다(단, ICMP가 차단되면 알림이 없을 수도 있다).

3. IP 헤더

  • Version 이 패킷이 IPv4인지 나타내는 값. (IPv4 패킷이면 항상 IPv4로 표시됨)
  • Header Length(IHL) IP 헤더가 얼마나 긴지 알려줌. 옵션이 없으면 보통 기본 헤더 길이이고, 옵션이 있으면 그만큼 더 길어져서 “데이터가 어디부터 시작하는지” 판단한다.
  • Type of Service(ToS / DSCP·ECN) 이 트래픽을 네트워크에서 어떻게 다뤄주면 좋을지 힌트를 주는 필드. 우선순위(QoS)나 혼잡 표시 같은 목적에 쓰인다(일반 트래픽은 기본값이 많음).
  • Total Length IP 패킷 전체 크기(헤더 + 데이터). 수신 측이 패킷 경계를 알 수 있게 해준다.
  • Identification 패킷이 단편화(조각)로 나뉘었을 때, 조각들을 “원래 한 묶음”으로 묶어주는 번호. 재조립할 때 기준이 된다.
  • Flags(DF/MF 등) 단편화와 관련된 설정.
    • DF: 쪼개지 말 것(단편화 금지)
    • MF: 뒤에 조각이 더 있음(단편화가 진행 중임) MTU 문제에서 자주 핵심이 된다.
  • Fragment Offset 단편화된 조각이 원본 데이터에서 어느 위치 조각인지 나타낸다. 조각을 다시 맞출 때 필요한 “위치 정보”다.
  • Time to live(TTL) 패킷이 무한히 떠돌지 않게 하는 수명 값. 라우터를 지날 때마다 줄고, 0이 되면 버려진다(이때 ICMP Time Exceeded가 나오기도 함).
  • Protocol IP 안에 담긴 상위 프로토콜이 무엇인지 표시. 예: TCP, UDP, ICMP. 운영체제가 이 값을 보고 적절한 처리(TCP에게 넘기기 등)를 한다.
  • Header Checksum IPv4 헤더가 전송 중에 손상됐는지 검사하는 값(헤더만). TTL이 바뀌는 것처럼 헤더 내용이 바뀌면 체크섬도 다시 계산될 수 있다.
  • Source IP Address 출발지 IP 주소. 응답을 어디로 보내야 하는지, 로그에서 누가 보냈는지 판단하는 핵심 정보.
  • Destination IP Address 목적지 IP 주소. 라우터들이 이 값을 보고 라우팅 테이블로 다음 홉을 결정한다.
  • Options 추가 기능을 위한 영역(특수 목적). 요즘 일반 네트워크에서는 자주 쓰이지 않는다.
  • Data 실제 내용물. 보통 TCP/UDP 세그먼트(또는 ICMP 메시지)가 여기 들어간다.

4️⃣ICMP(Internet Control Message Protocol)

1. ICMP란

(1) 등장 배경

  • 3계층의 IP 프로토콜은 Best Effort 기반으로, 신뢰성을 보장하지 않고 패킷의 목적지 도착도 보장하지 않는다.
  • 또한 핸드셰이크 같은 연결 설정을 하지 않는 비연결형 특성을 가진다.
  • 그래서 IP는 패킷 전송 중 문제가 생길 수 있고, 이를 보완하기 위해 나온 것이 ICMP이다.

(2) 핵심 역할

  • ICMP는 3계층의 IP 통신 중 문제가 생겼을 때 에러/상태를 알려주거나(진단, 보고), 경로를 확인/테스트하기 위한 제어 메시지 프로토콜이다.

(3) 용도 및 기능

  1. 오류 보고 및 상태 알림: 목적지에 도달하지 못함, 시간이 오래 걸려 TTL이 0이 됨 등 오류 발생과 원인을 알려줌
  2. 네트워크 상태 진단: ping으로 살아있는지, RTT가 얼마나 걸리는지 확인하고, tracert(traceroute)로 홉을 얼마나 거치는지/어디서 막히는지 확인할 수 있다.
  3. IP 경로 설정 최적화에 도움
  4. 악의적으로 살아있는 서버를 찾고 정보 수집을 하거나 DoS 공격에 사용

2. ICMP의 특징

  1. ICMP 메시지는 따로 전송되는 것이 아니라, IP 패킷에 캡슐화되어 함께 전달된다.
  2. 별도의 연결 설정 과정(Handshaking) 없이 메시지를 전송하며, ICMP 메시지 자체의 손실에 대해서는 별도로 보고하지 않는다.
  3. ICMP는 L3(네트워크) 계층 프로토콜이므로 포트 번호 없이 IP 주소 기반으로 통신한다.
  4. 문제가 발생한 지점(라우터 등)에서 원본 패킷의 송신자에게 직접 오류 메시지를 보내, 문제 진단에 필요한 정보를 제공한다.

3. ICMP에 담기는 내용들

  • ICMP는 헤더(Header)와 데이터(Data)로 구성되어 있다.
  • 데이터는 선택적이며, 보통은 사용되지 않는다고 볼 수 있다.
  • 헤더에는 메시지의 유형(Type) 필드와 코드(Code) 필드가 포함되어 있다.
    • Type: “어떤 종류의 ICMP 메시지인가?” (큰 분류)
    • Code: “해당 Type 안에서 세부 이유는 무엇인가?” (상세 분류)

타입과 코드의 분류

TypeType 이름(한줄)CodeCode 의미(한줄)대표 상황(예시)
0Echo Reply (핑 응답)0Echo Replyping에 대한 응답
3Destination Unreachable (도달 불가 알림)0Network Unreachable라우팅 경로/네트워크 자체가 없음
3Destination Unreachable (도달 불가 알림)1Host Unreachable목적지 호스트까지 도달 불가
3Destination Unreachable (도달 불가 알림)2Protocol Unreachable목적지에서 상위 프로토콜 처리 불가
3Destination Unreachable (도달 불가 알림)3Port Unreachable(특히 UDP) 해당 포트 서비스 없음
3Destination Unreachable (도달 불가 알림)4Frag needed (DF set)MTU 문제(DF 때문에 조각화 못 함)
3Destination Unreachable (도달 불가 알림)13Admin prohibited방화벽/ACL 정책 차단 의심
5Redirect (더 나은 경로 안내)0Redirect for Network이 네트워크는 다른 게이트웨이로
5Redirect (더 나은 경로 안내)1Redirect for Host이 호스트는 다른 게이트웨이로
8Echo Request (핑 요청)0Echo Requestping 요청 전송
11Time Exceeded (시간 초과 알림)0TTL expired in transittraceroute에서 라우터가 반환
11Time Exceeded (시간 초과 알림)1Reassembly time exceeded조각 재조립 시간 초과(드묾)
12Parameter Problem (패킷 헤더 문제)0Pointer indicates errorIP 헤더 특정 필드가 이상함
12Parameter Problem (패킷 헤더 문제)1Missing required option필수 옵션 누락
12Parameter Problem (패킷 헤더 문제)2Bad length길이 값이 잘못됨
profile
꾸준한 IT 공부

0개의 댓글