기술나눔

[네트워크] SCTP 4방향 핸드셰이크가 SYN 공격에 저항할 수 있는 이유

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

SCTP 보안에 대한 심층적인 이해: 4방향 핸드셰이크부터 SYN 공격 방어까지

소개

네트워크 통신의 세계에서는 보안과 신뢰성이 매우 중요합니다. 전통적인 TCP(전송 제어 프로토콜)는 연결을 설정할 때 3방향 핸드셰이크를 사용하지만 이 메커니즘에는 SYN 공격과 같은 몇 가지 보안 허점이 있습니다. 새로운 전송 계층 프로토콜인 SCTP(스트림 제어 전송 프로토콜)는 4방향 핸드셰이크 메커니즘을 도입하여 보안을 효과적으로 향상시킵니다. 이 기사에서는 SCTP의 보안 이점을 자세히 요약하고 이를 TCP의 3방향 핸드셰이크 메커니즘과 비교하며 SYN 공격의 원리와 방어 전략을 살펴보겠습니다.

TCP 3방향 핸드셰이크 및 SYN 공격

3방향 핸드셰이크 메커니즘

TCP 연결 설정은 유명한 3방향 핸드셰이크 프로세스에 의존합니다.

  1. 클라이언트가 SYN A를 보냅니다.: 클라이언트가 서버에 동기 요청을 보내 클라이언트가 연결을 설정하려고 함을 나타냅니다.
  2. 서버는 SYN B, ACK A 1을 반환합니다.: 서버는 요청을 받은 후 요청을 캐시하고 동기 응답과 확인을 클라이언트에 보냅니다.
  3. 클라이언트가 ACK B 1을 보냅니다.: 클라이언트는 서버로부터 응답을 받은 후 확인 정보를 서버로 전송하여 연결 설정을 완료합니다.

SYN 공격의 원리

SYN 공격은 TCP 3방향 핸드셰이크 프로세스의 약점을 이용합니다. 공격자는 핸드셰이크의 마지막 단계를 완료하지 않은 채 서버에 대량의 SYN 요청을 전송하여 이를 수행합니다. 이때 서버는 많은 수의 클라이언트를 SYN-RECV 상태로 유지하므로 서버 리소스가 소진됩니다. 새로운 SYN 요청이 있으면 해당 요청이 삭제되어 정상적인 서비스에 영향을 미칩니다.

SCTP의 4방향 핸드셰이크 및 보안 개선

4방향 핸드셰이크 메커니즘

SCTP는 네 번째 핸드셰이크를 도입하여 연결 설정의 보안을 향상합니다.

  1. 클라이언트가 INIT를 보냅니다.: 클라이언트가 서버에 초기화 요청을 보냅니다.
  2. 서버가 INIT ACK를 반환합니다.: 초기화 요청을 받은 후 서버는 확인을 반환합니다.
  3. 서버가 COOKIE ECHO를 보냅니다.: 서버는 클라이언트에게 COOKIE를 보내고 클라이언트가 다음 요청에서 COOKIE를 전달하도록 요구합니다.
  4. 클라이언트는 COOKIE를 운반하고 COOKIE ACK를 보냅니다.: 클라이언트는 쿠키를 수신한 후 이를 요청에 포함하여 서버에 반환합니다. 서버는 확인을 통과한 후 연결을 설정합니다.

쿠키의 역할

SCTP의 COOKIE 메커니즘은 SYN 공격에 저항하는 열쇠입니다. 서버는 연결 요청을 받으면 즉시 메모리 자원을 할당하지 않고 COOKIE를 생성하여 클라이언트에 보냅니다. 클라이언트는 다음 요청에서 이 쿠키를 전달하고, 서버는 클라이언트의 신원과 요청의 적법성을 확인하기 위해 쿠키를 확인하여 잘못된 리소스 할당을 방지합니다.

결론적으로

TCP와 SCTP의 연결 설정 프로세스를 비교하면 SCTP가 4방향 핸드셰이크와 COOKIE 메커니즘을 통해 보안이 크게 향상되는 것을 확인할 수 있습니다. 이 메커니즘은 SYN 공격을 방지할 뿐만 아니라 서버 리소스 낭비를 줄이고 네트워크 통신의 안정성을 향상시킵니다. 네트워크 기술이 발전함에 따라 SCTP의 이러한 장점으로 인해 일부 시나리오에서는 SCTP가 TCP보다 더 널리 선택될 수 있습니다.