喻瀟,田里,劉喆,王捷
?
基于USBKEY的網絡存儲用戶數據保護的研究與實現
喻瀟1,田里1,劉喆2.3,王捷1
(1. 國網湖北省電力有限公司電力科學研究院,湖北 武漢 430077;2. 武漢大學國家網絡安全學院,湖北 武漢 430072;3. 武漢大學空天信息安全與可信計算教育部重點實驗室,湖北 武漢 430072)
網絡硬盤和云存儲等網絡存儲服務運用面廣泛,但是由于網絡硬盤與云存儲自身的相對靈活性,造成其需要面對諸多安全風險。提出基于USBKEY的數據加密防護機制,數據加密與存儲服務獨立,把密鑰存儲于USBKEY內,最終將“服務層面提供安全”細化到“實體掌握安全”,達到用戶掌控數據安全的目的。
USBKEY;云存儲;網絡硬盤;數據隱私保護
隨著互聯網與計算機的發展,IT技術的不斷演進,用戶數據呈爆炸式增長,越來越多的用戶依靠網絡等渠道進行數據的處理、傳遞和存儲,網絡硬盤、云存儲等用戶數據的服務產品能夠向用戶提供數據、文件等的存儲、備份、共享和管理服務,具有方便快捷的優點。但是,網絡硬盤與云存儲等服務只是提供了存儲空間,并沒有承諾對存儲數據的隱私保護,安全問題也越來越突出,GoogleDocs、The Linkup等多家云服務提供商都曾被曝出由于安全問題導致數據泄露等嚴重后果[1]。具體來說,一方面來自外部威脅與框架安全問題,通過云服務器用戶接口與云內部系統進行交互,外部攻擊者利用軟硬件的漏洞實施入侵,這主要是系統在開發過程中就存在安全隱患,目前針對安全框架已有相當多的研究,云計算的安全問題也已經是一大熱門話題[2];另一方面是來自內部威脅與用戶信任的問題,目前阻礙網盤和云存儲等服務的重要制約因素就是用戶對服務提供商的信任問題[3],云存儲的外包存儲服務模式導致了特權用戶的存在,后者具有非授權訪問用戶數據的能力,易導致數據信息和隱私泄露等內部攻擊問題[4],內部管理員或者特權用戶的誤操作、惡意企圖都將造成用戶數據發生泄露,而系統本身的一些操作行為也會侵犯用戶的隱私。用戶對網絡硬盤和云存儲之類的存儲服務不夠信任,同時存儲服務提供商也無法證明自己絕對的安全可信,所以用戶的敏感數據和文件不敢隨便上傳到服務端。為了實現數據的保護,對數據進行加密是最基本的方法,但一般的加密處理方式往往較為簡單,而且缺乏完整的密鑰管理體系,不涉及較安全的加密算法。
目前,在數據加密方面已有框架安全、加密算法等諸多研究[5],但在客戶端進行加密的研究相對較少。在客戶端進行加密涉及很多問題,考慮到服務使用者大部分是非專業人員,因此在加密過程和密鑰管理上存在較多問題,本文提出了一個用戶自主保護數據的安全方案,以USBKEY為密鑰載體,建立完整的密鑰管理體系。該體系將前序安全體系中的“服務層面提供安全”細化到“實體掌握安全”,以USBKEY為基礎,實現安全快捷的加解密服務。
由于網絡硬盤以及云存儲等服務功能越來越強大,可以實現檢索、運算等功能。在本方案中,主要考慮存儲和備份服務,不考慮其他(如計算、檢索等)相關功能。數據僅在客戶端以明文存在。
數據加密是對數據進行保護的基礎,在用戶使用存儲服務的過程中,在哪一個環節對數據進行加密尤為重要。目前很多存儲服務提供商宣稱對存儲空間進行加密,使數據能夠在服務提供商端實現密文存儲,但依然存在安全風險,一方面數據在傳輸的過程中是明文存在,容易被截獲[6];另一方面,用戶對自己的數據安全仍然無法感知[7],因此數據的加密還必須由用戶完成。由于用戶對服務提供商存在信任問題,若要以用戶可感知的方法解決數據保護問題,則必須由用戶完成數據加密工作,同時,為了抵御服務提供商內部的惡意攻擊,推薦方式為僅使用網絡硬盤和云存儲所提供的存儲服務,而加密的細節對存儲服務提供商不可見,這就要求在用戶端具有一套自主的數據加解密體系,同時又能達到對存儲服務提供商相對獨立的目的[8-9]。
USBKEY是一種USB 接口的硬件設備,內置了CPU、存儲器、芯片操作系統(COS,chip operating system),具有安全數據存儲空間,可以存儲數字證書、密鑰等秘密數據,對該存儲空間的讀寫操作必須通過程序實現,用戶無法直接讀取,其中的用戶密鑰是不可導出的,這就杜絕了復制用戶數字證書或身份信息的可能性,USB-KEY 可以實現加解密和簽名的各種算法,加解密運算在USBKEY 內進行,保證了密鑰不會出現在計算機內存中,從而杜絕了用戶密鑰被黑客截取的可能性[8]。利用USBKEY 內置的密碼算法還能夠對用戶身份的認證,每一個USBKEY 都具有硬件PIN碼保護,PIN 碼和硬件構成了用戶使用USBKEY的2個必要因素,用戶只有同時取得了USBKEY和用戶PIN 碼才可以登錄系統。如果PIN碼泄露,只要用戶仍持有USBKEY,用戶的身份就不會被仿冒;如果用戶的USBKEY 遺失,但由于不知道用戶PIN 碼,也無法仿冒用戶的合法身份[10]。
要實現用戶自主數據加密且相對存儲服務提供商獨立,需要面對的主要問題是:加密算法的實現和密鑰的管理。加密操作必須采用相應的軟件來實現,而密鑰管理則更為復雜。從以上USBKEY的特點分析來看,USBKEY非常適合作為加解密與密鑰管理的載體[11-12]。
用戶對敏感數據先加密后上傳,由于上傳的數據是密文,能夠同時抵抗針對服務商的外部攻擊和內部攻擊,當用戶自行加密數據時,最大問題就是加密軟件和密鑰管理。采用USBKEY的形式能保證用戶的密鑰安全,并且使用戶能方便地在多種環境下實現隨身加解密。
用戶個人掌控安全,意味著僅用戶能獲得最終加解密文件的密鑰,用戶也能夠獨自掌握USBKEY的PIN碼。在本方案中,最終加解密文件的密鑰由USBKEY內置密鑰和PIN碼生成的密鑰組合而成,最終密鑰只在運行時臨時生成。首先,用戶PIN碼生成一個密鑰,并作為最終密鑰的一部分,使密鑰完全由用戶掌控,即使USBKEY內密鑰意外泄露,也無法得到最終密鑰,管理服務端也無法獲得最終密鑰,使安全完全由用戶自己掌握,用戶信息的隱私得到完全保護;其次,USBKEY內部有標準密鑰,該密鑰存放在安全存儲區域中,只作為加解密密鑰的一部分,內置密鑰進一步加強了密鑰的安全性,也解決了PIN碼產生的密鑰空間過小的問題。
在本方案中,USBKEY提供基本PIN碼管理、認證等功能,并在此基礎上擴充了PIN碼的功能,以及對歷史PIN碼的管理。
為防止USBKEY被盜用,每次使用USBKEY時需驗證用戶身份,驗證方式采用PIN碼,驗證通過后方可使用USBKEY的功能,具體認證流程圖1所示。

