陳秀容(廈門大學信息科學與技術學院,福建 廈門 361005)
安卓備份文件口令認證機構分析及其安全性
陳秀容
(廈門大學信息科學與技術學院,福建廈門361005)
摘要:為了研究安卓備份的消息認證結構,從加密算法組合方式以及加密算法類型分類的視角,使用了無條件安全性和計算安全性進行了分析,計算安全模型,將安卓備份秘鑰結構拆分為偽隨機函數(PBKDF-HMAC)和偽隨機置換(AES分組密碼)函數兩個部分。然后證明這兩部分滿足一定的特性,基于信息論,對安卓備份秘鑰架構安全性進行了簡潔的說明。
關鍵詞:口令認證機制;密鑰導出算法;計算安全
Android是Google公司于2007年專門為手機發布的一款開源操作系統。自Android操作系統發布以來,引發了手機革命。越來越多的人依賴手機更多于電腦。智能手機一方面給人們生活帶來了方便,同時也給人們增加了負擔,大量私人保密信息的存儲,不法分子可以通過各種攻擊手段,如盜取、竊聽等方式來獲取存儲在移動設備端的數據。這些數據的泄露,可能對個人、企業和國家帶來不可估量的損失。因此,及時備份數據以及對數據進行加密顯得尤為重要。本文是對安卓備份加密消息認證機構的探討以及對備份數據的安全性說明。
對數據保護的另一種方式為數據加密,通過對原來的明文數據加密處理,使其轉換為不可讀的數據,通常稱為“密文”,只有當用戶輸入相同的密鑰,經過解密處理后才能顯示可讀內容[i]。數據保護可分為系統自帶加密方式,比如主流的微軟windows系列,蘋果macos系列,以及開源linux系列等等。
以及采用文件口令認證機制的軟件方式來加密數據[ii]。軟件加密主要有文件、文件夾加密和磁盤加密。Android備份文件[iii]、7-zip[iv]、PDF[v]、OpenOffice[vi]等應用軟件則通過將加解密過程嵌入到文件及文件夾中。TrueCrypt[vii],McAfee[viii]和PGPWDE[ix]等磁盤加密軟件通過對虛擬磁盤驅動程序進行加解密,從而實現對數據的保護。在Android備份文件、OpenOffice、PGPSDA[x]、Truecrypt及WinRAR[xi]中采用AES[xii]、Whirlpool[xiii]、CAST5[xiv]等分組加密算法.分組密碼具有良好的擴展性,介入的敏感性,使其更適合用作加密標準。
2.1哈希函數架構-秘鑰導出函數
密鑰導出算法(KeyDerivationFunction,KDF)特別是基于口令的密鑰導出算法,將用戶簡單,不均勻的原始密鑰材料(如口令)進行一定處理、變換和擴展成長度更長,均勻分布的密鑰,擴展后的密鑰近似一個隨機二進制字符串,攻擊者從這個密鑰將無法獲得初始密鑰的任何信息。由于用戶的口令通常從較小的字符空間選取,因此很容易受到窮盡口令攻擊和字典攻擊。為了增加攻擊者的時間消耗,提高結構的安全性,密鑰導出算法中引入迭代次數(c)以及一定長度的鹽(salt)[16][xv],迭代次數的使用增加了攻擊者計算代價,使窮盡口令搜索變得緩慢;而鹽與口令相結合產生密鑰,使得字典攻擊的搜索空間變大,增加了抵御字典攻擊的風險。
在Android備份文件中,選用的是以HMAC-SHA1為底層偽隨機函數的PBKDF2作為密鑰導出算法[3],導出的密鑰作為分組加密算法AES使用。
在文檔及磁盤認證機制中都加入了一定長度的鹽及迭代次數參與密鑰的生成,不同軟件對迭代次數以及鹽的長度的選擇上也有所區別,Android備份文件為32字節的鹽以及10000次的迭代,而TrueCrypt則為64字節的鹽和2000次或者1000次的迭代,這些差異會對整體的結構產生一定的影響。密鑰長度方面,Android備份文件、7-zip為256-bit;OpenOffice、PGPWDE為128-bit;Truecrypt則可根據用戶的需要設置為256-bit甚至更長。
2.2消息認證機制
在文件安全機制中,通過消息認證(MAC)機制來防止文件傳輸及存儲過程未經授權的訪問、篡改和偽造,從而保證文件的完整性。消息認證碼的生成主要由三部分組成[錯誤!未定義書簽。]:密鑰導出算法(k)、MAC生成算法(T)以及驗證算法(V)。密鑰導出算法(k)對用戶的口令進行處理,使導出的密鑰熵值足夠大,從而解決用戶口令長度及強度不夠等問題。文件口令認證機制是文件消息認證機制中常用的方式[錯誤!未定義書簽。]。在這種認證機制中,用戶輸入的口令經過密鑰導出算法生成導出密鑰,再將其和消息內容經過對稱加密算法生成消息認證碼,并將消息認證碼保存作為驗證憑據[xvi]。
安卓備份消息認證機制:安卓備份消息認證架構如圖所示,其大致分為三個階段,PBKDF2架構,AES_CBC解密模式,以及HMACSHA512的底層哈希函數。將HMAC作用于秘鑰導出函數架構的底層哈希函數,得出的512bit的hash值作為AES解密函數的輸入。通過哈希函數與分組函數并用,提高架構的安全性。由輸出的AES分組密文與安卓中提取出的密文想比對,如果正確,備份數據為可讀。
在現代密碼學中,主要有兩種方式證明密碼方案的安全性:無條件安全(unconditionalsecurity)和計算安全(computationalsecurity)[xvii]。無條件安全在敵手擁有無限的計算資源的假設前提下也無法對密碼方案造成威脅,雖然無條件安全性具有完美性,但卻有難于實現的缺點。計算安全指敵手利用已有最好的方法破譯該系統所需要的努力超越了敵手的破譯能力。雖然其對敵手的計算能力有所限制,但在理論分析中的計算能力已超過現實,因此在實際應用中一般通過計算安全來證明密碼方案的安全性[xviii]。本文主要圍繞口令認證機制的密鑰導出算法AB-MAC架構進行研究。
參考文獻:
[1]周君.基于口令的密鑰導出算法安全性分析[D].廈門:廈門大學,2013.
[2]PGP.PGPSDA[EB/OL].http://www.pgpi.org/products/pgpsda/.
[3]WinRAR[EB/OL].http://www.winrar.com.cn/index.html.
作者簡介:陳秀容(1989—),女,福建廈門人,碩士研究生,研究方向:電路與系統。