蔣志強
摘 要: 為了加強應用系統用戶口令的安全性,本文在口令訪問控制模塊中引入了單向哈希算法,提出一個安全用戶認證模型,采取有效的數據加密技術來控制存取數據訪問。通過哈希算法把用戶身份認證信息加密后以密文的形式存放在數據庫中,進一步提高了系統的安全性。對于身份認證,相對于明文的驗證方式,哈希認證的單項散列特性使它更加具有安全性,對窮舉攻擊更具有抵抗性。
關鍵詞: 訪問控制; 身份認證; 哈希算法; 口令; 數據加密
中圖分類號:TP315 文獻標志碼:A 文章編號:1006-8228(2018)08-54-03
Application of Hash algorithm in password access control module
Jiang Zhiqiang
(Zhixing College Of Northwest Normal University, Lanzhou, Gansu 730070, China)
Abstract: In order to enhance the security of the user password of the application system, this paper introduces one-way Hash Algorithm to the password access control module, proposes a secure user authentication model and takes effective data encryption to control data access. The Hash algorithm is used to encrypt the user identity authentication information and the encrypted information is store as ciphertext in the database so as to further improve the security of the system. Compared with the verifying method of the plaintext, one-way hash characteristic of the Hash authentication makes it more secure and resistant to the exhaustive attack.
Key words: access control; identity authentication; Hash algorithm; password; data encryption
0 引言
隨著網絡技術的不斷發展和計算機應用管理系統的普遍運用,信息安全越來越受到人們的高度關注。建立信息安全體系,目的是保證存儲在計算機及網絡系統中的數據只能夠被有操作權限的人訪問,而未被授權的人無法訪問到這些數據。身份認證是網絡安全中最令人關心的熱點問題之一,所謂身份認證,就是判斷一個用戶是否為合法用戶,從而確定該用戶是否具有對某種資源的訪問和使用權限,保障授權用戶的合法權益,防止非法用戶獲得資源的訪問權限[1]。身份認證技術是在計算機網絡中確認操作者身份的過程而產生的解決方法。目前身份認證的主要手段有靜態密碼,短信密碼,動態口令,生物識別,智能卡等。在這幾種身份認證方式中,基于口令的認證方式由于實施便捷、成本較低而應用最為廣泛,這種簡單身份認證方式是系統通過比對用戶輸入的用戶名和口令,看其是否與數據庫系統中存儲的該用戶名和口令一致,來判斷用戶身份是否正確。對于用戶個人或者企業的身份認證信息,如果不使用有效的加密存儲技術,一旦數據庫被攻擊,身份認證的信息將完全暴露出來[2]。因此,必須采取加密措施來控制存取數據訪問。復雜一些的身份認證方式采用一些較復雜的加密算法,使計算機和網絡系統的訪問策略能夠更可靠、有效地執行,進而保證系統和數據的安全性。
1 單向哈希算法概述
哈希算法是現代密碼學的中心,應用于很多密碼系統中,現在常用的幾種Hash算法有MD5、SHA算法等[3]。單向哈希算法S(N)就是作用于任意長度的消息N,而返回一個固定長度的哈希值s,s=S(N),其中s長度為n。給定N,很容易計算s。給定s,根據S(N)=s計算N很難。給定N,要找到另一消息并滿足S(N)=S(N')很難。也就是說,給定一個Hash值,求其逆是比較困難的,但通過給定的輸入計算Hash值是比較容易的,因此也稱Hash函數為單向Hash函數。
SHA算法是安全性很高的一種哈希算法,其主要功能是輸入長度小于2^64bit的明文消息,經過預處理操作使數據的長度變成512bit的倍數,再按512bit為一個分組進行處理,最終得到固定長度為160bit的信息摘要,相比較MD4算法而言,主要增加了擴展變化,將上一輪的輸出送到下一輪。因此,只要輸入的明文發生細微的改變,信息摘要即散列值將會發生很大的變化,引起更快的雪崩效應,而且,由于其160bit的輸出,對窮舉攻擊更具有抵抗性。
SHA-1算法實現的基本過程主要如下。
⑴ 將明文信息轉換成位字符串。
⑵ 對轉換后的位字符串進行補位操作。使得數據長度對512求余的結果為448,在位字符串后面先補一個1,1后面的其余位補0,直到長度滿足補位操作的要求。總之,無論在什么情況下,補位是至少補一位,最多補512位。
⑶ 補長度值。在明文信息后面增加一個64位的二進制數據,來表示原始明文信息的長度,然后添加到已經進行了補位操作的信息后面。最終將原始信息的長度補到512位的倍數。
⑷ 初始化緩存。一個160位緩沖區用以保存中間和最終散列函數的結果。這個160位的緩沖區可以用5個32位的寄存器來表示,可以標識位:H0,H1,H2,H3,H4。在計算信息摘要之前初始化為:
⑸ 計算消息摘要。通過對補位和補長度兩步預處理操作后的消息進行多輪迭代運算,最終得到一個長度為160位的字符串,以下面的順序標識:
H0 H1 H2 H3 H4
2 哈希安全認證模型
目前的研究熱點主要集中在基于Hash函數的口令管理方式上,此方式的特點是真正的口令是由Hash函數計算產生,如Gabber等提出的LPWA,Ros等提出的PwdHash,Halderman等提出的PasswordMultiplier和Yee等提出的Passpet方案[4]。安全哈希算法的設計思想是將一段明文,以一種不可逆的方式轉換成一段位數固定的輸出序列即散列值的過程[5-6]。
為了方便記憶,大多數用戶在注冊時往往會選取一些自己或家人的生日、生活中常用的號碼以及比較短的、有意義的字母組合作為口令,但這些類型的口令數是有限的,也是極其不安全的,攻擊者可以利用電腦將所有可能的口令存放在數據字典中,然后快速地遍歷字典進行反復猜測與比對,并在很短的時間內就有可能猜出一個用戶的口令。因此,可以在訪問控制模塊設計中,應用哈希散列函數的性質對用戶注冊時所輸入的明文密鑰進行散列操作,并把散列操作后的160位密鑰存放到數據庫中,以便提高系統的安全性。
在用戶注冊階段,系統會對用戶提交的注冊信息進行嚴格的審核,用戶的信息通過審核后,系統應用SHA-1散列函數對用戶的密鑰進行操作,并把操作后的密鑰存到數據庫中,使密鑰的安全性不再依賴于數據庫的安全性,提高了系統的安全性。在之后用戶進行登錄時,系統會將用戶提交的密鑰進行SHA-1散列,并與數據庫中存儲的密鑰進行對比,若相等則為合法用戶,否則認證不通過。整個流程如圖1所示。
3 安全訪問控制模塊設計
訪問控制模塊實體認證的安全性主要集中在用戶名對應的口令上。為了在口令管理方式上增強用戶口令的安全性,此處在用戶登錄模塊中采用口令機制結合單向哈希算法進行,如圖2所示。
為用戶注冊和登錄時輸入的明文口令H()指哈希函數,即SHA-1散列函數,ID為用戶名,為經過哈希函數運算后得到的散列值。
在用戶進行普通注冊時,客戶端把用戶名和密文密鑰發送給服務器,服務器進行哈希運算得到,然后以密文形式存儲在數據庫中,當用戶進行普通登錄輸入明文密鑰時,服務器再通過哈希函數運算得到,并根據用戶名在數據庫中找到與之對應的哈希值,比較即可認證通過。這樣可保證在數據庫被攻擊的情況下,攻擊者得到的只是哈希值,就很難推測出用戶的口令原文。
這樣,在普通注冊登錄模塊中引入單向哈希算法時,注冊和登錄所輸入的明文密鑰經過哈希散列函數多輪迭代運算后,最終得到一個160位哈希值的密鑰,并存放在數據庫的Password表中,該表用來存放用戶名和口令,這里實際存儲的是經過哈希算法加密后的口令,如圖3所示,從而加大了密碼攻擊難度。
4 結束語
身份認證技術是現代網絡安全系統設計中必須要考慮的問題之一。本文先介紹了單向哈希算法以及哈希安全認證模型,再進行了安全性分析,著重對哈希算法在基于口令訪問控制模塊中的技術應用進行了研究。在用戶注冊登錄模塊中引入SHA-1散列函數對用戶所輸入的明文密鑰進行了散列操作,并把經過散列操作后的密文存放在數據庫表中,也就是說數據庫中存放的就是經過加密后的用戶身份認證信息,即使非法用戶得到了數據庫中加密后的口令數據,也無法解析出口令原文,從而有效抵抗非法用戶的各種攻擊,進而提高了數據庫系統的安全性。隨著計算機技術的不斷發展,還有待我們改進哈希算法,并在口令訪問控制模塊中結合其他先進的加密算法對認證信息進行更為細微度的管理。
參考文獻(References):
[1] 劉蔚洋.電子商務CA認證加密技術淺析[J].現代商業,
2016.11(1):55-56.
[2] 高洪波,馬素萍.MD5算法及在用戶口令加密應用中的改進[J].
物流技術,2010.30(9):83-84
[3] 王鳳忠,呂亞飛等.軍事物流數據庫加密與AES算法的探究[J].
物流技術,2016.36(9):164-168
[4] 黃偉,孟博等.基于口令的安全用戶認證模型[J].現代電子技
術,2003.27(21):79-82
[5] 方宏.電子文件管理系統的設計與實現[D].湖北工業大學碩
士學位,2016.
[6] 徐安東.Visual C#程序設計基礎[M].清華大學出版社,2012.