Как NordVPN реализовал функцию экстренного отключения от сети в своем приложении для iOS?

NordVPN предоставляет своим клиентам приложение, которое управляет VPN-подключением к их серверам. Приложение поставляется с функцией аварийного отключения, которая гарантирует, что весь сетевой трафик проходит через это соединение. Заявление NordVPN на их веб-сайте (выделено мной):

Мобильная версия Kill Switch, используемая в наших приложениях для Android и iOS (а также версия IKEv2 приложения для Mac), отключает общесистемный доступ в Интернет, если VPN-соединение внезапно отключается — таким образом, он защищает все приложения, не прерывая их. их. Он также попытается переподключить вас к последнему серверу, к которому вы подключались.

Как это возможно? Мне трудно поверить, что iOS API позволяет приложению получить доступ к такой важной общесистемной функции. Кто-нибудь может объяснить, как NordVPN это реализовал?

Ответы (2)

Переключатели уничтожения на iOS работают только с протоколом IKEv2.

IKEv2 обеспечивает устойчивость VPN-подключения. Когда VPN-клиент перемещается из одной беспроводной точки доступа в другую, он автоматически отключает все действия в Интернете при потере VPN-подключения и восстанавливает соединение при успешном подключении.

Мобильные пользователи особенно могут извлечь выгоду из такого протокола. Однако он не поддерживается на многих платформах, поскольку является довольно новым для VPN-сервисов.

У Apple очень строгий процесс получения разрешений, позволяющих приложению контролировать общесистемный доступ к сети. Вам необходимо связаться с ними и ответить на всевозможные вопросы, прежде чем вы получите права.

Это интересно, потому что я использовал приложение NordVPN без протокола IKEv2, и у меня был превосходный аварийный выключатель, а теперь, когда обновление до Catalina вынудило меня переключиться на приложение Apple store с включенным IKEv2 по умолчанию (потратил 2 часа с представителем пытался избежать этого, но старое приложение не удалось заставить работать), ну нет выключателя отключения! (вот почему я оказался на этой странице).

Скорее всего, они заставляют включить функцию «Подключение по запросу», доступную на iOS. Он будет направлять трафик только через VPN и в случае потери соединения пользователь просто не сможет выйти в интернет.