耿 博,葛麗娜,王秋月,王利娟
(1.廣西民族大學信息科學與工程學院,廣西 南寧 530006;2.廣西民族大學東盟研究中心(廣西科學實驗中心),廣西 南寧 530006)
隨著智能手機的飛速發展,智能手機現已成為人們日常生活的必需品。搭載Android操作系統的智能手機占全部智能手機總數的79%以上[1],Android系統的安全性問題也逐漸被人們關注。
手機屏幕鎖定是智能手機安全防護的第一道屏障,也是禁止違法用戶竊取手機隱私的重要屏障。手機屏幕的鎖定即手機的用戶認證機制[2],通常利用圖案解鎖、指紋解鎖、PIN(Personal Identification Number)解鎖、人臉識別等方法進行用戶認證[3 - 6]。該機制可以有效保護手機內的隱私信息不被非法用戶竊取,直接關系到手機系統的安全性。手機的認證過程往往涉及到手機內核層、框架層與應用層的數據傳遞,且實現方式多樣,但現有的手機認證方法的安全性與便捷性還未達到一種平衡。
現行的手機認證方法中九宮格手勢認證所占比例較大,其次分別是指紋認證方法與圖像認證方法[7,8]。認證方法更新很快但人們所關心的安全性卻沒有太大突破。九宮格手勢認證主要是通過設定一個圖案手勢認證密碼,在認證時通過觸摸滑動相應的圖案與預設的圖案密碼相對比,相同則認證成功。九宮格手勢認證方法的弊端是只能設定一組圖案密碼,易被破解[9 - 11]。因此,本文基于Android系統,設計動態認證密碼,增加密碼的多樣性,增加破解難度,提高智能手機的安全性。
九宮格手勢認證方法[12]是谷歌在2010年開始推廣使用的,近年來,九宮格手勢認證方法更是主流的手機認證方法之一。九宮格手勢認證方法要求繪制過程至少經過手機屏幕的4個點,且九宮格中的九個點不可以重復利用,路徑中間的點不能跳過,這些要求決定了解鎖圖案大約為389 112種[13]。
九宮格手勢認證方法是根據init()方法繪制出九個點并初始化,設置一個有序數組ArrayList〈Point〉來收集觸摸點,另外設置一個有序數組List〈Integer〉來記錄觸摸點的順序,通過對比觸摸點順序與保存的密碼圖案是否一致來決定是否完成認證。具體流程如圖1所示

Figure 1 Flow chart of speed dial authentication圖1 九宮格認證流程圖
九宮格手勢認證方法只支持一種圖案手勢認證,造成該方法的密碼單一,極易受到污漬攻擊、肩窺攻擊、暴力破解,致使手機隱私泄露,造成手機用戶損失。Aviv等人[14]提出污漬攻擊,Andriotis等人[15]具體闡述了智能手機的污漬攻擊,即利用工具將手機屏幕殘留的油脂拍下即可清晰看到油脂痕跡,該攻擊方法可以輕易獲取圖案鎖的密碼。污漬攻擊的本質是根據手機主人遺留在手機屏幕上的認證手勢的污漬猜測手勢認證密碼,其成功率遠遠高于單純的猜測攻擊,適用于手機屏幕遺留下大量的手勢認證污漬的情況。
九宮格手勢認證方法的另外一個安全威脅是肩窺攻擊,即用戶在公共場所頻繁地進行手機認證,攻擊者通過肩窺或者拍照獲取手機認證手勢的攻擊方式。肩窺攻擊的本質是直接偷窺手勢認證密碼,而后獲取認證密碼,適用于環境嘈雜的情況,且在此情況下成功率極高。九宮格手勢認證方法密碼單一,易被暴力破解。Dietz等人[16]在統計大量用戶的認證圖案后,構造了一個鏈式模型來分析Android認證圖案的統計模型,發現用戶的圖案選擇有明顯的喜好,根據圖案出現的頻率可以暴力破解圖案密碼。
對于九宮格手勢認證方法的這些問題,我們需要一個可以抵抗污漬攻擊、肩窺攻擊、暴力破解的方案。為解決此問題,我們改進了九宮格手勢認證方法。
本文第3節介紹改進的九宮格圖案手勢認證方法;第4節給出了改進的九宮格手勢認證方法的理論分析;第5節介紹實驗及實驗分析;最后進行全文總結。
為了增加九宮格手勢認證方法的安全性,對其認證過程進行改進。改進的九宮格手勢認證方法無需繪制完整的密碼圖案,只需根據屏幕上顯示的認證點以及隨機數繪制認證圖案即可。用戶根據屏幕上顯示的隨機數繪制認證圖案,設備界面顯示上次成功認證的末位認證點,如為首次認證則不顯示認證點。若為非首次認證,則設備界面顯示的認證點的向下間隔一位觸摸點為本次認證的起始點,屏幕上顯示的隨機數即為本次認證點的個數。預存的6位或者多位觸摸點依次循環作為認證密碼,認證成功后則認證密碼更新,認證失敗3次,認證密碼自動更新,認證失敗導致密碼更新2次,則系統自動發送設備具體位置到指定郵箱。
增加一個cishu變量,變量的數值等于SettingActivity收集到的觸摸點的個數,程序中增加Random類來產生[2,N-1]隨機數,N為cishu變量的數值。每成功認證一次,隨機數更新一次,隨機數的加入決定了每次認證的點數和起始認證點數不同,每次認證的密碼圖案依據注冊時繪制的密碼圖案循環。改進后的認證流程如圖2所示。

