與應用透明的密文搜索方法、網關裝置、網關設備和系統與流程
2023-10-04 23:48:44
本發明涉及數據處理技術領域,特別是指一種應用透明的密文搜索方法、網關裝置、網關設備和系統。
背景技術:
為了方便用戶,降低企業成本,越來越多的個人或者企業依賴各種雲應用服務存儲或分享大量的私有數據,典型的應用包括郵件應用、雲存儲應用等。然而,這些應用在給用戶帶來便利的同時,也存在一定的安全風險。雖然可以採取加密方式對用戶數據進行保護,然而如果在用戶終端對用戶數據進行加密,則只能安裝對應的客戶端提供加密,或為每個應用服務開發特定的客戶端,造成用戶終端軟體繁雜,操作時需要消耗較高的終端資料,加密對用戶不透明,不能為不同應用服務提供差異化的加密。另一方面,對加密數據的檢索是一項非常困難的任務。用戶隱私數據加密上傳到應用服務後,應用服務原有的搜索功能變得無法使用。隨著數據存儲量的增大,檢索數據功能是很多應用服務的基本功能之一。現有技術中,對密文搜索的研究普遍存在功能缺失、搜索效率低下或安全性較差等問題,甚至需要改變應用程式和用戶使用習慣,在實際場景中很難執行。因此,與應用透明的密文搜索技術是亟待解決的問題。
技術實現要素:
有鑑於此,本發明的目的在於提出一種應用透明的密文搜索方法、網關裝置、網關設備和系統,能夠無縫適配各種雲應用服務,不需要修改雲應用程式接口及改變用戶使用習慣,在提供用戶隱私保護的同時,保證了密文數據搜索的功能性、效率性和安全性。
第一方面,本發明提供了一種與應用透明的密文搜索方法,包括:
接收用戶端發送的應用數據上傳請求;
解析所述應用數據上傳請求得到用戶輸入內容;對所述用戶輸入內容加密得到密文;從所述用戶輸入內容中提取得到關鍵字序列,建立所述關鍵字序列中的各關鍵字與多個不同的索引字符串之間的映射關係;將全部所述索引字符串添加到所述密文中,並將所述密文上傳至應用服務端;
接收所述用戶端發送的搜索請求;
解析所述搜索請求得到用戶搜索內容;從所述用戶搜索內容中提取得到關鍵字,根據所述映射關係選取所述關鍵字對應的多個索引字符串中的任意一個作為檢索值,並將所述檢索值發送至所述應用服務端;
接收所述應用服務端返回的根據所述檢索值檢索到的密文;將所述密文解密並去除其附帶的全部所述索引字符串得到明文結果,將所述明文結果返回至所述用戶端。
在一些實施方式中,所述對所述用戶輸入內容加密得到密文包括:
根據預設的加密規則,獲取用戶輸入內容對應的加密密鑰組;所述加密密鑰組包括用於對所述用戶輸入內容的一個或多個內容數據進行加密的一個或多個密鑰;
根據所述加密規則,使用所述加密密鑰組對所述用戶輸入內容中的一個或多個內容數據進行加密得到所述密文。
在一些實施方式中,所述將全部所述索引字符串添加到所述密文中包括:
將全部所述索引字符串隨機排序後添加到所述密文中;和/或,
生成若干與所述映射關係無關的隨機字符串,並將所述隨機字符串添加到所述密文中。
在一些實施方式中,所述從所述用戶搜索內容中提取得到關鍵字包括:
若無法提取得到關鍵字,則利用模糊搜索算法獲取所述用戶搜索內容的近似內容,並根據所述近似內容匹配得到所述關鍵字。
第二方面,本發明提供了一種網關裝置,包括:
第一接收模塊,用於接收用戶端發送的應用數據上傳請求;
第一執行模塊,用於解析所述應用數據上傳請求得到用戶輸入內容;對所述用戶輸入內容加密得到密文;從所述用戶輸入內容中提取得到關鍵字序列,建立所述關鍵字序列中的各關鍵字與多個不同的索引字符串之間的映射關係;將全部所述索引字符串添加到所述密文中,並將所述密文上傳至應用服務端;
第二接收模塊,用於接收所述用戶端發送的搜索請求;
第二執行模塊,用於解析所述搜索請求得到用戶搜索內容;從所述用戶搜索內容中提取得到關鍵字,根據所述映射關係選取所述關鍵字對應的多個索引字符串中的任意一個作為檢索值,並將所述檢索值發送至所述應用服務端;
第三執行模塊,用於接收所述應用服務端返回的根據所述檢索值檢索到的密文;將所述密文解密並去除其附帶的全部所述索引字符串得到明文結果,將所述明文結果返回至所述用戶端。
在一些實施方式中,所述第一執行模塊還用於:根據預設的加密規則,獲取用戶輸入內容對應的加密密鑰組;所述加密密鑰組包括用於對所述用戶輸入內容的一個或多個內容數據進行加密的一個或多個密鑰;根據所述加密規則,使用所述加密密鑰組對所述用戶輸入內容中的一個或多個內容數據進行加密得到所述密文。
在一些實施方式中,所述第一執行模塊還用於:將全部所述索引字符串隨機排序後添加到所述密文中;和/或,生成若干與所述映射關係無關的隨機字符串,並將所述隨機字符串添加到所述密文中。
在一些實施方式中,所述第二執行模塊還用於:若無法提取得到關鍵字,則利用模糊搜索算法獲取所述用戶搜索內容的近似內容,並根據所述近似內容匹配得到所述關鍵字。
第三方面,本發明提供了一種網關設備,包括存儲器、處理器及存儲在存儲器上並可在處理器上運行的電腦程式,所述處理器執行所述程序時實現如上述任意一項所述的方法。
第四方面,本發明提供了一種與應用透明的密文搜索系統,包括用戶端、應用服務端;所述系統還包括:
如上述任意一項所述的網關裝置;或,如上所述的網關設備。
從上面所述可以看出,本發明提供的應用透明的密文搜索方法、網關裝置、網關設備和系統,無須在用戶終端配置專門的加密客戶端或裝置,降低了用戶終端的軟硬體要求,無需更改應用程式,無需應用服務提供商配合,不改變用戶使用習慣,實現了用戶數據加密和密文搜索對用戶的透明化,對各類應用服務均可提供差異性加密。在提供用戶隱私保護的同時,保證了密文數據搜索的功能性、效率性和安全性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例的與應用透明的密文搜索方法流程圖;
圖2為本發明實施例的網關裝置結構示意圖;
圖3為本發明實施例的與應用透明的密文搜索系統結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,並參照附圖,對本發明進一步詳細說明。
需要說明的是,本發明實施例中所有使用「第一」和「第二」的表述均是為了區分兩個相同名稱非相同的實體或者非相同的參量,可見「第一」「第二」僅為了表述的方便,不應理解為對本發明實施例的限定,後續實施例對此不再一一說明。
本發明實施例提供了一種與應用透明的密文搜索方法。該方法應用於用戶側的網關設備中,其可以是單一的路由裝置、安全網關或網關伺服器執行,也可以由多個具有數據匯聚和路由功能的組合組件。
參考圖1,為本發明實施例的與應用透明的密文搜索方法流程圖。
所述與應用透明的密文搜索方法,包括以下步驟:
步驟101、接收用戶端發送的應用數據上傳請求。
在本步驟中,用戶發送的應用數據上傳請求對應於某種應用服務。該應用服務可以為雲存儲服務/應用、郵件服務等,應用數據上傳請求可以是雲存儲文件的上傳、web郵件的發送上傳等。具體的,當用戶將數據請求上傳到應用服務進行存儲時,可通過應用服務的專用客戶端或瀏覽器進行上傳。例如,用戶可以通過用戶終端上的通用瀏覽器、郵件客戶端等通用客戶端進行應用數據的上傳。
步驟102、解析所述應用數據上傳請求得到用戶輸入內容;對所述用戶輸入內容加密得到密文;從所述用戶輸入內容中提取得到關鍵字序列,建立所述關鍵字序列中的各關鍵字與多個不同的索引字符串之間的映射關係;將全部所述索引字符串添加到所述密文中,並將所述密文上傳至應用服務端。
在本步驟中,從用戶輸入內容中提取得到關鍵字序列的過程主要是通過對用戶輸入內容分詞處理;分詞處理的主要步驟包括:詞彙分割、詞彙過濾(去除停留詞)、詞幹提取(形態還原)、大寫轉為小寫、結果輸出。
對用戶輸入內容處理得到關鍵字序列後,對於每一個關鍵字,如果已有多個索引字符串與之對應,則獲取對應的多個索引字符串;若沒有索引字符串與之對應,則使用索引字符串生成算法生成多個索引字符串與關鍵字對應,並記錄到數據結構中。最終建立關鍵字序列中的各關鍵字與多個不同的索引字符串之間的映射關係。
具體的,在建立關鍵字序列中的各關鍵字與多個不同的索引字符串之間的映射關係時,可使用不同的機制實現。如使用多個不同的確定性加密函數和編碼函數生成多個索引字符串;或使用某一確定性加密函數將關鍵字映射成固定位數的某一字符串,然後映射到某一布隆過濾器(bloomfilter)中使多個位置置1,處理完所有關鍵字後,使用確定性映射函數把布隆過濾器(bloomfilter)中所有置1的位置映射為不同的索引字符串。
對用戶輸入內容加密得到密文的過程,即使用預設的加密算法對於用戶輸入內容進行加密。具體的,加密算法包括加密密鑰獲取和數據加密,加密密鑰獲取用於根據預先為所述應用服務設置的加密規則,獲取用於所述應用服務的一個加密密鑰組,所述加密密鑰組包括用於對所述用戶輸入內容中的一個或多個內容數據進行加密的一個或多個密鑰;數據加密用於根據所述加密規則,使用所述加密密鑰組對所述用戶輸入內容中的一個或多個內容數據進行加密。
進一步的,加密完成得到密文後,需要在所述密文後面附上各關鍵字對應的不同的多個索引字符串。索引字符串可添加在密文數據前面或後面。另外,為進一步提高安全性,可對各關鍵字的索引字符串打亂順序,或額外添加其他無關隨機字符串並附在密文前面或後面,用來對抗統計攻擊。最後將密文和索引字符串一起發送給提供所述應用服務的應用服務端。
步驟103、接收所述用戶端發送的搜索請求。
本步驟中,接收用戶端發送的搜索請求。搜索請求的具體實現方式與步驟101中的應用數據上傳請求類似,在此不再贅述。
步驟104、解析所述搜索請求得到用戶搜索內容;從所述用戶搜索內容中提取得到關鍵字,根據所述映射關係選取所述關鍵字對應的多個索引字符串中的任意一個作為檢索值,並將所述檢索值發送至所述應用服務端。
本步驟中,從用戶搜索內容中提取得到關鍵字時,會對搜索內容進行正規化處理,正規化處理的主要步驟包括:詞彙分割、詞彙過濾(去除停留詞)、詞幹提取(形態還原)、大寫轉為小寫、結果輸出。
若無法直接從用戶搜索內容中提取得到關鍵字,則可以利用模糊搜索算法獲取所述用戶搜索內容的近似內容,然後使用該近似內容與前述步驟中得到的關鍵字進行匹配,以得到最終使用的關鍵字。其中,模糊搜索算法可以包括:搜索內容糾錯,搜索內容改寫,同義詞,可找到與用戶搜索內容最相關的關鍵字,從而找到最相關的信息。
另外,如果用戶請求的應用服務支持或查詢,則可支持多關鍵字搜索,即可同時搜索多關鍵字對應的多個索引字符串完成搜索功能。另外加密數據時也可附加關鍵字對應的多個索引字符串中的任意一個,搜索時則需要使用或查詢搜索關鍵字對應的所有索引字符串。
步驟105、接收所述應用服務端返回的根據所述檢索值檢索到的密文;將所述密文解密並去除其附帶的全部所述索引字符串得到明文結果,將所述明文結果返回至所述用戶端。
應用服務端接收到檢索值後,會基於自身的搜索機制進行搜索,檢索到存儲在應用服務端中的、與檢索值對應的密文,然後將該檢索到的密文返回。本步驟中,接收到密文後,首先進行解密。具體的,與前述加密算法對應的解密算法對密文進行解析;根據所述加密規則,使用解密密鑰組對密文進行解密。然後並去除其附帶的全部所述索引字符串,即得到明文結果。最後,將明文結果輸出到用戶終端。
由上述實施例可見,本發明實施例的與應用透明的密文搜索方法,無須在用戶終端配置專門的加密客戶端或裝置,降低了用戶終端的軟硬體要求,無需更改應用程式,無需應用服務提供商配合,不改變用戶使用習慣,實現了用戶數據加密和密文搜索對用戶的透明化,對各類應用服務均可提供差異性加密。在提供用戶隱私保護的同時,保證了密文數據搜索的功能性、效率性和安全性。
另一方面,本發明實施例還提供了一種網關裝置。參考圖2,為本發明實施例的網關裝置結構示意圖。
所述網關裝置,包括:
第一接收模塊201,用於接收用戶端發送的應用數據上傳請求;
第一執行模塊202,用於解析所述應用數據上傳請求得到用戶輸入內容;對所述用戶輸入內容加密得到密文;從所述用戶輸入內容中提取得到關鍵字序列,建立所述關鍵字序列中的各關鍵字與多個不同的索引字符串之間的映射關係;將全部所述索引字符串添加到所述密文中,並將所述密文上傳至應用服務端;
第二接收模塊203,用於接收所述用戶端發送的搜索請求;
第二執行模塊204,用於解析所述搜索請求得到用戶搜索內容;從所述用戶搜索內容中提取得到關鍵字,根據所述映射關係選取所述關鍵字對應的多個索引字符串中的任意一個作為檢索值,並將所述檢索值發送至所述應用服務端;
第三執行模塊205,用於接收所述應用服務端返回的根據所述檢索值檢索到的密文;將所述密文解密並去除其附帶的全部所述索引字符串得到明文結果,將所述明文結果返回至所述用戶端。
在一些實施例中,所述第一執行模塊202還用於:根據預設的加密規則,獲取用戶輸入內容對應的加密密鑰組;所述加密密鑰組包括用於對所述用戶輸入內容的一個或多個內容數據進行加密的一個或多個密鑰;根據所述加密規則,使用所述加密密鑰組對所述用戶輸入內容中的一個或多個內容數據進行加密得到所述密文。
在一些實施例中,所述第一執行模塊202還用於:將全部所述索引字符串隨機排序後添加到所述密文中;和/或,生成若干與所述映射關係無關的隨機字符串,並將所述隨機字符串添加到所述密文中。
在一些實施例中,所述第二執行模塊204還用於:若無法提取得到關鍵字,則利用模糊搜索算法獲取所述用戶搜索內容的近似內容,並根據所述近似內容匹配得到所述關鍵字。
上述實施例的網關裝置用於實現前述實施例中相應的與應用透明的密文搜索方法,並且具有相應的方法實施例的有益效果,在此不再贅述。
又一方面,本發明實施例還提供了一種網關設備。
所述網關設備,包括存儲器、處理器及存儲在存儲器上並可在處理器上運行的電腦程式,所述處理器執行所述程序時實現如上述方法實施例中所述的與應用透明的密文搜索方法。
上述實施例的網關設備用於實現前述實施例中相應的與應用透明的密文搜索方法,並且具有相應的方法實施例的有益效果,在此不再贅述。
最後,本發明實施例還提供了一種與應用透明的密文搜索系統。參考圖3,為本發明實施例的與應用透明的密文搜索系統結構示意圖。
所述與應用透明的密文搜索系統包括:用戶端301、應用服務端303,以及上述實施例中的網關裝置/設備302。
所屬領域的普通技術人員應當理解:以上任何實施例的討論僅為示例性的,並非旨在暗示本公開的範圍(包括權利要求)被限於這些例子;在本發明的思路下,以上實施例或者不同實施例中的技術特徵之間也可以進行組合,步驟可以以任意順序實現,並存在如上所述的本發明的不同方面的許多其它變化,為了簡明它們沒有在細節中提供。
另外,為簡化說明和討論,並且為了不會使本發明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(ic)晶片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發明難以理解,並且這也考慮了以下事實,即關於這些框圖裝置的實施方式的細節是高度取決於將要實施本發明的平臺的(即,這些細節應當完全處於本領域技術人員的理解範圍內)。在闡述了具體細節(例如,電路)以描述本發明的示例性實施例的情況下,對本領域技術人員來說顯而易見的是,可以在沒有這些具體細節的情況下或者這些具體細節有變化的情況下實施本發明。因此,這些描述應被認為是說明性的而不是限制性的。
儘管已經結合了本發明的具體實施例對本發明進行了描述,但是根據前面的描述,這些實施例的很多替換、修改和變型對本領域普通技術人員來說將是顯而易見的。例如,其它存儲器架構(例如,動態ram(dram))可以使用所討論的實施例。
本發明的實施例旨在涵蓋落入所附權利要求的寬泛範圍之內的所有這樣的替換、修改和變型。因此,凡在本發明的精神和原則之內,所做的任何省略、修改、等同替換、改進等,均應包含在本發明的保護範圍之內。