圖1 身份認證流程
為了達到個人掌控安全的目的,最終的加解密密鑰由USBKEY內置的標準密鑰和用戶口令共同決定。其中,PIN碼生成的密鑰是實現用戶掌控安全、保護用戶信息隱私的重要手段,內置密鑰則為了達到增大密鑰空間、加大密鑰強度。密鑰生成流程如圖2所示。

圖2 密鑰生成流程
3.4.1 PIN碼與密鑰更新
為了安全使用USBKEY,用戶可隨時修改USBKEY的使用PIN碼,同時,修改PIN碼也會同步更新加解密密鑰,修改操作全部在客戶端進行,認證PIN碼后才能進行修改,修改流程與修改口令類似。
3.4.2 PIN碼標識數
當用戶修改PIN碼時,加解密文件的密鑰也會改變,用戶能對之前所有文檔進行解密操作,就需要對PIN碼進行管理。為了實現對PIN碼的管理,會對每個PIN碼定義一個標識數,標識數的規則如下。
1) PIN碼的標識數產生于該PIN碼被修改時,值為修改時系統時間距離1970年1月1日 0:0:0 的秒數。
2) PIN碼被修改后,會被新PIN碼所產生的密鑰加密,該PIN碼的標識數和密文以XML格式存儲于USBKEY安全區域的PIN碼維護文件中。
3) 加密文件時,將在文件的密文文件的額外信息區域加入時間數信息,即當前加密時間距離1970年1月1日 0:0:0 的秒數。
4) 解密時,根據密文文件時間數信息和PIN碼維護文件確定加密該文件的PIN碼,取得該PIN碼密文后解密并用該PIN碼解密文件(用PIN碼加密文件意為用該PIN碼生成的密鑰和內置密鑰組合而成的密鑰加密,解密同)。
5) 修改PIN碼時,需用修改前的PIN碼解密所有PIN碼,并用新PIN碼加密所有歷史PIN碼并重新存儲,即每次修改PIN碼都需重新更新整個文件,相應的標識數保持不變。
3.4.3 PIN碼管理
PIN碼是由標識數管理,對歷史PIN碼管理規則如下。
1) PIN碼維護文件存放在USBKEY安全區域指定目錄下,客戶端通過身份認證后才能進行操作。
2) PIN碼維護文件以XML格式存儲,每個PIN碼包含兩個字段:標識數與密文。
3) 每次修改PIN碼時:首先用修改后的PIN碼Pnew加密修改前的PIN碼Pold,得到密文*P,同時生成標識數NUM;再將NUM和*P組合成PIN碼維護文件規定的格式,并添加未修改完成標記,將以上內容添加進PIN碼維護文件中;調用PIN碼管理模塊修改PIN碼(此3步完成后才開始進行之前的PIN碼維護);取出PIN碼維護文件中不帶未完成屬性(剛加入的節點)的PIN碼節點的密文,用Pold解密、Pnew加密,并更新對應密文節點的內容;更新完畢后,刪除未修改完成屬性,修改操作全部結束。修改PIN碼的流程如圖3所示。

