童志明:Web應(yīng)用開(kāi)發(fā)中的安全算法使用策略

作者: 來(lái)源:未知 2012-03-05 17:31:22 閱讀 我要評(píng)論 直達(dá)商品

彩虹表可以快速的破解密碼,越是復(fù)雜的密碼彩虹表越大,彩虹表的體積一般來(lái)講以百G以上來(lái)論的。擁有彩虹表以后,破解對(duì)他們來(lái)講是難度非常小的,包括GPO的加速,對(duì)MD5的次數(shù)可能接近千億次的情況。

下面我列出了彩虹表的一個(gè)生成器大家可以看到這樣一個(gè)東西。

還有一些錯(cuò)誤的實(shí)現(xiàn)。這個(gè)當(dāng)然是聲音了,剛才我講的都是實(shí)現(xiàn),有人做散列的,有人做兩次散列的。錯(cuò)誤的實(shí)現(xiàn)有哪些呢?

有人提出說(shuō)我是不是自己設(shè)一個(gè)算法?我覺(jué)得這個(gè)事情是非常被吹的事情,第一個(gè)事情就是我們?cè)趺幢WCHASH的均勻性,右邊就是安天對(duì)各種HASH做了一個(gè)評(píng)估。再一個(gè)通過(guò)HASH碰撞進(jìn)行拒絕式服務(wù)攻擊,這個(gè)事情大家應(yīng)該聽(tīng)說(shuō)過(guò)。在去年泄密門事件以后也把這個(gè)事件掩蓋了,HASH碰撞攻擊幾乎涵蓋了所有的腳本語(yǔ)言。什么是HASH碰撞呢?就是攻擊者通過(guò)裁判HASH算法,我們?nèi)绻约涸O(shè)計(jì)算法,如何保證均勻性這是一個(gè)問(wèn)題。

還有一些聲音說(shuō)實(shí)現(xiàn)慢速HASH,有人說(shuō)這個(gè)HASH太快了,我自己實(shí)現(xiàn)一個(gè)慢速HASH怎么樣呢?我們后面可能給出一些例子,我們看到,實(shí)際上來(lái)講,所有的HASH沒(méi)有慢的,當(dāng)他面臨幾個(gè)問(wèn)題,一個(gè)問(wèn)題就是他的HASH算法不合理。另外一種就是用戶的體驗(yàn)問(wèn)題,我們想象一下你在網(wǎng)站提示說(shuō)用戶登陸可能需要三分鐘,這個(gè)用戶非常被吹,實(shí)際上這個(gè)慢速HASH應(yīng)用非常不適合外部的應(yīng)用場(chǎng)景一下。

在這里,我想說(shuō)很難設(shè)計(jì)出一種慢速的HASH,在XP系統(tǒng)構(gòu)架下,對(duì)CPU是負(fù)載的,實(shí)現(xiàn)基地是不容易漫過(guò)的。慢速HASH一定會(huì)負(fù)載的,所以這個(gè)實(shí)現(xiàn)是非常不合理的。

還有一些網(wǎng)站聲稱自己特別安全,為什么安全呢?因?yàn)榭梢宰R(shí)別你的指紋。比如,我們獲取一個(gè)指紋和獲取一個(gè)口令,實(shí)際上沒(méi)有任何太大區(qū)別。指紋算一個(gè)散列,但是指紋識(shí)別意味著幾個(gè)事情,不可再生指。還有一個(gè)面部識(shí)別,以上是其他人提出的自己想法和觀點(diǎn)。接下來(lái)我們下面要講的就是安全算法的一個(gè)使用策略。

一用戶一鹽

這個(gè)就是在泄密門事件以后我們推出一個(gè)APM,實(shí)際上來(lái)講,我們基本上是基于現(xiàn)有的開(kāi)源包,然后也不是算法實(shí)現(xiàn),也不是新的算法。在這里提到了幾個(gè)概念就是一用戶一鹽,包括個(gè)性化的料,鹽表。還有就是APM發(fā)了以后,有人跟我們交流,有的用UID,還有用注冊(cè)時(shí)間的情況。另外還提供了還原模式,當(dāng)然有站點(diǎn)有需求,比如說(shuō)我需要原始密碼,我們這里也提供了一個(gè)功能。當(dāng)然這里面最無(wú)奈的一個(gè)事情是什么呢?就是一號(hào)通。在這里畫了一個(gè)圖,就是RSA的算面,一個(gè)是交流的問(wèn)題,再一個(gè)就是在現(xiàn)在這種情況下,很難保證我們安全可言。

什么樣是安全的呢?一是算法不公開(kāi),另外是密要不公開(kāi)。在這個(gè)0Day橫行的時(shí)代,我們很難保證這種情況。在這里列出了開(kāi)源項(xiàng)目的一個(gè)UL抵制。

