Puerto oficial de Android de la popular solución VPN strongSwan.
# CARACTERÍSTICAS Y LIMITACIONES #
* Utiliza la API VpnService presentada por Android 4+. Los dispositivos de algunos fabricantes parecen no ser compatibles con esto: ¡el cliente VPN strongSwan no funcionará en estos dispositivos!
* Utiliza el protocolo de intercambio de claves IKEv2 (IKEv1 *no* es compatible)
* Utiliza IPsec para el tráfico de datos (L2TP *no* es compatible)
* Soporte completo para conectividad y movilidad modificada a través de MOBIKE (o reautenticación)
* Admite autenticación EAP de nombre de usuario/contraseña (es decir, EAP-MSCHAPv2, EAP-MD5 y EAP-GTC), así como autenticación de certificado/clave privada RSA/ECDSA para autenticar usuarios, también se admite EAP-TLS con certificados de cliente.
* La autenticación combinada RSA/ECDSA y EAP se admite mediante el uso de dos rondas de autenticación como se define en RFC 4739.
* Los certificados del servidor VPN se verifican con los certificados de CA preinstalados o instalados por el usuario en el sistema. Los certificados de CA o de servidor utilizados para autenticar el servidor también se pueden importar directamente a la aplicación.
* La fragmentación IKEv2 es compatible si el servidor VPN la admite (strongSwan lo hace desde 5.2.1)
* El túnel dividido permite enviar solo cierto tráfico a través de la VPN y/o excluir tráfico específico de la misma.
* La VPN por aplicación permite limitar la conexión VPN a aplicaciones específicas o excluirlas de su uso.
* La implementación de IPsec actualmente admite los algoritmos AES-CBC, AES-GCM, ChaCha20/Poly1305 y SHA1/SHA2.
* Las contraseñas se almacenan actualmente como texto sin cifrar en la base de datos (solo si se almacenan con un perfil)
* Los perfiles VPN se pueden importar desde archivos
* Admite configuraciones administradas a través de la gestión de movilidad empresarial (EMM)
Puede encontrar detalles y un registro de cambios en nuestros documentos: https://docs.strongswan.org/docs/5.9/os/androidVpnClient.html
# PERMISOS #
* READ_EXTERNAL_STORAGE: permite importar perfiles VPN y certificados CA desde almacenamiento externo en algunas versiones de Android
* QUERY_ALL_PACKAGES: Requerido en Android 11+ para seleccionar aplicaciones para ex-/incluir en perfiles VPN y el caso de uso opcional EAP-TNC
# EJEMPLO DE CONFIGURACIÓN DEL SERVIDOR #
Se pueden encontrar ejemplos de configuraciones de servidor en nuestros documentos: https://docs.strongswan.org/docs/5.9/os/androidVpnClient.html#_server_configuration
Tenga en cuenta que el nombre de host (o dirección IP) configurado con un perfil VPN en la aplicación *debe* estar contenido en el certificado del servidor como extensión SubjectAltName.
# COMENTARIO #
Publique informes de errores y solicitudes de funciones a través de GitHub: https://github.com/strongswan/strongswan/issues/new/choose
Si lo hace, incluya información sobre su dispositivo (fabricante, modelo, versión del sistema operativo, etc.).
El archivo de registro escrito por el servicio de intercambio de claves se puede enviar directamente desde la aplicación.