WireGuard 用户身份验证

Ale*_*sic 5 wireguard

我已经阅读了WireGuard 规范,看起来 WireGuard 本身并不支持任何类型的用户身份验证(例如 LDAP 或类似的东西)。任何拥有服务器公钥且其 IP 地址在服务器配置中列入白名单的客户端都可以连接。

有谁知道提供用户身份验证的任何 WireGuard 扩展或实现?

Kam*_*l J 4

隧道的每一侧都有自己生成的密钥和派生的公钥(定义为连接另一侧的“对等点”)。要按照您所写的操作,您需要在“客户端”之间共享私钥,这是您能做的最糟糕的事情(从技术上讲,您可以,但我希望没有人会想到这一点)。

让我们考虑一下“客户端与服务器”角色:

服务器

  • 拥有秘密密钥
  • 拥有所有可能的对等方/用户的列表
  • 每个客户端都由服务器端自己的对等定义以及客户端的相关公钥表示

客户

  • 拥有秘密密钥
  • 使用服务器公钥的一个对等定义

我们可以说,客户端是使用单因素身份验证进行身份验证的,并且身份验证是使用客户端的公钥来实现的。

  • 授予新客户端访问权限意味着向服务器端添加对等定义(无需重新启动 VPN/无需中断所有当前 VPN 会话即可实现)。
  • 撤销当前客户端的访问权限意味着删除服务器端的对等定义(同样,也可以在不重新启动 VPN 的情况下完成 - 关闭所有当前会话)。

如果我正确理解你的问题,这个“功能”就存在于 WireGuard 中,无需任何扩展。

  • OP 在哪里建议在“客户端”之间共享私钥?MFA/集中式“用户”身份验证是 WG 目前不支持的合法要求。从企业的角度来看,信任对等方本地存储的单个密钥是有风险的,因为对等设备的妥协意味着对企业网络的未经授权的访问。要求用户必须输入他们知道的内容的附加身份验证 (LDAP/+MFA) 有助于在一定程度上减轻该风险。 (2认同)