这对于在网吧使用 VPN 的人来说很有用,因为网吧里可能有人安装了键盘记录器。这样,即使他们记录了密码,下次也不会起作用。
答案1
我使用过 OpenVPN 设置,该设置有一个用户名/密码阶段来验证实际用户,并且它针对 PAM 进行后端验证。遗憾的是,我没有该安装的配置文件,但任何针对 PAM 进行后端验证的东西都可以利用任何 PAM 模块,而 PAM 模块具有各种一次性支持 - 甚至更好。
对于一次性密码,这一章写了关于在 PAM 下使用 OPIE 的文章,OPIE(像 S/KEY 一样)是很久以前的旧 OTP(一次性密码)解决方案之一(稍微离题一下,我记得在 1995 年打印了一张 20 个 OPIE 密码的纸带去参加会议,我相信其他人对它的记忆会更早)。它可能很旧,但仍然很可靠,现在有任意数量的 OPIE 软件生成器可供您使用,如果您不喜欢随身携带那张纸的话。上面的文章提到了一个 iPhone 应用程序,但我相信还有其他应用程序。
但是,为什么要止步于此呢?一旦将 PAM 连接到身份验证引擎,您就可以获得相当复杂的功能 - 并且越来越安全。
本章有一个 PAM 模块,它通过 SMS 发送必须输入的令牌,因此您可以将 GSM 手机用作双因素解决方案的一部分。
我自己也用过 Yubikey,这是一个小型 USB 接口 OTP 生成器,带有 PAM,因此您可以根据需要使用专用硬件解决方案(所有代码都是 GPL 的)。我使用它来控制 ssh 和 sudo 访问,但由于它是通过 PAM 完成的,因此可以轻松地将其连接到 OpenVPN 用户身份验证阶段。
希望这能澄清这在理论上是绝对可行的,并给你一些想法。很抱歉,我没有可用的 OpenVPN+PAM 配置可以附加,但是本文来自 openvpn.net似乎涵盖了它的一些细节。