羅華容,程 勁
(四川省科學技術信息研究所,四川 成都 610016)
隨著互聯網技術的不斷發(fā)展,人們的日常生活不斷網絡化,資產不斷數字化,身份認證逐漸成為保障用戶信息安全的基本手段?;诳诹畹恼J證起源于20世紀60年代,主要被用于大型機的訪問控制。口令因其應用簡單有效,在互聯網中廣泛應用于身份認證。雖然目前已有其他大量用于身份認證的技術[1],如基于Key、基于生物特征指紋、行為認證等技術,但是基于認證成本和使用的便利性、用戶的隱私等因素的考慮,越來越多的互聯網服務如郵件、即時通信、網上購物等,大多采用了賬號及口令的認證方式。
考慮到口令仍然是目前應用最多的身份認證方式,因此對口令的安全評估至關重要??诹畲嗳跣栽u估用于量化給定明文口令的強度,主要目的是及時評估網絡用戶的口令強度并提醒用戶設置高安全等級口令,避免弱等級口令帶來的安全隱患。口令強度因素包括口令長度、所采用的字符或符號集大小、字符排列順序等。如果口令強度過低,意味面臨的網絡安全隱患越大[2]。
科技信息服務是一個重要的服務咨詢類產業(yè),必然涉及口令的脆弱性評估和口令的恢復或破解,如科技信息共享平臺等都涉及到用戶賬號登錄,因此賬號安全是該平臺安全的重要部分。口令的脆弱性評估能夠根據用戶設置的口令和附屬信息判斷該口令的強度??诹罨謴桶ú僮飨到y(tǒng)口令恢復、郵箱口令恢復、加密文件口令恢復以及各種網絡應用的口令恢復等??诹畹拇嗳跣栽u估和恢復都屬于信息安全服務領域的重要業(yè)務[3]。
口令脆弱性評估是指對口令安全性進行量化評估的技術。給定訓練集合S={xi|i=1,…,N},其中N為已有口令集合的數量;xi為第i個口令,其由Li個字符組成。N個口令長度不一定相等,xi=(xi1,xi2,…,xiLi)。每個口令對于新的口令x,有x=(x1,x2,…,xL)。判斷x的脆弱性,并將該指標記為y。
考慮到密碼口令脆弱性評判與先驗知識,可以利用規(guī)則或人為判斷等,為每個密碼口令添加相應的脆弱性指標。因此,原問題變化為:給定口令集合S={(xi,yi)|i=1,…,N},其中N為已有口令集合的數量;xi為第i個口令,其由Li個字符組成;yi為第i個口令的脆弱性度量。N個口令長度不一定相等,xi=(xi1,xi2,…,xiLi)。每個口令對于新的口令x,有x=(x1,x2,…,xL),L為待評估口令的長度。
轉換問題變?yōu)椋航o定S的情況下,判斷口令x的脆弱性,并將該指標記為y。
針對上述問題,目前多采用基于規(guī)則的方法,予以解決,其他還有基于攻擊概率的方法[4]和基于各種單模型進行組合的方法[5]。機器學習在大數據分析等領域應用廣泛,特別是分類算法??紤]到上述問題的數學描述,可以采用基于機器學習算法中經典的分類算法進行問題求解。
口令脆弱性評估,或者稱為口令強度評估,采用基于機器學習的聚類算法,主要需要文本處理和邏輯回歸的相關技術。下面簡要給出相關基礎知識介紹,具體詳細的介紹見參考資料[6-7]。
特征提取是對特征空間降維最常用且有效的一種方法。特征提取的方法根據特征評分函數的不同可分為很多種,TF-IDF是一種最常見的文本特征提取算法,且提取效果相比其他方法好。TF-IDF通常用于衡量文本集中一個字或者一個詞語對包含該字或者詞語的文本重要程度。TF-IDF實際上是TF與IDF的乘積。TF-IDF的特征提取函數為:
特征項頻率TF是指在一個文本中,某個特征項的出現次數和文本中所有特征項的出現總次數的商。特征項可以是字或者詞。TF的主要思想是:如果某個特征項在一篇文本中出現的次數較多,則表明該特征項可能會較好地描述了該文本的主要信息,適合用于文本分類等處理。
對口令強度評估分類,是一種典型的多分類問題。邏輯回歸是一種可以用來進行分類的常用統(tǒng)計分析方法,特別是對于高維特征問題,能夠得到概率型的預測結果,是一種典型的非線性分類模型。
對于具有n個變量的特征向量x=(x1,x2,…,xn),設條件概率P(Y=1|x)=p為根據觀測量相對于某事件發(fā)生的概率,則邏輯回歸模型可表示為:
其中,g(x)=β0+β1x1+β2x2+…+βnxn,β=(β0,β1,β2,…,βn)為自變量的回歸系數。顯然,π(x)的值域區(qū)間為[0,1],因此可以根據取值估計變量Y=1時發(fā)生的概率。對邏輯回歸模型的參數進行估計,一般采用極大似然估計,設y是0-1型變量,m個訓練樣本標簽值為{y1,y2,…,ym},于是m個觀測值的似然函數為:
對式(3)兩邊求自然對數,即:
最大似然估計就是選取β0,β1,β2,…,βn的估計值,使得似然值ln(L)的值最大化。對式(4)求導,應用Newton-Raphson方法進行迭代求解,即可獲得模型的回歸系數。將求得的參數代入式(1),即可建立邏輯回歸的分類模型。
本方案采用基于機器學習的技術進行口令安全評估,具體采用有監(jiān)督式的學習算法——邏輯回歸算法建立分類模型。整個過程包括模型訓練和模型評估兩個階段。模型訓練階段需要收集一定數量的真實口令和對應的口令強度標簽,采用文本處理技術對口令進行數值化得到對應的特征向量和標簽,采用邏輯回歸算法建立分類模型;口令評估階段對口令的特征向量輸入到訓練階段建立的模型中,即可得到模型輸出系數,即口令評估的強度信息。
監(jiān)督式學習的一個重要特征是帶有標簽信息。特征向量可以通過對應的文本處理技術得到,3.4節(jié)中將有相應的描述。需要在原始口令的基礎上添加對應口令強度的信息,可以基于現有規(guī)則給出一部分口令的對應安全強度,以得到其標簽信息。
將明文口令進行數值化的重要前提是將口令分詞。傳統(tǒng)文本處理中,分詞技術應用包括英文和中文兩大類。英文分詞直接以空格符作為分隔符,中文相對簡單??诹罘衷~應用與傳統(tǒng)分詞有區(qū)別??诹顟弥校话阋宰址幋a單元進行分割,包括英文、特殊字符等各類字符??紤]到口令使用中的情況,一般口令均由英文大小寫字母、數字及特殊字符組成,所以口令中暫不考慮中文字符的情況,即默認口令均為非中文。
經過上述分詞步驟后,采用常用的文本處理技術TF-IDF技術進行文本數值特征的提取。該特征在文本向量化的基礎上進行詞頻統(tǒng)計,同時乘以逆文檔頻率。IDF在口令脆弱性評估上具有現實意義,在少的口令中出現,安全性越高。如一些特殊字符,越少出現的被采用,安全性就可能越高。
文本特征提取采用python語言中的scikit-learn庫中的TfidfVector()函數實現,整個調用過程比較簡單。TF-IDF文本特征實現了文本字符到數值特征的轉換,使得可以運用數值特征進行相應機器學習模型的數據輸入。
口令明文經過上述過程預處理和TF-IDF處理后,將得到的數值特征向量和對應的標簽信息一起作為模型訓練的輸入。模型采用邏輯回歸算法,確定相應的模型參數,包括l2正則項等超參數。邏輯回歸算法采用python第三方庫scikit-learn實現。為了進行算法驗證,采用交叉驗證方式,將所有訓練樣本按0.7:0.3的比例進行隨機選擇,其中0.7部分作為模型訓練使用,其余部分用于模型驗證。驗證的目的是防止模型訓練不充分或者過擬合,得到一組合適的模型系數,從而提高口令評估階段的性能。經過測試集驗證后,準確率較高的模型系數即為對應口令評估模型的系數。將該模型系數進行保存,當口令脆弱性評估階段需要時,再加載對應的模型系數。
如圖1所示,口令評估階段主要需要三個階段:分詞、TF-IDF和邏輯回歸模型分值計算。前兩個過程在3.3、3.4已有較詳細的描述,邏輯回歸分值計算階段則將經過TF-IDF步驟后的特征向量輸入到3.5節(jié)中訓練好的邏輯回歸模型中,然后模型輸出即為脆弱性評估值。
圖1 基于機器學習的口令評估流程
在口令脆弱性評估中,由于用戶隱私的原因,不可能收集大量的用戶口令,因此官方沒有標準的數據樣本和公開算法供實驗分析,很難做出和他人比較的詳細對照。為了驗證本文所提方案的可行性,本文設計并實現了所提方案和算法的仿真。
本文收集了1 000多個用戶口令,考慮到用戶隱私的保護,只采集了口令部分數據,賬號只關聯到用戶名并被匿名化。同時,設計了簡單的口令標簽標注工作,僅僅設置了3個檔,即弱、中、強三檔??诹畲嗳跣栽u估和該準則對應,也有三個類別,即弱、中、強三個類別。
整個方案采用python語言編程實現,邏輯回歸算法調用scikit-learn庫中說的分類算法。具體配置如下:測試集劃分占訓練集總數的20%。邏輯回歸分類模型采用多分類模型,同時采用了L2正則項懲罰項。測試驗證集整體準確率為89.5%。同時,也給出了一些口令,在線進行口令脆弱性測試,結果如表1所示。
表1 口令測試結果表
表1中評估強度輸出列中為三類數值0、1、2,因為模型建立中只采用了三個等級,即弱、中、高,所以模型輸出也對應三個等級0、1、2與弱、中、高。從表1可以看出,評估結果比較能符合實際情況,最簡單的同一個字母g組成的口令安全強度最低,其他口令強度為1的口令大致相同;而強度等級為2的口令包括一些特殊字符、數字和字母,與實際脆弱性等級比較一致。這一結果表明,基于機器學習技術的口令脆弱性評估方案是合理的。
本文提出一種基于機器學習的口令脆弱性評估方案,將用戶口令結合口令先驗知識(口令標簽化工作)建立模型,目的在于運用成熟的機器學習技術學習已有的先驗知識,避免傳統(tǒng)靠規(guī)則進行安全口令評估的缺點。實驗驗證了一部分口令評估,說明本文方法能得出較合理的評估值。得到的訓練樣本越多,標簽信息的完善程度越高,越有利于后期口令的脆弱性評估。在條件允許的情況下,收集大量的訓練樣本,基于相關統(tǒng)計規(guī)律的情況下生成新的特征向量,并依據該特征輸入進行機器學習模型的訓練進行口令脆弱性評估及其他機器學習模型用于脆弱性評估是下一步的研究方向。