加密程式設計與防範窮舉攻擊 密碼轉義法

2021-04-14 08:43:36 字數 1518 閱讀 3832

本方法旨在有效扼制窮舉法(暴力破解)的攻擊,使其難於實施。

現在普遍的密碼輸入形式,是輸入一些字母、符號、數字或漢字作為密碼,有些甚至只輸入些數字,轉義法是將一些密碼元素賦予新的含義,例如字元a,你可以定義是某個整形數98765,當程式進行密碼處理的時候將a作為98765進行處理,這樣原來的a從代表97(ascii碼值),一下子增加了數千倍,資訊量也隨之擴大。對窮舉攻擊來說它不知道有限位的密碼中,哪乙個是轉義的,轉義了什麼,為了不遺漏它需要全部列舉所有可能,工作量將以天文數字增長,最終迫使其放棄。

轉義法的輸入方式:例如以空格作為分割符定義四個轉義碼

a=98765 %=23.45 f="轉義碼good" jb=1294967294

程式在處理密碼時以一定規則判斷轉義資料的型別。因為有些資料可以歸併多種型別。這些附加資訊可以另開輸入框輸入。如果鍵盤過於簡單需要設計更特殊的方式。

可能有這樣的疑問,轉義法無非是增加密碼長度的變相手法,其實不然,靠增加密碼長度是起不到轉義法作用的。增加密碼長度用增加窮舉的長度和花費更多的時間就可以破解。而轉義法可以使破解無從下手。我們看看當使用轉義法時,使用窮舉法的竊密者將怎麼做,先假設只使用一位轉義碼,並在其它輸入框裡輸入,假設竊密者通過讀程式知道如何設定字元轉義,假定他知道只有乙個轉義碼,並且轉義為無符號整形,為了不遺漏每當密碼輸入框窮舉乙個新的密碼時,他需要把85個可輸入ascii碼的每乙個從0試到4294967295,也就是

85*4294967295=3.85乘10的11次方

就是說破解運算次數增加了3.85乘10的11次方倍。這只是單字元情況,多字元組合和漢字參與將更加複雜,而實際如果使用多個轉義碼呢?要是每位可能轉義多種資料型別呢?要是 f="轉義碼good"這種字串形式的轉義碼,長度還不好估計了,怎麼組織資料也是難題。竊密者除了直接偷竊密碼外還有別的辦法嗎?

轉義法是一種附加的選項,就是你可以用也可以不用它。關於轉義法的使用,從上面的例子看,除了極簡單的外並不好記憶,象其它密碼一樣你可以記在紙上或加密儲存在檔案裡,為了簡便較長時間使用一樣的轉義碼,或者簡單的轉義碼,都可以。關鍵是它的威懾力量,有了它破解者不考慮它絕對不行考慮它也不可能完善地處理。你的程式有了這種功能,作為慎重的竊密者再不能滿懷希望的使用窮舉法了,只能無可奈何的試試看。作為加密者至少用乙個f="轉義碼good"這種形式的轉義碼並且盡量長些如果沒有內奸基本就可以高枕無憂了,而加密程式設計者,要用轉義的子字串參與加密、解密的重要運算和其他密碼一起決定檔案加密程式的走向。另外靈活設計輸入方式,允許在輸入轉義碼的位置輸入普通密碼(這就是雙密碼了),因為雙密碼也是一種很好的選擇,但雙密碼只是增加了密碼的長度理論上是可以破解的,所以應該讓其長些。方式越多破解者越難於處理。

參考輸入方式設計。窮舉攻擊都是設法使攻擊自動化,力爭提高速度。在加密程式輸入方式設計上可以讓其落空。這樣設計輸入:程式執行開始時,轉義碼輸入視窗是看不見的。在主密碼的輸入過程中隨機開啟「轉義碼輸入視窗」並聲音報警、延時讓你輸入「轉義碼」,這時可以輸入轉義碼也可以不輸入然後繼續輸入主密碼此時「轉義碼輸入視窗」又看不見了。這樣只有人才能操作,機器很難跟蹤,即使可以跟蹤也是個失去使用價值的慢牛。

對抗窮舉攻擊的方法多種多樣。使用乙個就足以使其癱瘓,轉義法算是之一吧。

arp攻擊原理與防範

前段時間,終於狠下來給自己的手提換了個固態硬碟,那隨著而來的肯定是得裝個系統在那裡。反正要裝,就裝個新的來體驗一下吧,直接就裝了個win8.1的。win8.1的各種東西讓我折騰了好久,部分特徵讓我好糾結,不過介面還蠻不錯的。固態硬碟就是爽,飛一般的感覺,開啟vs一下子快多了,查閱文件,快多了。各種爽...

空連線IPC 攻擊與防範

ipc 與空連線,139,445埠,預設共享的關係 1 ipc 與空連線 不需要使用者名稱與密碼的ipc 連線即為空連線,一旦你以某個使用者或管理員的身份登陸 即以特定的使用者名稱和密碼進行ipc 連線 自然就不能叫做空連線了。許多人可能要問了,既然可以空連線,那我以後就空連線好了,為什麼還要費九牛...

MAC位址攻擊原理與防範

一 交換機的原理 收到資料幀後,交換機的工作步驟 1 學習源mac位址並建立mac位址表 2 查詢mac位址表,若有目的mac位址,則單播 如果沒有,則廣播到所有介面。二 mac位址泛洪攻擊原理 交換機會將學習到的mac位址儲存在mac位址表裡,但是mac位址表大小有限,並且mac位址表上的位址有老...