Determinación de la aplicación de origen del tráfico IP en NETunnelProviderManager

Estoy usando NETunnelProviderManager en "enrutamiento por IP de destino" y puedo obtener tráfico IP de varias aplicaciones en el dispositivo.

El desafío que tengo es que necesito determinar de qué aplicación proviene cada paquete para poder filtrar y bloquear el tráfico según sea necesario, para poder evitar que se cree una aplicación no autorizada para acceder a una ubicación interna. No me es factible usar el modo "por aplicación" de NETunnelProviderManager ya que no estoy usando MDM.

Parece que si tuviera acceso a la tabla TCB del sistema (o acceso a la tabla TCB de cada proceso) podría hacerlo, pero parece que iOS no publica esta información y tampoco he encontrado ninguna API privada para obtener esta información en un dispositivo sin jailbreak.

¿Algunas ideas?

¿Voy a suponer que leíste esto? desarrollador.apple.com/reference/networkextension
Sí, he revisado las especificaciones y la documentación en detalle. No vi nada sobre la determinación de la aplicación de origen del tráfico IP cuando no se usa MDM. Había una API para obtener el ID de la aplicación de la aplicación de origen al usar el proxy de la aplicación, pero eso es solo para MDM. Si me he perdido algo por favor señalarlo.

Respuestas (1)

Dice específicamente en las especificaciones de NETunnelProvidermanager, "La única forma de configurar VPN "por aplicación" es con MDM...", por lo que en términos de la forma principal de cumplir con todas las especificaciones de Apple , y al menos en el contexto de Apple Stack Exchange , parece que esto no sería posible. Espero que alguien más, o yo, podamos encontrar una buena solución para usted, si no funciona.

Sin embargo, un consejo: se explica directamente debajo de la configuración de VPN, en la guía de especificaciones, cómo configurar la VPN bajo demanda, y si su requisito no es que la VPN esté "siempre encendida", es posible que pueda cumplir con sus requisitos específicos. objetivo simplemente creando los certificados necesarios.

Es posible que prefiera crear los archivos .mobilconfig a mano una vez que vea las opciones y la sintaxis disponibles, pero es posible que solo pueda generar exactamente los certificados que necesita, por ejemplo, la VPN, usando Apple Configurator sin tener que tomar el control por completo. el dispositivo.

No creo que su sugerencia para configurar la VPN bajo demanda funcione, ya que necesito tener la VPN encendida todo el tiempo, y también necesito admitir varias aplicaciones que se ejecutan simultáneamente (una aplicación en primer plano mientras otra se ejecuta en segundo plano, etc. ). Necesito una solución de producción completa y, lamentablemente, los métodos que solo funcionan en las pruebas no son útiles. Por ejemplo, el modo de probar la VPN ver-app sin un servidor MDM real usando un archivo de configuración especial no ayuda a encontrar una solución de producción.
Actualicé la respuesta, pero aún no hay nada que cambiar. También puede actualizar la pregunta, las cosas que comentó aquí no estaban claras en la pregunta: requiere vpn siempre activo, esto es para producción, no para pruebas, etc.
Lo que quise decir es que simplemente para mis casos de uso necesito la VPN todo el tiempo, y necesito una solución que pueda implementar para los clientes (a través de la tienda de aplicaciones), por lo que cualquier cosa que sea solo de prueba no funcionará. Necesito algo que funcione en entornos de producción.