摘要:在不考慮拖庫社工等口令獲取方式的前提條件下,通常情況下,破解口令僅有暴力破解的方式可以選擇,其中亦包括字典攻擊和彩虹表破解。
近來在筆者所參與的一款產品中涉及到口令安全的功能設計,其中一項功能是有關于口令強度的。在設計該功能過程中勢必涉及到口令強度的劃分設計,怎樣的口令才算是低強度的,怎樣的口令才算是高強度的。目前諸多的Web系統注冊功能中的口令強度設計及劃分也無統一標準,更有甚者是直接根據口令長度來設計的口令強度劃分。
如果要評判一則口令是強是弱,就必須先考慮影響口令強度的因素:復雜性和長度,因為我們在輸入口令時只有這兩種維度的選擇:要么多輸入一些特殊字符增強復雜性,要么多輸入一些混合字符/字母增加口令長度。在不考慮拖庫、社工等口令獲取方式的前提條件下,通常情況下,破解口令僅有暴力破解的方式可以選擇,其中亦包括字典攻擊和彩虹表破解。
在純粹的暴力破解中,攻擊者需要逐一長度地嘗試口令可能組合的方式,是ATM機般的純數字組合,還是12306般的純數字字母組合,亦或是正常電商那般可以混合輸入數字、字母和特殊字符。假設一則口令P的長度是L,可選擇的組合形式范圍的長度是S,那么即便是在“暴力破解”這種殘暴字眼的手段中,運氣不好的情況下仍然需要最多嘗試S^L^次。口令是否安全的原則取決于攻擊者能否在可容忍的時間內破解出真實口令,而是否有耐心進行暴力破解往往決定于攻擊者的目的及成效:一名僅為破解電子書小說壓縮包的宅男不大可能會浪費一天以上時間等待口令的“出現”。
既然暴力破解需要嘗試最多達S^L^次方能破解出口令,那么破解口令的速度即是破解成效的約束條件。在許多情況下,破解速度取決于CPU運算的能力,但更多時候攻擊者面臨的是聯網破解甚至口令系統設計者的種種防護手段,這時網絡、I/O、運算能力甚至系統防護措施都必須考慮在破解速度之內。如今許多電子郵箱的防口令破解的措施是限制在一段時間內僅能嘗試為數不多的幾次登陸,若考慮到類似的措施,相信口令破解的速度絕對會讓你更加失望!
在比特幣挖礦都需要專業礦機,高配GPU的時代,口令的破解自然不會延續使用以往原始的CPU運算。一年前的現在,來自Stricture商業咨詢公司的Jeremi Gosney公布了他們用一組GPU集群暴力破解密碼的成果:
普通的MD5加速破解速度達到每秒1800億次,SHA1的破解速度達到630億次/秒,NTLM的破解速度達到3480億次/秒,LM加密的破解速度也有200億次/秒。
由此可見,口令的強度正隨著運算能力的逐漸提升而降低,10年前的高強度口令或許對于今天的GPU集群破解已然可以被視為“不堪一擊”。在不考慮UNICODE編碼中電腦鍵盤未標明的特殊字符,在構建口令時,我們通常可選擇的組合范圍是:
數字:0~9 共10位
字母:a~z A~Z 共52位
特殊字符:!"#$%&"`()*+,-./:;<=>?@[]^_{|}~共33位(其中包含空格)
如果我們將S^L^當作口令強度的評測標準,顯而易見,在口令長度相同的情況下,我們可選擇的組合方式和范圍內越大則口令強度越強,即S越大,S^L^的值越大。
另一方面,在可選擇的組合方式和范圍有限的情況下,口令長度越長則口令強度越強,即L越大,S^L^的值越大。
由于S^L^是指數級的增長,所以口令的高復雜度并不意味著口令的高強度,比如:16位純數字的口令的組合方式有1.0e+16種,而8位數字/字母/特殊字符混合口令的組合方式僅約為6.634e+15種,從暴力破解的難度上看,前者比后者要高出一個數量級。
鑒于當前GPU的運算能力越來越強大,筆者在設計口令強度的劃分時不得不參考上文中的GPU集群破解速度,上文中所提到的GPU集群暴力破解速度最低也達到百億次每秒,故以100億次/秒的破解速度為參考,并假設破解時間不足一天的口令即為低強度,超出一天但不滿一年為中等強度,超出一年為高強度,盡管在這種假設的前提下某些低強度口令在常規運算能力下仍然可被當作高強度口令。在不同的口令組合情況下,不同口令強度的口令長度范圍如下所示:
組合方式及范圍 | 低等強度 | 中等強度 | 高等強度 |
---|---|---|---|
純數字(10位) | >0 && <15(位) | >=15(位) && <18(位) | >=18(位) |
純字母(52位) | >0 && <9(位) | >=9(位) && <11(位) | >=11(位) |
純特殊字符(33位) | >0 && <10(位) | >=10(位) && <12(位) | >=12(位) |
數字+字母組合(62位) | >0 && <9(位) | ==9(位) | >=10(位) |
數字+特殊字符組合(43位) | >0 && <10(位) | ==10(位) | >=11(位) |
字母+特殊字符組合(85位) | >0 && <8(位) | >=8(位) && <10(位) | >=10(位) |
數字+字母+特殊字符組合(95位) | >0 && <8(位) | ==8(位) | >=9(位) |
上表亦可作為設置強口令時的參考。如相關報道中所稱,若使用Jeremi Gosney的GPU集群,6-8位的口令“在暴力破解面前幾乎無法幸免”。
下面再來看看微軟的“密碼檢查器”,從該頁面檢測口令強度的JS腳本中可以輕松看到其口令強度的劃分標準:
口令長度小于8位:Weak
口令長度大于等于8位:Medium
口令長度大于等于14位:Strong
口令長度大于等于14位且包含數字、大小寫字母及特殊字符:Best
以及IBM旗下Lotus Domino的口令強度劃分:口令安全性等級,或者可以在這里檢測自己的口令強度及破解時間。
彩虹表是一種特殊的字典,由已做加密的密碼構成,通過與系統中加密的口令對比來探測明文口令。而彩虹表的構成多數情況下亦是由程序自動生成,盡管數據量龐大,但依然是根據弱口令或窮舉口令組合加密而形成,此外也包括人工添加的已知明文/密文的彩虹表數據。
因此,彩虹表破解及弱口令猜測終究是為了減小破解口令的范圍,從而節省破解時間,可以將彩虹表及弱口令想象成為一個龐大的散狀分布的點圖,越是遠離聚焦點的口令就會有越小的幾率被包含在彩虹表/弱口令中。
由此可見,口令強度不僅僅需要考慮復雜度和長度,設定口令時的奇葩程度也影響著口令安全,就像女人不希望撞衫,安全的口令也不希望雷同。
via idf
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/11094.html
摘要:方案簡單方案算法通過密碼構成分析,結合權重分派,統計得出密碼強度得分。 簡言 用正則表達式做用戶密碼強度的通過性判定,過于簡單粗暴,不但用戶體驗差,而且用戶帳號安全性也差。那么如何準確評價用戶密碼的強度,保護用戶帳號安全呢?本文分析介紹了幾種基于規則評分的密碼強度檢測算法,并給出了相應的演示程序。大家可以根據自己項目安全性需要,做最適合于自己的方案選擇。 showImg(http://...
摘要:非對稱加密算法的安全性往往需要基于數學問題來保障,目前主要有基于大數質因子分解離散對數橢圓曲線等經典數學難題進行保護。消息認證碼基于對稱加密,可以用于對消息完整性進行保護。 Hash 算法與數字摘要 Hash (哈希或散列)算法它能將任意長度的二進制明文串映射為較短的(通常是固定長度的)二進制串(Hash值),并且不同的明文很難映射為相同的Hash值。 Hash 定義 Hash (哈希...
摘要:前言前幾日,嗶哩嗶哩在電子科大清水河校區舉行了校招宣講會。博文地址嗶哩嗶哩校招前端筆試第一題給定一個整數數組,找到具有最大和的子數組,返回最大和。 前言 前幾日,嗶哩嗶哩在電子科大清水河校區舉行了校招宣講會。B站不用多說,中國最大的同性交友網站,不去工作也能去看看。 當晚便進行了部分筆試,下面是我參加的前端筆試試題和我自己的解答,分享給大家。 博文地址:嗶哩嗶哩2018校招前端筆試...
摘要:前言前幾日,嗶哩嗶哩在電子科大清水河校區舉行了校招宣講會。博文地址嗶哩嗶哩校招前端筆試第一題給定一個整數數組,找到具有最大和的子數組,返回最大和。 前言 前幾日,嗶哩嗶哩在電子科大清水河校區舉行了校招宣講會。B站不用多說,中國最大的同性交友網站,不去工作也能去看看。 當晚便進行了部分筆試,下面是我參加的前端筆試試題和我自己的解答,分享給大家。 博文地址:嗶哩嗶哩2018校招前端筆試...
閱讀 796·2023-04-26 00:30
閱讀 2704·2021-11-23 09:51
閱讀 1052·2021-11-02 14:38
閱讀 2585·2021-09-07 10:23
閱讀 2249·2021-08-21 14:09
閱讀 1389·2019-08-30 10:57
閱讀 1609·2019-08-29 11:20
閱讀 1157·2019-08-26 13:53