圖3 PIN碼修改流程
需要說明的一點是,由于PIN的目標是用戶個人掌握安全,所以PIN碼僅用戶個人知曉。所以針對PIN碼僅提供修改功能,不提供管理功能。一旦PIN丟失,無法做到密碼找回等管理操作。
輸入PIN碼、內置密鑰,輸出為64位DES密鑰,生成過程如下。
1) 初始化Hash函數,將作為Hash函數的輸入。
2) 取Hash結果并計算校驗碼,湊成64位DES密鑰。
3) 計算與異或結果。
4) 根據與的長度,以作為輸入,調用對應的密鑰生成算法得到組合后的密鑰。
在整個安全防護方案中,加解密分為用戶端與服務端兩部分。其中,用戶端由USBKEY組成,負責用戶數據的加解密以及集成網盤接口,服務端則負責密鑰的管理。
USBKEY硬件提供一定的存儲空間和加解密功能,硬件部分對軟件提供加解密調用接口,接收上層軟件傳來的數據進行加解密操作并返回結果數據;軟件的核心部分是文件加解密包,負責讀取文件調用USBKEY進行加解密并輸出密/明文文件至指定目錄,整個方案中該部分與硬件進行交互并對外提供接口,供調用實現文件的加解密操作。
客戶端共實現了2種密碼算法:DES和RC4,其中,USBKEY加密采用的是DES加密算法,快速加密采用RC4算法,2種算法的密鑰存儲于USBKEY內的保密區域,未授權者無法讀取。數據源經過分塊后根據選擇的操作類型(USBKEY內部加密或快速加密)進行相應的加密操作,2種方式的區別如下。