這里面所提到的第一個(gè)事情就是為什么要使用標(biāo)準(zhǔn)的算法?第一點(diǎn)來(lái)講,標(biāo)準(zhǔn)算法是公開(kāi)的,我在這里列出了APM當(dāng)中一個(gè)代碼。這個(gè)APM就是我們實(shí)現(xiàn)了幾種語(yǔ)言,大家可以上去看一下,這里列出的是PHP的。這里直接調(diào)用了一個(gè)APM,完成了一個(gè)加密。

標(biāo)準(zhǔn)的算法的合理性是經(jīng)過(guò)時(shí)間、經(jīng)過(guò)數(shù)學(xué)家大家驗(yàn)證的,是經(jīng)過(guò)理論和實(shí)踐檢驗(yàn)過(guò)的算法。還有一些問(wèn)題就是事實(shí)上來(lái)講不是算法的問(wèn)題,是如何合理使用的問(wèn)題,我們看到剛才我們做一次HASH等等這種情況。事實(shí)上來(lái)講,不是算法本身的問(wèn)題,是如何合理使用的問(wèn)題,下面我會(huì)講到。

我們先看一點(diǎn),攻擊者所能掌握的資源。第一個(gè)就是計(jì)算速度,這個(gè)是非常恐怖的一個(gè)事情。在這里我貼了一個(gè)圖。我們看一下在虛擬機(jī)的情況下,我們算十六個(gè)字節(jié)的散列,2.99秒算了170多萬(wàn)次,意味著一之內(nèi)可以計(jì)算50萬(wàn)次的口令。如果你的密文口令被攻擊者拿到以后,他做一個(gè)統(tǒng)計(jì),做一個(gè)TOP,我對(duì)TOP20做一個(gè)計(jì)算,一秒鐘50萬(wàn)次。另外一個(gè)就是云計(jì)算,還有GPO加速計(jì)算,再一個(gè)就是攻擊者所掌握的大量的網(wǎng)絡(luò),都會(huì)被他們所利用。

三種手段:一個(gè)是統(tǒng)計(jì)攻擊,高頻碰撞。第二個(gè)是反向查詢,第三個(gè)是暴力破解。

鹽為何物?

鹽的概念是什么呢?鹽實(shí)際上來(lái)講就是一組隨機(jī)數(shù)據(jù),把這個(gè)隨機(jī)數(shù)據(jù)與用戶的口令相結(jié)合,然后運(yùn)算散列,這個(gè)就是鹽的概念。

這里就是鹽如何使用,當(dāng)用戶首次提供密碼的時(shí)候,由系統(tǒng)自動(dòng)往這個(gè)密碼里加入一注鹽,然后再進(jìn)行散列,用戶登錄的時(shí)候,系統(tǒng)就是鹽加散列,再比較散列值,確定密碼是否正確。為什么要有用戶名呢?有了用戶名,比如說(shuō)有了一個(gè)站點(diǎn),用戶的名稱是唯一的,它就起到了一個(gè)鹽的作用,我們?yōu)槭裁催要加鹽,比如說(shuō)攻擊者拿到了兩個(gè)網(wǎng)站的數(shù)據(jù),那一個(gè)是什么呢?比如說(shuō)一個(gè)用戶是123,另外一個(gè)用戶也是123,實(shí)際上來(lái)講我們算的散列值依然是一樣的,他依然可以直接通過(guò)散列一查就知道你使用了什么密碼。所以說(shuō)我們這里還是要加鹽。

下面這里就是一個(gè)APM的示意圖。我們看到用戶注冊(cè),注冊(cè)通過(guò)外部服務(wù)器,然后用戶名、密碼、鹽三個(gè)聯(lián)合生成一個(gè)驗(yàn)證的密碼。這是我們畫的一個(gè)示意圖。

我們看到有開(kāi)發(fā)者給我們發(fā)過(guò)來(lái)一些算法,其中有一部分就是使用單一的鹽,在這里面有三個(gè)圖。一個(gè)就是直接計(jì)算MD5的,密碼123456,所有的散列都是一般的。還有一個(gè)加一個(gè)鹽,加一個(gè)鹽攻擊者有可能說(shuō)不知道你的密碼是什么?在他擁有大量的計(jì)算資源的情況下,他很容易還會(huì)搞定你的口令,他對(duì)所有的散列也在做一次統(tǒng)計(jì),依然能拿到TOP10、TOP20的口令。

下面就是一用戶一鹽的情況。我們看到一個(gè)用戶一個(gè)鹽,那我們算完了HASH時(shí),每一個(gè)都是不一樣的,攻擊者拿到密文的口令列表以后,他所看到的每一個(gè)散列都是不一樣的,他沒(méi)法統(tǒng)計(jì)了,他如果希望拿到每一個(gè)用戶的口令辦呢?只能是一個(gè)一個(gè)去嘗試,加鹽,然后算密碼、算口令。

