Google Inc. integrated VPN support code into the main Android codebase . The WireGuard code has been moved to a modification , developed for the upcoming release of the Android 12 platform, from the main Linux kernel , which initially contained WireGuard. Kernel-level support for WireGuard .
To date, the WireGuard developers for Android a mobile application that has already been by Google from the Google Play catalog due to a link to a donation page on the project's website, which violated payment processing rules (donations are marked as unacceptable if collected by an organization not specially registered as a nonprofit).
Let us remind you that the WireGuard VPN is built on modern encryption methods, providing very high performance, simplicity of use, and a lack of complexity, and has proven itself in several large deployments handling significant traffic volumes. The project has been evolving since 2015, has passed an audit and applied encryption methods. WireGuard uses the concept of routing by encryption keys, which implies binding a private key to each network interface and applying public keys for linking.
Key exchange for establishing a connection is done similarly to SSH. The Noise_IK mechanism is used for key agreement and connection without starting a separate user-space daemon , similar to maintaining authorized_keys in SSH. Data is transmitted via encapsulation in UDP packets. Support is provided for changing the VPN server's IP address (roaming) without breaking the connection, with automatic client reconfiguration.
For encryption the stream cipher and the message authentication algorithm (MAC) , developed by Daniel Bernstein (), Tanja Lange
(Tanja Lange) and Peter Schwabe (Peter Schwabe). ChaCha20 and Poly1305 are presented as faster and safer alternatives to AES-256-CTR and HMAC, with software implementation allowing fixed execution time without requiring specialized hardware support. For generating a shared secret key, the elliptic curve Diffie-Hellman protocol is used, implemented in , also proposed by Daniel Bernstein. The hashing algorithm used is .
Source: opennet.ru
