桑永朋



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