Détails techniques
Vous êtes curieux de connaître les protocoles, les primitives et les autres détails sur lesquels repose le VPN Mullvad ? Voilà !
Protocoles VPN dans l'application
Nous prenons en charge deux protocoles pour le tunnel VPN, OpenVPN et WireGuard :
- Nous limitons OpenVPN à TLS 1.3 (pour le canal de contrôle) et AES-256-GCM (pour le canal de données). Ceci est implémenté dans OpenSSL.
- Pour WireGuard, nous utilisons l'implémentation standard du noyau Linux lorsqu'elle est disponible. Sinon, nous utilisons le wireguard-go.
Connexion à l'API de l'application
L'application utilise TLS 1.2 ou 1.3, mis en œuvre dans Rustls*, pour chiffrer la communication avec l'API. Cela offre deux fonctionnalités :
- La connexion utilise l'épinglage des certificats pour prévenir les attaques MitM.
- Pour éviter l'usurpation de DNS, l'application n'utilise pas de DNS pour obtenir l'IP de l'API.
*Sur iOS, le TLS par défaut pris en charge par URLSession est utilisé Pare-feu et sécurité des applications
L'application empêche les fuites et active la fonctionnalité d'interrupteur en s'intégrant au pare-feu du système (WFP sous Windows, nftables sous Linux et PF sous macOS). Apprenez-en plus sur notre page GitHub
Architecture de l'application
Pour limiter la quantité de code exécuté en tant qu'utilisateur privilégié, l'application est divisée en deux parties :
- des interfaces non privilégiées (y compris une CLI))
- un service système privilégié qui fonctionne en arrière-plan et supervise les tunnels et la sécurité des appareils.
Apprenez-en plus sur notre page GitHub Serveurs
Dans tous nos serveurs, nous avons spécifié des configurations par défaut et des ordres de priorité pour le chiffrement afin de fournir le chiffrement le plus fort disponible pour chaque protocole de tunnel.
Serveurs OpenVPN
Nos serveurs OpenVPN présentent les caractéristiques suivantes :
Serveurs WireGuard
WireGuard est conservateur et ne propose qu'un seul ensemble de primitives cryptographiques. Consultez le site Web de WireGuard pour plus de détails.
Serveurs bridge
Nos passerelles facilitent la connexion à notre site web, à notre API et aux serveurs OpenVPN et WireGuard dans les endroits où l'accès à ces derniers est bloqué. Nos configurations font qu'il est difficile, voire impossible, d'accéder à quoi que ce soit de non chiffré par leur intermédiaire, de sorte que le type de chiffrement utilisé a peu d'importance.
Blocage de serveur
Pour nous protéger, protéger nos clients et assurer la qualité de notre service, nous nous réservons le droit de bloquer toute adresse IP ou port. Nous bloquons en permanence le trafic sortant vers les ports suivants :
- port 25 - pour éviter le spam
- ports 137, 138, 139, 445 - pour protéger les clients contre un problème de sécurité de Microsoft SMB/CIFS
- ports 1900 et 2869 - pour protéger les clients contre les configurations UPnP malveillantes.