SOCKS5(소크스 파이브, 영문: SOCKS5)는 인터넷 프로토콜 중 하나로, 클라이언트와 서버 사이에 프록시 서버를 두어 TCP 및 UDP 트래픽을 중계한다. RFC 1928(2005)에서 표준으로 정의되었으며, 이전 버전인 SOCKS4에 비해 인증 기능, UDP 지원, IPv6 주소 처리 등을 추가하였다.
어원 및 명칭
- SOCKS는 “Socket Secure”의 약자이며, 원래는 1992년 Michele J. M. M. Murray가 개발한 프록시 프로토콜을 가리킨다.
- 한국어 표기에서는 “SOCKS5”를 그대로 음역하여 소크스5 혹은 SOCKS5라 부르는 경우가 일반적이며, “소켓 5”라는 표기는 공식적인 용어는 아니다. 따라서 “소켓 5”는 비공식적 혹은 오기일 가능성이 있다.
주요 특징
| 구분 | 설명 |
|---|---|
| 프로토콜 레이어 | 애플리케이션 계층에서 동작하는 프록시 프로토콜 |
| 지원 트래픽 | TCP와 UDP 모두 중계 가능 |
| 인증 방식 | 무인 인증(anonymous) 외에 사용자명/비밀번호 기반 인증을 제공 |
| IPv6 | IPv6 주소를 포함한 다양한 주소 체계 지원 |
| 보안 | 자체적인 암호화는 제공하지 않으며, TLS와 같은 별도 보안 계층과 조합해 사용한다. |
사용 맥락
- 방화벽 우회: 기업·기관 내부 네트워크에서 외부 인터넷 접근을 제한할 때, 프록시 서버를 통해 트래픽을 중계한다.
- 프라이버시 보호: 사용자는 자신의 IP 주소를 숨기고 다른 지역의 IP를 할당받아 인터넷 서비스를 이용할 수 있다.
- P2P·게임: NAT Traversal이 필요한 경우 UDP 중계 기능을 활용한다.
- 기업 보안: 내부 시스템 접근 제어 및 로깅을 위해 중앙 프록시 서버를 구성한다.
구현 및 표준화
- 표준 문서: RFC 1928 (SOCKS Protocol Version 5) 및 RFC 1929 (SOCKS Protocol Authentication) 등이 정의하고 있다.
- 주요 구현: Dante, Shadowsocks, CCProxy, Squid 등 다양한 오픈소스·상용 소프트웨어가 SOCKS5 서버/클라이언트 기능을 제공한다.
한계
- 전송 데이터에 대한 자체 암호화가 없으므로, 민감한 정보를 교환할 경우 TLS/SSL 등 추가 보안 계층을 함께 사용하는 것이 권장된다.
- 프록시 서버 자체가 장애 지점이 될 수 있어, 고가용성을 위해 로드밸런싱·다중 서버 구성이 필요하다.
참고
- 공식 명칭은 SOCKS5이며, “소켓 5”라는 표현은 공식 문서나 표준에서 사용되지 않는다. 따라서 “소켓 5”라는 용어는 비공식적이며, 문맥에 따라 “SOCKS5”로 해석하는 것이 일반적이다.