使用 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 令牌的缺點。

也許將其視為公司政策問題並對帳戶共享施加影響。

相關內容