De technische details
Nieuwsgierig naar de protocollen, primitieven en andere details waarop Mullvad VPN gebouwd is? Alstublieft!
VPN-protocollen in de app
We ondersteunen twee protocollen voor de VPN-tunnel, OpenVPN en WireGuard:
- We beperken OpenVPN tot TLS 1.3 (als besturingskanaal) en AES-256-GCM (als gegevenskanaal). Dit is geïmplementeerd in OpenSSL.
- Voor WireGuard implementeren we de standaard Linux-kernel wanneer beschikbaar. Anders gebruiken we wireguard-go.
App-API-verbinding
De app gebruikt TLS 1.2 of 1.3, geïmplementeerd in Rustls* om de communicatie met de API te versleutelen. Dit biedt twee functies:
- De verbinding gebruikt certificate pinning om MitM-aanvallen te voorkomen.
- Om DNS-spoofing te omzeilen, maakt de app geen gebruik van DNS om het IP-adres voor de API te krijgen.
*Op iOS wordt de standaard TLS gebruikt die door URLSession wordt ondersteund Appfirewall en -beveiliging
De app voorkomt lekken en maakt gebruik van een kill switch-functie door te integreren met de firewall van het systeem (WFP op Windows, nftables op Linux en PF op macOS). Meer informatie op onze GitHub-pagina
Apparchitectuur
Om de hoeveelheid code te beperken die als bevoorrechte gebruiker uitgevoerd wordt, wordt de app in twee delen opgesplitst:
- niet-bevoorrechte frontends (inclusief een CLI))
- een bevoorrechte systeemservice die op de achtergrond uitgevoerd wordt en de beveiliging van de tunnels en het apparaat bewaakt.
Meer informatie op onze GitHub-pagina Servers
We hebben op al onze servers standaardconfiguraties en prioriteitsvolgordes ingevoerd voor de versleuteling om de sterkst beschikbare versleuteling te bieden voor elk tunnelprotocol.
OpenVPN-servers
Onze OpenVPN-servers hebben de volgende eigenschappen:
WireGuard-servers
WireGuard is eigenzinnig en biedt slechts één set cryptografische primitieven. Ga naar de WireGuard-website voor details.
Bridge-servers
Onze bridges maken verbinding met onze website, API en OpenVPN- en WireGuard-servers mogelijk op locaties waar toegang is geblokkeerd. Onze configuraties maken het lastig of onmogelijk om hierover toegang te krijgen tot iets dat niet versleuteld is, zodat het weinig uitmaakt welke versleuteling wordt gebruikt.
Serverblokkering
Om onszelf, onze klanten en de kwaliteit van onze dienstverlening te beschermen, behouden we ons het recht voor om elk IP-adres of elke poort te blokkeren. We blokkeren altijd uitgaand verkeer naar de volgende poorten:
- poort 25 - om spam te vermijden
- poorten 137, 138, 139, 445 - om klanten te beschermen tegen een Microsoft SMB/CIFS-beveiligingsprobleem
- poorten 1900 en 2869 - om klanten te beschermen tegen schadelijke UPnP-configuratie.