馬文文
(國家知識產(chǎn)權(quán)局專利局專利審查協(xié)作江蘇中心 江蘇蘇州 215011)
隨著全球信息化的飛速發(fā)展,整個世界成為一個整體,各個國家和政府建設(shè)大量的信息化系統(tǒng)作為國家的重要基礎(chǔ)設(shè)施。各個機構(gòu)、行業(yè)、領(lǐng)域均在組建自己的信息網(wǎng)絡(luò)系統(tǒng),并交互傳輸,以充分共享、使用網(wǎng)絡(luò)上存在的信息內(nèi)容和資源,社會對網(wǎng)絡(luò)的依賴性也越來越大。但是,當(dāng)網(wǎng)絡(luò)資源發(fā)展的同時,各種問題也層出不窮,特別是網(wǎng)絡(luò)安全的問題。為了防止非法人員對網(wǎng)絡(luò)的入侵、破壞,各種認(rèn)證技術(shù)應(yīng)運而生,如基于口令的認(rèn)證、基于數(shù)字證書的認(rèn)證、基于生物識別信息的認(rèn)證及各種綜合認(rèn)證技術(shù)。雖然認(rèn)證手段多種多樣,但由于操作的簡單性與設(shè)置的靈活性,基于口令的認(rèn)證是被廣泛使用的認(rèn)證方式。
在口令認(rèn)證的應(yīng)用中,由于網(wǎng)絡(luò)賬號繁多,人們?yōu)榱吮阌谟洃浛诹?、密碼,通常設(shè)置特別簡單或者重復(fù)的口令密碼來進行登錄,這也為口令的猜測、破解、泄露提供了便利的條件,這些特別容易被破解或猜測的“口令”“密碼”通常稱為弱口令、弱密碼。弱口令的危害性太大了,對于實體銀行卡被盜,弱口令被猜測,損失大量的錢財;如果是社交工具的弱口令被猜測到,會造成賬號損失、或利用其賬號做出違反法律、法規(guī)的行為[1]。
為了避免口令設(shè)置得過于簡單或易于破解,而使得非法入侵者獲取合法用戶的口令密碼,本文詳盡介紹了多種弱口令檢測技術(shù)及其相應(yīng)的實現(xiàn)方式,以提高各個領(lǐng)域行業(yè)口令、密碼設(shè)置的安全性。
通過利用大量猜測和窮舉的方式來嘗試獲取用戶口令的攻擊方式[2],具體的流程是用事先收集好的數(shù)據(jù)集成一個字典,然后用字典不斷進行枚舉,然后使用該口令字典中的口令逐個嘗試,直到認(rèn)證成功。但它的成功取決于事先收集好的預(yù)定義數(shù)據(jù)的集合,如果它越大,就會需要更多時間,但成功的可能性也會變大。針對不同的協(xié)議,常見的暴力破解的工具有Aircrack-NG暴力破解工具、John the Ripper暴力破解工具、Rainbow Crack暴力破解工具、Cain&Able暴力破解工具、L0pht?crack 暴力破解工具、Ophcrack 暴力破解工具、Hashcat暴力破解工具、SAMInside暴力破解工具、DaveGrohl暴力破解工具、Ncrack 暴力破解工具、THC Hydra 暴力破解工具。
通過設(shè)置復(fù)雜度規(guī)則,判斷待檢測口令是否符合復(fù)雜度規(guī)則,并基于所述判斷結(jié)果來確定待檢測口令是否為弱口令[3]。常見的復(fù)雜度規(guī)則為口令長度規(guī)則、大寫、小寫或數(shù)字規(guī)則、重復(fù)字符規(guī)則等。由于在設(shè)置登錄口令時,口令長度較短的口令、或使用均是大寫、均是小寫、均是阿拉伯?dāng)?shù)字、或使用重復(fù)的字符來構(gòu)造的口令更容易被黑客猜測出,進而造成口令泄露的損失,因此,在弱口令檢測過程中,可以通過判斷設(shè)置的口令長度是否長于長度閾值,判斷組成口令的字符是否均為大寫、或均為小寫、或均為阿拉伯?dāng)?shù)字,判斷設(shè)置的口令包含的重復(fù)字符的比率是否大于一定閾值,進而判斷口令是否為弱口令,例如,專利申請CN 201610182053.9 中就提出了上述基于口令長度、大小寫、阿拉伯?dāng)?shù)字及重復(fù)字符數(shù),來判斷登錄口令是否為弱口令的弱口令檢測方式。
在基于復(fù)雜度規(guī)則的檢測方式中,檢測準(zhǔn)確率的高低主要取決于復(fù)雜度規(guī)則制定,因此,如何制定合適的復(fù)雜度規(guī)則成為該弱口令檢測技術(shù)的關(guān)鍵技術(shù)問題,例如,在基于口令長度來判斷弱口令時,口令長度閾值的設(shè)定是檢測準(zhǔn)確率的關(guān)鍵點,在制定復(fù)雜度規(guī)則制度時,可以基于歷史經(jīng)驗來進行設(shè)定,也可以根據(jù)應(yīng)用領(lǐng)域、應(yīng)用場景等來確定特定領(lǐng)域、場景下的復(fù)雜度規(guī)則。比較典型的是弱口令檢測規(guī)則制定方法是根據(jù)經(jīng)驗設(shè)定弱口令檢測規(guī)則,但使用這種方法設(shè)置的弱口令檢測規(guī)則不夠準(zhǔn)確且不夠全面。因此,在專利申請文件CN 201511029724.X 中提出來一種基于已有弱口令來獲取弱口令的構(gòu)成規(guī)則的方式,其通過分析已有的弱口令集合中包含的弱口令,獲取弱口令組成規(guī)則,將該規(guī)則設(shè)置為弱口令復(fù)雜度檢測規(guī)則,該方法能夠?qū)崟r地更新弱口令檢測規(guī)則,提高弱口令檢測規(guī)則設(shè)置的精確度及全面性。
基于弱口令庫的檢測技術(shù)具體為設(shè)置包含現(xiàn)有弱口令的弱口令庫,通過待檢測口令與弱口令庫直接進行匹配,若在弱口令庫中存在待檢測口令時,則待檢測口令為弱口令,否則,待檢測口令為強口令。基于弱口令庫的檢測技術(shù)還包括針對待檢測弱口令進行某種變換,或?qū)θ蹩诹顜爝M行某種變換,利用變換后的待檢測口令與弱口令庫或利用待檢測口令與變換后的弱口令庫進行匹配,以判斷待檢測口令是否為弱口令。例如,在專利申請文件CN 201811173736.3 中采用了如下弱口令檢測方式:獲取至少一條待校驗的密文校驗信息,其中,任一條所述密文校驗信息對應(yīng)一個用戶賬號,包括所述用戶賬號的加密信息、salt隨機字符串、第一密文,所述第一密文為通過所述加密信息所標(biāo)識的加密算法對所述salt 隨機字符串和所述用戶賬號的口令進行加密得到,對salt隨機字符串和預(yù)設(shè)的弱口令字典中的弱口令進行相同處理,得到第二密文;確定所得到的第二密文中,是否存在與所述待校驗的密文校驗信息中的第一密文相同的第二密文;若存在,則確定所述待校驗的密文校驗信息對應(yīng)的用戶賬號的口令為弱口令。
在基于弱口令庫的弱口令檢測技術(shù)中,檢測成功率取決于弱口令庫的全面性,弱口令庫覆蓋越全面,其檢測準(zhǔn)確性越高,否則,其檢測準(zhǔn)確率越低,因此,在基于弱口令庫的弱口令檢測技術(shù)中,如何設(shè)置更全面、更精準(zhǔn)的弱口令庫是用該令檢測技術(shù)的關(guān)鍵。在生成弱口令庫的過程中,常見的方式主要有以下幾種。
(1)基于常見的弱口令組成弱口令庫,例如,在專利申請文件CN 201811173736.3中,將待校驗的密文校驗信息對應(yīng)的用戶賬號與預(yù)設(shè)的字符串進行組合,得到針對所述用戶賬號的弱口令集合;將預(yù)設(shè)常規(guī)弱口令及上述方式得到的弱口令集合,共同構(gòu)成弱口令字典。
(2)利用其他弱口令檢測技術(shù)檢測出的弱口令組成弱口令庫,例如,在專利申請文件CN 201511029724.X中記載了通過將弱口令檢測方式檢測出的弱口令加入弱口令字典,以更新弱口令字典。
(3)通過機器學(xué)習(xí)的方式使用歷史弱口令來生成新的弱口令庫,例如,在專利申請文件CN 201810026703.X中記載了一種基于深度學(xué)習(xí)算法的口令字典生成方法,其記載了如下幾項:搜集常用口令字典樣本,對所述口令字典樣本進行排序,排序結(jié)果為非重復(fù)的口令及對應(yīng)口令出現(xiàn)的次數(shù),對于出現(xiàn)兩次及以上的口令進行去重操作;將上述排序及去重后的口令序列建立序貫?zāi)P?,生成實例;按照實例流?jīng)模型時處理的順序,將實例添加到網(wǎng)絡(luò)層,并配置網(wǎng)絡(luò)層的各個參數(shù)、設(shè)置優(yōu)化器及損失函數(shù)參數(shù),進行模型訓(xùn)練過程;通過分析口令樣本文件特征,確定神經(jīng)元間連接權(quán)值,生成權(quán)值文件;對訓(xùn)練后的模型進行性能評估,確定訓(xùn)練達(dá)到預(yù)期效果;加載權(quán)值文件,進行模型評估,輸出新的字典文件。
在基于弱口令庫的弱口令檢測技術(shù)中,由于弱口令庫的數(shù)據(jù)通常龐大,在進行搜索匹配時,速度較慢,這成為限制基于弱口令庫的弱口令檢測技術(shù)發(fā)展的障礙。因此,快速搜索匹配也是該技術(shù)需要研究的關(guān)鍵技術(shù)之一,例如,目前比較常見的快速搜索查找為多線程與二分查找法相結(jié)合的方式[4]。
基于頻次的弱口令檢測技術(shù)具體為通過待測弱口令在系統(tǒng)中重復(fù)出現(xiàn)的次數(shù)來確定其是否為弱口令,其重復(fù)出現(xiàn)的次數(shù)越多,被猜測出的概率越大,進而為弱口令的概率越大。例如,專利申請文件CN 201910907337.3中記載了對待檢測口令出現(xiàn)的次數(shù)進行計數(shù),根據(jù)計數(shù)值與弱口令概率之間的關(guān)聯(lián)關(guān)系,確定該待檢測口令為弱口令的概率。通常計數(shù)值越大,即該待檢測口令出現(xiàn)的次數(shù)越多,為弱口令的概率越大。
基于機器學(xué)習(xí)的弱口令檢測技術(shù)具體為將待檢測口令輸入機器學(xué)習(xí)模型,即可輸出該待檢測口令為弱口令或強口令[5-6]。在基于機器學(xué)習(xí)的弱口令檢測技術(shù)中,基本分為兩個步驟:一是利用訓(xùn)練樣本訓(xùn)練機器學(xué)習(xí)模型參數(shù);二是將待檢測口令輸入機器學(xué)習(xí)模型,獲取對應(yīng)的強弱結(jié)果輸出。例如,在專利申請文件中CN 202010862802 中提出了一種基于機器學(xué)習(xí)的弱口令檢測技術(shù),在該技術(shù)中,其通過獲取訓(xùn)練樣本集及其對應(yīng)的強弱標(biāo)簽,將訓(xùn)練樣本集作為輸入信息,以其對應(yīng)的強弱標(biāo)簽作為監(jiān)督,輸入到弱口令檢測模型,以訓(xùn)練弱口令檢測模型中的參數(shù)。在訓(xùn)練完成后,獲取待檢測密碼,將其作為輸入信息輸入到弱口令檢測模型進行處理,得到該待檢測密碼對應(yīng)的強弱標(biāo)簽。
在專利申請文件CN 201910433513.4 中提出了預(yù)先采集的密碼樣本,該密碼樣本對應(yīng)的總評分值樣本、該密碼樣本對應(yīng)的密碼強度總權(quán)重樣本及該密碼樣本對應(yīng)的密碼強度樣本生成模糊控制器,對待檢測密碼進行分析,獲得該待檢測密碼對應(yīng)的總評分、密碼強度總權(quán)重,將上述獲得的總評分及密碼強度總權(quán)重輸入至生成的模糊控制器,由模糊控制器對輸入的數(shù)據(jù)進行計算得到該待檢測密碼對應(yīng)的密碼強度。
基于安全等級的弱口令檢測技術(shù)具體為對待檢測口令進行分析,得到其安全或風(fēng)險等級,繼而確定該待檢測口令是強口令還是弱口令。例如,在專利申請文件CN 202110873223.9 中提出了獲取包含多個有序字符的待檢測密碼,基于所述有序字符,從預(yù)設(shè)的多個密碼風(fēng)險條件中選擇待檢測密碼滿足的目標(biāo)密碼風(fēng)險條件;基于選擇的目標(biāo)密碼風(fēng)險條件相應(yīng)的風(fēng)險值,計算對應(yīng)于所述待檢測密碼的風(fēng)險系數(shù);判斷所述風(fēng)險系數(shù)是否大于一定閾值,在肯定的情況下,判斷所述待檢測密碼的強度為弱密碼。
所謂基于組合的弱口令檢測技術(shù),即將上述幾種弱口令檢測技術(shù)綜合使用,可以將基于復(fù)雜度規(guī)則的弱口令檢測技術(shù)與基于弱口令庫的弱口令檢測技術(shù)結(jié)合。例如,基于復(fù)雜度規(guī)則檢測出弱口令,更新弱口令庫,更新后的弱口令庫可以進一步用于檢測弱口令;還可以將基于弱口令庫的弱口令檢測技術(shù)與基于機器學(xué)習(xí)的弱口令檢測技術(shù)相結(jié)合。另外,可以利用弱口令庫訓(xùn)練機器學(xué)習(xí)模型,然后利用訓(xùn)練模型檢測出的弱口令添加至弱口令庫以進行更新弱口令庫;還可以將基于安全等級的弱口令檢測技術(shù)與基于機器學(xué)習(xí)的弱口令檢測技術(shù)相結(jié)合等。
本文中列舉的各種弱口令檢測技術(shù)均還存在一定的缺陷,如基于弱口令庫的弱口令檢測技術(shù)對弱口令庫的全面覆蓋率要求較高;基于復(fù)雜度規(guī)則的弱口令檢測技術(shù)對于復(fù)雜度規(guī)則的制定要求較高,需要較強的經(jīng)驗知識;基于機器學(xué)習(xí)的弱口令檢測技術(shù)對于訓(xùn)練樣本的選擇要求較高等。因此,在后續(xù)的弱口令檢測技術(shù)研究中,應(yīng)針對如何提高弱口令檢測技術(shù)的速度、簡易性及減少對歷史數(shù)據(jù)的依賴性方面進一步研究,提出更加智能的弱口令檢測技術(shù)。