On the Design and Implementation of Structured P2P VPNs David Isaac Wolinsky $^{∗}$, Linton Abraham$^{•}$, Kyungyong Lee$^{∗}$, Yonggang Liu$^{∗}$, Jiangyan Xu $^{∗}$, P. Oscar Boykin$^{∗}$, Renato Figueiredo∗ $^{∗}$University of Florida, $^{•}$Clemson University Centralized Virtual Private Networks (VPNs) when used in distributed systems have performance constraints as all traffic must traverse through a central server. In re- cent years, there has been a paradigm shift towards the use of P2P in VPNs to alleviate pressure placed upon the central server by allowing participants to communicate directly with each other, relegating the server to handling session management and supporting NAT traversal using relays when necessary. Another, less common, approach uses unstructured P2P systems to remove all centraliza- tion from the VPN. These approaches currently lack the depth in security options provided by other VPN solu- tions, and their scalability constraints have not been well studied. The purpose of these VPNs is to connect large sets of machines through virtual routers to a virtual WAN envi- ronment. Abstract arXiv:1001.2575v1 [cs.NI] 14 Jan 2010 In this paper, we propose and implement a novel VPN architecture, which uses a structured P2P system for peer discovery, session management, NAT traversal, and auto- nomic relay selection and a central server as a partially- automated public key infrastructure (PKI) via a user- friendly web interface. Our model also provides the first design and implementation of a P2P VPN with full tun- neling support, whereby all non-P2P based Internet traf- fic routes through a trusted third party and does so in a way that is more secure than existing full tunnel tech- niques. To verify our model, we evaluate our reference implementation by comparing it quantitatively to other VPN technologies focusing on latency, bandwidth, and memory usage. We also discuss some of our experiences with developing, maintaining, and deploying a P2P VPN. A Virtual Private Network (VPN) provides the illusion of a Local Area Network (LAN) spanning a wide area net- work (WAN) infrastructure by creating secure and au- thenticated communication links amongst participants. Common uses of VPNs include secure access to enter- prise network resources from remote/insecure locations, connecting distributed resources from multiple sites, and establishing virtual LANs for multiplayer video games over the Internet. In the context of this paper, we fo- cus on VPNs that provide connectivity amongst individ- ual resources each configured with VPN software. Our work is significantly different in scope from approaches that define VPNs “as the ‘emulation of a private Wide Area Network (WAN) facility using IP facilities’ (includ- ing the public Internet or private IP backbones).” [20]. 1 1 Introduction Our system supports the well-known PKI-based secu- rity model to secure VPN links; for improved usability, we employ a semi-automated PKI managed through a group-based web interface. The interface allows VPN group managers to review applications into the group and remove malicious users. Furthermore, we use the boot- strapping of a private P2P system off an existing pub- lic P2P system to create a trusted P2P system that spans only the members of a VPN group providing secure P2P routing and distributed hash table (DHT) storage. We explore the problem of providing full tunneling to P2P VPNs and provide a working solution that supports mul- tiple gateways in a single VPN. We provide mechanisms that allow peers to establish NAT tunneling two-hop re- lay links based upon node stability (uptime) and proxim- ity (latency) when direct connectivity is unavailable (e.g. Among existing VPN approaches [42, 26, 30, 19, 10, 36], there is not a single solution that provides the follow- ing in an integrated manner: no dependence on central- ized server(s) for creation, maintenance and tear-down of VPN links; completely secure full tunneling of Internet traffic; decentralized relay selection, where any peer can potentially be a relay; and user-friendly, intuitive mem- bership management in a VPN. The architecture described in this paper addresses a usage scenario where participants desire VPN connectiv- ity without incurring the complexity or management cost of traditional VPNs. For instance, in a small/medium business (SMB) environment, it is often desirable to in- terconnect desktops and servers across distributed sites, provide authenticated access and encrypted traffic to en- terprise networked resources, and secure Internet traffic from mobile users at untrusted locations. Another exam- ple is collaborative academic environments linking in- dividuals belonging to a virtual organization spanning multiple institutions, where coordinated configuration of network infrastructure across different sites is often im- practical. Existing approaches suffer from one or more limitations that hinder their applicability in these scenar- ios: centralized approaches (e.g. OpenVPN [42]) incur the management cost of dedicated infrastructures. Al- ternative P2P-based approaches (e.g. Hamachi [26]) are vulnerable to man-in-the-middle attacks if session man- agement is handled by an external provider; furthermore, they lack the support to tunnel traffic to Internet hosts through the VPN.