在這里還有一些其他的策略,就是大家如果看到KC代碼以后,比如說(shuō)我這里沒(méi)有使用SQL,隨著互聯(lián)網(wǎng)的發(fā)展,非關(guān)系型的數(shù)據(jù)成為了一個(gè)熱門領(lǐng)域,但是我使用KC的目的,不是因?yàn)樗时容^好,所有網(wǎng)站面臨重要的攻擊就是輸入,各種各樣的嘗試。

還有一些其他的策略,比如說(shuō)我們常見(jiàn)口令的規(guī)避。我在這里給了一個(gè)圖,這個(gè)是口令在線檢查的這么一個(gè)。常見(jiàn)的口令規(guī)避是非常重要的,比如說(shuō)我們現(xiàn)在的一些高頻的密碼,還有已經(jīng)泄露的一些密碼,在這里APM做了一個(gè)簡(jiǎn)答提示,比如說(shuō)高頻密碼,還有陳述口令。我們看到這上面出現(xiàn)大量的問(wèn)題就是用戶用他的用戶名做密碼,這里我們也做了一個(gè)檢測(cè)。

還有一些其他的策略,比如說(shuō)動(dòng)態(tài)均衡,微軟(微博)的Hotmail做了一個(gè)動(dòng)態(tài)均衡,原理就是對(duì)你口令做一個(gè)基數(shù),當(dāng)你的口令達(dá)到用戶的1%,我就不允許你再使用這個(gè)密碼了。但是這個(gè)實(shí)際上來(lái)講也是有一些弊端的。這個(gè)弊端是什么呢?第一點(diǎn)你要對(duì)這個(gè)口令做計(jì)數(shù),當(dāng)你計(jì)數(shù)的表被泄露以后,用戶就會(huì)知道這個(gè)超過(guò)一萬(wàn)次了,這個(gè)一萬(wàn)次了搞定這些。


  推薦閱讀

  安恒劉志樂(lè):“泄密門”帶給我們的警示

2月25下午,CSDN(微博)在北京麗亭華苑酒店舉行了TUP第二十期活動(dòng)——互聯(lián)網(wǎng)安全。本次活動(dòng)邀請(qǐng)了眾多安全界專家,安天實(shí)驗(yàn)室反病毒引擎研發(fā)中心經(jīng)理童志明,安恒信息安全服務(wù)部門經(jīng)理劉志樂(lè),C/C++/ASM程序員,xsign>>>詳細(xì)閱讀


本文標(biāo)題:童志明:Web應(yīng)用開(kāi)發(fā)中的安全算法使用策略

地址:http://www.sdlzkt.com/a/kandian/20120305/36967.html

樂(lè)購(gòu)科技部分新聞及文章轉(zhuǎn)載自互聯(lián)網(wǎng),供讀者交流和學(xué)習(xí),若有涉及作者版權(quán)等問(wèn)題請(qǐng)及時(shí)與我們聯(lián)系,以便更正、刪除或按規(guī)定辦理。感謝所有提供資訊的網(wǎng)站,歡迎各類媒體與樂(lè)購(gòu)科技進(jìn)行文章共享合作。

網(wǎng)友點(diǎn)評(píng)
我的評(píng)論: 人參與評(píng)論
驗(yàn)證碼: 匿名回答
網(wǎng)友評(píng)論(點(diǎn)擊查看更多條評(píng)論)
友情提示: 登錄后發(fā)表評(píng)論,可以直接從評(píng)論中的用戶名進(jìn)入您的個(gè)人空間,讓更多網(wǎng)友認(rèn)識(shí)您。
自媒體專欄

評(píng)論

熱度

主站蜘蛛池模板: 精品一区二区三区在线成人| 成人欧美一区二区三区在线 | 18禁成人网站免费观看| 亚洲av成人片在线观看| 久久精品成人欧美大片| 日韩av无码成人精品国产| 国产成人精品午夜福利| 亚洲成人高清在线观看| 成人爽爽激情在线观看| 国产成人无码精品一区不卡| 亚洲AV成人噜噜无码网站| 成人av免费电影| 78成人精品电影在线播放 | 久久成人免费电影| 在线观看成人网| 久久成人无码国产免费播放| 成人au免费视频影院| www亚洲欲色成人久久精品| 成人永久福利在线观看不卡| 亚洲人成人无码网www国产| 国产成人精品免费视频大全办公室 | 亚洲欧美日韩成人网| 成人区视频爽爽爽爽爽| 一级成人a做片免费| h成人在线观看| 亚洲欧美成人综合久久久| 国产成人一区二区三区| 成人亚洲综合天堂| 国内成人精品亚洲日本语音| 成人片黄网站色大片免费 | 欧美成人看片黄a免费看| 亚洲欧洲精品成人久久曰影片| 成人18xxxx网站| 成人性生交大片免费看好| 麻豆成人精品国产免费| 亚洲国产成人在线视频 | 国内成人精品亚洲日本语音| 成人免费午夜视频| 国产精品成人99久久久久| 国产精品成人久久久久久久| 成人性视频在线|