Sur le principe, WireGuard est un protocole VPN pair-à-pair décentralisé. Plutôt que de recourir impérativement à un serveur, WireGuard permet d’ouvrir directement un tunnel entre deux machines. Un « serveur » WireGuard est une machine simple sur laquelle les configurations pour les connexions avec plusieurs pairs sont enregistrées.
Avec WireGuard, la connexion est établie de façon similaire à Secure Shell(SSH) : avec ce protocole, les utilisateurs (appelés « pairs ») génèrent une clé publique et se l’échangent. Cette clé permet aux pairs de s’authentifier mutuellement et de chiffrer les paquets de données pour l’autre interlocuteur.
En dehors de la génération de la clé cryptographique, différents paramètres réseau doivent être paramétrés sur chaque pair (à ce sujet, voir notre guide sur la mise en place de WireGuard disponible ci-dessous). Pour permettre l’échange de données, les plages d’adresses IP autorisées sont associées à la clé cryptographique sur les pairs. Les paquets ne provenant pas des plages d’adresses autorisées sont rejetés. Avec WireGuard, l’envoi des données a lieu via le User Datagram Protocol (UDP).
Sur la machine d’un pair, la configuration est réalisée à l’aide de l’outil de commande de WireGuard ainsi que d’autres outils intégrés par défaut à Linux. Bien que la configuration du logiciel soit considérée comme relativement simple, WireGuard sert uniquement de base ; une application basée sur ce protocole peut aider l’utilisateur lors des différentes étapes de la configuration et de l’établissement de la connexion. Les utilisateurs des services VPN commerciaux peuvent ainsi profiter des avantages de ce protocole VPN moderne même sans ligne de commande.