使用 PKCS#11 与服务器建立 SSH 连接以建立令牌依赖关系

使用 PKCS#11 与服务器建立 SSH 连接以建立令牌依赖关系

我已经在 Ubuntu 服务器上配置了PKCS#11远程 ssh 连接,以便用户可以使用硬件令牌登录,如下所述这里。但是,在这种情况下,用户可以登录服务器并删除令牌,并将其交给其他人登录。我想限制用户,这样当他删除令牌时,他就不能再与我的服务器保持连接(或在短时间之后)。例如,我想配置对令牌的持续依赖。是否有必要开发特定的 SSH 客户端?目前,我使用腻子-CAC作为客户。

答案1

不,如果不修改客户端,这是不可能的——SSH 中的用户身份验证在整个连接中只执行一次,并且首先由客户端发起。

SSHv2 支持重新密钥,这甚至可能是由服务器发起的,但它只会创建对服务器的“主机”密钥对的依赖,而不是用户的密钥对。

虽然“gssapi-keyex”机制可能是一个例外,因为它将 Kerberos 用户身份验证合并到密钥交换方法中,因此依赖于用户拥有未过期的 Kerberos 票证,但如果您使用 PKCS#11,那么您就没有使用 Kerberos。

(我还可以想到一种黑客攻击方法,即将你的 PKCS#11 令牌加载到 Pageant-CAC(PuTTY 的 SSH 密钥代理)中,然后启用 SSH“代理转发”,以便服务器可以定期从转发的代理请求签名……但这当然有大量的允许恶意服务器通过相同的“代理转发”功能滥用 PKCS#11 令牌的缺点。)

也许可以将其视为公司政策问题并对账户共享施加后果。

相关内容