童志明:Web應用開發中的安全算法使用策略

作者: 來源:未知 2012-03-05 17:31:22 閱讀 我要評論 直達商品

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

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

還有一些錯誤的實現。這個當然是聲音了,剛才我講的都是實現,有人做散列的,有人做兩次散列的。錯誤的實現有哪些呢?

有人提出說我是不是自己設一個算法?我覺得這個事情是非常被吹的事情,第一個事情就是我們怎么保證HASH的均勻性,右邊就是安天對各種HASH做了一個評估。再一個通過HASH碰撞進行拒絕式服務攻擊,這個事情大家應該聽說過。在去年泄密門事件以后也把這個事件掩蓋了,HASH碰撞攻擊幾乎涵蓋了所有的腳本語言。什么是HASH碰撞呢?就是攻擊者通過裁判HASH算法,我們如果自己設計算法,如何保證均勻性這是一個問題。

還有一些聲音說實現慢速HASH,有人說這個HASH太快了,我自己實現一個慢速HASH怎么樣呢?我們后面可能給出一些例子,我們看到,實際上來講,所有的HASH沒有慢的,當他面臨幾個問題,一個問題就是他的HASH算法不合理。另外一種就是用戶的體驗問題,我們想象一下你在網站提示說用戶登陸可能需要三分鐘,這個用戶非常被吹,實際上這個慢速HASH應用非常不適合外部的應用場景一下。

在這里,我想說很難設計出一種慢速的HASH,在XP系統構架下,對CPU是負載的,實現基地是不容易漫過的。慢速HASH一定會負載的,所以這個實現是非常不合理的。

還有一些網站聲稱自己特別安全,為什么安全呢?因為可以識別你的指紋。比如,我們獲取一個指紋和獲取一個口令,實際上沒有任何太大區別。指紋算一個散列,但是指紋識別意味著幾個事情,不可再生指。還有一個面部識別,以上是其他人提出的自己想法和觀點。接下來我們下面要講的就是安全算法的一個使用策略。

一用戶一鹽

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

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

這里面所提到的第一個事情就是為什么要使用標準的算法?第一點來講,標準算法是公開的,我在這里列出了APM當中一個代碼。這個APM就是我們實現了幾種語言,大家可以上去看一下,這里列出的是PHP的。這里直接調用了一個APM,完成了一個加密。

標準的算法的合理性是經過時間、經過數學家大家驗證的,是經過理論和實踐檢驗過的算法。還有一些問題就是事實上來講不是算法的問題,是如何合理使用的問題,我們看到剛才我們做一次HASH等等這種情況。事實上來講,不是算法本身的問題,是如何合理使用的問題,下面我會講到。

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

三種手段:一個是統計攻擊,高頻碰撞。第二個是反向查詢,第三個是暴力破解。

鹽為何物?

鹽的概念是什么呢?鹽實際上來講就是一組隨機數據,把這個隨機數據與用戶的口令相結合,然后運算散列,這個就是鹽的概念。

這里就是鹽如何使用,當用戶首次提供密碼的時候,由系統自動往這個密碼里加入一注鹽,然后再進行散列,用戶登錄的時候,系統就是鹽加散列,再比較散列值,確定密碼是否正確。為什么要有用戶名呢?有了用戶名,比如說有了一個站點,用戶的名稱是唯一的,它就起到了一個鹽的作用,我們為什么還要加鹽,比如說攻擊者拿到了兩個網站的數據,那一個是什么呢?比如說一個用戶是123,另外一個用戶也是123,實際上來講我們算的散列值依然是一樣的,他依然可以直接通過散列一查就知道你使用了什么密碼。所以說我們這里還是要加鹽。

下面這里就是一個APM的示意圖。我們看到用戶注冊,注冊通過外部服務器,然后用戶名、密碼、鹽三個聯合生成一個驗證的密碼。這是我們畫的一個示意圖。

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

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

在這里還有一些其他的策略,就是大家如果看到KC代碼以后,比如說我這里沒有使用SQL,隨著互聯網的發展,非關系型的數據成為了一個熱門領域,但是我使用KC的目的,不是因為它效率比較好,所有網站面臨重要的攻擊就是輸入,各種各樣的嘗試。

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

還有一些其他的策略,比如說動態均衡,微軟(微博)的Hotmail做了一個動態均衡,原理就是對你口令做一個基數,當你的口令達到用戶的1%,我就不允許你再使用這個密碼了。但是這個實際上來講也是有一些弊端的。這個弊端是什么呢?第一點你要對這個口令做計數,當你計數的表被泄露以后,用戶就會知道這個超過一萬次了,這個一萬次了搞定這些。


  推薦閱讀

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

2月25下午,CSDN(微博)在北京麗亭華苑酒店舉行了TUP第二十期活動——互聯網安全。本次活動邀請了眾多安全界專家,安天實驗室反病毒引擎研發中心經理童志明,安恒信息安全服務部門經理劉志樂,C/C++/ASM程序員,xsign>>>詳細閱讀


本文標題:童志明:Web應用開發中的安全算法使用策略

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

樂購科技部分新聞及文章轉載自互聯網,供讀者交流和學習,若有涉及作者版權等問題請及時與我們聯系,以便更正、刪除或按規定辦理。感謝所有提供資訊的網站,歡迎各類媒體與樂購科技進行文章共享合作。

網友點評
我的評論: 人參與評論
驗證碼: 匿名回答
網友評論(點擊查看更多條評論)
友情提示: 登錄后發表評論,可以直接從評論中的用戶名進入您的個人空間,讓更多網友認識您。
自媒體專欄

評論

熱度

主站蜘蛛池模板: 国产成人在线观看网站| 欧美成人在线影院| 亚洲av无码成人精品国产| 亚洲av成人一区二区三区| 欧美成人香蕉网在线观看| 国产成人精品午夜二三区波多野 | 国产成人精品97| 四虎国产成人永久精品免费| 狠狠色成人综合首页| 国产成人一区二区三区免费视频| 亚洲av成人一区二区三区| 成人妇女免费播放久久久| 四虎亚洲国产成人久久精品| 成人福利小视频| 亚洲国产aⅴ成人精品无吗| 成人小视频在线观看| 精品成人一区二区三区免费视频| 天天影院成人免费观看| 成人综合视频网| 欧美成人午夜影院| 亚洲欧美成人日韩| 国产成人精品免费视频大全| 精品成人一区二区三区四区| 国产成人影院在线观看| 成人妇女免费播放久久久| 成人黄18免费视频| 99国产精品久久久久久久成人热| 国产亚洲精品成人久久网站| 国产成人精品视频一区| 成人国产在线观看高清不卡 | 国产成人无码精品久久二区三区 | 69成人免费视频无码专区| 亚洲人成人一区二区三区| 四虎成人免费大片在线| 国产成人免费a在线资源| 成人免费网站视频| 成人免费在线视频网站| 国产成人福利在线| 国产成人影院在线观看| 亚洲国产精品成人久久久 | 亚洲无成人网77777|