我使用 openVPN 连接到我的 VPN 提供商。服务器使用用户名/密码和 TLS 身份验证的组合。
如果我使用公共 wifi 并连接到我的 VPN,我的用户名是否加密?
换句话说,我的用户名会被嗅出吗?
我使用 openVPN 连接到我的 VPN 提供商。服务器使用用户名/密码和 TLS 身份验证的组合。
如果我使用公共 wifi 并连接到我的 VPN,我的用户名是否加密?
换句话说,我的用户名会被嗅出吗?
如果我正确阅读了您的问题,则您正在使用 TLS 客户端身份验证和用户名/密码组合的组合连接到您的 VPN。
在这种情况下,中间人攻击者可以读取客户端证书的全部内容(链接到握手协议中的相关消息),其中可能包括您的用户名。攻击者无法读取用户名/密码组合,因为它们是在 TLS 握手完成并因此加密后发送的。
在协议级别上的缓解很简单:不要直接与服务器建立相互认证的连接,而是单方面认证的连接,然后让服务器启动与客户端认证的重新协商。这是不同的,因为连接将使用第一次连接的密码套件进行加密,因此攻击者无法窃听您的客户端证书。
如果由于某种原因无法进行这种缓解,您可以尝试使两个用户名唯一且不同。例如,您可以在证书中为用户分配一个完全随机的通用名称,该名称在内部数据库/访问控制列表中进行检查,以 a) 允许访问和 b) 匹配可读/人工选择的密码。这样,攻击者就无法获知用户名/密码对所需的用户名。据我所知,OpenVPN 可以进行这样的设置。
我希望我正确地阅读了您的问题,但是如果您通过 VPN 连接,则在创建隧道的那一刻,点对点 VPN 隧道之间的所有数据都将被加密。这包括通过 Wifi 从您的设备传输的数据包。
我敢打赌,如果它需要用户名/密码来创建 VPN 隧道,它肯定会在创建隧道之前通过加密传递,可能是使用 TLS/SSL 的 https。
攻击者必须拥有解密数据的密钥,因为普通嗅探器试图查看您的流量只会看到在他们看来是胡言乱语的内容。
除非攻击者能够找到漏洞利用或获取密钥,否则传递的所有信息,包括您的用户名和密码,都确实会被加密。