成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

漫話密碼存儲(chǔ)

Godtoy / 2163人閱讀

摘要:通俗一點(diǎn)說(shuō)就是彩虹表犧牲了一點(diǎn)計(jì)算速度,換來(lái)的好處是較少的空間存儲(chǔ)更多的密碼數(shù)據(jù)。關(guān)于鹽的使用有一點(diǎn)需要說(shuō)明加鹽的目的是為了增加提前構(gòu)造字典和彩虹表的代價(jià),并不是為了加密或增加密碼的計(jì)算復(fù)雜性。

背景

密碼是用來(lái)進(jìn)行鑒權(quán)(身份認(rèn)證)一種手段,說(shuō)白了就是證明你是誰(shuí)。一般鑒權(quán)都可以總結(jié)為下面3種形式:

你知道什么? (如密碼,密碼提示問(wèn)題等)

你有什么? (如信用卡,token卡等)

你是什么?(如指紋識(shí)別,瞳孔識(shí)別等)

常見攻擊方式

常見的針對(duì)密碼的攻擊方式有:

暴力破解(Brute-force)

字典攻擊(Dictionary Attack)

彩虹表攻擊(Rainbow table attacks)

暴力破解

暴力破解指的是嘗試密碼空間中所有的可能情況。

字典攻擊

上面說(shuō)了暴力搜索空間巨大,然而大部分用戶選擇的密碼都是有一定規(guī)律的:如使用生日,姓名,單詞縮寫,電話,以及以上各種方法的混合。如果把這

些常見的密碼放到一個(gè)文件里,破解密碼的時(shí)候就直接從這些常見的密碼中嘗試,這樣嘗試的空間和暴力破解相比就會(huì)小很多。這種存儲(chǔ)了許多常見密碼的
文件就像是一本用戶常見密碼的字典,字典攻擊因此得名。

彩虹表

彩虹表:彩虹表是計(jì)算機(jī)科學(xué)時(shí)間/空間權(quán)衡的典型體現(xiàn)。起核心思想和查找表是類似的,只是相對(duì)于查找表,彩虹表需要的存儲(chǔ)空間相對(duì)較小,查找速度

比查找表的O(1)要慢一點(diǎn)。通俗一點(diǎn)說(shuō)就是:彩虹表犧牲了一點(diǎn)計(jì)算速度,換來(lái)的好處是較少的空間存儲(chǔ)更多的密碼數(shù)據(jù)。舉個(gè)例子: 如果一個(gè)查找表里需要
存儲(chǔ)所有的10個(gè)字符小寫字母的字典(至少需要存儲(chǔ)用戶名,密碼hash輸出),需要的磁盤空間為 26^10 * (10+16) / (2^40) ~= 3338T,如果改用彩虹表存儲(chǔ),
那么這個(gè)彩虹表可能只需要約300G的磁盤空間就能涵蓋99.9%的組合。

密碼存儲(chǔ)的方式 直接存儲(chǔ)

最簡(jiǎn)單直觀的做法是將密碼明文存儲(chǔ)到數(shù)據(jù)庫(kù)。這種方式數(shù)據(jù)庫(kù)的一條記錄類似: 。
這種方式最簡(jiǎn)單但無(wú)安全可言。黑客獲取了數(shù)據(jù)庫(kù)就活得了所有用戶信息。因此直接存儲(chǔ)明文是不可取的,至少需要對(duì)明文做一些處理

hash存儲(chǔ)

先對(duì)明文密碼進(jìn)行hash計(jì)算,將hash函數(shù)的輸出存儲(chǔ)到數(shù)據(jù)庫(kù)。這里的hash是指密碼學(xué)中具有單向性和不可逆性的hash函數(shù)(如MD5,SHA1等),不是數(shù)據(jù)結(jié)構(gòu)中的hash算法。這種方式
的數(shù)據(jù)庫(kù)中記錄格式類似: 。這種方法比存明文要好很多,惡意用戶獲得了密碼數(shù)據(jù)庫(kù)以后不能直接得到用戶的密碼。這種方法的問(wèn)題是:抵抗不了字典和
彩虹表攻擊,一旦黑客針對(duì)數(shù)據(jù)庫(kù)構(gòu)造好彩虹表,就很容易破解了。因此,我們需要一種方法使惡意用戶預(yù)先構(gòu)造字典和彩虹表的代價(jià)變大。

密碼hash加鹽后存儲(chǔ)

密碼學(xué)中的鹽是指一段隨機(jī)字節(jié)串,通常和密碼一起作為hash函數(shù)的輸入。密碼加鹽后,數(shù)據(jù)庫(kù)記錄類似 ,這種方法有一些變種如:
,本質(zhì)都是一樣的。加鹽后的數(shù)據(jù)庫(kù)構(gòu)造彩虹表需要的巨大存儲(chǔ)空間,
使得構(gòu)造查找表和彩虹表的攻擊方式失效。

大大增加構(gòu)成字典和彩虹表的成本。

降低相同密碼hash值相同的概率。

關(guān)于鹽的使用有一點(diǎn)需要說(shuō)明:加鹽的目的是為了增加提前構(gòu)造字典和彩虹表的代價(jià),并不是為了加密或增加密碼hash的計(jì)算復(fù)雜性。因此,鹽并不需要加密存儲(chǔ),
通常是明文和用戶名一起存儲(chǔ)于數(shù)據(jù)庫(kù)的。

自適應(yīng)加鹽存儲(chǔ)

