我希望使用 c++ 将我自己的 2 因素身份验证添加到我的 ubuntu linux 服务器。我将让我的星号框使用唯一 ID 呼叫我的手机,该 ID 必须在 linux 登录提示符处输入,在密码之前或之后,有(或)没有证书 - 取决于我如何配置它。无论哪种方式,我都希望这个额外的输入步骤作为登录的一部分。
我应该为此使用 PAM 吗?如果是这样,有人可以向我指出带有 Pam 和登录的额外输入示例吗?
Duo(我的雇主)的双因素身份验证对最多 10 个用户或任何开源项目都是免费的。它包括一个实用程序,可以为 SSH 登录添加辅助身份验证,以及 C API 和 PAM 支持。
http://blog.duosecurity.com/2011/04/announcing-duos-two-factor-authentication-for-unix/
我会看看 Moxie Marlinspike 的Barada ,它使用一个 Android 应用程序和一个 PAM 模块,使用HOTP进行两因素身份验证。Barada 的 PAM 模块源代码可能对您有用。
我编写了一个 c++ 应用程序,将 MySQL 数据库中列出的帐户密码更改为“Pin Number”+ OpenSSL 库的 RNG 以创建一个 8 个字母的密码 - 它结合了它们并强制每 60 秒更改一次密码。