Figure 2 Flow chart of the improved authentication method圖2 改進的認證方法流程圖
根據Android系統設計的認證方法原理,將原本一個存放圖案密碼的有序數組List〈Integer〉增加到6個或者更多,以便存儲6種或多種認證密碼。將SettingActivity收集到的觸摸點依次存入到有序數組List〈Integer〉中。以6位觸摸點為例的密碼存儲程序流程如圖3所示。
為了實現認證密碼的動態變化,現對認證過程進行改進。增加記錄認證點的變量weizhi,weizhi變量與SettingActivity中的有序數組變量passList對應,weizhi變量的變化決定著認證密碼的變化。增加記錄當前認證點的變量weizhi1,變量weizhi1記錄當前認證點的位置。用戶認證過程改進為:對比當前隨機數對應的圖案與用戶繪制圖案是否相同,相同則認證成功,認證成功的具體流程如圖4所示。
改進的認證程序增加一個變量cishu2,用來統計認證錯誤次數。認證不成功時,則變量cishu2加1,當cishu2的值為3時更新隨機數。增加變量cishu3,記錄認證失敗導致隨機數更新的次數,當變量cishu3的值等于2時,自動發送設備具體位置到指定郵箱。認證失敗的具體流程如圖5所示。


Figure 4 Flowchart of successful authentication圖4 成功認證具體流程圖

Figure 5 Flowchart of authentication failure圖5 認證失敗具體流程圖