前面說(shuō)了,密碼加鹽能有效的對(duì)抗提前構(gòu)造字典和彩虹表的攻擊,但是對(duì)于暴力破解還是無(wú)能為力,對(duì)于單個(gè)用戶的密碼,如果黑客采用多臺(tái)計(jì)算機(jī)并行計(jì)算或者
采用GPU等特殊硬件進(jìn)行暴力破解,能很快的破解較弱的密碼。
因此,比較理想的密碼存儲(chǔ)方法要具備2點(diǎn):

單次密碼存儲(chǔ)的計(jì)算要盡可能的慢,慢到對(duì)單個(gè)普通用戶的鑒權(quán)來(lái)說(shuō)計(jì)算時(shí)間剛好可以接受,但是對(duì)于需要嘗試很多密碼組合的惡意用戶來(lái)說(shuō),計(jì)算代價(jià)將會(huì)大大增加。

可以動(dòng)態(tài)的控制密碼計(jì)算過(guò)程的復(fù)雜性,這樣就可以應(yīng)對(duì)摩爾定律下計(jì)算機(jī)計(jì)算能力越來(lái)越強(qiáng)的趨勢(shì)。

總結(jié)

密碼的安全存儲(chǔ)目前正確的做法是使用自適應(yīng)加鹽的方法進(jìn)行存儲(chǔ),具體的說(shuō)是可以使用pbkdf2, bcrypt, scrypt中的任何一種。本文主要討論了如何安全的存儲(chǔ)密碼,
如果是保證用戶賬戶的安全,那么除了保證密碼存儲(chǔ)安全之外,通常需要綜合使用下面的各種方法:

引導(dǎo)選擇強(qiáng)度較高的密碼

使用驗(yàn)證碼

密碼驗(yàn)證錯(cuò)誤以后短時(shí)間鎖住賬號(hào)

敏感操作需要二次鑒權(quán)

使用two-factor驗(yàn)證

參考鏈接

加鹽密碼哈希:如何正確使用

密碼破解之王:Ophcrack彩虹表(Rainbow Tables)

WilsonLiu"s blog首發(fā)地址:http://blog.wilsonliu.cn

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/80075.html

相關(guān)文章

  • 漫話:如何給女朋友解釋滅霸的指響并不是真隨機(jī)"消滅"半數(shù)宇宙人口的?

    摘要:軟件實(shí)現(xiàn)的是偽隨機(jī)數(shù)。有限狀態(tài)機(jī)不能產(chǎn)生真正的隨機(jī)數(shù)的。復(fù)聯(lián)中,滅霸打了指響之后,復(fù)仇者聯(lián)盟中存活和死亡的名單其實(shí)并不是隨機(jī)的??梢?,滅霸的指響抹除過(guò)程并不是隨機(jī)的。綜上,滅霸的指響抹除過(guò)程不符合隨機(jī)性不可預(yù)測(cè)性以及不可復(fù)現(xiàn)性。showImg(https://user-gold-cdn.xitu.io/2019/5/7/16a91fc63239db4d);周末,陪女朋友去電影院看了《復(fù)仇者聯(lián)...

    WalkerXu 評(píng)論0 收藏0
  • 追本溯源:substr與substring歷史漫話

    摘要:基因追本溯源在編程語(yǔ)言的歷史長(zhǎng)河中,曾經(jīng)出現(xiàn)過(guò)很多編程語(yǔ)言。的歷史繼承年,網(wǎng)景公司招募了,目的是將編程語(yǔ)言嵌入到中。網(wǎng)景公司決定,他們想創(chuàng)建的腳本語(yǔ)言將補(bǔ)充,并且應(yīng)該有一個(gè)類似的語(yǔ)法,排除采用,,或等其他語(yǔ)言。 引子: 很多時(shí)候,當(dāng)我要字符串截取時(shí),我會(huì)想到substr和substring的方法,但是具體要怎么傳參數(shù)時(shí),我總是記不住。哪個(gè)應(yīng)該傳個(gè)字符串長(zhǎng)度,哪個(gè)又應(yīng)該傳個(gè)開始和結(jié)尾的下...

    gecko23 評(píng)論0 收藏0
  • 追本溯源:substr與substring歷史漫話

    摘要:基因追本溯源在編程語(yǔ)言的歷史長(zhǎng)河中,曾經(jīng)出現(xiàn)過(guò)很多編程語(yǔ)言。的歷史繼承年,網(wǎng)景公司招募了,目的是將編程語(yǔ)言嵌入到中。網(wǎng)景公司決定,他們想創(chuàng)建的腳本語(yǔ)言將補(bǔ)充,并且應(yīng)該有一個(gè)類似的語(yǔ)法,排除采用,,或等其他語(yǔ)言。 引子: 很多時(shí)候,當(dāng)我要字符串截取時(shí),我會(huì)想到substr和substring的方法,但是具體要怎么傳參數(shù)時(shí),我總是記不住。哪個(gè)應(yīng)該傳個(gè)字符串長(zhǎng)度,哪個(gè)又應(yīng)該傳個(gè)開始和結(jié)尾的下...

    FuisonDesign 評(píng)論0 收藏0
  • 漫話:如何給女朋友解釋什么是策略模式?

    摘要:策略策略,指的是可以實(shí)現(xiàn)目標(biāo)的方案集合,在某些特定情況下,策略之間是可以相互替換的。如何計(jì)算金額我們先拿點(diǎn)外賣中會(huì)員折扣活動(dòng)舉例子來(lái)說(shuō)明一下吧。這就是策略模式。策略模式提供了管理相關(guān)的算法族的辦法。showImg(https://user-gold-cdn.xitu.io/2019/5/13/16aaf673fde1b546);?周末無(wú)事,窩在家里面看《權(quán)力的游戲第八季》,看的很是津津有味,...

    fancyLuo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<