네트워크 보안 - OSI 모델 · TCP/IP · 프로토콜 완전 정리
Phase 2 | Network Security
OSI 모델 · TCP/IP · 프로토콜 완전 정리
캡슐화 구조 · TCP/UDP 헤더 · 3-Way Handshake · 흐름 제어 · 보안 관점까지
01
OSI 7계층 참조 모델
ISO가 정의한 통신 표준 구조. 네트워크 기능을 7개 계층으로 분리해 각 역할을 명확히 구분한다.
L7
Application
사용자 인터페이스 제공 — HTTP, FTP, DNS, SMTP
L6
Presentation
인코딩 · 압축 · 암호화 (TLS/SSL 협상)
L5
Session
세션 연결 설정 · 유지 · 종료
L4
Transport
종단 간 신뢰성 보장 — TCP / UDP, Port 기반 다중화
L3
Network
라우팅 및 경로 결정 — IP, ICMP, ARP
L2
Data Link
MAC 기반 전달 · 오류 제어 — Ethernet, Wi-Fi
L1
Physical
전기 · 광 신호 전송 — 케이블, 허브
구분 기준 | L5~L7은 소프트웨어(애플리케이션) 영역, L1~L3은 하드웨어(장비) 영역, L4(Transport)는 두 영역을 연결하는 중계 계층이다.
02
캡슐화 (Encapsulation) / 역캡슐화 (De-encapsulation)
송신 측은 상위 → 하위 계층으로 헤더를 추가하고, 수신 측은 하위 → 상위 계층으로 헤더를 제거한다.
[ 송신 측 — Encapsulation ]
Application Data
→ + TCP Header (Segment)
→ + IP Header (Packet)
→ + MAC Header + FCS (Frame)
→ Physical 전송 (Bits)
[ 수신 측 — De-encapsulation ]
Bits
→ MAC Header 제거 (Frame → Packet)
→ IP Header 제거 (Packet → Segment)
→ TCP Header 제거 (Segment → Data)
| 계층 PDU 명칭 | 계층 | 헤더/구성 요소 |
|---|---|---|
| Data / Message | L7~L5 | 애플리케이션 데이터 |
| Segment | L4 | TCP/UDP Header + Data |
| Packet | L3 | IP Header + Segment |
| Frame | L2 | MAC Header + Packet + FCS(Trailer) |
| Bits | L1 | 전기/광 신호 |
Payload vs Header | Payload는 실제 전달할 데이터, Header는 전달을 위한 제어 정보, Trailer(FCS)는 오류 검출용. 각 계층 관점에서 상위 계층 전체가 자신의 Payload가 된다.
03
TCP/IP 모델과 OSI 매핑
실제 인터넷 통신에서 사용하는 4계층 모델. OSI보다 단순하며 실무 기준이 된다.
| TCP/IP 계층 | OSI 대응 | 주요 프로토콜 | 역할 |
|---|---|---|---|
| Application | L5~L7 | HTTP, FTP, DNS, SMTP | 사용자 서비스 제공 |
| Transport | L4 | TCP, UDP | 종단 간 통신, 포트 기반 |
| Internet | L3 | IP, ICMP, ARP | 라우팅, 논리적 주소 |
| Network Access | L1~L2 | Ethernet, Wi-Fi | 물리적 전송 |
04
TCP vs UDP 헤더 구조 비교
TCP Header (20~60 bytes)
- Source / Destination Port
- Sequence Number — 데이터 순서 보장
- Acknowledgment Number — 수신 확인
- Window Size — 흐름 제어
- Checksum — 오류 검출
- Flags — SYN, ACK, FIN, RST 등
UDP Header (8 bytes 고정)
- Source / Destination Port
- Length — 헤더 + 데이터 전체 길이
- Checksum — 오류 검출 (선택적)
- Sequence / ACK 없음
- 연결 설정 없음
- 재전송 없음
| 항목 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결 지향 3-Way Handshake | 비연결형 즉시 전송 |
| 신뢰성 | 순서 보장 · 재전송 · ACK | Best-effort, 보장 없음 |
| 헤더 크기 | 20~60 bytes | 8 bytes |
| 속도 | 상대적으로 느림 | 빠름 |
| 사용 사례 | HTTP, SSH, FTP, 이메일 | DNS, VoIP, 스트리밍, 게임 |
| 보안 위협 | SYN Flood, Session Hijacking | UDP Flood, DNS Amplification |
05
TCP 연결 관리 : 3-Way & 4-Way Handshake
3-Way Handshake — 연결 수립
Client
SYN 전송
SYN 전송
→
Server
SYN+ACK 응답
SYN+ACK 응답
→
Client
ACK 전송
ACK 전송
→
연결 수립
ESTABLISHED
ESTABLISHED
4-Way Handshake — 연결 종료
FIN
종료 요청
종료 요청
→
ACK
수신 확인
수신 확인
→
FIN
상대방 종료
상대방 종료
→
ACK
최종 확인
최종 확인
→
TIME_WAIT
일정 시간 대기
일정 시간 대기
TIME_WAIT 존재 이유 | 마지막 ACK가 유실됐을 때 상대가 FIN을 재전송할 수 있도록 일정 시간(2×MSL) 대기. 이 시간 동안 같은 포트로 새 연결을 맺으면 패킷 충돌 발생 가능.
# Sequence / Acknowledgment Number 관계식
AN = SN + Data Size
# 예시
Client → Server : SYN (SN=1000)
Server → Client : SYN+ACK (SN=5000, AN=1001) # AN = 1000 + 1
Client → Server : ACK (SN=1001, AN=5001) # AN = 5000 + 1
06
IP Header 주요 필드
| 필드 | 역할 | 보안 관점 |
|---|---|---|
| TTL (Time To Live) | 라우터를 거칠 때마다 1씩 감소, 0이 되면 패킷 폐기 | TTL 값으로 OS 추정 가능 (Fingerprinting) |
| Protocol | 상위 계층 프로토콜 식별 (6=TCP, 17=UDP, 1=ICMP) | 비정상 프로토콜 번호로 탐지 우회 시도 |
| Source / Dst IP | 송수신 IP 주소 | IP Spoofing 주요 조작 대상 |
| Fragmentation | MTU 초과 패킷 분할 전송 | 단편화 공격으로 IDS 우회 가능 |
07
Ethernet Frame 구조
[ Ethernet Frame 구조 ]
┌──────────────┬──────────────┬──────┬──────────────┬─────┐
│ Dst MAC │ Src MAC │ Type │ Data │ FCS │
│ (6 bytes) │ (6 bytes) │(2B) │ (46~1500B) │(4B) │
└──────────────┴──────────────┴──────┴──────────────┴─────┘
최소 크기: 64 bytes
최대 크기: 1518 bytes (Jumbo Frame 제외)
FCS: Frame Check Sequence — CRC 기반 오류 검출
Type 필드 |
0x0800 = IPv4, 0x0806 = ARP, 0x86DD = IPv6. Wireshark로 패킷 분석 시 이 값으로 상위 프로토콜을 빠르게 식별할 수 있다.
08
TCP 흐름 제어 (Flow Control) & 혼잡 제어
Window Size 기반 흐름 제어
- 수신 측이 처리 가능한 데이터 크기를 광고
- 송신 측은 Window 크기 이내로만 전송
- Window = 0 → 전송 즉시 중단
- Keep-Alive 패킷으로 연결 유지 확인
정상 vs 비정상 트래픽
- 정상: SN 순차 증가, 정확한 ACK
- 비정상: ACK 불일치, 재전송 반복
- SYN Flood: ACK 없이 SYN만 대량 전송
- Session Hijacking: SN 예측으로 세션 탈취
09
보안 관점 핵심 정리
- SYN Flood : ACK 없이 SYN을 대량 전송해 서버 연결 테이블(Backlog Queue) 고갈. 대응: SYN Cookie, 방화벽 Rate Limit
- Session Hijacking : Sequence Number 예측으로 기존 세션 탈취. 대응: 랜덤 ISN(Initial Sequence Number) 생성, TLS 암호화
- IP Spoofing : 출발지 IP를 위조해 패킷 전송. 대응: BCP38(Ingress Filtering), uRPF
- IP Fragmentation Attack : 단편화된 패킷으로 IDS/IPS 탐지 우회. 대응: 패킷 재조립 후 검사
- UDP Flood / DNS Amplification : 소스 IP 위조 후 대용량 DNS 응답을 피해자에게 반사. 대응: BCP38, DNS Response Rate Limiting
- TTL 기반 OS Fingerprinting : TTL 초기값(Linux=64, Windows=128)으로 OS 추정. 대응: TTL 값 표준화 또는 스크램블링
'보안 공부' 카테고리의 다른 글
| 네트워크 보안 - IP 단편화 · 패킷 스니핑 · Wireshark 완전 정리 (0) | 2026.05.29 |
|---|---|
| 네트워크 보안 - TCP 심화 · IP Header · ICMP 완전 정리 (0) | 2026.05.29 |
| 네트워크 보안 - 네트워크 기초 완전 정리 (0) | 2026.05.29 |
| 악성 코드 분석 - IOC(침해 지표) 정리 (0) | 2026.05.28 |
| 악성 코드 분석 - 기초 동적 분석 (0) | 2026.05.28 |