為(wèi)什(shén)麽要(yào)用(yòng)≤‌♣≥公鑰/私鑰而不(bù)是(shì)密碼去(qù)做(z​ ≠♣uò)SSH身(shēn)份驗證

2017-04-10 11:00

SSH提供了(le)很(hěn)多(duō)種不(bù≠↑)同的(de)身(shēn)份驗證

其中最常用(yòng)的(de)兩種便是(shì)密碼驗證

和(hé)基于公鑰/私鑰的(de)身(shēn)επ>份驗證

 

基于公鑰/私鑰的(de)身(shēn)份驗證有(yǒu)非常↕±φ多(duō)的(de)優點

首先,公鑰/私鑰可(kě)以從(cóng)根本上(shàng)¥♠≤挫敗監聽(tīng)來(lái)截取驗證信息的(γ✔↕♦de)企圖。

公鑰/私鑰驗證本質上(shàng)是(shβ↑πì)一(yī)種 零知(zhī)&¥←ε識證明(míng)。即,在身(shēn)份驗證的(de)過程中,服務器(qì​≥ ✔)并不(bù)需要(yào)知(zhī)道(dào)用ε↓€(yòng)戶的(de)私鑰是(shì)什&$♥(shén)麽。【注:公鑰/私鑰驗證并不(bù)是(sh £♠λì)零知(zhī)識證明(míng),感謝(xiè)&nbΩ→✔δsp;snnn 指正。】

公鑰/私鑰驗證在身(shēn)份驗證的(de)過程中,服務​♣Ω₩器(qì)隻需要(yào)知(zhī)道(dào↕∑)用(yòng)戶的(de)公鑰,而用(yòng)戶則使用(yòng)自(™ ↕zì)己的(de)私鑰對(duì)一(yī)組數(shù)據簽名,并 →≈在服務器(qì)端進行(xíng)驗證。服務€¶ 器(qì)并不(bù)需要(yào)知(zhī)道(dào)用(yòng​$)戶的(de)私鑰。目前為(wèi)止,還(hái)沒有(yǒu)&↑♥有(yǒu)效的(de)方法能(néng)從(cón'©↑←g)這(zhè)些(xiē)信息推導出私鑰㮀✔。

與密碼相(xiàng)比,這(zhè)種方法有(yǒu)顯著的 ¥₹ (de)優點:在驗證身(shēn)份的(de)那(★≈®nà)一(yī)方,沒有(yǒu)任何辦法可(kě)以拿(ná)到( ♣dào)用(yòng)戶的(de)私鑰,即使獲得(de)了(le)那(nà)♦Ω台機(jī)器(qì)的(de)root權限。驗證信息隻能(néng)使用★✔(yòng)一(yī)次----這(zhè)意味著(zhe),也(→<₩yě)沒有(yǒu)辦法把這(zhè)個(gè)驗證信息 σ£<用(yòng)于在其他(tā)地(dì)方再次驗證身(shēn©€ )份。

其次,公鑰/私鑰要(yào)比密碼長(cháng)的(₩$♣de)多(duō),因而可(kě)以挫敗通(tōng)£§ε過窮舉的(de)方式破解的(de)可(kě)能(néng)性。

典型的(de)密碼是(shì)8位字符,假設<↓↓可(kě)以使用(yòng)大(dà)小(xiǎo)寫字母、數(shù)字♠δ 和(hé)特殊符号,可(kě)選的(de)範圍無非是(shì)96^8而已©​,我們不(bù)妨算(suàn)它128^8。典型&↓×的(de)私鑰有(yǒu)2048個(gè)bit,如(rú)果按7個(λ®÷↓gè)來(lái)分(fēn)組的(de)話(huà),有(α<&yǒu)128^(2048/7)。當然,最高(gāo)位和(hé)↑©最低(dī)位一(yī)定是(shì)1,但¥£♠(dàn)向下(xià)取整,也(yě)有(yǒu)128^29₩×≥2種。

 

最後,除了(le)吃(chī)點帶寬之外(wài)

SSH口令窮舉對(duì)于僅采用(yòn>←βαg)公鑰/私鑰驗證

的(de)服務器(qì)安全不(bù)構成£∞任何威脅

 

通(tōng)過适當的(de)配置sshd,可(kě★δ∞←)以讓其直接明(míng)确地(dì)告訴對(duì)方§♠&↑此處不(bù)支持口令驗證,并且能(néng)夠容易地(dì)将攻‍‍€∑擊者記錄在案,并将數(shù)據反饋給防火(huǒ)牆來(lái)減少(sh•≈ǎo)帶寬的(de)占用(yòng)。