題:
將密碼添加到SSH密鑰有什麼好處?
IQAndreas
2014-05-22 01:02:33 UTC
view on stackexchange narkive permalink

如果在Linux / Unix計算機上運行以下命令,除其他外,會提示您輸入密碼:

  $ ssh-keygen -t dsaEnter passphrase(空為no)密碼): 

向SSH密鑰添加密碼實際上有什麼作用?出現提示時使用密碼是否更安全?

四 答案:
Thomas Pornin
2014-05-22 02:43:50 UTC
view on stackexchange narkive permalink

在SSH密鑰中添加密碼意味著私鑰將以加密方式存儲在本地計算機上。該私鑰是一個相當敏感的秘密,因為知道該私鑰將授予對您註冊了相應公鑰的所有服務器的訪問權限(在您的 .ssh / authorized_keys 文件中)。

秘密攻擊者可能會在各種情況下掠奪本地文件中的文件:

  • 您的筆記本電腦被盜。
  • 您的硬盤壞了(發生了),您將其丟棄,攻擊者從垃圾箱中取出它,進行修復(例如,損壞的部分是電子板,攻擊者只需更換它),然後讀取文件。
  • 您可以在一些外部設備上備份文件(
  • 您的計算機上的某些惡意軟件會窺視您的文件,並將您的私鑰上載到烏茲別克斯坦的服務器。
  • 通過一些不幸的配置事故,您可以使文件在全世界範圍內可用(例如,通過磁盤共享或未正確設置的本地Web服務器)。
  • 漏洞在您的網絡瀏覽器中暫時允許惡意的Java腳本讀取和上傳一些任意文件,例如您的SSH私鑰。

此列表並不詳盡。在所有這些情況下,SSH私鑰的基於密碼的加密都會使攻擊者的生活更加艱難。請注意,您的文件也可能包含 other 敏感信息,因此SSH私鑰加密不足以達到絕對安全的要求。

當然,沒有什麼是完全免費的。如果使用密碼保護私鑰在磁盤上的存儲,則必須定期鍵入該密碼。與往常一樣,安全性和便利性是權衡的兩個方面。

dr jimbob
2014-05-22 01:41:11 UTC
view on stackexchange narkive permalink

許多用戶不加密他們的硬盤。如果您將ssh私鑰保留在未加密的硬盤驅動器上,則可以物理訪問該硬盤驅動器的任何人都可以過來竊取您的私鑰。 1 sup>然後他們可以使用此密鑰(以及您經常使用的計算機)使用從〜/ .ssh / config 〜/ .ssh / known_hosts 〜/ .history )獲取的密鑰進行連接一堆您可以訪問的其他計算機,這通常是一件很糟糕的事情。

當然,如果您可以對存儲有私鑰的計算機進行物理訪問足夠長的時間,那麼這也是可能的假設用戶無法注意到您對其進行了篡改,則只需花費更多的精力安裝硬件鍵盤記錄程序並將密碼短語捕獲到私鑰/加密驅動器即可。

1 sup>所有攻擊者必須要做的就是從計算機中取出硬盤驅動器,或者將其從外部安裝到另一台計算機中,或者引導至另一個操作系統(例如,從實時CD / USB / OS中引導),或者僅引導至 er模式。然後,即使原始操作系統中的讀取權限受到限制,並且具有讀取權限的用戶的登錄名具有非常強的密碼,他們也可以復制ssh私鑰。

Rod MacPherson
2014-05-22 01:18:17 UTC
view on stackexchange narkive permalink

它可以防止可能會訪問您的密鑰文件(設計,偶然或特權升級)的root用戶或其他用戶使用您的密鑰登錄其他系統。

只需清楚一點,這可以保護私鑰(通常存儲為“ id_dsa”),並且對我發送給他人的公鑰沒有任何可見的影響或要求,對嗎?
正確的是,到私鑰文件的密碼短語使進程可以訪問私鑰。將其視為很小的加密卷。具有密碼短語的id_rsa文件具有存儲在其中的加密私鑰* value *;密碼是存儲的密鑰如何解密和公開。
@0xSheepdog我喜歡這個解釋,非常清楚!如果Rod沒有計劃將該信息編輯成答案,那麼如果您將該解釋添加為新的解釋,我將不勝感激。
Jan Kyu Peblik
2020-01-23 02:25:23 UTC
view on stackexchange narkive permalink
特別是對於 -t dsa ,這是有爭議的。我相信有關DSA的答案仍然是正確的,因為它目前與OpenSSH有關。

此答案的其餘部分將使用短語“ 加密密鑰”表示使用現代最佳實踐加密的密鑰,應該盡可能不易破解(並且在未加密的同一存儲介質上或周圍不存在)。


正如其他答案所指出的那樣,密碼短語是對您的密鑰的附加保護。密鑰可以為您提供無需使用口令即可進行身份驗證的便利,但是如果以這種方式使用密鑰,則無論您將其存儲在何處,都有更大的被他人使用的風險。

口令確實可以很難濫用密鑰,...但是,如果您出於安全考慮(就像您擔心SSH一樣),它會使其變得很多更加困難。


如果您具有未加密的驅動器和未加密的密鑰,則具有物理訪問權限的任何人都只需讀取您的文件系統,他們便可以按照您的身份進行身份驗證。鑑於大多數建築物通常缺乏安全保護,並且工作場所中的普通人可能至少要求其操作系統要求他們輸入密碼才能登錄(不是以解密其加密的數據),這意味著訪問該數據只需要做一些非常簡單的操作,例如從實時操作系統啟動並啟動系統,刪除存儲庫&用其他東西讀取它,或者只是偷存儲介質或存儲介質的全部內容。我要打賭大多數普通計算機用戶(但不一定是大多數SSH用戶)的計算機處於這種不安全狀態。

如果在這種情況下您具有加密密鑰,並且親自走到計算機上並拿走您的數據的人不知道該數據已加密並離開了,他們將不得不再次回來並做進一步的處理也竊取您的密碼。但是...

如果在這種情況下您有一個加密密鑰,而親自走到您的計算機並拿走您的數據的人找到了您的密鑰,則表示他們可能會期望您的密鑰將被加密的原因,並且獲得物理訪問權限後,可能需要做一些額外的事情來獲取該密碼。這通常被稱為邪惡女僕攻擊,並且可以採取無數形式,但最重要的是,任何人都可以目睹或訪問(親自或通過秘密設備)用於身份驗證的物理元素通過(網絡電纜,網絡路由器/交換機,鍵盤,鍵盤的通暢視野等)可以獲取您的密碼。因此,您要進行身份驗證的位置的物理安全性也非常重要。

如果對驅動器也進行了加密,則可能會使用相同的攻擊來學習如何對驅動器和密鑰進行身份驗證在同一會話中。這意味著無論是僅對驅動器/文件系統進行加密,還是僅對密鑰進行加密,對於訪問密鑰的難度(無論如何都不會將其密鑰留在隨機位置的人)都沒有太大影響。


現在主要是出於娛樂目的,假設您對密鑰進行了徹底加密,並且沒有人再次對其進行身份驗證,因此,竊取該密鑰的人無法保證為其竊取密碼短語。即使在這種情況下,密鑰 的安全性也比不帶密鑰的密碼安全性低,因為僅存儲在人自己的內存中的密碼總是比永久存儲的密碼更難訪問在個人記憶以外的數字存儲中存在的密鑰中測試了蠻力。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...