2月25下午,CSDN(微博)在北京麗亭華苑酒店舉行了TUP第二十期活動——互聯網安全。本次活動邀請了眾多安全界專家,安天實驗室反病毒引擎研發中心經理童志明,安恒信息安全服務部門經理劉志樂,C/C++/ASM程序員,xsign成員張亞一和pr0zel windows安全研究員李敏怡。他們將在本次演講中以大量實例演示,闡明互聯網安全的安全防御與漏洞補殺、分析用戶身份認證等亟需解決的問題所在。
安天實驗室反病毒引擎研發中心經理童志明在活動中發表《Web應用開發中的安全算法使用策略》主題演講。
童志明演講中表示,在當前0day橫行,幾乎沒有網站和應用可以絕對保證自己數據庫系統的安全的情況下,如何合理的利用現有的安全算法,可以獲得更多安全的保障,是我們需要討論的問題。
通過對APM實現的展開進行深入的討論,讓目前還在明文保存密碼的網站和使用相關算法策略并不合理(比如那些聯合使用HASH或者加入單一SALT的情況)的網站,能夠了解如何科學使用這些數學方法,降低安全應用的門檻;我們也希望打消那些中小網站試圖自己研究一個算法的努力。放棄這些已經被經過理論和實踐檢驗過的算法實現,而徒耗心力和人月,是不值得的。
以下是演講實錄:
在過去十余年間,我們中國的外部應用開發飛速的發展,開發者憑借自身的勤奮和沖擊力,奠定了現有的格局。因為我們快速的奔跑過程當中,也可能遺落了一些東西,比如說安全。
我們站在安全工程師這個角度來講,在泄密門事件發生以后,我們迅速推出了一個開源的項目叫APM。實際上來講,我們是利用了現有的流行開源包并沒有開發自己的算法,當然完成了對RSA一個外圍封裝。通過這個的實現,給網站開發者一些應用算法相對合理的一個范例。當然可能大家也希望自己去實現更精彩的代碼,我們只是希望讓更多的開發者了解安全實際上來講并不是神秘的,一樣有大量的資源可以借鑒。
今天演講的內容有幾個方面,一方面是背景介紹,就是關于我演講內容的一些名詞解釋。另一方面,就是關于去年大家都知道的泄密門事件。另外就是我們所面臨的威脅都有哪些,在這里我粗略地給出了一些我們現在面臨哪些威脅這么一個說明,包括在泄密門事件以后有很多的開發者或者是已經在實現、應用的算法,然后還有一些各種各樣的聲音。另外就是關于安全算法的使用策略問題。
首先是背景介紹。我們看一下幾個名詞,第一個名詞就是HASH。HASH我們也有人叫散列,簡單的說就是將一種任意長度的消息壓縮到某一個固定長度的信息摘要。另外就是加密、密文,就是把口令變換的過程稱為加密,以及把口令變換后的結果稱為密文并不科學,但是公眾所理解的。經常來講我們加密對應一個解密,很多人在泄密門事件說你這個信息為什么不加密啊?你怎么不做散列,散列是沒有過程的。最后一個是計算速度,關于本次演講中我們寫到的計算速度所指的是單位時間內計算的次數。
面臨的安全威脅都有哪些?
在這里大家看到我在上面寫了一個題目,在當前Oday橫行的時代,幾乎沒有網站和應用可以絕對保證自己數據庫系統的安全。我分了幾類:
第一類就是在系統方面——漏洞,這個是最容易出現問題的一個大類。由于我們外圍應用的開放性,我們外部的應用程序越來越多,帶來的安全的漏洞也會隨之增加。另外就是在服務方面,還有數據庫系統,這一系列的服務,很多都是有默認的口令或者是默認的配置,很多人把這個東西拿過來就用了,有可能默認的口令、帳號沒有更改,它帶來的結果就是這些密碼或者是這個配置就會被攻擊者利用發動攻擊。
第二類是遠程運維的風險,比如說我需要一個遠程運維,有的運維是在公司,有的是在家里,在這個過程當中很有可能就會帶來風險。比如說家里的PC不會像在公司的這種相對來講有一些安全的防范情況下,有可能比如說你的設備被入侵了,比如說中了一個木馬,很容易拿到你的口令,拿到口令以后,攻擊者就會用你的帳號、口令登陸服務器。
第三類是備份的風險,因為運維的時候我們要備份,有可能權限分配不當,或者是備份的人員沒有安全意識,可能把明文數據放到服務器上了,這種情況也會導致我們數據的泄密發生。在這個信息被盜以后,攻擊者往往會對信息進行二次的利用,比如說他拿到口令以后,他會去做一些其他的嘗試,登陸一些其他的網站,當然登陸過程不是人一個一個去敲的,有可能是控制了這個自動登陸,或者是有這個驗證碼,很多驗證者會寫驗證碼解析的。往往這些信息被攻擊者進行二次進攻,我們可能面臨的是信息泄露,密碼丟了以后或者是手機丟了以后有人給你打電話,這就是信息泄露。
第四類是口令危害,口令的危害相對來講是比較嚴重的。在泄密事件發生以后,我們經常聽到各種各樣的聲音,包括我們APM發布以后有一些有意思的事,在這里面有一些錯誤的實現,包括一些錯誤的聲音。我們看一下有哪些呢?網上有人說為什么不做一個HASH,在這里我給出了一句話是不合理,但是比較靠譜的一個實現。最起碼他們是知道HASH是具有單向性的。實際上HASH我們做了一個變換。還有人稱用MD5就好了,50年不能被破解。但是實際上來講,HASH對數據信息做一個信息摘要了。那么這個數據來講這個長度是有很長的。比如說我們對《紅樓夢》做一個HASH算法,但是相對于口令來講,口令的空間范圍是有限的,我們可能就是一個人用十六個字節的密碼已經相當不錯了。那么對應的情況就是當攻擊者拿到密碼以后,他們會做一個統計攻擊,比如說統計一下看你數據庫當中散列有多少,我們知道HASH相同數據算出來散列值都是一樣的,包括對明文一些統計。
用戶口令過于簡單 被盜用幾率提高
比如說我們上面寫的是TOP100口令的用戶,這部分用戶占到總人數的口令達到20%以上,這是非常令人震驚的一個數據。另一個就是使用純數字口令的用戶,純數字口令用手機號、用生日,這個達到了50%,這個數據相對來講是相當恐怖的。攻擊者為什么要統計數據,統計以后他能夠拿到TOP的口令,需要做的事情——高頻碰撞。
還有一些聲音講,為了防止別人攻擊我是不是做一個聯合HASH,聯合HASH是什么呢?就是我算一個MD5,再算一個SHA1,但是這個對于攻擊者來講是相當簡單的,比如說我把MD5再做一次MD5怎么樣呢?這個MD5包括一些彩虹表,這些我們怎么辦?下面就是我列出一個列表,里面對口令做一次散列,還有做兩次,包括SHA1。
推薦閱讀
2月25下午,CSDN(微博)在北京麗亭華苑酒店舉行了TUP第二十期活動——互聯網安全。本次活動邀請了眾多安全界專家,安天實驗室反病毒引擎研發中心經理童志明,安恒信息安全服務部門經理劉志樂,C/C++/ASM程序員,xsign>>>詳細閱讀
地址:http://m.sdlzkt.com/a/kandian/20120305/36967.html