楊龍龍, 楊 頻, 劉 亮, 張 磊
(四川大學網絡空間安全學院, 成都 610065)
當前,基于口令的身份鑒別是目前最流行的鑒別方式之一,也是一個重要研究領域[1],然而口令的使用不總是安全的,人們習慣將口令設置成讓自己容易記住的短的或者有規(guī)律的字符序列[2-3],像“123456”這樣的弱口令.對此,許多研究學者提出了口令設置策略[4-8]來幫助用戶設置易于記憶且不易被猜解的口令.然而,由于稟賦效應[9]的存在,即使有很高安全意識的人,也還是會使用弱口令.研究口令策略和口令安全性如檢測現有用戶口令保護機制的缺陷等都需要有大規(guī)模口令明文樣本.獲取真實的大規(guī)??诹蠲魑氖抢щy的,利用口令生成技術來生成大規(guī)??诹罴悄壳皬V泛使用的一個手段.
在口令生成技術研究方面,前人已經做了大量的研究[10-15],其中比較具有代表性的是OMEN模型[10]和PassGAN模型[11],這兩個模型分別是基于傳統(tǒng)馬爾可夫鏈的口令生成方法和基于生成對抗神經網絡的口令生成方法.
OMEN模型的出發(fā)點是高概率出現的口令排在口令集前面對口令破解有加速作用.OMEN實驗數據表明,OMEN模型生成的口令集在測試集上的命中率要高于JtR-Markov以及其改進版JtR-Inc模型[16].然而,OMEN模型在設計上沒有考慮到口令集的分布是否與測試集口令分布一致的問題.
PassGAN模型使用了生成對抗神經網絡(Generative Adversarial Network,GAN)[17],生成的口令具有符合原口令集分布的特點.然而,PassGAN生成的口令集中具有大量重復的口令,其次,PassGAN生成的口令不會按照一定次序排序,并且存在口令重復率高的問題.
本文針對上述的OMEN模型與PassGAN模型在生成口令過程中存在的問題,提出OMECNN模型,通過引入判別神經網絡打分篩選口令的方法解決上述問題.OMECNN模型使用有序馬爾可夫口令枚舉器按照口令組合概率的高低生成組合口令,然后利用判別神經網絡進行打分篩選口令,選出得分高于閾值的口令組成最終口令集.本文主要的工作和貢獻如下.
1) 本文提出一種基于有序馬爾可夫枚舉器和判別神經網絡的口令生成模型.首先由有序馬爾可夫枚舉器進行口令生成,隨即使用判別神經網絡進行打分篩選,得分高于閾值的口令組成最終口令集.通過該模型生成的口令具有按照口令組合概率高低排序的特點和符合真實訓練口令集的口令分布的特點.
2) 與PassGAN相比,OMECNN解決了重復率的問題且生成的口令是按照口令組合概率高低排序的.其次,OMECNN模型是首個利用生成對抗網絡的判別器和有序馬爾可夫技術相結合進行口令生成的技術.本文發(fā)現隨著GAN的訓練輪次的增加,GAN的生成器的性能沒有增加反而更差,而口令集重復率卻增加了.相反,GAN的判別器的性能隨著GAN的訓練輪次的增加而得到增加.
3) 實驗結果表明,OMECNN模型的命中率較OMEN模型有所提升,較PassGAN模型有大幅的提升.在Rockyou數據集上,在生成107條口令的條件下,OMECNN模型比OMEN模型多命中16.60%的口令,比PassGAN模型多命中220.02%的口令.
2014年,研究學者提出生成對抗網絡[18].生成器網絡盡可能生成逼真樣本,判別器網絡則盡可能去判別樣本是來自真實樣本,還是來自生成器生成的偽樣本,示意圖如圖1所示.
圖1 生成對抗網絡框架圖Fig.1 GAN framework
GAN的目標函數如下:
Εz~pz[log(1-D(G(z)))]
(1)
對于判別器D,其目標函數為maxV(G,D),當生成器G固定時,對V(G,D)求導,得到最優(yōu)判別器D*(x),如式(2).
(2)
將最優(yōu)判別器代入上述目標函數式(1)中,可以求出在最優(yōu)判別器下,生成器的目標函數,其等價于優(yōu)化pdata(x)與pz(x) 的 JS 散度.當pdata(x)與pz(x)相等時,對于判別器而言,任一樣本被預測為真實樣本的概率均為0.5,達到了難以區(qū)分真實樣本與偽造樣本的地步.實際訓練時,生成器和判別器采取交替訓練的方式,先訓練k次D,然后訓練1次G,不斷往復.在PassGAN模型中k取10.
原始GAN存在訓練梯度不穩(wěn)定問題,使GAN的訓練變得困難或失敗.有進一步的工作[17-18]改善了訓練時梯度的穩(wěn)定性的問題.本文介紹的PassGAN和判別神經網絡均是用由IWGAN模型[18]實現對抗神經網絡模型的.
早期的口令生成技術的研究是基于Markov模型,后經過改進得到JtR-Markov模型[16].在該模型中,用戶口令被解析成一串字符序列,字符之間存在相互的聯系,且字符之間的關系符合統(tǒng)計規(guī)律.通過統(tǒng)計字符串子序列之間的關系,得到字符序列間的統(tǒng)計規(guī)律,隨后基于這些規(guī)律進行口令字典的生成.
Weir等提出上下文概率無關語法技術,后經Durmuth等拓展得到OMEN模型[10].OMEN按照N-Gram的發(fā)生概率高低來生成口令,概率越高的口令輸出的可能性就越靠前.具體做法是引入用于存儲具有不同概率的N-Gram序列的桶的概念.隨后將所有的N-Gram序列按照統(tǒng)計概率的高低分類到不同的桶中,OMEN模型按照不同桶的概率由高到低進行取N-Gram序列組成口令,直到所有桶被遍歷完或者生成的口令的條目達到目標條目.在可選字符集∑中,OMEN模型生成的口令序列可以表述為
P(x1x2...xn)=P(x1)P(x2|x1)...P(xn|
x1x2...xn-1),xi∈∑
(3)
OMEN模型生成的口令集D可以表述為
DV,?,,η,?′,′,η′={β:αβ∈DV,?,,η}
(4)
以及
DV,?,,η={α:|α|=
(5)
在式(4)和式(5)中,l為字符序列的長度;V(X)是字符的條件概率函數;?為OMEN模型中的閾值,低于該閾值的口令組合將被丟棄;η為某個N-Gram序列桶的最小概率.OMEN的實驗表明,OMEN性能超過JtR-Markov以及JtR-Inc模型.
隨著機器學習的快速發(fā)展,運用機器學習的方法進行安全領域課題的研究也逐漸流行起來,出現了一些新的研究方向[13,19-20].在口令猜解中,Hitaj等基于生成對抗神經網絡提出PassGAN[11]口令猜解模型,使用生成對抗神經網絡來進行學習口令集的分布,學習到分布后然后再使用生成器網絡來生成口令.本文實驗部分將討論PassGAN的重復率問題.
本文提出的模型結合馬爾科夫枚舉器和判別神經網絡方法,使用有序馬爾可夫口令枚舉器按照口令組合概率的高低生成組合口令,同時使用判別神經網絡進行打分篩選口令,選出得分高于閾值的口令組成最終口令集.生成的口令集具有按照口令組合概率高低排序的特點和符合真實訓練口令集的口令分布的特點,并且不存在重復的口令的情況.
OMECNN模型包括兩個子模塊,一個是口令生成模塊,另一個是口令篩選模塊,整體模型訓練和口令生成框架圖如圖2所示.
如圖2所示,使用數據集訓練GAN和有序馬爾可夫口令枚舉器,訓練完成后得到有序馬爾可夫口令枚舉器與GAN神經網絡兩個模塊.OMECNN模型中,取GAN的判別器作為判別神經網絡子模塊,GAN生成器網絡被丟棄.隨用使用有序馬爾可夫口令枚舉器進行口令生成,將判別神經網絡應用于有序馬爾可夫口令枚舉器生成的口令,輸出相應的分值,OMECNN模型選擇那些分值高于或者等于閾值常數λ的口令.
OMECNN模型的口令選擇模塊需要滿足以下3點特性:(1)所選的判別神經網絡模塊有能力學習給定口令集的分布特征;(2)所選的判別神經網絡模塊以口令字符序列作為輸入;(3)所選的判別神經網絡模塊輸出一個分值.要求:當分值大于或者等于一個閾值常數λ,能在一個高概率情況下得出該口令符合原分布的結論,反之,當分值低于該閾值常數λ時,得出該口令不符合原口令集分布的結論.
圖3~圖5給出了本文OMECNN模型的生成對抗網絡結構圖.
圖2 OMECNN訓練和口令生成框架圖Fig.2 OMECNN and password generation framework
圖3 生成器網絡結構圖Fig.3 Generator structure
圖4 判別器網絡結構圖Fig.4 Discriminator structure
圖5 殘差塊結構圖Fig.5 Residual block structure
訓練完成后,OMECNN模型將GAN中的判別器網絡作為判別神經網絡口令選擇模塊,并將其應用到由口令生成模塊所生成的口令集上,對口令進行打分篩選,這一過程如下式所示.
score=C(X)
(6)
OMECNN模型的口令生成模塊需要具備以下3個特征:(1) 所選的模型有能力學習給定口令集的口令相關特征;(2) 所選的模型能生成不重復的口令;(3) 所選模型輸出的口令有一個特征,即先出現的口令是真實口令的概率比后出現的高.
有序馬爾可夫枚舉器符合上述3個特征.用數學語言描述由有序馬爾可夫枚舉器生成的口令集合D可以被描述為如下式所示.
(7)
式(7)中,V(x1)是口令起始序列的概率函數;V(xi+1|xixi-1...x1)是第i+1個字符的條件概率函數,這兩個函數均由N-Gram馬爾可夫模型學得.
結合式(6)和式(7)可得OMECNN模型生成的口令集D可以表示為
{X:X?DV,?,η,∧?xi∈X?C(xi)≥λ}
(8)
綜合兩個模塊,OMECNN模型可由算法1表述.
算法1OMECNN模型生成口令算法
Count=0
WHILE Count FOR each vector(n)2≤i≤ηwith ∑ini=η FOR eachx1x2x3x4∈∑4withV(x1x2x3x4)= n2 WHILE length ofX<: FOR eachxj+4∈∑ withV(xj+4|xjxj+1xj+2xj+3)>nj+4 END WHILE IFC(X)≥λ: Output passwordX Count=Count+1 END IF END FOR END FOR END WHILE 實驗中使用到的是Rockyou數據集[21],將數據集中的重復口令進行刪除操作;同時,口令中包含非ASCII的字符也被刪除,由于PassGAN中的口令序列最長為10個字符,故將口令長度大于10的口令也進行刪除操作.對口令集進行擾亂操作后,口令集被按照4:1的比例分成訓練集和測試集.最終訓練集包含7 909 309條口令,測試集包含1 977 328條口令.該數據集包含的字符序列如下. abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!.*@-_$# 實驗軟件與硬件環(huán)境如表1所示. 表1 實驗軟硬件環(huán)境 本文共對3個模型進行評估,其中評估的指標為口令的命中率(precision),計算統(tǒng)計方法如下. (9) Hit為命中測試集中的口令的數目;testing-count為測試集口令數量.對于PassGAN模型而言,其重復率(repetition)也被評估,計算統(tǒng)計方法如下式. (10) Hitunique為命中測試集中的已刪除重復的口令的條目.OMECNN模型將被按照算法1來進行口令生成,按照算法1,有序馬爾可夫枚舉器生成的口令,得分低于閾值常數的口令將被丟棄,故OMECNN模型的口令的命中率(precision)的計算方法如下 (11) 將Rockyou訓練集口令給OMEN模型投喂學習,待其統(tǒng)計完N-Gram序列概率后,使用OMEN模型生成口令,其中,N-Gram序列中的N取值分別為2,3,4,5.將訓練完成的OMEN模型進行口令生成,將生成的口令集進行逐一取口令在測試集中搜索統(tǒng)計,得到的命中率如圖6所示. 圖6 OMEN模型命中情況 Fig.6 The hit rate of OMEN model 圖6中,OMEN2gram表示OMEN模型中,N-Gram取為2,其他圖例亦類似.實驗結果顯示,當OMEN模型中的N-Gram模型為5-Gram時,OMEN性能最好,其命中條目數如表2所示. 表2 OMEN_5gram 模型命中條目情況表 將Rockyou訓練集對PassGAN模型進行訓練,訓練模型的參數與文獻中的一致,實驗評估中,將更改最大字符序列長度(max sequence length)與訓練的輪數(iteration)進行數據對比.得到的命中情況如圖7所示. 圖7 PassGAN模型命中情況 Fig.7 The hit rate of PassGAN model 圖7中,m10i200000表示在PassGAN模型中,最大序列長度取10,最大訓練輪數取2×105,其他圖例亦類似.結果得出,PassGAN模型中,當最大序列長度取10,最大訓練輪數取2×105時,PassGAN模型命中性能最好,命中條目情況如表3所示. 上述結果表明,PassGAN的命中率比OMEN模型差,原因之一是因為PassGAN模型會產生重復的口令,這是去掉重復口令的結果,按照式(10)對PassGAN模型重復率進行統(tǒng)計,得出結果如圖8所示. 表3 PassGAN模型命中條目情況表 圖8 PassGAN模型重復率Fig.8 Repetition of PassGAN 結合圖7和圖8可以分析出以下結論,當訓練輪數參數為4×105,最大字符序列長度為19時,在生成109條口令時,口令重復率達到了50.60%.其次,隨著訓練輪數和最大字符序列長度的增加,PassGAN的生成器的性能并沒有增加反而更差,而重復率會隨著訓練輪數的增加而增加. 將Rockyou訓練集對OMECNN模型的有序馬爾可夫枚舉器和判別神經網絡進行訓練,其中,有序馬爾可夫枚舉器中的N-Gram設置為5-Gram,判別神經網絡中的訓練輪數分別設置為2×105, 3×105, 4×105,最大字符序列長度參數值設為10,將score閾值分別設置為-1.2,-1.3和-1.4.按照算法1生成口令集,隨后按照式(11)與測試集進行比對統(tǒng)計,結果如圖9所示. 圖9中,OMECNNn5i200000s13表示為OMECNN模型中,有序馬爾可夫枚舉器的N-Gram為5-Gram,訓練輪數為2×105,score閾值常數取-1.3,如無特殊情況,后文不再復述.結果得出,當訓練輪數為4×105,score閾值常數設置為-1.3時,在生成相同條目的口令情況下OMECNN命中條目最高,此時,命中條目具體情況如表4所示. 圖9 三個模型不同參數下命中情況 Fig.9 The hits of 3 models under different parameters under OMECNN model 表4 OMECNN模型命中條目情況表 比較表2~表4可以得出,在生成107條口令時,OMECNN模型命中的條目比OMEN模型命中的條目高出16.60%,比PassGAN模型高出220.02%. 通過上述實驗可以發(fā)現OMEN模型生成的口令對比測試集有較好的命中率,在生成109條口令時,OMEN模型能命中測試集的49.88%的口令.而PassGAN則只能命中28.10%,造成PassGAN命中率低的原因之一是因為PassGAN模型生成的口令集存在大量重復的口令,本文還對PassGAN模型生成口令的重復率進行了實驗,實驗發(fā)現,當訓練輪數參數為4×105,最大口令字符序列長度為19時,在生成109條口令的情況下,口令重復率達到50.60%.其次,隨著訓練輪數和最大口令字符序列長度的增加,PassGAN的生成器的性能并沒有增加反而更差,而重復率會隨著訓練輪數的增加而增加.對比OMECNN模型的判別神經網絡模塊,還可以發(fā)現,GAN的判別器的性能會隨著訓練輪數的增加而增加.在命中率上,OMECNN在生成109條口令的情況下,命中率能達到51.32%,高出OMEN模型1.44%,高出PassGAN模型23.22%.在生成107條口令的情況下,OMECNN模型生成的口令命中條目高出OMEN模型生成的口令命中條目的16.60%,高出PassGAN模型生成的口令命中條目的220.02%.OMECNN模型比OMEN模型和PassGAN模型均要更優(yōu),是一個性能更好的口令生成模型. 利用口令生成技術進行大規(guī)??诹罴纳?,進而檢測現有用戶口令保護機制的缺陷、評估口令猜測算法效率等,是研究口令安全性的重要手段.針對口令生成技術研究,本文提出一種基于有序馬爾可夫枚舉器和判別神經網絡的口令生成模型OMECNN,OMECNN模型在Rockyou公開口令數據集上,在生成109條口令的情況下,命中率能達到51.32%,高出OMEN模型1.44%,高出PassGAN模型23.22%.在生成107條口令的情況下,OMECNN模型生成的口令命中條目高出OMEN模型生成的口令命中條目的16.60%,高出PassGAN模型生成的口令命中條目的220.02%.OMECNN模型比OMEN模型和PassGAN模型均要更優(yōu),是一個性能更好的口令生成模型. 今后的工作可以關注判別神經網絡模塊輸出的分數的分布的研究,研究判別神經網絡模塊的輸出可以發(fā)現判別神經網絡內在的工作模式,以及發(fā)現什么性質結構的口令的得分值能超過閾值,這對改善口令構造策略的研究有積極作用.4 OMECNN實驗及分析
4.1 口令數據集描述
4.2 實驗環(huán)境
4.3 實驗評估方法
4.4 對OMEN模型的評估
4.5 對PassGAN模型的評估
4.6 對OMECNN模型的評估
4.7 實驗小結
5 結 論