閱讀38 返回首頁    go 技術社區[雲棲]


SSH 安全加固篇:通過“運維密碼”小程序實現 SSH 雙因子認證

背景

近來很多知名企業都出現了密碼泄露,通過單一的密碼對敏感和重要信息進行保護已經麵臨越來越多的挑戰,因此業內對多重認證的唿聲也越來越高,而其中的雙因子認證得到了業界的普遍認可。

什麼是雙因子認證

雙因子認證Two-factor authentication(即 2FA),是一種通過組合兩種不同的驗證方式進行用戶身份驗證的機製。

在這種多重認證的係統中,用戶需要通過兩種不同的認證程序:

  • 提供他們知道的信息(如用戶名/密碼)
  • 再借助其他工具提供用戶所不知道的信息(如用手機生成的一次性密碼)

SSH 雙因子認證實現思路

在 SSH 服務器端安裝 Google 身份驗證器服務器端組件,這樣,在使用密碼或密鑰登錄 SSH 服務器時,同時通過與 Google 身份驗證器相匹配的客戶端所提供的驗證信息來確認登錄者的身份和權限。這裏的客戶端可以使用Google 身份驗證器Google Authenticator應用,也可以使用我們開發的、采用同一個 RFC 規範的“運維密碼”微信小程序。

Google 身份驗證器所采用的算法規範基於 TOTP RFC 草案

(題外話,RSA 硬件令牌,也是采用了類似的機製,隻不過客戶端是硬件的;而最近 Apple 公司的一些服務所需要的雙因子認證也是一樣的,但是其用於呈現驗證信息的是手機或平板上的 iOS 內部組件,非獨立應用。)

關於Google 身份驗證器

為了鼓勵廣泛采用雙因子認證的方式,Google 公司發布了Google 身份驗證器Google Authenticator,這是一款開源的、可基於開放規則(如 HMAP/ 基於時間)生成一次性密碼的軟件。它是一款跨平台軟件,可運行在 Linux、Android、iOS 上。Google 公司同時也支持插件式鑒別模塊pluggable authentication module PAM ,使其能和其它適用於 PAM 進行驗證的工具(如 OpenSSH)協同工作。

Google 身份驗證器分為兩個部分,分別是服務器端組件和客戶端應用,都稱之為“Google 身份驗證器”,這裏,我們為了澄清起見,會在說明時指明。

關於運維密碼

Google 公司所開發的身份驗證器以簡潔著稱,但也因此缺乏一些必要的特性,比如備份功能——這使得使用該身份驗證器的人時時處於手機丟失的恐慌之中。(雖然 Google 提供的服務器端和自身的服務也提供了緊急驗證碼,以用於這種情況下的自救,但是很多采用 Google 身份驗證器的服務並不支持和提供緊急驗證碼)

作為一家緊密關注於運維安全、積極倡導信息安全的技術社區,Linux 中國 久已有開發一個新的替代品的想法。恰逢微信推出小程序平台,我們感覺到這正是一個良機,可以充分利用到微信和小程序的便利之處,又適合小程序的使用情境。

原文發布時間為:2017-03-30

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-23 15:35:36

  上一篇:go  如何在 Ubuntu 以及 Debian 中安裝 DHCP 服務器
  下一篇:go  如何在 CentOS 7 中在 HHVM 和 Nginx 之上安裝 WordPress