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.
Official Android 4+ cổng của giải pháp phổ biến strongSwan VPN.
# TÍNH NĂNG VÀ GIỚI HẠN #
* Sử dụng API VpnService đặc trưng bởi Android 4+. Các thiết bị của một số nhà sản xuất dường như thiếu hỗ trợ cho điều này - strongSwan VPN Client sẽ không hoạt động trên các thiết bị!
* Sử dụng giao thức trao đổi khóa giao thức IKEv2 (IKEv1 không được hỗ trợ)
* Sử dụng IPsec cho lưu lượng dữ liệu (L2TP không được hỗ trợ)
* Hỗ trợ đầy đủ kết nối thay đổi và di chuyển qua MOBIKE (hoặc xác nhận lại)
* Hỗ trợ tên người dùng / mật khẩu EAP xác thực (cụ thể là EAP-MSCHAPv2, EAP-MD5 và EAP-GTC) cũng như RSA / ECDSA xác thực khoá / giấy chứng nhận riêng để xác thực người dùng, EAP-TLS với giấy chứng nhận của khách hàng cũng được hỗ trợ
* Kết hợp RSA / ECDSA và xác thực EAP được hỗ trợ bằng cách sử dụng hai vòng thẩm định theo quy định tại RFC 4739
* Chứng chỉ máy chủ VPN đều được kiểm tra chống lại các chứng chỉ CA được cài đặt sẵn hoặc cài đặt bởi người sử dụng trên hệ thống. Các chứng chỉ CA hoặc máy chủ dùng để xác thực máy chủ cũng có thể được nhập khẩu trực tiếp vào ứng dụng.
* Giao thức IKEv2 phân mảnh được hỗ trợ nếu máy chủ VPN hỗ trợ nó (strongSwan làm như vậy kể từ 5.2.1)
* Split-tunneling cho phép gửi lưu lượng nhất định thông qua VPN và / hoặc loại trừ giao thông cụ thể từ nó
* Mỗi ứng dụng VPN cho phép hạn chế kết nối VPN cho các ứng dụng cụ thể, hoặc loại trừ chúng từ việc sử dụng nó
* Việc thực hiện IPsec hiện hỗ trợ AES-CBC, AES-GCM, ChaCha20 / Poly1305 và các thuật toán SHA1 / SHA2
* Mật khẩu hiện đang được lưu trữ như dạng cleartext trong cơ sở dữ liệu (chỉ khi lưu trữ với một hồ sơ)
* Profile VPN có thể được nhập khẩu từ các tập tin (đây là lý do duy nhất lý do tại sao các ứng dụng yêu cầu android.permission.READ_EXTERNAL_STORAGE)
Các chi tiết và một changelog có thể được tìm thấy trên wiki của chúng tôi: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient
# VÍ DỤ CẤU HÌNH MÁY CHỦ #
cấu hình ví dụ máy chủ có thể được tìm thấy trên wiki của chúng tôi: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient#Server-Configuration
Xin lưu ý rằng tên máy chủ (hoặc địa chỉ IP) cấu hình với một cấu hình VPN trong ứng dụng * phải * chứa trong chứng chỉ máy chủ như mở rộng SubjectAltName.
# PHẢN HỒI #
Xin vui lòng gửi báo cáo lỗi và yêu cầu tính năng trên wiki của chúng tôi: https://wiki.strongswan.org/projects/strongswan/issues
Nếu bạn làm như vậy, xin vui lòng bao gồm thông tin về thiết bị của bạn (nhà sản xuất, mô hình, phiên bản hệ điều hành vv).
Các file log được viết bởi các dịch vụ trao đổi quan trọng có thể được gửi trực tiếp từ bên trong ứng dụng.