문제
1. SCTP(Stream Control Transmission Protocol)가 상위 계층에 제공하는 서비스에 대해 설명하시오.
2. SCTP의 연결 설정 과정에서 네트워크 보안 측면의 개선 사항을 설명하시오.
답변
1. SCTP(Stream Control Transmission Protocol)의 정의
- SCTP는 스트림 기반 전송 프로토콜로, TCP와 UDP의 장점을 결합하여 신뢰성, 데이터 순서 보장, 멀티스트리밍을 제공하는 전송 계층(Transport Layer) 프로토콜입니다.
- 주요 응용 사례: VoIP, IP 전화, 화상 회의, 신호 시스템(예: SS7) 등.
1. SCTP가 상위 계층에 제공하는 서비스
1.1 멀티스트리밍 (Multi-Streaming)
- 기능: 하나의 연결(Association) 내에서 다중 데이터 스트림을 병렬로 전송합니다.
- 특징:
- 데이터 스트림 간 독립성을 제공하여 특정 스트림의 데이터 전송 장애가 다른 스트림에 영향을 미치지 않도록 함.
- TCP에서 발생하는 HOL(Head-of-Line) 블로킹 문제를 해결.
- 장점: 실시간 애플리케이션에서 데이터 손실과 지연을 줄여 성능을 개선.
1.2 멀티호밍 (Multi-Homing)
- 기능: 한 쌍의 연결(Association)에 대해 여러 IP 주소를 사용하여 네트워크 경로를 중복 구성합니다.
- 특징:
- 기본 경로가 실패할 경우 대체 경로를 사용하여 연결을 유지.
- 네트워크 장애 복구 능력 향상.
- 장점: 고가용성(High Availability)과 신뢰성을 제공하여 네트워크 장애에 강함.
1.3 메시지 지향 전송 (Message-Oriented Transmission)
- 기능: 애플리케이션이 보낸 메시지를 고정된 크기로 나누지 않고 전체 메시지를 하나의 단위로 처리.
- 특징:
- TCP와 달리 데이터 경계(Boundary)를 보존.
- 상위 계층 애플리케이션에서 데이터의 무결성을 유지.
- 장점: 메시지 단위로 데이터를 처리하므로 애플리케이션 로직 간소화.
1.4 전송 신뢰성 (Reliable Transmission)
- 기능: 데이터 손실, 중복, 순서 변경을 방지하여 신뢰성을 제공.
- 특징:
- TCP처럼 데이터의 전송 보증을 위해 ACK(Acknowledgment), 재전송(Retransmission), 시퀀스 번호(Sequence Number)를 사용.
- 장점: 안정적인 데이터 전송으로 VoIP와 같은 실시간 서비스에 적합.
1.5 데이터 순서 관리 (Ordered and Unordered Delivery)
- 기능: 애플리케이션 요구에 따라 데이터의 순서를 유지하거나 유지하지 않고 전송.
- 특징:
- TCP는 모든 데이터의 순서를 보장하지만, SCTP는 순서 보장이 필요 없는 데이터도 전송 가능.
- 장점: 비순차 전송(Unordered Delivery)을 통해 성능 최적화.
1.6 데이터 흐름 및 혼잡 제어
- 기능: 수신자의 버퍼 크기와 네트워크 상태를 기반으로 송신 속도를 조절.
- 특징:
- TCP와 유사하게 흐름 제어(Windowing) 및 혼잡 제어(Congestion Control) 메커니즘 제공.
- 장점: 네트워크 안정성과 효율성을 보장.
2. SCTP의 연결 설정에서 네트워크 보안 측면의 개선 사항
2.1 기존 TCP의 보안 문제
- TCP는 3-way Handshake를 통해 연결을 설정하지만, 다음과 같은 보안 취약점이 존재:
- SYN Flooding 공격: 공격자가 다량의 SYN 패킷을 보내고 응답하지 않아 서버의 자원을 고갈시키는 공격.
- 스푸핑 공격(Spoofing): 공격자가 출발지 주소를 위조하여 비정상적인 연결을 생성.
2.2 SCTP의 연결 설정 과정
- SCTP는 연결 설정을 위한 4-way Handshake를 사용하며, 보안성을 향상시킴.
- 4-way Handshake 과정:
- INIT: 송신자가 연결 요청(INIT 메시지)을 보냄.
- INIT-ACK: 수신자가 초기 연결 정보와 쿠키(Cookie)를 포함한 응답(INIT-ACK 메시지)을 보냄.
- COOKIE-ECHO: 송신자가 쿠키를 포함한 확인 메시지(COOKIE-ECHO)를 보냄.
- COOKIE-ACK: 수신자가 최종적으로 연결을 확인(COOKIE-ACK).
2.3 보안 개선 사항
-
SYN Flooding 완화
- 연결 요청 시 서버는 쿠키를 클라이언트에 전송하고, 클라이언트가 이를 반환할 때까지 자원을 할당하지 않음.
- 자원 낭비를 줄이고 서버를 보호.
-
스푸핑 방지
- 쿠키는 암호화 또는 서명되어 있어 공격자가 임의로 위조하기 어려움.
- 쿠키를 기반으로 연결 요청의 신뢰성을 검증.
-
DoS(Denial of Service) 완화
- 네트워크에 과부하를 유발하는 공격을 효과적으로 방지하며, 무효한 연결 요청을 차단.
3. 결론
- SCTP는 TCP와 UDP의 장점을 결합하여 상위 계층에 신뢰성, 멀티스트리밍, 멀티호밍, 메시지 지향 전송과 같은 다양한 서비스를 제공합니다.
- 연결 설정 과정에서 TCP의 SYN Flooding과 스푸핑 공격 문제를 해결하며, 4-way Handshake를 통해 네트워크 보안을 강화합니다.
- 이러한 특성 덕분에 SCTP는 VoIP, 실시간 미디어 전송, 신호 처리와 같은 애플리케이션에서 높은 신뢰성과 보안을 제공합니다.