보안 소켓 터널링 프로토콜
Secure Socket Tunneling ProtocolSSTP(Secure Socket Tunneling Protocol)는 SSL/TLS 채널을 통해 PPP 트래픽을 전송하는 메커니즘을 제공하는 VPN(Virtual Private Network) 터널의 일종이다. SSL/TLS는 키 협상, 암호화 및 트래픽 무결성 검사를 통해 전송 수준의 보안을 제공한다. TCP 포트 443(기본적으로, 포트를 변경할 수 있음)에 SSL/TLS를 사용하면 SSTP가 인증된 웹 프록시를 제외한 사실상 모든 방화벽과 프록시 서버를 통과할 수 있다.[1]
SSTP 서버는 SSL/TLS 단계에서 인증되어야 한다. SSTP 클라이언트는 SSL/TLS 단계에서 선택적으로 인증될 수 있으며 PPP 단계에서 인증되어야 한다. PPP를 사용하면 EAP-TLS, MS-CHAP와 같은 공통 인증 방법을 지원할 수 있다.
SSTP는 Linux, BSD 및 Windows에서 사용할 수 있다.[2]
SSTP는 Windows Vista SP1 이상 라우터에서 사용 가능5.0 버전 이후 OS, 3.50 펌웨어 버전 이후 SEIL. Winlogon 또는 스마트 카드 인증, 원격 액세스 정책 및 Windows VPN 클라이언트와 함께 사용할 수 있도록 이러한 운영 체제의 RRAS 아키텍처와 완벽하게 통합되어 있다.[3] 이 프로토콜은 또한 지점간 가상 네트워크를 위해 윈도우즈 Azure에 의해 사용된다.[4]
SSTP는 원격 클라이언트 액세스만을 위한 것으로 일반적으로 사이트 간 VPN 터널을 지원하지 않는다.[5]
SSTP는 다른 IP-over-TCP 터널과 동일한 성능 제한에 시달린다. 일반적으로 터널링된 TCP 타이머가 만료되지 않도록 보장할 수 있는 충분한 초과 대역폭이 터널링되지 않은 네트워크 링크에 존재하는 한 성능은 허용될 것이다. 만약 이것이 사실이 아니라면, 성능은 급격히 떨어진다. 이것은 "TCP 멜트다운 문제"[6][7]로 알려져 있다.
SSTP는 사용자 인증만 지원하며 기기 인증이나 컴퓨터 인증은 지원하지 않는다.
패킷 구조
SSTP 패킷의 모든 유형에는 다음과 같은 헤더 구조가 공통적이다.[8]
비트 오프셋 | 비트 0-7 | 8–14 | 15 | 16–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 버전 | 예약됨 | C | 길이 | ||||||||||||||||||||||||||||
32+ | 데이터 |
- 버전(8비트) – 사용되는 SSTP 버전을 전달하고 협상한다.
- 예약(7비트) – 나중에 사용할 수 있도록 예약됨
- C(1비트) – SSTP 패킷이 SSTP 제어 패킷을 나타내는지 SSTP 데이터 패킷을 나타내는지 여부를 나타내는 제어 비트. SSTP 패킷이 제어 패킷일 경우 이 비트는 설정된다.
- 길이(16비트) – 패킷 길이 필드(예약 부분과 길이 부분)의 두 가지 값으로 구성됨.
- 예약(4비트) – 나중에 사용할 수 있도록 예약됨
- 길이(12비트) – SSTP 헤더를 포함하여 전체 SSTP 패킷의 길이를 포함한다.
- 데이터(변수) – 제어 비트 C가 설정된 경우 이 필드에는 SSTP 제어 메시지가 포함된다. 그렇지 않으면 데이터 필드는 더 높은 수준의 프로토콜을 포함할 것이다. 현재, 이것은 오직 PPP일 수 있다.
제어 메시지
SSTP 헤더의 데이터 필드는 헤더의 Control 비트 C가 설정된 경우에만 SSTP 제어 메시지를 포함한다.
비트 오프셋 | 비트 0-15 | 16–31 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 메시지 유형 | 속성 수 | ||||||||||||||||||||||||||||||
32+ | 특성 |
- 메시지 유형(16비트) – 전달되는 SSTP 제어 메시지의 유형을 지정하십시오. 이것은 SSTP 제어 패킷으로 운반될 수 있는 속성의 수와 종류를 지시한다.
- 속성 수(16비트) – SSTP 제어 메시지에 추가된 속성 수를 지정하십시오.
- 속성(변수) – SSTP 제어 메시지와 관련된 속성 목록을 포함한다. 속성 개수는 속성 개수 필드에서 지정한다.
참고 항목
- AuthIP
- L2TP/IPsec
- HTTPS
- 오픈VPN
- OpenConnect VPN
- PPTP
- SoftEder VPN은 SSTP-VPN 프로토콜을 지원하는 오픈 소스 VPN 서버 프로그램이다.
- 와이어가드
참조
- ^ Jain, Samir (2007-01-17). "SSTP FAQ - Part 2: Client Specific". Microsoft TechNet. Retrieved 2015-10-17.
- ^ "SSTP-Client". 2011-09-17. Retrieved 2015-10-17.
- ^ Tulloch, Mitch (2008-01-22). "SSTP Makes Secure Remote Access Easier". Retrieved 2015-10-17.
- ^ McGuire, Cheryl (2015-08-11). "Configure a point-to-site VPN connection to an Azure Virtual Network". Retrieved 2015-10-17.
- ^ Jain, Samir (2007-01-10). "SSTP FAQ - Part 1: Generic". Retrieved 2015-10-17.
- ^ Titz, Olaf (2001-04-23). "Why TCP Over TCP Is A Bad Idea". Retrieved 2015-10-17.
- ^ Honda, Osamu; Ohsaki, Hiroyuki; Imase, Makoto; Ishizuka, Mika; Murayama, Junichi (October 2005). "Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency". In Atiquzzaman, Mohammed; Balandin, Sergey I (eds.). Performance, Quality of Service, and Control of Next-Generation Communication and Sensor Networks III. Vol. 6011. p. 60110H. Bibcode:2005SPIE.6011..138H. doi:10.1117/12.630496. S2CID 8945952.
- ^ "MS-SSTP: Secure Socket Tunneling Protocol (SSTP)". Microsoft TechNet. 2015-10-16. Retrieved 2015-10-17.