iOS no deja que una app se invente su propia VPN. Ofrece dos puertas, ambas en el framework Network Extension de Apple: el cliente VPN integrado en el sistema, que habla IKEv2 e IPSec, y los proveedores de túnel de paquetes, extensiones que una app incluye para transportar otros protocolos. SSHive usa las dos. Un perfil IKEv2 o IPSec se entrega al cliente del sistema, con su contraseña guardada como referencia del llavero que iOS lee al conectar. Un perfil OpenVPN corre en la extensión de túnel propia de SSHive, un proceso aparte que iOS arranca y gestiona.
Por eso la VPN es de verdad: iOS dirige el tráfico hacia ella a nivel de sistema, aparece en los ajustes de VPN de iOS y funciona con independencia de la ventana de SSHive. Por eso también SSHive se preocupa de desconectarla. Una VPN levantada para una sesión se cierra cuando esa sesión termina, y si sales de la app durante una sesión de escritorio remoto que levantó una VPN, SSHive termina las dos, para que ningún túnel se quede conectado sin que lo sepas.
La secuencia en una guardia: llega la alerta y abres el perfil SSH guardado. SSHive comprueba si el servidor responde en la red actual; desde casa no lo hace, así que se levanta la VPN y luego la sesión SSH se abre a través de ella. Investigas, cierras la sesión y la VPN cae con ella.
En cuanto a los secretos, la contraseña de la VPN y la clave compartida de IPSec se guardan en el llavero de iOS, donde el sistema puede usarlas sin mostrárselas a nadie. El archivo .ovpn se conserva en los datos de la app, en el dispositivo. No se instala ningún perfil de configuración .mobileconfig en el iPhone.