아이폰 VPN 잠금은 정책이지 프로토콜이 아니다
IKEv2는 터널을 유지하지만 터널이 끊길 때 아이폰이 무엇을 보내는지는 결정하지 않는다. 제공업체에 정책과 예외를 물어야 한다.
VPN 아이콘은 연결됨을 보여주지만 네트워크가 바뀌는 동안 터널이 잠시 끊기고, 차단되었어야 할 트래픽이 셀룰러로 나간다. 인터페이스는 그 틈을 알리지 않았다. 당신이 믿고 있던 기능은 클라이언트와 플랫폼의 정책이며, 설정에 있는 프로토콜 이름은 그 짧은 순간 무슨 일이 일어나는지 설명하지 않는다.
잠금을 IKEv2나 On Demand의 속성이 아니라 상태에 관한 계약으로 설명해야 한다.
증상: 아이콘은 연결됨이라고 말한다
아이콘은 클라이언트가 자기 상태를 보는 관점을 반영하며, 그 관점은 재연결에 걸리는 시간만큼 현실보다 뒤처질 수 있다. 캐시된 페이지, 빠른 재연결, 상태 새로고침은 모두 그 간격을 감춘다. 물어야 할 질문은 아이콘이 초록색이었느냐가 아니라 터널이 없는 동안 기기가 무엇을 허용했느냐다. 같은 지연은 앱 스크린샷이 왜 그렇게 약한 증거인지도 설명한다. 그것은 전환이 아니라 상태를 기록한다.
그 질문은 정책이 정의할 때만 답이 있다.
프로토콜이 실제로 유지하는 것
IKEv2는 인증된 IPsec 관계를 유지하고 갱신하며, 이동성 기능은 주소가 바뀐 뒤 이를 복구하는 데 도움을 준다. 그것은 터널의 수명 주기에 관한 진술이다. 그 틈에 아이폰이 다른 트래픽을 보낼 권한에 대해서는 아무 말도 하지 않는다. 그 권한은 키 교환이 아니라 플랫폼과 클라이언트에 속하기 때문이다. 일 초 이내에 재연결하는 기기도 창은 있었고, 흥미로운 동작은 바로 그 창에 있다.
On Demand도 마찬가지로 활성화 동작에 대한 설명일 뿐 보편적인 차단 보장이 아니다.
플랫폼이 개발자에게 제공하는 것
Apple의 Network Extension은 트래픽 범위 제어를 제공하며, 라우팅 안내서는 모든 네트워크 포함 동작을 일반 포함 경로와 구분하고 시스템 예외를 나열한다. 감독되는 Always On 배포 모델도 있으며, 개인용 앱의 자동 연결 설정과는 별개다. 특정 앱이 그중 무엇을 쓰는지는 앱의 속성이지 그 앱이 말하는 프로토콜의 속성이 아니다.
토글의 이름은 앱이 어느 API를 호출하는지에 대한 증거가 아니다.
기능을 계약으로 읽어라
제공업체에 다섯 가지 상태를 명시하도록 요청해야 한다. 최초 활성화, 예기치 않은 터널 손실, 의도적 연결 해제, 앱 종료, 기기 재시작이다. 시스템 예외와 의도적인 LAN 접근이 있다면 그 목록 옆에 둔다. 그런 다음 기능이 선택 사항인지, 관리에 의해 강제되는지, 클라이언트 모드에 조건부인지 물어야 한다 — 사용자가 고르는 일시 중지와 조직이 강제하는 잠금은 다른 제품이기 때문이다. 그 다섯 가지 답을 배포 기록에 적어야 한다. 다음 검토자가 정확히 그 질문을 할 것이다.
예기치 않은 손실에는 차단하지만 의도적 연결 해제에는 차단하지 않는 기능은 일관된 설계다. 다만 마케팅 페이지가 설명하던 것은 아니다.
틈을 시험하는 방법
관심 있는 앱과 주소 체계에서 무해한 트래픽으로 한 번에 하나의 전환을 시험해야 한다. 틈 동안 무엇이 허용되었는지 확인하고, 이후 아이콘이 무엇을 보여주었는지는 보지 않는다. 결과 옆에 클라이언트 버전과 정책을 기록해야 한다. 둘 다 바뀌고 둘 다 전화기 설정 화면에서는 보이지 않기 때문이다. 실제 틈과 느린 아이콘을 구분하는 유일한 방법이다.
그 답이 규정 준수에 중요하다면 제품 라벨에서 추론하지 말고 서면으로 요청해야 한다.