從表1可以看出,改進后的認證方法的密碼空間數大于改進前的,改進后的認證方法的密碼空間數約為改進前的11倍,加大了密碼強度,增強了安全性。
改進的九宮格認證方法具有動態性,有效地防范了肩窺攻擊與污漬攻擊。肩窺攻擊只能獲取當前某一次的手勢認證密碼,污漬攻擊獲得的是動態手勢認證圖案的集合,無法具體得出具體的手勢認證密碼。改進后的認證系統具備自動更新手勢密碼的功能,即密碼輸入錯誤3次后,密碼自動更新為下一個密碼,能夠有效抵抗暴力破解。
改進后的手機用戶認證方法具有極高的可用性。首先,理論上改進后的九宮格手勢認證方法的安全性比九宮格手勢認證方法的高。其次,改進后的用戶認證方法提高了用戶認證的便捷性。改進后的認證方法僅需用戶繪制隨機數對應的認證點數量的圖案,無需繪制全部認證點數量的圖案,提高了用戶認證機制的便捷性。在改進的用戶認證方法中,用戶依舊可以使用改進前的界面作為認證界面,不同的是屏幕在開始認證時會自動產生隨機數以及顯示上次成功認證時的末尾認證點,界面保留原始的認證界面,有助于認證方法的推廣。
手機隱私安全的問題被越來越多的人關注后,許多研究者都對手機初始的認證方法進行了改進,提高了智能手機的安全性,但絕大多數的改進都是舍棄了九宮格手勢認證方法,另尋其他認證方法。本文的方法保留九宮格認證方法的認證界面,改進認證過程,增加手機的安全性。
改進后的程序的時間復雜度與改進前的程序的時間復雜度理論上相差不多,但程序運行時間應該有些許不同。改進的九宮格認證方法的程序的空間復雜度大于九宮格手勢認證的程序空間復雜度,關于如何優化空間復雜度以及時間復雜度是今后工作的一個重點。但現階段,就為了增加手機隱私的安全性來看,改進后的九宮格認證方法的性能要優于改進前的。
對比改進的九宮格認證方法與九宮格認證方法的可用性、性能與安全性,收集相應數據,評估改進的九宮格認證系統的性能、可用性與安全性。
手機運行系統Android 6.0.1平臺,手機型號:小米3,手機RAM容量:2 GB,手機ROM容量:16 GB。電腦操作系統:Window 10。
5.2.1 可用性及性能實驗設計
通過組內單因素重復實驗的方法[17],評估改進的九宮格手勢認證方法的可用性。獨立變量為認證點。通過多次繪制不同的圖案,保存密碼圖案,最后繪制正確與錯誤的解鎖圖案,驗證改進的九宮格手勢認證方法在手機中是否可以正常流暢運行。
5.2.2 安全性實驗設計
通過組內單因素重復實驗的方法,評估改進的九宮格手勢認證方法的安全性。獨立變量為認證點。具體方案:(1)對改進的九宮格手勢認證方法進行猜測攻擊,測試改進的九宮格手勢認證方法是否可以有效抵抗猜測攻擊。(2)告知測試者首次認證的手勢密碼,來模擬認證系統受到肩窺攻擊,測試改進后的九宮格認證方法是否可以通過獲知單次認證的手勢密碼來認證手機,驗證改進后的九宮格手勢認證方法是否可以有效抵抗肩窺攻擊。(3)對手機屏幕上認證時留下的污漬進行拍照,保證拍攝圖片的清晰度,將照片給測試者,測試者根據照片猜測手機的認證手勢,看能否通過手機認證,驗證改進的九宮格手勢認證方法是否可以有效抵抗污漬攻擊。
5.3.1 測試改進的九宮格手勢認證方法的可用性及性能
給參與者講解九宮格手勢認證方法和改進的九宮格手勢認證方法的原理,讓參與者熟悉改進的九宮格手勢認證方法并確認參與者已經學會使用改進的九宮格手勢認證方法。參與者開始分別使用認證系統。在每一位參與者成功完成手機認證之后,對手機屏幕上的污漬進行拍照,記錄解鎖時間以及解鎖成功次數。同時,詢問參與者手機解鎖時是否有卡頓現象。
5.3.2 測試系統的安全性
在改進的九宮格手勢認證方法中設置6個點的手勢圖案密碼,以便快速測試改進后的方法是否可以抵御猜測攻擊、污漬攻擊和肩窺攻擊。
(1)首先,給予測試者4個小時時間,猜測攻擊九宮格圖案手勢認證方法。其次,另外給予測試者4個小時時間,猜測攻擊改進的九宮格手勢認證方法。實驗結束后,記錄被破解的手機個數。
(2)給測試者分發預留的手機屏幕污漬照片。首先讓測試者在規定時間內根據照片的污漬痕跡猜測九宮格手勢認證方法的認證手勢密碼。其次,讓測試者在相同時間內,根據污漬痕跡猜測改進的九宮格手勢認證方法的認證手勢密碼。實驗結束后,記錄被破解的手機個數。
(3)告知測試者單次手機認證的手勢密碼圖案。首先,讓其在規定時間內嘗試對九宮格手勢認證方法進行破解。其次,給予相同的時間,讓其嘗試對改進的九宮格手勢認證方法進行破解。實驗結束后,記錄被破解的手機個數。
5.4.1 可用性測試結果及分析
100名測試者,100人成功認證運行改進的九宮格手勢認證方法的手機,認證成功率為100%。手機完成單次認證的時間如表2所示。

