같은 노트북이 집에서는 VPN에 닿고 사무실에서는 연결되지 않는다면 누군가 트래픽을 읽고 있다. 차단과 읽기는 별개의 권한이고, 두 번째만이 경로 위의 지점과 클라이언트가 신뢰하는 인증서를 필요로 한다. 여러분의 핸드셰이크를 떨어뜨리는 중간 장치는 여러분이 보냈을 내용에 대해 아무것도 배우지 못했다. 둘 중 어느 쪽과 마주했는지 판별하는 것이 이 작업의 전부다.

차단과 읽기는 다른 권한이다

거부는 값싸고 요란하다. 소켓은 열리는데 아무 응답이 없거나, 곧바로 리셋이 온다. 페이로드가 선을 건너지 않았으므로 그 어느 것도 검사를 뜻하지 않는다.

읽기에는 보호를 끝내고, 인증서로 자신을 증명하고, 앞으로 새 연결을 여는 종단점이 필요하다. 그 지점은 경로 위에 있어야 하고 클라이언트의 신뢰를 받아야 한다. 패킷만 전달하는 방화벽에는 위치도 자격 증명도 없다.

포장이 공짜로 흘리는 것

모든 터널 패킷에는 바깥이 있고, 그 바깥은 라우팅 가능해야 한다. 두 주소, 프로토콜, 포트, 길이에 시간과 부피가 더해진다. 어떤 라우터든 그 필드는 이미 처리하고, NAT는 매핑 표를 일관되게 유지하려고 주소와 포트를 다시 쓴다. 페이로드는 봉인된 채로 남으므로 관찰은 두 호스트 사이에 터널이 있다는 사실에서 멈춘다.

호스트 이름은 그 안에 없다. 사이트는 다른 문으로 새고, 가장 넓은 문은 DNS다. 노트북이 여전히 로컬 리졸버에 묻는다면 이름은 평문으로 드러난다.

시간과 부피는 과장 없이 존중받아야 한다. 분당 바이트 는 큰 전송이 14:20에 시작됨을 보여줄 수 있지만 어느 파일이 움직였는지는 보여주지 못한다. 그것은 행동에 관한 실제 공개이며, 내용을 읽는 것과는 다른 범주다.

TLS 가로채기에는 이미 신뢰하는 루트가 필요하다

검사 장비는 TLS를 깨지 않는다. 끝낸다. 클라이언트에게는 조직이 소유한 루트의 인증서가 응답하고, 두 번째 연결이 실제 목적지로 간다. 클라이언트가 이를 받아들이는 이유는 그 루트가 자신의 신뢰 저장소에 있기 때문이며, 관리된 노트북에 경고가 뜨지 않는 이유도 같다. 암호는 결코 깨지지 않았다. 종단점이 옮겨졌을 뿐이다.

그래서 이 구조는 증거를 남긴다. 제시된 체인의 발급자는 공개 CA가 아니라 조직에 속하며, 클라이언트는 특별한 도구 없이 그것을 볼 수 있다. 내부 루트에서 끝나는 체인은 가로채기의 서명이지 고장이 아니다.

VPN 채널이 HTTPS 세션이 아닌 이유

VPN 데이터 채널은 검사자에게 그런 발판을 주지 않는다. IKEv2와 WireGuard는 자체 핸드셰이크와 키 일정을 돌리며 끝낼 TLS가 없다. 반면 OpenVPN 은 제어 채널에 TLS를 변형된 형태로 빌린 뒤 데이터를 자기 방식으로 보호한다. HTTPS용으로 만들어진 프록시는 그 세션을 분석할 수 있는 대상으로 인식하지 않는다.

세션을 분석하지 못하는 장비도 그것을 떨어뜨릴 수는 있다. VPN 차단이 인증서 경고가 아니라 타임아웃처럼 보이는 이유이며, 예외를 넣어도 아무것도 달라지지 않는 이유다.

내 기계에서 확인하기

사이트가 제시하는 체인부터 시작하라. 브라우저의 사이트 정보는 발급자를 보여주고, 명령행은 요약 없이 같은 것을 보고한다.

openssl s_client -connect example.com:443 -servername example.com

다음으로 거부된 핸드셰이크와 필터링된 내부 트래픽을 카운터로 분리하라. 어떤 드롭 규칙보다 앞에 전송 포트를 기록하고 시도 후에 읽어라.

iptables -I OUTPUT 1 -p udp --dport 1194 -j LOG --log-prefix ovpn-out
iptables -vnL OUTPUT --line-numbers

바깥 소켓에 로그 줄이 없다면 핸드셰이크가 나가지 않은 것이므로 경로가 터널을 거부하는 것이다. 핸드셰이크가 끝났는데 일부 목적지만 실패한다면 터널은 동작하고 그 안의 정책은 동작하지 않는 것이다. 두 결과 모두 페이로드를 한 바이트도 읽을 필요가 없었다.

실제로 일어나는 읽기는 가장자리에 있다. 분할 터널은 내부 HTTPS를 기업 프록시에 넘기고, 고용주 소유의 집중 장치는 출구에서 모든 것을 노출한다. 무엇을 찾든 연결을 강제하려고 인증서 검증을 끄지 마라. 그 검사가 검사와 공격자를 가르는 유일한 것이다.

관련 글