嘗試密碼攻擊及其對策

2021-04-15 00:19:49 字數 2205 閱讀 3776

 本方法旨在列舉一些防範嘗試密碼攻擊的方法,起到拋磚引玉的作用,希望和有識者共同探索更有效的方法,以確保使用者的資訊保安。

  什麼是嘗試密碼攻擊?此種攻擊必須擁有相應的加密軟體,它是利用軟體自身的運算能力達到破解的目的,也就是用不同的密碼組合形式去試解以期達到破解的目的。手工的嘗試密碼攻擊毫無威力,因為速度實在太慢了。一般破解者會做乙個介面程式,它可以自動的用大量的資料去試解加密密碼或被加密檔案的密碼,當然目的是破解加密。

  嘗試密碼攻擊最徹底的方法是窮舉密碼攻擊,真正的窮舉攻擊是不容易辦到的(除非又短又簡單的白痴密碼),所謂窮舉就是列舉出所有可能的密碼,用這些資料一一試解,達到破解的目的。由於人們為了方便記憶和省事常用一些好記的數字、單詞、短語等作為密碼,所以破解者把常用的東西建立乙個庫稱為字典,用裡面的資料去試解,這就是字典攻擊。

  好像嘗試密碼攻擊是破解密碼的****。不管你的加密多麼嚴謹,只要它存在就多乙份危險,只要有高強的運算能力、和大量的時間任何加密都不在話下。不管嘗試密碼攻擊以什麼方式出現,它危害到人們的資訊保安了,必須扼制。

  以下僅就檔案加密來說明,其它的形式可以此做參考。

  1. 加密程式檢測解密物件,對解密物件——被加密檔案的特徵進行記錄例如部分檔案內容的crc值,將這些儲存在物理硬碟裡,以便程式多次啟動都可以用到,這樣發現有人總是對乙個檔案下功夫就可以採取對策了。

  2. 檢測使用者輸入時間和次數,從輸入一組密碼開始到結束的時間,如果發現時間短的人都做不到,而且使用時間都差不多那可能是機器幹的事,這時你要制止它。在一段時間裡檢驗使用者的輸入次數,如果是嘗試密碼攻擊次數會非常多,而正常使用即使輸入錯誤再次輸入次數也不會太多,所以發現次數過多退出執行是必要的。

  3. 監視密碼的組成,但不是記憶密碼,記憶密碼是危險的必須杜絕,可以間接地達到這一目的,例如密碼的數學特徵。要是窮舉攻擊作為密碼的資料是有規律的,但字典攻擊等沒有。所以監視密碼組成只對窮舉有效。

  4. 現在許多加密軟體為什麼可以讓暴力破解高效執行,多半是加密軟體自身的問題。往往是這樣的,軟體檢測密碼特徵符合條件的才進行解密處理,不符合的給出錯誤提示,這個過程是很快的,所以破解者馬上可以試驗下乙個密碼。如果密碼檢測不符合則停滯數秒將使暴力破解的效率大大的降低,而對正常使用者沒有多少影響。發現密碼總是錯誤則退出執行也是個辦法,總之不能消極的等著挨宰。

  比較絕對的做法是只對密碼做簡單的檢測就開始解密,並且不判斷解密是否成功。這個工作留給破解者去做,這樣解密需要時間,分析是否解密成功也需要時間,解密失敗重建調入被加密檔案需要時間,使得暴力破解變得很低效,終因花不起時間而放棄。正常使用者密碼輸入正確,將不影響使用,為了確保密碼正確應該象加密時一樣輸入兩遍密碼來減少密碼失誤。

  5. 在解密過程中,由某種條件激發彈出對話方塊讓使用者應答。但形式不能太簡單了否則很容易被破解程式應付過去。

  6. 嘗試密碼攻擊容易對付的是短而簡單的白痴密碼,所以密碼不能太短了,加密程式要限制使用者密碼的最小長度。但長密碼不好記輸入又麻煩,比較有效的辦法是使用的長密碼,其中大部分內容不經常更換,只有一小部分經常改變,兼用拷貝的方式以減少操作。

  7. 使用特殊的密碼輸入方式,也是好辦法,要想破解必須設計專門的破解程式。例如為使用者設定私有密碼,在輸入密碼時也要輸入它。又如在輸入密碼的基礎上,再輸入字元轉義定義(參見筆者關於密碼轉義法的文章)。

  8. 輸入密碼的過程中讓使用者輸入效驗碼(效驗是否人工輸入),由計算機不易識別的圖形或圖形文字或語音組成,盡量讓使用者操作簡單明瞭,使用者可用鍵盤、滑鼠來做應答,如果正確了才可以繼續執行程式,錯誤則退出程式。效驗碼也可以出現在解密過程中。為了高效執行,可以採用一鍵得過的方式。圖形或圖形文字充分利用人的視覺聯想,採用歪字、隨機色等使計算機不易分析成功,甚至不可能分析成功。

  9. 用4.後面說的方式設計軟體,只要二次加密就可以免受暴力破解的攻擊。原因很簡單,暴力破解的過程中將無法判斷第一次解密是否成功,因為第一次解密成功了也是亂碼。

  10. 加密軟體多引數化也是克服暴力破解的辦法,例如設定 n種加密方法供使用者選用,可以使其工作量增加n-1倍,一般使用窮舉法所舉的參考密碼位數越多所用的時間越長,所以往往只能試解有限幾位數,一下增加幾倍的時間可能迫使其放棄,而軟體設計增加幾種加密方式太容易了,簡單的修改關鍵引數就可以產生一種新方法。程式中還可以設定多種密碼處理方式供選用,每種方式對應一種密碼擴充套件處理,效果是一樣的。

  上面列舉了一些扼制嘗試密碼攻擊的方法,認真的實施其中一種就足以對付嘗試密碼攻擊,所以嘗試密碼攻擊在智慧型軟體面前將不再具有威懾力量。(歡迎批評指正,[email protected]  [email protected])

用fail2ban阻止密碼嘗試攻擊

有些開放外網埠的主機,瘋狂的遭遇密碼嘗試入侵,雖然密碼設定的較為複雜,但是長時間的密碼嘗試會給 var logs secure寫入大量日誌,從而也會增加系統負擔。fail2ban就可以很好的解決這個問題,設定最大嘗試的次數,當超過指定次數時,fail2ban會呼叫iptables把嘗試探測的ip加入...

常見記憶體錯誤及其對策

常見記憶體錯誤及其對策 發生記憶體錯誤是件非常麻煩的事情。編譯器不能自動發現這些錯誤,通常是在程式執行時才能捕捉到。而這些錯誤大多沒有明顯的症狀,時隱時現,增加了改錯的難度。有時使用者怒氣沖沖地把你找來,程式卻沒有發生任何問題,你一走,錯誤又發作了。常見的記憶體錯誤及其對策如下 一 記憶體分配未成功...

常見的記憶體錯誤及其對策

1.常見的記憶體錯誤及其對策 記憶體未分配成功卻使用了它 在使用記憶體之前檢查指標是否為null。如果指標p是函式的引數,那麼在函式的入口處用assert p null 進行檢查 如果使用malloc或者new來申請記憶體,應該用if p null 或if p null 進防錯處理。無論用何種方式建...