Table 2 Single mobilephone authentication time before and after improvement表2 改進前與改進后的認證方法完成單次手機認證時間 s
改進后的圖案手勢認證方法的平均認證時間少于改進前的,可以得出改進后的認證方法的便捷性優于改進前的。改進后用戶認證方法的最大認證時間大于改進前的,分析原因為:
(1)當次認證點數為8點,即認證點數為當前最大認證點數;
(2)改進后的認證系統還需生成隨機數與提取相應的認證密碼圖案。
以上2點原因造成了改進后的認證方法的最大認證時間值大于改進前的。但改進后的認證時間的最小值與平均值均少于改進前的,認證時間的最大值僅出現當前認證點數是8位的情況下,所以改進后的圖案手勢認證方法的便捷性優于改進前的。
由此實驗結果,我們認為改進后的九宮格認證方法的可用性優于改進前的。同時,100名測試者中有13人反映手勢有時有卡頓現象。改進的九宮格手勢認證方法的空間復雜度與時間復雜度均大于九宮格手勢認證方法的,認證程序占用手機內存較多,手機有些許卡頓,優化認證方法是以后工作的一個重點。
5.4.2 安全性實驗結果及分析
九宮格手勢認證方法被破解的手機個數與改進的九宮格手勢認證方法被破解的手機個數如表3所示。

Table 3 Number of cracked cell phone表3 被破解的手機個數 個
從表3中可以看出,猜測攻擊、污漬攻擊、肩窺攻擊對破解九宮格手勢認證方法的成功率要高于對破解改進的九宮格手勢認證方法的成功率。
(1)對于猜測攻擊。猜測攻擊九宮格手勢認證方法,由于密碼的單一性,在充足的時間內,只要有耐心則成功率很高。而改進的九宮格手勢認證方法,存在密碼自動更新機制,提高了猜測攻擊的難度。
(2)對于污漬攻擊。實驗中給予參與者的污漬照片清晰度高,九宮格手勢認證方法的密碼單一性弊端又一次顯現出來,人們根據照片中的污漬痕跡,極易試出正確的解鎖圖案。改進的九宮格手勢認證方法,由于不存在固定的解鎖密碼,造成污漬照片中的污漬混亂,提高了抵抗污漬攻擊的能力。
(3)對于肩窺攻擊。九宮格手勢認證方法只有一種手勢密碼,只要獲知該密碼,均可以成功認證手機,肩窺攻擊對改進前的九宮格手勢認證方法的認證成功率為100%,對于改進的九宮格手勢認證方法則沒有效果,因為改進后的認證方法沒有固定的認證圖案。
根據表3可知,改進后的九宮格認證方法的安全性要優于改進前的九宮格認證方法的安全性。
根據以上實驗可以得出,改進后的九宮格認證方法在保證可用性的基礎上安全性更高。
隨著Android系統的智能手機的越來越大眾化,智能手機的隱私安全性越來越被人們關注。本文以提高手機安全性為目的,對Android系統的九宮格手勢認證方法進行了改進,設計實現了手機手勢圖案的動態認證功能,提高了手機的安全性。
通過手機驗證了本文所提方法可以正常運行,且擁有動態認證的特性。經過測試,該認證方法可以有效提高手機安全性,防止手機隱私被泄露。
在改進的九宮格手勢認證方法中,存在以下幾個方面可以深入研究:
(1)內存優化問題。目前只是初步針對九宮格手勢認證方法存在的問題進行改進,并未過多地涉及內存優化問題,目前改進的認證方法的時間復雜度與空間復雜度均高于改進前的,所以程序稍顯卡頓,在內存優化方面尚有很大的改進空間。
(2)認證機制的安全問題。改進后的圖案手勢認證方法檢測到認證失敗造成認證密碼更新2次后,會自動發送智能設備位置到指定郵箱,并自動關機,但關機后,仍可正常開機,繼續進行猜測攻擊,如何進一步抵抗猜測攻擊是今后工作的另外一個重點。