賬號密碼發展現狀
20世紀90年代互聯網進入千家萬戶以來,互聯網服務(如郵件、電子商務、社交網絡)蓬勃發展,賬號密碼成為互聯網世界里保護用戶信息安全的最主要手段之一。也是現今大多數網絡系統所使用的最簡單的訪問控制方法,通過密碼的匹配來確認用戶的合法性。系統為每一個合法用戶建立一個ID/PW(賬號/密碼)對,當用戶登錄系統時,提示用戶輸入自己的賬號和密碼,系統通過核對用戶輸入的賬號密碼與系統內已有的合法用戶的ID/PW是否匹配,來驗證用戶的身份。
“賬號+密碼”身份驗證方式中提及的密碼為靜態密碼,是由用戶自己設定的一串靜態數據,靜態密碼一旦設定之后,除非用戶更改,否則將保持不變。這也就導致了靜態密碼的安全性缺點,比如偷窺、猜測、字典攻擊、暴力破解、竊取、監聽、重放攻擊、木馬攻擊等。另一方面,由于許多用戶為了防止忘記密碼,經常采用諸如生日、電話號碼等容易被猜測的字符串作為密碼,或者把密碼記錄在一個自認為安全的地方,這樣很容易造成密碼泄露。當然,為了從一定程度上提高靜態密碼的安全性,用戶可以定期對密碼進行更改,但是這又導致了靜態密碼在使用和管理上的困難,特別是當一個用戶有幾個甚至幾十個密碼需要處理時,非常容易造成密碼記錯和密碼遺忘等問題,而且也很難要求所有的用戶都能夠嚴格執行定期修改密碼的操作,即使用戶定期修改,密碼也會有相當一段時間是固定的。賬號密碼的不足之處主要表現在以下幾點:
?賬號密碼的易用性和安全性互相排斥,兩者不能兼顧,簡單容易記憶的密碼安全性弱,復雜的靜態密碼安全性高但是不易記憶和維護;
?賬號密碼安全性低,容易遭受各種形式的安全攻擊;
?賬號密碼的風險成本高,一旦泄密將可能造成最大程度的損失,而且在發生損失以前,通常不知道靜態密碼已經泄密;
?賬號密碼的使用和維護不便,特別一個用戶有幾個甚至十幾個靜態密碼需要使用和維護時,靜態密碼遺忘及遺忘以后所進行的掛失、重置等操作通常需要花費不少的時間和精力,非常影響正常的使用感受。
靜態口令認證技術在面臨上述形式的網絡攻擊時就顯得非常的脆弱,攻擊者非法獲得合法用戶的口令并入侵網絡系統的安全事件經常發生。為了提高靜態口令認證系統的安全性,一些系統對用戶的口令管理作一定的限制,例如:
?限制口令的長度和內容
?要求定期更換口令
?要求用戶在固定時間段內登錄
?要求用戶在固定設備上登錄
?不允許多人共享一個用戶名和口令等。
盡管賬號密碼存在眾多的安全性及可用性問題,同時也有大量的新型身份認證技術被提出,這些替代型方案有的在安全性方面優于賬號密碼,有的在可用性方面勝過賬號密碼,但幾乎都在可部署性(deployability)方面劣于賬號密碼,并且各自存在一些固有的缺陷。賬號密碼身份認證方式憑借其簡單易用、成本低、容易更改等特點,在可預見的未來,仍然是互聯網中最主要的身份認證方式。
賬號密碼市場調研分析
靜態口令即賬號密碼,賬號密碼是由人生成的,因此帳號密碼的安全性與人有著必然的聯系,大多數用于為了記憶方便,習慣性使用弱密碼、多個平臺使用同一密碼、未定期更換密碼等。比如,同樣是注冊12306賬號,有的人認為該賬號不重要,使用弱口令“111111”作為密碼;也有的人采用“p ssword”作為密碼,但是,如果其他人也有同樣設置密碼的習慣,攻擊者即會了解這一用戶行為,該密碼也就成為弱口令的一種;再有的人習慣用自己的生日作為密碼,甚至是多個平臺使用同一密碼,這一用戶行為大大降低賬號密碼的安全性。
在第二屆國家網絡安全宣傳周的啟動儀式上,《我國公眾網絡安全意識調查報告(2015)》正式發布。該調查為我國首次開展的全國性網絡安全意識調查活動,在一個月的時間里,回收有效問卷25萬余份,調查對象覆蓋我國31個?。▍^、市),年齡跨度從7歲的兒童至60歲以上的老年人。我國公眾使用賬號密碼安全性問題主要表現在如下三個方面:
1.弱口令
1979年,Morris和Thompson在他們的開創性論文里分析了3289個真實用戶口令,發現86%落入普通字典,33%可以在5min內搜索出來。后續大量研究表明,除了選擇單詞作口令,用戶常常將單詞進行簡單變換,以滿足網站口令設置策略的要求。比如“123abc”可以滿足“字母+數字”的策略要求。這些最流行的單詞及其變換就形成了國民口令。中文國民口令多為純數字,而英文國民口令多含字母,這體現了語言對口令行為的影響。有趣的是,愛情這一主題在國民口令中占據了重要地位。高達1.01%~10.44%的用戶選擇最流行的10個口令,這意味著攻擊者只要嘗試10個最流行的口令,其成功率就會達到1.01%~10.44%。
2.未定期更換密碼
《我國公眾網絡安全意識調查報告(2015)》顯示,定期更換密碼的被調查者僅占18.36%,而遇到問題才更換密碼的被調查者有64.59%,有17.05%的被調查者從來不更換密碼(見圖1)。對此,工業和信息化部電子科學技術情報研究所所長洪京一表示,定期更換密碼對保證個人賬戶安全、防止個人隱私泄露具有重要意義,尤其是個人網銀等較為重要的賬號應該定期更換密碼。
圖1公眾更換密碼情況分析
3.多賬號同密碼
調查指出,公眾多賬號使用同一密碼的情況高達75.93%(見圖2),多賬戶使用同一密碼更容易遭到黑客攻擊,因為黑客可通過防御性較弱的網站獲取密碼信息,再登錄到賬戶中進行信息竊取。調查顯示,我國超七成被調查者存在多賬號使用同一密碼的問題,特別是青少年多賬號使用同一密碼的比例高達82.39%。
圖2公眾密碼設置情況
技術原理
在賬號密碼技術的運作過程中,系統將賬號密碼的配對信息以密文形式存儲在數據庫中,通過系統管理員分配給用戶,用戶在需要進行身份認證時,在頁面輸入注冊的用戶名及密碼,系統獲取這組輸入的信息后,將其與數據庫中存儲的用戶名,密碼進行比對,比對一致即視為認可該用戶為合法用戶,若比對不通過,則視為非法用戶。靜態密碼技術原理圖(見圖3)。
圖3靜態密碼技術驗證流程圖
用戶名(賬號)/密碼的對比校驗支持在本地完成,對于無需網絡支持的系統或者移動端信息系統,例如手機、平板電腦的開機密碼,我們稱之為本地密碼認證,而與之相對的是遠程密碼認證,一般用于需要網絡支持的應用及信息系統,由服務器端來負責驗證,例如電子郵件、網絡游戲的賬號、密碼等。
賬號密碼的存儲方式分為:Hash雜湊存儲、鹽處理存儲等,詳細介紹如下:
一、Hash雜湊存儲
?技術原理
使用雜湊函數為口令文件產生指紋,將每一個用戶的賬號和密碼的雜湊值存儲在一個口令文件(數據庫)中。當用戶需要認證身份時,輸入口令后,系統在計算口令的雜湊值,與數據庫中存儲的雜湊值比對。比對成功,則身份認證成功;反之,若比對失敗,則身份認證失敗。靜態密碼雜湊存儲技術原理(見圖4)。
圖4靜態密碼雜湊存儲技術原理
?雜湊函數
單向函數就是一個求值相對容易,但求逆卻非常困難的函數。也就是說,已知x,很容易計算f(x),但已知f(x),求x卻是非常困難的。例如打碎盤子就是一個很好的單向函數。把盤子打碎成碎片是很容易的事情,然而把這些碎片再拼接成一個完整的盤子卻是非常困難的一件事情。陷門單向函數是一個有秘密陷門的一類特殊的單向函數。陷門單向函數在一個方向上易于計算,求逆仍然是困難的。但是,如果能夠知道那個秘密陷門,也能夠容易計算這個函數的逆了。散列函數就是把可變輸入長度串轉換成固定長度的輸出串的一種函數。散列函數是典型的一種多到一的映射,因此不能用散列函數來確定兩個串是否相同,但可以用來得到準確性的合理保證。單向散列函數,也叫雜湊函數,消息摘要,是一個確定的函數,它將任意長的比特串映射為定長比特串的雜湊值。雜湊函數具有如下性質:
?。?)混合變換:對于任意的輸入,輸出的雜湊值應當和在其值域中的均勻的二進制串在計算上是不可以區分的。
?。?)抗碰撞攻擊:找兩個不同的輸入x和y,且x與y不相等,使得輸出的結果相等在計算上是不可行的。
?。?)抗原像攻擊:已知一個雜湊值h,找出一個輸入串x,使得其輸出結果等于h,在計算上是不可行的。
雖然雜湊函數MD5和SHA-1等被找出缺陷,使得找到碰撞成為可能,但是這并不意味著數字簽名安全大廈的轟然倒塌。Hash函數可以用于檢測數據的完整性,它是很多密碼體制和協議的安全保證,我們可以采用增強型算法有著廣泛的應用領域。
?MD5算法簡介:
MD5的全稱是MessageDigest5(信息摘要算法第5版),20世紀90年代初,由MITLabomtoryforComputerscience和RSADataSecurityInc的RonaldL.Rivest開發,經MD2、MD3和MD4發展而來。它是將一段任意長度報文,即數據文件、文本文件或者二進制文件,通過一系列算法壓縮成一段128位的信息摘要MD5算法的本質是一種散列函數(又稱啥希函數),其具有四個特點:(1)唯一性。任何一個特定的被計算對象,總是能得到固定的特征值。(2)離散性。被計算對象的微小變化,將引起特征值的很大變化。(3)抗碰撞性。給定消息m,很難找到另一個消息m’,使它們的信息摘要相同。(4)單向性。給定消息m,很容易計算出信息摘要h;給定信息摘要h,很難推算出原始消息m。
?MD5算法加密原理:
Message—Digest泛指字節串(Message)的Hash變換,就是把一個任意長度的字節串變換成一個128位的大整數,這種變換只與字節的值有關,與字符集或編碼方式無關。MD5算法對字節串的變換是一個不可逆的變換算法,換而言之,即使你看到源程序和算法描述,也無法將一個MD5的值通過某種算法變換回原始的字節串。MD5算法可簡單描述為:MD5加密以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理后,算法的輸出由4個32位分組組成,將這4個32位分組級聯后將生成一個128位散列值,即“信息摘要”。
?MD5算法在用戶口令認證應用中的安全隱患
MD5加密算法在網絡應用系統,特別是網站后臺登錄管理系統中應用廣泛,網站的用戶信息包括管理員信息均保存在數據庫文件中,網絡攻擊者通過服務器漏洞、網站應用程序漏洞等非常規手段入侵服務器,能輕松下載并打開數據庫文件,獲取關鍵敏感信息,如管理員登錄用戶和密碼。雖然數據庫文件存儲的密碼是經過MD5算法加密過的,但網絡攻擊者仍然可以通過某種特定的方法加以破解,對于普通強度的加密口令,可以通過以下三種方式進行破解:
(1)在線查詢密碼。一些在線的MD5值查詢網站提供MD5密碼值的查詢,輸入MD5密碼值,若此密碼值在數據庫中存在,就可以很快獲取其密碼明文。如管理員密碼明文是”admin123”,其對應MD5值為:
“8a30ec6807f71bc69d096d8e4d50lade”,將MD5值輸入到在線查詢破解網站的查詢窗口,就能快速獲取對應密碼原文。
(2)使用MD5破解工具。網絡上有許多針對MD5破解的專用軟件,通過設置字典來進行破解。
(3)隨著云計算技術的迅猛發展,MD5算法被暴力破解的代價和成本大幅下降,在2010年亞馬遜EC2推出集群GPU運算服務,每一個GPU提供了甚至超過每秒100萬兆次的雙精度浮點計算的超高的性能。通過GPU實例的數百個內核并行處理能力,工作負載可以被大大加速。在暴力破解MD5算法方面,GPU的速度比四核CPU快數百倍。簡單的MD5加密是無法達到絕對安全的,因為普通的MD5加密有多種暴力破解方式,因此如果想要保證信息系統安全,必須提高MD5在口令認證等方面的安全性。
?提高MD5算法在口令認證中的安全性
提高MD5算法在口令認證中的安全性可采用對MD5加密過程進行變換,或使用自定義加密算法、局部修改MD5算法等方法,使數據庫中密碼字段存儲的信息不再是常規的MD5密碼值。
1.自定義加密算法
?。?)增加MD5加密次數。讀取提交表單中輸入的密碼明文,賦值給變量pwd,pwd=md5(pwd)對提交表單中輸入的密碼明文進行加密,并將MD5值賦值給變量pwd,pwd=md5(md5(pwd))以此類推,可以利用函數的嵌套方法進行兩次或多次加密
?。?)利用截取函數截取MD5值后作為密碼值保存至pwd字段,如:pwd=left(pwd,N)截取MD5值左邊N位,因為“信息摘要”由32位16進制數表示,所以N正常取值范圍應在1到31之間也可以調用mid()、right()和Reverse()等內置函數對MD5值進行截取變換。
?。?)pwd=md5(“R”&pwd)對R和密碼明文進行連接后再加密,其中R既可以是任意字符串,也可以是隨機數,可用隨機函數實現,設計時應將每個用戶密碼對應的隨機函數產生的隨機數保存至RandomNumber字段以上方法實現了對MD5加密算法進行變換,也可以對以上三種方法進行任意組合,以增強MD5加密算法的復雜性和安全性。
2.局部修改MD5算法
?。?)修改四個緩沖區寄存器的初始值。MD5算法定義了四個常數,A、B、C、D四個緩沖區寄存器,它們的初始值分別為:a=0x67452301、b=0xEFCDAB89、c=Ox98BADCFE、d=Oxl0325476。MD5算法的過程主要是一些異、或、求模等操作的運算,只要把初始值進行稍微改變,比如只改變其中一位,不必改動算法的其它部分,就產生了自定義的新MD5散列算法。如將“a=ox67452301”改為“a=ox67452302”,這樣就得到一個新的MD5算法,按照常規的破解方法,則無法被破解。
?。?)任意組合級聯生成MD5值的四個分組。MD5算法程序中,MD5值由四個32位分組級聯后生成,任意選取四個分組中的幾組,同時也可改變分組的先后順序,均可達到修改MD5算法的效果。即使用戶密碼值數據暴露,變換后的MD5算法也可以極大地增加用戶密碼被破解的難度,有效提高了MD5算法的安全性。
二、加鹽處理
?技術原理
加鹽加密是一種對系統口令的加密方式,它實現的方式是將每一個口令同一個叫做“鹽(salt)的n位隨機數相關聯。無論何時只要口令改變,隨機數就改變。隨機數以未加密的方式存放在口令文件(數據庫)中,這樣每個人都可以讀。不再只保存加密過的口令,而是先將口令和隨機數連接起來然后一同加密,加密后的結果放在口令文件中。靜態密碼加鹽存儲技術原理(見圖5)。
圖5靜態密碼加鹽存儲技術原理
在帶有鹽度值的安全哈希加密算法中,鹽度值的作用極其重要,通過系統為每個用戶隨機生成一個鹽度值,并與用戶提供的密碼相結合,使得用戶的密碼具有高度的隨機性,即便多個用戶提供了相同的密碼,但由于系統為他們隨機生成的鹽度值的不同,使得他們密碼的哈希值也是不同的。這樣,即便攻擊者可以通過特定的密碼和其對應的哈希值來找具有這個特定密碼的用戶,但是其成功率就明顯地降低了。
?帶有鹽值的Hash算法優勢
采用帶有鹽值的安全哈希加密算法對用戶密碼進行加密后,即便多個用戶提供了相同的初始密碼字符串,但由于系統為每個用戶隨機生成的鹽值不同,而使得加密得到的密文不同,這就使得利用字典、彩虹表進行攻擊的攻擊者需要為每個鹽度值創建一條字典記錄,這將使攻擊變得非常復雜。此外,通過將系統提供的較長的、含有特殊字符的附加碼和用戶輸入的密碼相結合,可以使得明文密碼進一步隨機化,并且增加了明文密碼的長度,這也在一定程度上增加了攻擊者利用字典、彩虹表進行攻擊的難度。因此,采用帶有鹽度值的安全哈希加密算法對用戶密碼進行加密可以很好地提升用戶密碼的安全性。
結語
在現代密碼學中,除了信息保密外,還有另一方面的要求,即信息安全體制還要能抵抗對手的主動攻擊。所謂主動攻擊指的是攻擊者可以在信息通道中注入他自己偽造的消息,以騙取合法接收者的相信。主動攻擊還可能竄改信息,也可能冒名頂替,這就產生了現代密碼學中的認證體制。該體制的目的就是保證用戶收到一個信息時,他能驗證消息是否來自合法的發送者,同時還能驗證該信息是否被竄改。在許多場合中,如電子匯款,能對抗主動攻擊的認證體制甚至比信息保密還重要。社會已逐步步入了信息時代,隨著數據庫技術和計算機網絡應用的不斷深入,信息的安全傳輸也有著廣闊的應用前景。
PKI是一種遵循標準的利用公鑰加密技術為電子商務的開展提供一套安全基礎平臺的技術和規范。用戶可利用PKI平臺提供的服務進行安全通信。PKI的理論基礎是基于密碼學,它所使用的基礎技術包括加密(非對稱和對稱)、數字簽名、數據完整性機制、數字信封、雙重數字簽名等。
責任編輯:韓希宇
免責聲明:
中國電子銀行網發布的專欄、投稿以及征文相關文章,其文字、圖片、視頻均來源于作者投稿或轉載自相關作品方;如涉及未經許可使用作品的問題,請您優先聯系我們(聯系郵箱:cebnet@cfca.com.cn,電話:400-880-9888),我們會第一時間核實,謝謝配合。