Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for VPN Proxy #544

Closed
wants to merge 1 commit into from
Closed

Added support for VPN Proxy #544

wants to merge 1 commit into from

Conversation

Akash-Ramjyothi
Copy link
Member

The VPN proxy tunnel is established between the client app and the server when the "VpnProxyTunnel.java" is initialized and its VPN service has been added on the manifests of the Server Files while accessing them over the HDA which is always set On when the user authenticates and accesses the HDA.

@cpg
Copy link
Member

cpg commented Jun 29, 2020

We need rationale of why this is needed, and how it's done, the reliability of the service and a diagram of how this is happening in what you propose.

@Akash-Ramjyothi Akash-Ramjyothi linked an issue Jun 29, 2020 that may be closed by this pull request
@Akash-Ramjyothi
Copy link
Member Author

Akash-Ramjyothi commented Jun 30, 2020

Fixes #547

  • How it's Done:
    The VPN Tunnel works on the protocol "OpenVPN" which is a newer version of SSTP - Secure Socket Tunneling Protocol. This is implemented through the ToyVpn Client Service. It is done when a connection is established between the client app and the server that surrounds the network data like a tunnel, encrypting the data packets that the app sends. Tunneling is the process of encrypting data and keeping it separate from other traffic on the internet. It enables a VPN to protect the confidentiality and integrity of data as they travel over the public network. The VPN proxy tunneling protocol uses AES 256-bit encryption to protect data packets. The protocol is configurable on Windows, Mac, Android, and iOS, although third-party client service (ToyVpn) is required to set up the protocol.

  • Reliability of the Service:
    Among all the tunneling protocols, OpenVPN is the most highly recommended. OpenVPN works with systems like FreeBSD, NetBSD, OpenBSD, and Solaris. Using VPN alone may not be enough to protect privacy and that is the reason VPN service providers encrypt the data and receive when connected. When this is done, it scrambles so that snoops can't intercept and decipher it. Its open-source code, stability, strong encryption, and ability to bypass blocking software make it the finest tunneling protocol currently available.

  • Pictorial Representation:
    Regular Connection with no VPN:
    novpn

Traditional VPN:
tradvpn

VPN Tunnel Implemented:
what-is-vpn-diagram

  • How this is Happening:
    It works by routing your device’s internet connection through your chosen VPN rather than your internet service provider (ISP) so that when the data is transmitted to the internet, it comes from the VPN rather than the device. The VPN acts as an intermediary of sorts to connect to the internet, thereby hiding the IP address – the string of numbers the ISP assigns to the device. And if the data is somehow intercepted, it will be unreadable until it reaches its final destination.
    When it connects to a VPN, it is through a secure tunnel where the data is encoded. This means that the data is transformed into an unreadable code as it travels between the device and the server.

@chirag-jn
Copy link
Member

How do we exactly decide if we have to change the connection mode to VPN? Or is it like it will always connect via VPN? In my opinion, that will unnecessarily throttle our connection with the server.

@cpg cpg added on hold Hold on there, buddy! and removed enhancement labels Jul 29, 2020
@cpg cpg closed this Jul 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
on hold Hold on there, buddy!
Projects
None yet
3 participants