Official Android 4+ port of the popular strongSwan VPN solution.
# FEATURES AND LIMITATIONS #
* Uses the VpnService API featured by Android 4+. Devices by some manufacturers seem to lack support for this - strongSwan VPN Client won't work on these devices!
* Uses the IKEv2 key exchange protocol (IKEv1 is not supported)
* Uses IPsec for data traffic (L2TP is not supported)
* Full support for changed connectivity and mobility through MOBIKE (or reauthentication)
* Supports username/password EAP authentication (namely EAP-MSCHAPv2, EAP-MD5 and EAP-GTC) as well as RSA/ECDSA private key/certificate authentication to authenticate users, EAP-TLS with client certificates is also supported
* Combined RSA/ECDSA and EAP authentication is supported by using two authentication rounds as defined in RFC 4739
* VPN server certificates are verified against the CA certificates pre-installed or installed by the user on the system. The CA or server certificates used to authenticate the server can also be imported directly into the app.
* IKEv2 fragmentation is supported if the VPN server supports it (strongSwan does so since 5.2.1)
* Split-tunneling allows sending only certain traffic through the VPN and/or excluding specific traffic from it
* Per-app VPN allows limiting the VPN connection to specific apps, or exclude them from using it
* The IPsec implementation currently supports the AES-CBC, AES-GCM, ChaCha20/Poly1305 and SHA1/SHA2 algorithms
* Passwords are currently stored as cleartext in the database (only if stored with a profile)
* VPN profiles may be imported from files (this is the only reason why the app requests android.permission.READ_EXTERNAL_STORAGE)
Details and a changelog can be found on our wiki: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient
# EXAMPLE SERVER CONFIGURATION #
Example server configurations may be found on our wiki: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient#Server-Configuration
Please note that the host name (or IP address) configured with a VPN profile in the app *must be* contained in the server certificate as subjectAltName extension.
# FEEDBACK #
Please post bug reports and feature requests on our wiki: https://wiki.strongswan.org/projects/strongswan/issues
If you do so, please include information about your device (manufacturer, model, OS version etc.).
The log file written by the key exchange service can be sent directly from within the application.
Oficial Android 4+ porta da solução strongSwan VPN popular.
# CARACTERÍSTICAS E LIMITAÇÕES #
* Usa o API VpnService caracterizado por 4+ Android. Dispositivos por alguns fabricantes parecem não ter suporte para isso - strongSwan VPN Client não funcionará nesses dispositivos!
* Usa o protocolo de troca de chaves IKEv2 (IKEv1 não é suportado)
* Usa IPsec para tráfego de dados (L2TP não é suportado)
* Suporte completo para conectividade mudado e mobilidade através MOBIKE (ou reautenticação)
* Suporta nome de usuário / senha de autenticação EAP (nomeadamente EAP-MSCHAPv2, EAP-MD5 e EAP-GTC), bem como RSA / ECDSA autenticação de chave / certificado privado para autenticar usuários, EAP-TLS com certificados de cliente também é suportado
* Combinada RSA / ECDSA e autenticação PAA é suportada por meio de duas rondas de autenticação, tal como definido no RFC 4739
* Certificados de servidor VPN são verificados contra os certificados de AC pré-instalados ou instalados pelo usuário no sistema. Os certificados de CA ou servidor utilizados para autenticar o servidor também podem ser importados diretamente para o aplicativo.
* IKEv2 fragmentação é suportado se o servidor VPN suporta (strongSwan faz isso desde 5.2.1)
* Split-tunneling permite o envio de apenas alguns tráfego através da VPN e / ou excluindo o tráfego específico a partir dele
* Por app VPN permite limitar a conexão VPN para aplicações específicas, ou excluí-los de usá-lo
* A implementação IPsec suporta atualmente o AES-CBC, AES-GCM, ChaCha20 / Poly1305 e algoritmos SHA1 / SHA2
* senhas são actualmente armazenados como texto limpo no banco de dados (apenas se armazenada com um perfil)
* perfis de VPN podem ser importados de arquivos (esta é a única razão pela qual o aplicativo solicita android.permission.READ_EXTERNAL_STORAGE)
Detalhes e um changelog podem ser encontrados em nosso wiki: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient
EXEMPLO # # SERVIDOR CONFIGURAÇÃO
configurações do servidor exemplo pode ser encontrado em nosso wiki: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient#Server-Configuration
Por favor note que o nome do host (ou endereço IP) configurado com um perfil VPN no aplicativo * deve ser * contidas no certificado de servidor como extensão subjectAltName.
# COMENTÁRIOS #
Por favor envie avisos de bugs e solicitações de recursos em nosso wiki: https://wiki.strongswan.org/projects/strongswan/issues
Se você fizer isso, inclua informações sobre o dispositivo (fabricante, modelo, versão do SO etc.).
O arquivo de log escrito pelo serviço de troca de chaves podem ser enviados diretamente de dentro do aplicativo.