題 為什麼SSH密鑰認證比密碼認證更好?


這不是一個技術問題,而是概念上的問題。我知道SSH密鑰中使用的密碼術比常規密碼強得多,但我不明白為什麼它被認為更安全。

我讀過的大多數教程建議使用SSH密鑰身份驗證而不是密碼身份驗證。但我的理解是,任何可以訪問預先批准的客戶端計算機的人都可以連接到服務器,這意味著SSH密鑰提供的安全級別僅與物理安全級別一樣強。客戶機器。

例如,如果我在手機上設置SSH密鑰以連接到我的家用機器,如果我丟失手機並且有人設法解鎖它,他們將能夠連接到我的家用機器。我知道我可以從我的家用機器上取下手機的鑰匙,但是在我發現客戶端設備丟失/被破壞之前我很脆弱。

我誤解了某些內容,還是那些有效的問題?


40
2018-06-28 12:49


起源


兩者都做 - 一個需要密碼的密鑰。這樣你需要識別兩件事,而不僅僅是一件。您還可以非常輕鬆地使丟失的密鑰失效,並擁有多個授權密鑰以便對其進行更多控制,依此類推。 - Phoshi
這可能應該轉移到安全性。
@DKGasser:不,它不應該。這是一個非常有效的問題。只因為某事 能夠 移動到另一個SE網站並不意味著它 應該。 - Wuffers
@DKGasser:它 可以 去那個網站,這是一個非常有效的問題。但這也是一個有效的問題,因此沒有理由進行遷移。如果要在這裡提出這個問題,那麼是的,它可以在那裡遷移。但它完全是在這個網站上的主題,因此不應該遷移。 - Wuffers
並且不要忘記,SSH密鑰永遠不會通過網絡。遠程服務器永遠不會獲得密鑰,而不是密碼,密鑰不僅通過網絡發送,而且發送到遠程服務器。想想下次你不確定要使用什麼密碼,並嘗試一些......可能在其他帳戶上使用!你發送到該服務器的密碼是什麼? - 9mjb


答案:


如果您的SSH服務允許基於密碼的身份驗證,那麼您的Internet連接的SSH服務器將被殭屍網絡日夜敲擊,試圖猜測用戶名和密碼。殭屍網絡不需要任何信息,它可以嘗試流行的名稱和流行的密碼。有很多人用密碼qwerty123命名為約翰。除了其他任何東西,這會堵塞你的日誌。

如果您的SSH服務僅允許公鑰驗證,則攻擊者需要與存儲在服務器上的公鑰對應的私鑰副本。它們不僅可以進行隨機攻擊,還必須事先了解您的用戶,並且必須能夠從SSH服務器的授權用戶的PC上竊取私鑰。

私鑰經常受長密碼保護的事實具有次要意義。

更新:

正如評論所指出的那樣,正如我所經歷的那樣,將SSH服務從端口22移動到高編號端口會使日誌中出現的未經授權的登錄嘗試次數產生巨大差異。這是值得做的,但我確實認為它是一種默默無聞的安全形式(一種虛假的安全感) - 遲早的殭屍網絡將實施緩慢的隱形端口掃描,否則你將被故意作為目標。最好做好準備。

我總是使用長密碼來保護我的私鑰,我想這對於更容易丟失或被盜的移動設備尤其重要。

也, http://xkcd.com/538/

Security


36
2018-06-28 13:33



+1,除了公鑰驗證不會對您的日誌因嘗試連接的機器人阻塞而無效。要停止此操作,請在高端口(即9876而不是22)上運行SSH服務器。然後,如果他們想要打你,他們必須先端口掃描你,而機器人通常不會浪費那麼多時間...... 22上有很多SSH服務器。 - Ex Umbris
你不是開玩笑的日誌大小 - 我/ var / log / secure來自 兆字節 登錄嘗試次數,以千字節為單位(只有我的登錄記錄)。 - John C
+1有趣的是,我已經運行了基於密碼的auth ...就像10年了..大聲笑..當然,我的公開暴露的ssh端口永遠不會端口22.認為殭屍網絡將端口掃描我並嘗試在每個端口進入港口他們可以??好消息,謝謝。 - James T Snell
@ExUmbris而不是更改您應該考慮使用的端口 fwknop:單包授權和端口敲擊。這裡的好處應該是顯而易見的:當你不允許任何人甚至看到端口在任何地方都是開放的,除非他們通過敲擊SPA獲得了訪問端口的權限,那麼他們甚至無法嘗試使用nmap和利用它。通過默默無聞,這比簡單的安全要好得多。 - aculich
@aculich改變港口不是“通過默默無聞的安全”。我所做的就是阻止日誌填滿警告。但是,你有一個有效的觀點 提高 SPA的安全性。 - Ex Umbris


邏輯是,SSH密鑰的組合比密碼多得多,因此要猜測起來要困難得多。使用SSH密鑰還允許您禁用密碼身份驗證,這意味著圍繞互聯網的大多數自動攻擊將毫無用處。

關於物理安全性,如果設備丟失或被盜,保存密碼和在設備上使用未加密的SSH密鑰之間沒有區別。您擁有的唯一優勢是沒有人擁有您的密碼,理論上您可以確保所有設備都具有不同的SSH證書,因此您可以禁用手機的密碼。

我相信也可以用密碼保護SSH密鑰。


7
2018-06-28 12:53



但值得注意的是,可以檢測到針對sshd的密碼強制嘗試(例如,通過fail2ban),而竊取私鑰的人可以在其計算機(或群集)允許的同時嘗試密碼他們。這還是 不是一個偉大的攻擊但是,與合理的fail2ban政策相比,他們大大提高了他們的可能性。 - Xiong Chiamiov
更多關於這個主題的閱讀: security.stackexchange.com/q/5085/16960  security.stackexchange.com/q/39279/16960  security.stackexchange.com/q/13468/16960 - Xiong Chiamiov


密碼也可以通過“過肩”監控鍵盤而受到損害。此外,在許多地方使用類似的密碼是一個弱點,特別是如果密碼有時用於具有潛在鍵盤記錄器的安全性較低的計算機上。

你是對的,如果計算機被盜,可以從硬盤上讀取未加密的密鑰 - 所以用密碼加密它。

如果您的計算機受到惡意軟件的攻擊,那麼無論如何,您都會被填充。 - 有人可以獲取加密密鑰並鍵入您的密碼。


1
2018-06-29 04:39



注意:但如果要以編程方式(即在腳本中)使用密碼,則無法使用密碼加密密鑰。 - TheStoryCoder