桑永朋
[摘 要]針對現(xiàn)有密碼認證系統(tǒng)中,密碼(口令)組成符號簡單、易記所帶來的口令輸入時容易被人惡意偷窺、竊取的不足,本文提出了一種基于兩級轉(zhuǎn)換的口令輸入方法。這種方法通過選取復(fù)雜、難記的符號作為中間基本符號,使口令組成符號作為原始基本符號,通過建立從原始基本符號到中間基本符號、再從中間基本符號到原始基本符號的兩級隨機對應(yīng)、口令符號變更的轉(zhuǎn)換關(guān)系,并按照反向轉(zhuǎn)換關(guān)系獲取與當前待輸入口令符號對應(yīng)的、變換后的原始基本符號,從而完成當前待輸入口令組成符號的輸入操作。這種方法能很好地適應(yīng)當前廣泛使用的口令輸入環(huán)境,同時能有效地避免口令竊取問題,提高了口令輸入時的安全性。
[關(guān)鍵詞]安全;口令;輸入方法;兩極轉(zhuǎn)換
doi:10.3969/j.issn.1673 - 0194.2017.04.104
[中圖分類號]TP309 [文獻標識碼]A [文章編號]1673-0194(2017)04-0-02
0 引 言
長久以來,在密碼認證系統(tǒng)中,人們使用最廣泛的密碼形式是字母和數(shù)字密碼,即將一組字母和數(shù)字的組合作為密碼,通過向系統(tǒng)或他人提交這個密碼以達到證明自己身份的目的。然而,在方便快捷的同時,它也面臨很多問題。通常出于安全性的考慮,系統(tǒng)會要求用戶使用強密碼。強密碼的特點是密碼位數(shù)相對較長,使用大小寫字母、數(shù)字和一些特殊符號的組合,密鑰空間大,不易被暴力破解。但是用戶為了使用和記憶方便,往往會傾向縮短密碼長度或使用熟悉的密碼,這就給密碼的安全性帶來了致命的問題。攻擊者常常通過包括暴力破解、字典攻擊等各種方法破解用戶的密碼,竊取他人的各種信息。D.Klein指出,使用一個包含3 000 000單詞的字典即可以破解14 000個密碼當中的1/4。E.Spafford也指出,僅使用1988UNIX在線字典再加432個單詞作為字典,即可破解50%網(wǎng)站的密碼?,F(xiàn)在的計算機速度越來越快,使更為復(fù)雜的攻擊字典可以輕松的應(yīng)用于密碼破解中,破解速度不斷變快。
針對現(xiàn)有技術(shù)的缺陷或改進需求,本文提出了一種基于兩級轉(zhuǎn)換的口令輸入方法,在用戶口令符號和實際輸入符號之間加入了一層中間符號,使實際輸入的符號和口令符號不是簡單的一一對應(yīng)關(guān)系,用戶不再直接輸入原始密碼符號,而是依據(jù)隨機生成的對應(yīng)關(guān)系輸入符號,有效地防止了對口令的偷窺和破解。
1 基于兩級轉(zhuǎn)換的口令輸入方法的描述
基于兩級轉(zhuǎn)換的口令輸入方法的具體步驟如下。
(1)獲取組成口令的原始基本符號,并為其隨機選取數(shù)量相同的中間基本符號。
(2)分別隨機排序原始基本符號和中間基本符號,將排序后的中間基本符號與原始基本符號按照空間位置關(guān)系,一一對應(yīng),形成一級關(guān)聯(lián)。
(3)再次分別隨機排序原始基本符號和中間基本符號,將重新排序后的中間基本符號與原始基本符號按照空間位置關(guān)系,一一對應(yīng),形成二級關(guān)聯(lián)。
(4)對于當前待輸入的符號,首先在二級關(guān)聯(lián)中查詢與當前待輸入字符位置對應(yīng)的中間基本符號,然后在一級關(guān)聯(lián)中查詢與該中間基本符號位置對應(yīng)的原始基本符號,用戶輸入查詢到的原始基本符號。
(5)重復(fù)步驟(2)~(4),直到組成口令的所有符號輸入完畢。
這里原始的基本符號按照大量實際應(yīng)用中口令的組成方式而設(shè)計,如ATM機使用的數(shù)字,網(wǎng)絡(luò)登錄使用的字母、數(shù)字、特殊字符(標點符號、數(shù)學(xué)運算符、制表符等)、漢字等,而中間基本符號為特殊字符、圖形(如矩形、菱形、三角形、圓形等)和圖像(如人體或其部件圖像,山、水、樹木、動物等自然物體圖像,車、船、飛機、桌椅等人造物體圖像)中的任意一種或組合,以充分利用人對非常見對象的短時記憶差的特點,提升密碼輸入的安全性。這種方法的流程圖,如圖1所示。
圖1 基于兩級轉(zhuǎn)換的口令輸入方法的流程圖
與現(xiàn)有技術(shù)相比,這種技術(shù)具有以下特點。在用戶口令符號和實際輸入符號之間加入了一層中間符號,進而建立原始基本符號-中間基本符號、中間基本符號-原始基本符號的兩極關(guān)聯(lián)。用戶最終輸入的符號依賴于隨機生成的關(guān)聯(lián)表,每輸入一個口令符號,關(guān)聯(lián)表就會改變一次,對一個確定的密鑰,最后實際使用鍵盤輸入的可能是任何組合的符號。這樣做的一大好處就是可以防止肩窺,因為每次輸入口令都會有一張不一樣的關(guān)聯(lián)表,短時間內(nèi)一般人無法記住,并由此生成了多元化的對應(yīng)表便于用戶輸入密鑰。將傳統(tǒng)單一的密鑰輸入方式改變?yōu)榫哂须S機性的符號多元化關(guān)聯(lián)表,是一種安全的密碼輸入方案。
2 基于兩級轉(zhuǎn)換的口令輸入方法的具體實例
圖2為給出方法的實例1,其中,圖2(a)為ATM的輸入鍵盤示意圖,可以輸入0~9的數(shù)字,圖2(b)為選取的中間基本符號示意圖,即a~j共10個字母,圖2(c)和圖2(d)為一級關(guān)聯(lián)關(guān)系示意圖;圖2(e)和圖2(f)為二級關(guān)聯(lián)關(guān)系示意圖。假定用戶口令是“123941”,在屏幕上將第一級轉(zhuǎn)換關(guān)系顯示出來如圖2(c)和2(d)所示,將第二級轉(zhuǎn)換關(guān)系顯示出來如圖2(e)和2(f)所示。如果用戶想輸入數(shù)字“1”,首先根據(jù)圖2(e)和2(f)所示的二級對應(yīng)表找到其位置對應(yīng)的中間基本符號“a”,然后根據(jù)圖2(c)和2(d)所示的一級對應(yīng)表找到與“a”位置對應(yīng)的原始基本符號“7”,所以用戶應(yīng)操作ATM鍵盤上的數(shù)字“7”鍵。輸入之后,用戶繼續(xù)想輸入數(shù)字“2”,則系統(tǒng)自動生成新的對照表,按照相同的方式輸入。為了示意,這里假定六次輸入對應(yīng)的關(guān)聯(lián)關(guān)系對照表均與第一次相同(實際應(yīng)用中,可以在輸入一個符號后更新一次一級及二級關(guān)聯(lián)關(guān)系對照表),則最后從鍵盤輸入的口令應(yīng)該是“765437”。ATM機在系統(tǒng)內(nèi)部對口令的解析就是對用戶輸入的逆過程,根據(jù)用戶的輸入,按照先一級關(guān)聯(lián)、再二級關(guān)聯(lián)中查詢到真實的字符最終確定用戶口令。
圖3(a)(b)(c)(d)和圖4(a)(b)(c)(d)為實例2和實例3的示意圖。它們相關(guān)的口令輸入方法和實例1相同,類似地,當從鍵盤輸入“765437”時,對應(yīng)的真實用戶口令“123941”。
3 結(jié) 語
本文提出了一種基于兩級轉(zhuǎn)換的、安全可靠的口令輸入方法,其可應(yīng)用于各類需要提供口令才能獲取相應(yīng)服務(wù)的場合,包括ATM機口令、網(wǎng)銀口令、門禁口令、重要文件加密口令、電子郵箱口令等。
按照這種方法的技術(shù)思路,還可根據(jù)需要擴展為三級關(guān)聯(lián)、四級關(guān)聯(lián),甚至更多層關(guān)聯(lián)的口令輸入,提高其復(fù)雜性和安全性。
主要參考文獻
[1]DV Klein."Foiling the Cracker":A Survey of,and Improvements to,Password Security[J].Programming & Computer Software,2010(3).
[2]EH Spafford.OPUS:Preventing Weak Password Choices[J].Computers & Security,1992(3).