本發明涉及一種存儲加密技術,特別是涉及一種適用于云存儲系統的密鑰更新方法。
背景技術:
隨著云計算技術的日益發展,服務端的存儲安全面臨著巨大的考驗。為了解決存儲安全的問題,數據存儲加密技術得到了廣泛引用,密鑰是存儲加密的核心所在。傳統方法中的密鑰更新后或者需要終端業務,或者更新密鑰后性能嚴重下降并且會使磁盤使用壽命下降。
現有的發明專利中,“云存儲的密鑰更新方法及云數據審計系統的實現方法”專利(專利號為201510192375.7,專利申請日為2015年4月22日)介紹了云存儲的密鑰更新方法:當云用戶需要更新密鑰時,請求CA服務器生成新密鑰,并基于從云服務器下載的文件標簽和數據塊標簽,以及當新舊密鑰生成新文件標簽和數據塊標簽并上傳至云服務器中,用以替換云服務器中對應的舊文件標簽和數據塊標簽。該發明雖能顯著降低密鑰改變而引起的云服務器與云用戶間的通信代價,但數據隱私這方面還有待加強。“面向云存儲加密數據共享的多級權限管理方法”專利(專利號為201310044503.4,專利申請日為2013年1月4日),介紹了利用屬性基加密、訪問控制、權限管理等方法,為云存儲環境下共享密文的訪問及多級權限管理提供一種可靠的方法,該發明具有易于實現、用戶信息保護性強、權限控制力度細,但是其資源占用大?!盎趪a商用密碼算法的云存儲加密系統及其實現方法”專利(專利號為201410751081.9,專利申請日為2014年12月9日),介紹了設計云存儲領域的加密系統,通過在數據傳輸和存儲過程中加入國產商用密碼算法進行數據加密保護,但在實時更新密鑰這一方面還有欠缺。
本發明為密鑰管理,存儲加解密的一部分,針對存儲密鑰更新,提出了一種無需中斷業務,無性能下降的IO路徑優化算法。
技術實現要素:
本發明所要解決的技術問題是提供一種適用于云存儲系統的密鑰更新方法,針對上述現有的技術中的缺陷,本發明主要體現在:實時更新存儲系統的密鑰,且密鑰更新后無需中斷業務,0時間窗;密鑰更新后,讀寫性能不會受到影響;資源占用少。
本發明是通過下述技術方案來解決上述技術問題的:一種適用于云存儲系統的密鑰更新方法,其特征在于,其步驟包括:
密鑰初始化;
密鑰更新;
IO寫流程;
IO讀流程;
優選地,所述密鑰初始化步驟進一步包括:
管理員通過管理端為用戶指定存儲區域;
密鑰服務器對存儲區域按照扇區大小生成位圖;
用戶指定密鑰;
密鑰服務器生成密鑰,并與位圖,及存儲區域一一對應;
優選地,所述密鑰更新步驟進一步包括:
用戶更新密鑰;
密鑰服務器生成新的位圖、新的密鑰,并將新密鑰、新位圖、存儲區域一一對應;
優選地,所述IO寫流程步驟進一步包括:
客戶端發起寫操作;
使用當前密鑰將IO流加密;
將加密后的IO流下發至磁盤;
寫成功后,將該密鑰位圖的相應區域置為1;
遍歷其他位圖,將其他位圖對應的區域位置為0;
調用上層回調函數;
優選地,所述IO讀流程步驟進一步包括:
客戶端發起讀操作;
從磁盤中讀取加密IO流;
遍歷所有位圖,找出所讀扇區對應的密鑰;
使用密鑰分段解密數據;
將解密數據返回給上層應用。
本發明的積極進步效果在于:本發明使密鑰定期更換,有利于數據的保護,為客戶提供了一種更安全的數據保護方式;密鑰更新后,保持業務的連貫性;額外開銷小,提高了性能。
附圖說明
圖1為本發明的密鑰管理及加密系統圖。
圖2為本發明的密鑰位圖流程圖。
圖3為本發明的密鑰更新流程圖。
圖4為本發明的IO寫過程流程圖。
圖5為本發明的IO讀過程流程圖。
具體實施方式
下面結合附圖給出本發明較佳實施例,以詳細說明本發明的技術方案。
如圖1所示,本發明核心思想是密鑰更新后,只針對新的寫操作使用新密鑰,其他沒有寫操作的區域的密鑰不變,由于IO讀寫是以扇區為基本單位,所以我們以位圖的方式表示存儲區域,一位代表一個扇區,一個密鑰分配一個位圖;
本發明包括以下步驟:
密鑰初始化;
密鑰更新;
IO寫流程;
IO讀流程。
圖2是位圖及密鑰存儲的示意圖,位圖以鏈表的方式存儲于密鑰服務器;
管理員通過管理端為用戶指定存儲區域,,密鑰服務器對存儲區域按照扇區大小生成位圖,用戶指定密鑰,密鑰服務器生成密鑰,并與位圖,及存儲區域一一對應。
圖3是密鑰更新流程圖;
步驟301:對新的寫區域發起密鑰更新;
步驟302:用戶指定密鑰,密鑰服務器生成新密鑰,將新密鑰置為當前使用密鑰;
步驟303:根據存儲區域的大小生成位圖;
步驟304:將舊密鑰置為非當前使用密鑰。
圖4是IO寫過程流程圖;
步驟401:客戶端發起寫操作;
步驟402:判斷數據區域是否合法,若不合法,則向上層應用返回寫失敗,若合法,則繼續步驟403;
步驟403:查找當前生效密鑰;
步驟404:使用步驟403中查找到的密鑰將IO流加密;
步驟405:將加密后的IO流下發至磁盤,進行寫操作;
步驟406:判斷寫操作是否成功,若不成功,則向上層應用返回寫失敗,若成功,則繼續步驟407;
步驟407:將該密鑰位圖的相應區域置為1;
步驟408:遍歷其他位圖,將其他位圖對應的區域位置為0;
步驟409:檢查其余密鑰對應位圖是否為全0,若不是,則向上層返回寫入失敗,若是,刪除當前密鑰及位圖后,向上層返回寫入成功;
圖5是IO讀過程流程圖;
步驟501:客戶端發起讀操作;
步驟502:判斷區域是否合法,若不合法,則向上層應用返回讀失敗,若合法,則繼續步驟503;
步驟503:從磁盤中讀取加密IO流;
步驟504:判斷是否讀取成功,若不成功,則向上層應用返回讀失敗,若成功,則繼續步驟505;
步驟505:遍歷所有位圖,找出所讀扇區對應的密鑰;
步驟506:使用密鑰分段解密數據并填充數據段;
步驟507:將解密數據返回給上層應用。
綜上所述,本發明主要體現在:實時更新存儲系統的密鑰,且密鑰更新后無需中斷業務,0時間窗;密鑰更新后,讀寫性能不會受到影響;資源占用少。本發明使密鑰定期更換,有利于數據的保護,為客戶提供了一種更安全的數據保護方式;密鑰更新后,保持業務的連貫性;額外開銷小,提高了性能。
以上所述的具體實施例,對本發明的解決的技術問題、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,并不用于限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。