圖4 加密流程
1) USBKEY內部加密的計算由USBKEY內的密碼芯片完成,速度較慢。
2) 快速加密的計算由客戶端完成,但密鑰需從USBKEY讀取出來,具體流程如圖4所示。
由于存在2種加密算法,解密時要選擇相應的解密方式,具體在加密的過程中將加密方式存入密文,客戶端根據標記字段選擇相應的加密方式。由于采用對稱算法,因此密鑰的處理方式與加密相同,快速解密同樣需要讀出密鑰,整體流程如圖5所示。

圖5 解密流程
密鑰管理由密鑰庫實現,密鑰庫主要用于管理USBKEY中的密鑰,具體是有一個獨立的非聯網數據庫以及相關操作程序組成。密鑰由非聯網服務器的專門程序生成,生成后寫入USBKEY,每個USBKEY會寫入1個DES密鑰和1個RC4密鑰,密鑰寫入USBKEY后,會在密鑰庫中進行備份,備份數據分組含密鑰數據備份與密鑰文件備份,所有備份數據均為密文數據。
密鑰數據庫中備份表包含以下字段。
1) USBKEY_ID:對應每個USBKEY的唯一DI。
2) USBKEY_KEY_DES:DES加密所用密鑰數據(密文)。
3) USBKEY_KEY_RC4:RC4加密所用密鑰(密文)。
4) USBKEY_PATH_DES:DES密鑰密文文件存放目錄。
5) USBKEY_PATH_RC4:RC4密鑰密文文件存放目錄。
如果用戶USBKEY遺失,必須生成相同密鑰的USBKEY才能確保之前的加密文件能夠正常解密,具體根據遺失USBKEY的ID查找對應的密鑰文件,解密后寫入到新的USBKEY中。
軟件共分為網絡版與本地版共2個版本,其中,本地版主要實現數據的加解密,密鑰由USBKEY內部密鑰和PIN碼形成,僅有文件加解密的基本功能,不通過網絡交換數據;網絡版則在本地版的基礎上增加了存儲功能,集成了網絡硬盤和云存儲所提供的接口[13]。
目前,盜取用戶信息的軟件主要通過預留后門、植入代碼、搜集用戶信息或未經允許上傳私人信息等方式實現。在加解密軟件版本中,本地版不與外界交流任何信息,而網絡版則調用網盤接口,數據分組發送地址為網絡硬盤或云存儲服務商的地址,可以應對以上常見的安全威脅。
通過測試USBKEY內部加密和USBKEY外加密速度,發現2種加密耗時還有較大差別,具體如表1所示。

表1 USBKEY內部加密和USBKEY外加密耗時對比
本地版無網絡數據交換,對于網絡版能夠實現對客戶端提交數據的發送地址進行監控,具體如圖6所示。

