目前,上百萬的系統管理員都在使用SSH協議和軟件套件以實現在遠程服務器上登錄應用和服務賬戶,其認證方法有密鑰認證、代號認證、數字認證和公開密鑰認證。但是,如果管理不當的話,SSH密鑰很可能會被攻擊者利用,并侵入企業的IT基礎設施。
研究機構Ponemon Institute今年年初對全球2000家企業的2100個系統管理員進行的一項調查發現,由于企業對SSH密鑰保護性較差,有四分之三的企業的系統非常容易受到根級(root-level)攻擊,同時一半以上的企業承認存在SSH密鑰相關的兼容性問題。
由于人們對于SSH密鑰的安全性越來越擔憂,所以美國國家標準與技術研究所(NIST)近期制定了一份長達37頁關于SSH密鑰管理的最佳實踐指導。該草案名為“使用SSH自動訪問管理安全須知(Security of Automated Access Management Using Secure Shell (SSH))”,以下是這一草案的要點內容,即指導系統管理員該如何做。
1. NIST指出,在 SSH中有兩種密鑰認證機制,即基本密鑰認證和鍵盤交互認證。
基本密鑰認證就是由SSH協議標準授權的傳統認證方式,而鍵盤交互認證則被用于非常現代的環境中,除了傳統密鑰認證之外,鍵盤交互認證還能支持請求-回應認證和一次性密鑰口令。NIST建議密鑰認證應該被用于自動訪問,因為硬編碼密鑰很容易被攻擊者竊取。如果企業使用密鑰認證進行自動訪問,那么這個密鑰需要根據企業的密鑰政策頻繁輪換。
2. 基于主機的認證使用的是服務器主機密鑰,以認證源主機和驗證客戶端用戶身份,服務器主機密鑰是客戶用來驗證服務器身份的。然而,NIST指出,由于基于主機的認證沒有配置命令的限制,所以NIST并不推薦自動訪問使用基于主機的認證。
3. 許多企業使用Kerberos和Active Directory認證實現在Windows域或Kerberos域中SSH單點登錄,NIST也表示,那些廣泛應用SSH工具的企業在默認的Active Directory域或Kerberos域中提供單點登錄。但是NIST指出,單點登錄意味著一旦一個賬戶利用Kerberos認證獲得訪問權限,那么它也很可能會登錄到另一個有著相同賬號的服務器上,同時進入到一個相同的域中而不需要進一步認證。這很容易創建出大量的不必要的隱性信任關系。
此外,當前被廣泛應用的SSH工具并不支持Kerberos命令限制。因此基于這些原因,自動訪問不推薦使用Kerberos認證。
SSH的公開密鑰認證是利用用戶密鑰或證書來認證一個連接,這需要SSH用戶擁有一個用戶密鑰,該用戶密鑰被稱為“身份密鑰”,一般是一個RSA或DSA私人密鑰。同時(+本站微信networkworldweixin),服務器還需要為用戶賬戶配置一個被稱為“授權密鑰”的公開密鑰。
NIST指出,任何擁有身份密鑰的用戶都可以登錄服務器,并享受該密鑰授權的用戶賬戶和操作執行。這個身份密鑰通常被存儲在一個智能卡上,或者是一個密碼保護文檔中。
NIST表示,許多SSH工具支持授權密鑰的部署限制,以限制使用該密鑰進入服務器上的行為,限制IP地址和密鑰的使用。NIST指出,公開密鑰認證的優點在于它不會創造出任何隱性信任關系,而是明文規定的信任關系。
允許訪問可以通過檢測目的主機來決定,因為目的主機非常重要,可以用來審核誰有資格訪問哪些系統或賬戶。基于公開密鑰認證的這些優勢,NIST推薦使用公開密鑰認證來進行SSH自動訪問。
目前,NIST起草的這個指導文件(NIST 7966草案)仍在討論階段,預計將在本月底完成。該草案還包含了許多關于使用SSH軟件進行安全管理的建議,以及廠商(有Fox技術公司、SSH通訊安全公司和Venafi)產品選型指導。