技术事项
想要了解构建 Mullvad VPN 的协议、原语和其他详细信息? 请继续阅读!
应用中的 VPN 协议
我们支持两种 VPN 隧道协议,OpenVPN 和 WireGuard:
- 我们将 OpenVPN 限制为 TLS 1.3(用于控制通道)和 AES-256-GCM(用于数据通道)。 这在 OpenSSL 中实现。
- 对于 WireGuard,我们主要使用标准 Linux 内核实现。 其他情况使用 wireguard-go。
应用 API 连接
应用使用在 Rustls* 中实现的 TLS 1.2 或 1.3 来加密与 API 的通信。 这提供了两个功能:
- 连接使用证书锁定来防止 MitM 攻击。
- 为了规避 DNS 欺骗,应用不使用 DNS 来获取 API 的 IP。
*在 iOS 上,使用 URLSession 支持的默认 TLS 应用防火墙和安全
应用架构
服务器
我们在所有服务器中都指定了加密的默认配置和优先顺序,为各个隧道协议提供最有力的加密。
OpenVPN 服务器
我们的 OpenVPN 服务器具有以下特性:
WireGuard 服务器
WireGuard 比较保守,仅提供一组加密原语。 请参见 WireGuard 网站以了解详情。
桥接服务器
我们的桥接有助于在访问被阻止时连接到我们的网站、API、OpenVPN 和 WireGuard 服务器。 我们的配置使得很难或不可能访问未加密内容,因此使用的加密类型并不重要。
服务器屏蔽
为了保护我们自己、我们的客户和我们的服务质量,我们保留封锁任何 IP 地址或端口的权利。 我们始终封锁到以下端口的出站流量:
- 端口 25 – 防止垃圾邮件
- 端口 137、138、139、445 – 保护客户免受 Microsoft SMB/CIFS 安全问题影响
- 端口 1900 和 2869 – 保护客户免受恶意 UPnP 配置影响。