本發明涉及數據庫和數據安全,具體地涉及一種基于硬件密碼卡的數據存儲加密方法、裝置、介質和產品。
背景技術:
1、隨著各類信息系統和數據中心的快速建設和發展,敏感業務數據的數據量逐漸增加,由此帶來的數據存儲的安全問題也越來越突出。相應地,數據庫存儲加密技術也不斷發展,現有的數據庫存儲加密主要通過加密軟件進行,并且加密密鑰通過云服務或者本地文件系統進行管理。
2、由于軟件系統的加密效率低,并且加密密鑰容易被不當獲取,因此,難以滿足數據安全存儲的要求。
技術實現思路
1、鑒于上述問題,本發明提供了基于硬件密碼卡的數據存儲加密方法、裝置、介質和產品。
2、根據本發明的第一個方面,提供了一種基于硬件密碼卡的數據存儲加密方法,該方法包括:響應于用戶的數據存儲請求,從數據存儲請求中確定待存儲數據和第一目標數據表;從數據庫表級存儲空間中獲取與第一目標數據表相對應的加密開關和用于加密待存儲數據的加密算法;在加密開關為開啟狀態的情況下,從與第一目標數據表相關的表加密數據中獲取加密密鑰在硬件密碼卡中的存儲位置信息;利用硬件密碼卡基于存儲位置信息,獲取加密密鑰;利用硬件密碼卡基于加密算法、加密密鑰和加密隨機值對待存儲數據進行加密操作,得到加密數據;對加密數據和加密密鑰的存儲位置信息進行重構,得到存儲數據。
3、待存儲數據為明文數據,第一目標數據表為待存儲數據的待存儲空間。加密算法與第一目標數據表存在映射關系。
4、根據本發明的實施例,從與第一目標數據表相關的表加密數據中獲取加密密鑰在硬件密碼卡的存儲位置信息,包括:從預定存儲空間中確定與第一目標數據表相關的表加密數據;對表加密數據按照預設解析格式進行解析,得到表加密元素集;從表加密元素集中確定加密密鑰在硬件密碼卡中的存儲位置信息。
5、根據本發明的實施例,該方法還包括:在創建第一目標數據表之后,確定第一目標數據表的加密算法;將加密算法和第一目標數據表的基本信息輸入至密碼卡,生成第一目標數據表的加密密鑰,并將加密密鑰存儲至硬件密碼卡中,得到存儲位置信息;對第一目標數據表的基本信息和第一目標數據表的加密密鑰的存儲位置信息進行重構,得到與第一目標數據表相關的表加密數據。
6、待存儲數據的數量為多個。
7、根據本發明的實施例,該方法還包括:在待存儲數據的數量滿足預設數量閾值時,依次將多個存儲數據落盤至用于存儲第一目標數據表的磁盤。
8、根據本發明的實施例,該方法還包括:在數據表的加密算法與第一目標數據表的加密算法相同的情況下,將第一目標數據表的加密密鑰的存儲位置信息確定為數據表的加密密鑰的存儲位置信息;對數據表的基本信息和第一目標數據表的加密密鑰的存儲位置信息進行重構,得到數據表的表加密數據。
9、數據表用于存儲其他待存儲數據。
10、根據本發明的實施例,將加密算法和第一目標數據表的基本信息輸入至硬件密碼卡,生成第一目標數據表的加密密鑰,并將加密密鑰存儲至硬件密碼卡中,得到存儲位置信息包括:基于加密算法、第一目標數據表的基本信息和表征將加密密鑰存儲至硬件密碼卡中的標識信息,利用硬件密碼卡生成加密密鑰,并通過硬件密碼卡的加密密鑰生成接口獲取加密密鑰的存儲位置信息。
11、根據本發明的實施例,該方法還包括:響應于用戶的數據查詢請求,從數據查詢請求中確定待查詢數據的數據標識和第二目標數據表;基于待查詢數據的數據標識,從第二目標數據表中獲取待查詢數據;從待查詢數據中提取解密密鑰的存儲位置信息、密文數據和解密隨機值;利用硬件密碼卡基于解密密鑰的存儲位置信息,獲取解密密鑰;利用硬件密碼卡基于解密算法、解密隨機值和解密密鑰對存儲數據進行解密操作,得到第二目標數據。
12、根據本發明的實施例,第二目標數據表為待查詢數據的存儲空間。
13、根據本發明的實施例,解密密鑰的存儲位置信息與加密密鑰的存儲位置信息相同,解密隨機值與加密隨機值相同。
14、本發明的第二方面提供了一種基于硬件密碼卡的數據存儲加密裝置,包括:第一確定模塊,用于響應于用戶的數據存儲請求,從數據存儲請求中確定待存儲數據和第一目標數據表。
15、根據本發明的實施例,待存儲數據為明文數據,第一目標數據表為待存儲數據的待存儲空間。
16、第一獲取模塊,用于從數據庫表級存儲空間中獲取與第一目標數據表相對應的加密開關和用于加密待存儲數據的加密算法。
17、加密算法與第一目標數據表存在映射關系。
18、第二獲取模塊,用于在加密開關為開啟狀態的情況下,從與第一目標數據表相關的表加密數據中獲取加密密鑰在硬件密碼卡中的存儲位置信息。
19、第三獲取模塊,用于利用硬件密碼卡基于存儲位置信息,獲取加密密鑰。
20、加密模塊,用于利用硬件密碼卡基于加密算法、加密密鑰和加密隨機值對待存儲數據進行加密操作,得到加密數據。
21、重構模塊,用于對加密數據和加密密鑰的存儲位置信息進行重構,得到存儲數據。
22、本發明的第三方面還提供了一種計算機可讀存儲介質,其上存儲有計算機程序或指令,上述計算機程序或指令被處理器執行時實現上述方法的步驟。
23、本發明的第四方面還提供了一種計算機程序產品,包括計算機程序或指令,上述計算機程序或指令被處理器執行時實現上述方法的步驟。
24、根據本發明的實施例,從表加密數據中獲取加密密鑰在硬件密碼卡中的存儲位置信息,而非直接獲取加密密鑰,可以提升基于硬件密碼卡的數據存儲加密方法的安全性。通過將存儲位置信息、加密算法、加密隨機值和待存儲數據輸入硬件密碼卡,得到加密數據,與軟件加密系統的加密相比,由于硬件密碼卡無需復雜的部署,可以提升加密效率。通過存儲位置信息得到加密密鑰可以保證加密密鑰不被不當獲取,進而保證存儲數據的安全性。此外,由于存儲數據是密文數據,當存儲數據被不當獲取時也無法獲取真實的數據。通過重構,使得存儲數據中包括加密密鑰的位置,因此,在后續對存儲數據進行更改再存儲時,可以通過存儲數據直接獲取加密密鑰的存儲位置信息,提升處理效率。
1.一種基于硬件密碼卡的數據存儲加密方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述從與所述第一目標數據表相關的表加密數據中獲取加密密鑰在硬件密碼卡的存儲位置信息,包括:
3.根據權利要求1所述的方法,其特征在于,所述方法還包括:
4.根據權利要求1所述的方法,其特征在于,所述待存儲數據的數量為多個,所述方法還包括:
5.根據權利要求3所述的方法,其特征在于,所述方法還包括:
6.根據權利要求3所述的方法,其特征在于,所述將所述加密算法和所述第一目標數據表的基本信息輸入至所述硬件密碼卡,生成所述第一目標數據表的加密密鑰,并將所述加密密鑰存儲至所述硬件密碼卡中,得到存儲位置信息,包括:
7.根據權利要求1~6中任一項所述的方法,其特征在于,所述方法還包括:
8.一種基于硬件密碼卡的數據存儲加密裝置,其特征在于,所述裝置包括:
9.一種計算機可讀存儲介質,其上存儲有計算機程序或指令,其特征在于,所述計算機程序或指令被處理器執行時實現根據權利要求1~7中任一項所述方法的步驟。
10.一種計算機程序產品,包括計算機程序或指令,其特征在于,所述計算機程序或指令被處理器執行時實現根據權利要求1~7中任一項所述方法的步驟。