This post was originally published on February 1, 2021.
VPN protocols define how a client and a server authenticate each other, establish a connection, and transmit data through the created tunnel. Plenty of VPN protocols are available, each made for its own unique environment and use case.
At ExpressVPN, we have developed our own protocol to best suit the needs of our customers, enabling them to stay connected all the time without having to accept trade-offs regarding privacy, speed, and convenience. Here, we outline some of the key design decisions we have made to deliver a more private, secure, and reliable VPN experience.
[Go behind the scenes of ExpressVPN. Sign up for the ExpressVPN Blog Newsletter.]
The Lightway protocol is a compact library of only around 1,000 lines of code that can be utilized by client applications on any platform or directly on the server. It does not implement its own cryptography but instead relies heavily on the well-established cryptography library wolfSSL, which has been extensively vetted and has a FIPS-ready library.
Lightway does not rely on external binaries (ready-compiled code) with configuration files, meaning the relationship between the VPN protocol, its implementation, and the client are more easily apparent. It carries no extra baggage in the form of unused or deprecated functionalities and in consequence is slim and easy to audit. It also allows developers to securely implement Lightway on a variety of platforms, both on the client and server.
The most immediately apparent benefit of Lightway is its short time-to-connect. The Lightway client can authenticate the server in a single round trip and establish the connection in three round trips. On UDP, the protocol uses D/TLS 1.2 (TLS for UDP), and in the event of interruption or inactivity, users can pick up right where they left off. D/TLS derives from TLS 1.2 and inherits all of its benefits, including replay protection. For TCP connections, Lightway uses TLS 1.3, and once TLS 1.3 supports UDP, Lightway will make use of it as soon as possible.
As connections aren’t terminated but instead idle, continuing from where a user left off is almost unnoticeable in many common situations, such as when waking a device from sleep or deactivating airplane mode after half a day. Even after changing mobile networks or your physical location, you will still be connected to the same ExpressVPN server.
After a certain period of inactivity, your connection is reset and your internal IP sent back to the queue, from where it will eventually be assigned to somebody else, ensuring that all connections have been terminated. (This “inactivity clock” resets with every packet sent and does not record log-in times or activity profiles.)
Keys are negotiated using Elliptic-Curve Diffie-Hellman (ECDH) every 15 minutes, or whenever your device changes networks, for instance as you move between Wi-Fi and mobile data. If ECDH fails, the software falls back to a classic Diffie-Hellman exchange.
The only two ciphers used in Lightway are AES-256-GCM and ChaCha20/Poly1305. Owing to the excellent hardware acceleration of AES available in most devices, Lightway will mostly default to this well-proven cipher. Only on lower-powered routers or entry-level mobile devices might ChaCha20 be used. Other protocols (such as SSL or older versions of TLS) and ciphers are not included in the client and server software, mitigating the risk of downgrade attacks.
Lightway by default does not obfuscate its traffic. To mitigate surveillance and censorship, the traffic can be modified to appear like other traffic by the client on top of the Lightway protocol. This is well suited for the way ExpressVPN users make use of their apps.
Lightway will be available as an open-source library and a reference client. This open-source reference client will allow users to make use of the ExpressVPN network without requiring closed-source software or unknown binaries, similar to how the OpenVPN manual configuration allows it today.
Read more: All ExpressVPN apps and browser extensions are in at least 17 languages
Comments
Apple must be a tricky SOB! March 21st, 2021 and still no Lightway for iOS…. 😧
when i got Express VPN on it halves my download speed bit annoying really
Of course your download speed slows down, connect a kilometre length of garden hose to your garden water tap, turn it to full on then drive to the open end of your garden hose an watch the trickle of water.
Technology is the same, the greater the distance between the connection point and exit point, there is a time factor involved, even though that factor is minutes, seconds, milliseconds, microseconds or nanoseconds, fast and quick are different.
ExpressVPN is a marvelous company who continually updates their software, thereby protecting everything I do on all of my devices.
Stops data creeping instantly with little effect on devices performance.
It’s like having a guard standing behind you when you open your device.
/express-vpn/”>Express VPN This is a very helpful site for anyone, each and every man can easily operate this site and can get benefistss
I was trying ChaCha20/Poly1305 over AES-256-GCM a few days before and noticed that ChaCha20 was disconnects and a tad slower data rate.
The computer is top notch.
Should it be like that?
@Lexie You mentioned TCP. But currently, Lightway for Windows only has UDP.
Please let me know when TCP for Lightway will be implemented. Thank you.
Awesome!
Thanks for all the hard work and new and beneficial technologies you bring outf or everyone.
Cool article but why not just simply embrace WireGuard as it’s becoming the standard?
WireGuard is open-source, has been extensively audited, has even less lines of code and it’s been implemented into the Linux kernel. It matches the criteria you praise wolfSSL for, which is hard to understand the choice to create a protocol from scratch rather than adopt and contribute to the leading one.
In other words, how is Lightway superior to the well-established and vetted WireGuard, so for the bit more informed user it doesn’t just seem like a marketing gimmick?
My thoughts exactly.
I’ve been using WireGuard VPN for a while now and it works like a charm on mobile devices, with all the benefits mentioned here.
It would be interesting to know the advantages over WireGuard.
I do not think I can answer your question but I would like to add that wolfSSL has also been integrated with WireGuard as well.
In Australia I connect to BBC iPlayer and ITV Hub without geo-blocking, WireGuard and Nord will not connect, neither will all other VPNs I tested, that is why I use the best VPN available and pay for quality with Express VPN, plus their support is the best available.