圖6 客戶端網絡連接
網絡硬盤以及云存儲等服務為用戶提供了諸多便利,但其自身存在的安全問題在一定程度上阻礙了發展,本文提出了一種從客戶端著手、以USBKEY作為載體,針對用戶數據進行加解密的安全防護方案。該方案改變了以往由服務商提供安全的傳統模式,既適用于本地用戶的軟件與數據隱私保護,也針對網絡存儲系統進行數據安全保護,并監控軟件運行過程,及時發現異常操作行為,實現用戶自身掌控數據安全,以用戶可感知的方法解決了數據與軟件保護的安全挑戰,具有一定的推廣應用價值。
[1] 劉曉建, 王力生, 廖新考. 基于CP-ABE和XACML多權限安全云存儲訪問控制方案[J]. 計算機科學, 2016, 43(3): 118-121.
LIU X J, WANG L S, LIAO X K. Multiple permissions secure access control scheme combining CP-ABE and XACML in cloud storage[J]. Computer Science,2016,43(3):118-121.
[2] 吳吉義, 李文娟, 黃劍平, 等. 移動互聯網研究綜述[J].中國科學:信息科學, 2015, 45(1): 45-69.
WU J Y, LI W J, HUANG J P, et al. Key techniques for mobile Internet: a survey[J]. Scientia Sinica Informationis, 2015, 45(1): 45-69.
[3] 牛德華, 馬建峰, 馬卓, 等. 基于屬性的安全增強云存儲訪問控制方案[J]. 通信學報, 2013,34(S1):276-284.
NIU D H, MA J F, MA Z, et al. Enhanced cloud storage access control scheme based on attrib-ute[J].2013,34(S1):276-284.
[4] 余江,萬勁波,張越.推動中國云計算技術與產業創新發展的戰略思考[J].中國科學院院刊,2015,30(2):181-186.
YU J, WAN J B, ZHANG Y. Strategy of promoting innovation in China’s cloud computing industry[J].Bulletin of Chinese Academy of Sciences,2015,30(2):181-186.
[5] 劉帆, 楊明. 一種用于云存儲的密文策略屬性基加密方案[J].計算機應用研究, 2012, 29(4): 1452-1456.
LIU F, YANG M. Ciphertext policy attribute based encryption scheme for cloud storage[J]. Application Research of Comput-ers, 2012, 29(4): 1452-1456.
[6] 王帥, 常朝穩, 魏彥芬. 基于云計算的USB Key身份認證方案[J]. 計算機應用研究,2014,31(7):2130-2134.
WANG S,CHANG C W,WEI Y F. USB key authentica-tion scheme based on cloud computing[J]. Application Research of Computers,2014,31(7):2130-2134.
[7] 馮登國, 秦宇, 汪丹, 等. 可信計算技術研究[J]. 計算機研究與發展, 2011, 48(8): 1332-1349.
FENG D G, QIN Y, WANG D, et al. Research on trusted computing technology[J]. Journal of Computer Research and Development, 2011,48(8): 1332-1349.
[8] 秦中元, 胡愛群. 可信計算系統及其研究現狀[J]. 計算機工程, 2006, 32(14): 111-113.
QIN Z Y, HU A Q. Trusted copmuting system and its currect computer engineering[J]. Computer Engineering, 2006, 32(14): 111-113.
[9] 張煥國, 陳璐, 張立強.可信網絡連接研究[J].計算機學報, 2010, 33(4): 706-717.
ZHANG H G, CHEN L, ZHANG L Q. Research on trusted network connection[J]. Chinese Journal of Computers, 2010, 33(4): 706-717.
[10] 于江, 蘇錦海, 張永福. 基于USB-Key的強口令認證方案設計與分析. 計算機應用,2011,31(2) :511-513.
YU J, SU J H, ZHANG Y F. Design and analysis of USB-Key based strong password authentication scheme[J].Journal of Computer Applications,2011,31(2) :511-513.
[11] Trusted Computing Group. TCG trusted network connect TNC architecture for interoperability[S]. 2009.
[12] Cisco. Cisco Network Admission Control[R]. 2003.
[13] Microsoft. Network Access Pretection Platform Architec-ture[R]. 2004.
Research and realization on USBKEY based network storage user data protection
YU Xiao1, TIAN Li1, LIU Zhe2.3, WANG Jie1
1.State Grid Hubei Electric Power Research Institute, Wuhan 430077, China 2. School of Cyber Science and Engineering, Wuhan University, Wuhan 430072, China 3. Key Laboratory of Aerospace Information Security and Trusted Computing Ministry of Education, Wuhan University, Wuhan 430072, China
Network storage services such as network hard disk and cloud storage are widely used. However, due to the relative flexibility of network hard disk and cloud storage, it has to face many security risks. Based on the data encryption protection mechanism of USBKEY, data encryption and storage service, the key is stored in USBKEY, will eventually “service level provide security” elaboration to the "real master security" to achieve the purpose of user control of data security.
USBKEY, cloud storage, online storage, data privacy protection
TP393
A
10.11959/j.issn.2096-109x.2018018
2018-04-25;
2018-05-20
劉喆,liangshijie@sina.com
國家自然科學基金資助項目(No.61772384)
The National Natural Science Foundation of China (No.61772384)
喻瀟(1984-),男,湖北紅安人,國網湖北省電力有限公司電力科學研究院工程師,主要研究方向為信息安全。

田里(1984-),男,湖北十堰人,國網湖北省電力有限公司電力科學研究院工程師,主要研究方向為信息安全。
劉喆(1989-),男,山東青島人,武漢大學博士生,主要研究方向為信息安全。

王捷(1987-),男,湖北黃岡人,博士,國網湖北省電力有限公司電力科學研究院工程師,主要研究方向為信息安全。