一次性密码。在 Windows、Ubuntu 和互联网站点上使用 OTP

信息安全 验证 密码
2021-08-31 03:09:04

有没有办法(软件、硬件/令牌或网络软件)在以下情况下使用一次性密码:

  • 登录到我的电脑/笔记本电脑(windows 或 ubuntu)
  • 使用 OTP 登录到站点(没有对 OTP 的开箱即用支持,AFAIK 没有一个支持)。

您使用任何 OTP 解决方案吗?到目前为止的经验?我对免费软件/开源和商业(付费)解决方案都感兴趣。

4个回答

一些背景:

协议:Radius、LDAP、SAML、OATH。Radius 非常适合内部使用(ldap 更像是一个目录协议而不是身份验证,IMO),最后两个是为外部/互联网身份验证设计的。选择内部协议,然后选择外部方法。以这种方式限制自己可以保持清洁并帮助您学习。

首先,ubuntu:这很容易。您只需要了解一点 PAM - Pluggable 身份验证模块。PAM 支持一堆协议。为您的协议构建库,然后编辑 /etc/pam.d/ 中的服务文件。所以,sshd、登录、su、sudo 等等。这是关于如何向 SSH 添加双因素身份验证的文档:http: //www.wikidsystems.com/support/wikid-support-center/how-to/how-to-secure-ssh-with-two-factor-来自wikid/的身份验证只需为登录做同样的事情,你应该很好。一个警告:留下一条进入的路!你不想被锁在外面。这就是为什么大多数公司只担心远程访问而不是本地访问的原因之一。

Windows 登录:这意味着更改 Windows 登录或 GINA。这样做也需要您自担风险。查看开源 pgina 项目。很久以前,我在 Windows XP 上使用半径使用 WiKID 对此进行了测试,效果很好。但由于存在锁定风险和潜在的支持成本,我们的客户都没有实施这一点。

网站:越来越多的公司将“登录凭据”与“帐户”分开,并看到如果让其他人处理前者,他们可以获得更多的后者。万岁。但是,并非所有身份验证方都在进行双因素身份验证。谷歌是唯一的。但是,您可能对 google 知道您的每次登录感到不舒服,并且您可能想要一个您也可以控制和用于其他服务的服务器。

如果是这样,我们的开源版本包括适用于 Google Domains 的 GoogleSSO 插件:http: //www.wikidsystems.com/support/wikid-support-center/how-to/how-to-wikid-strong-authentication-to -google-apps-for-your-domain/

OPIE 认证系统(“One time Passwords In Everything”)适用于大多数 BSD/Linux/Unix 系统——例如 Ubuntu 下的 opie-server 和 opie-client 软件包。它可以用于例如 PAM 身份验证或 Web 服务器。Windows 和 MacOS 也有(至少)客户端。

如果站点是某种联合身份验证(例如 OAuth、OpenID、Shibboleth、SAML)的“依赖方”,您可以使用一次 OTP 登录到支持它的身份提供者,并使用本质上是一次性凭据从他们那里登录网站。

如果该站点支持 OAUTH,您可以尝试使用 Yubikey (http://www.yubico.com/yubikey) 作为您的第二个问题的价格合理的替代方案。这是一个 OTP 解决方案,以 AES 计数器为键,实现为 USB 键盘(因此很少需要驱动程序)。

这就是诸如无处不在的 RSA 密钥卡之类的令牌的工作原理。生成的数字实际上是一次性密码(好吧,它不是真的,但熵的级别意味着在大多数情况下,您可以将其用作一次性密码)

适用于 Windows 和 Linux 以及各种其他设置。

许多 Web 应用程序都使用它,但它们必须支持它,因为对于任何 OTP 解决方案,您需要在您提供的密码和站点/应用程序期望的密码之间进行协调。