本發(fā)明屬于信息安全領域,涉及一種數(shù)據庫敏感信息保護技術,具體地說是一種訪問時間自調節(jié)的隱私數(shù)據保護方法和系統(tǒng)。
背景技術:
隨著網絡的迅速發(fā)展,用戶感受到計算機為其帶來的生活的便利后越來越依賴網絡。為了識別個人、記錄個人行為并為其提供針對個人的服務,計算機收集并存儲可以驗證用戶身份的用戶隱私信息。當用戶再次請求自己的隱私信息時便獲得了數(shù)據的無限使用權,即可以在任意時間、訪問任意長時間,導致用戶在身份泄露后,或者用戶的移動設備丟失后,其中的隱私信息也隨之泄露,為用戶的生活帶來困擾。
為了保證在用戶移動設備丟失后,保證用戶的隱私信息安全,相關專家已經做出了很多努力,主要通過驗證用戶的開機密碼,遠程格式化或遠程選擇加密,對于忘記密碼且手機號更換的用戶,無疑會造成糟糕的用戶體驗。為了保證用戶身份泄露后,用戶的隱私信息安全,相關專家也做出了很多努力,據不完全統(tǒng)計,目前關于用戶數(shù)據保護的發(fā)明文獻有以下幾個。
1.基于時間的數(shù)據保護方法及其終端:此發(fā)明通過時間信息對數(shù)據加鎖,從而增強對時間敏感的數(shù)據的保護力度。
2.一種數(shù)據保護方法及服務器:此發(fā)明通過獲取當前數(shù)據與用戶歷史行為產生的關鍵數(shù)據進行連環(huán)關聯(lián),從而對所述當前數(shù)據進行關聯(lián)保護。
以上發(fā)明1中,使用時間對數(shù)據進行加鎖,只有在規(guī)定的時間內、時間段內或者時間后才能訪問數(shù)據,但是這里的規(guī)定時間是人為設定的,不能自動延長,這不能滿足用戶實時訪問敏感信息時可用時間可以自動延長的需求;并且在規(guī)定時間以外用戶不能訪問數(shù)據,不能滿足用戶有時僅需要查看脫敏后的隱私數(shù)據,而不愿意輸入密碼的需求。以上發(fā)明2中,對當前數(shù)據進行關聯(lián)保護,用于對客戶端實時產生的數(shù)據進行保護,在客戶端顯示明文數(shù)據,而不能對客戶端顯示的用戶的敏感數(shù)據進行保護。
技術實現(xiàn)要素:
本發(fā)明的技術任務是針對上述現(xiàn)有技術的不足,為了實現(xiàn)用戶在登錄狀態(tài)下,當在臨時參數(shù)有效期內查看隱私信息時為用戶提供敏感數(shù)據,當超出臨時參數(shù)有效期后為用戶提供脫敏后的數(shù)據,同時為了實現(xiàn)用戶在登錄狀態(tài)下未跳出且未做出任何需要獲取數(shù)據庫數(shù)據的操作時,計時超過臨時參數(shù)有效期后通過自動退出頁面保護用戶的隱私信息,提供了一種訪問時間自調節(jié)的隱私數(shù)據保護方法和系統(tǒng)。
為了實現(xiàn)上述目標,本發(fā)明采取如下技術方案。
1.訪問時間自調節(jié)的隱私數(shù)據保護系統(tǒng),其特征在于:包含客戶端程序(1),服務提供單元(2),臨時存儲單元(3),用戶級別設置單元(4);
客戶端程序(1):用于產生和管理臨時參數(shù);
服務提供單元(2):用于管理臨時參數(shù)列表,存儲脫敏函數(shù),并根據當前時間是否超過臨時參數(shù)有效期和請求類型對查詢結果做出不同的處理;
臨時存儲單元(3):用于存儲臨時參數(shù)列表、用戶級別表和脫敏函數(shù)對應表;
用戶級別設置單元(4):用于系統(tǒng)管理員設置用戶的級別和不同級別的用戶對應的臨時參數(shù)可用時長。
2.所述客戶端程序在用戶登錄隱私頁面時,會產生新臨時參數(shù),并將新臨時參數(shù)、舊臨時參數(shù)和查詢請求組合后提交給服務提供單元,上述新臨時參數(shù)和舊臨時參數(shù)需要滿足唯一性,這里對新臨時參數(shù)和舊臨時參數(shù)的長度、格式均不做限制,設計實現(xiàn)人員可以根據需要自行設計實現(xiàn)。
3.所述客戶端程序獲得查詢結果和臨時參數(shù)有效期,并開始計時,如果用戶在臨時參數(shù)有效期內跳出此頁面,則停止計時,并當用戶再次訪問此隱私頁面時,重新發(fā)起對隱私數(shù)據的查詢請求;否則,若用戶在臨時參數(shù)有效期內沒有進行任何需要獲取數(shù)據庫數(shù)據的操作,則客戶端程序自動退出此頁面,并提示用戶重新登錄,若用戶在臨時參數(shù)有效期內進行了需要獲取數(shù)據庫數(shù)據的操作,則在收到查詢結果和臨時參數(shù)有效期后,重新開始計時。
4.所述臨時存儲單元用于存儲臨時參數(shù)列表,臨時參數(shù)列表中存儲著(臨時參數(shù),臨時參數(shù)有效期)。其中,臨時參數(shù)有效期是服務提供單元根據當前時間和用戶級別表中此用戶對應的臨時參數(shù)可用時長計算得到的。
5.所述臨時存儲單元用于存儲用戶級別表和脫敏函數(shù)對應表,其中用戶級別表中存儲著(用戶登錄信息,用戶級別,臨時參數(shù)可用時長),脫敏函數(shù)對應表中存儲著(請求類型,脫敏函數(shù)名)。
6.訪問時間自調節(jié)的隱私數(shù)據保護方法,其特征在于方法包括四部分:
1)系統(tǒng)初始化:
第一步:訪問時間自調節(jié)的隱私數(shù)據保護方法和系統(tǒng)的系統(tǒng)管理員通過用戶級別設置單元設置用戶的級別及不同級別用戶的臨時參數(shù)可用時長;
第二步:用戶級別設置單元將用戶的級別設置信息保存在用戶級別表中;
2)客戶端程序處理階段:
步驟2-1:用戶登錄客戶端,用戶查看隱私頁面,客戶端程序查看用戶是否已登錄過隱私頁面,如果已經登錄過此隱私頁面,則轉至步驟2-4繼續(xù)執(zhí)行;否則,轉至步驟2-2繼續(xù)執(zhí)行;
步驟2-2:用戶登錄,輸入密碼,如果用戶身份驗證通過則轉至步驟2-3繼續(xù)執(zhí)行;否則需要用戶重新登錄驗證身份;
步驟2-3:客戶端程序產生新臨時參數(shù),轉至步驟2-7繼續(xù)執(zhí)行;
步驟2-4:客戶端程序查看臨時參數(shù)是否過期,如果當前時間在臨時參數(shù)有效期內,則稱臨時參數(shù)未過期轉至步驟2-5繼續(xù)執(zhí)行;否則轉至步驟2-6繼續(xù)執(zhí)行;
步驟2-5:定義當前的臨時參數(shù)為舊臨時參數(shù),并設新臨時參數(shù)為空,并轉至步驟2-7繼續(xù)執(zhí)行;
步驟2-6:提示用戶輸入密碼,若用戶選擇重新輸入密碼并驗證身份成功,則轉至步驟2-3繼續(xù)執(zhí)行;否則轉至步驟2-5繼續(xù)執(zhí)行;
步驟2-7:客戶端程序將新臨時參數(shù)、舊臨時參數(shù)和查詢請求提交給服務器;
3)服務端處理階段
服務提供單元獲得查詢請求(設為q)、新臨時參數(shù)(設為newtemp)、舊臨時參數(shù)(設為oldtemp),并根據查詢請求q獲取請求類型(設為r),然后作出以下操作:
步驟3-1:服務提供單元查看oldtemp是否存在于臨時參數(shù)列表中的第一列中,如果存在則轉至步驟3-2繼續(xù)執(zhí)行;否則轉至步驟3-4繼續(xù)執(zhí)行;
步驟3-2:查看newtemp是否為空,如果為空,則轉至步驟3-3繼續(xù)執(zhí)行;否則,newtemp不為空,則使用newtemp替換oldtemp,并根據當前時間(設為t1),和臨時參數(shù)可用時長(設為t2),計算得到臨時參數(shù)有效期(設為t),即t=t1+t2,更新臨時參數(shù)列表中newtemp對應的臨時參數(shù)有效期為t,轉至步驟3-5繼續(xù)執(zhí)行;
步驟3-3:服務提供單元查看當前時間是否超過臨時參數(shù)列表中oldtemp對應的臨時參數(shù)有效期(設為d),如果超過oldtemp對應的臨時參數(shù)有效期d,則將查詢請求q提交給數(shù)據庫;否則將oldtemp對應的臨時參數(shù)有效期d與臨時參數(shù)可用時長t2相加得到d’,即d’=d+t2,將臨時參數(shù)列表中oldtemp對應的臨時參數(shù)有效期更新為d’,轉至步驟3-5繼續(xù)執(zhí)行;
步驟3-4:服務提供單元查看newtemp是否為空,如果newtemp為空,則提示錯誤;否則,服務提供單元獲得用戶級別,當前時間t1,臨時參數(shù)可用時長(t2),并根據當前時間和臨時參數(shù)可用時長計算得到臨時參數(shù)有效期,設為y,即y=t1+t2,將(臨時參數(shù)newtemp、臨時參數(shù)有效期y)保存在臨時參數(shù)列表中,轉至步驟3-5繼續(xù)執(zhí)行;
步驟3-5:將查詢請求q提交給數(shù)據庫;
步驟3-6:服務提供單元獲得查詢結果(設為data),檢查當前時間是否在用戶臨時參數(shù)對應的臨時參數(shù)有效期內,如果超過臨時參數(shù)有效期,則轉至步驟3-7繼續(xù)執(zhí)行;否則將查詢結果data和臨時參數(shù)有效期返回給客戶端程序;
步驟3-7:服務提供單元根據請求類型r查找r對應的脫敏函數(shù)名(設為f),并使用脫敏函數(shù)f對查詢結果data進行脫敏處理,得到脫敏后的查詢結果data’,即data’=f(data),然后將脫敏后的查詢結果data’和臨時參數(shù)有效期返回客戶端程序;
4)客戶端計時階段
客戶端程序獲得查詢結果和臨時參數(shù)有效期,并開始計時,如果用戶在臨時參數(shù)有效期內跳出此頁面,則停止計時,并當用戶再次訪問此隱私頁面時,重新執(zhí)行第二部分中客戶端程序處理階段的步驟;
否則,若用戶在臨時參數(shù)有效期內沒有進行任何需要獲取數(shù)據庫數(shù)據的操作,則客戶端程序自動退出此頁面,并提示用戶重新登錄,若用戶在臨時參數(shù)有效期內進行了需要獲取數(shù)據庫數(shù)據的操作,則在收到查詢結果和臨時參數(shù)有效期后,重新開始計時。
7.所述服務提供單元在檢測到當前時間超過臨時參數(shù)對應的臨時參數(shù)有效期后,根據請求類型查找對應的脫敏函數(shù)名,并使用脫敏函數(shù)對查詢結果進行脫敏處理,將脫敏后的查詢結果返回給服務提供單元。此處脫敏函數(shù)的具體處理過程,設計實現(xiàn)人員可以根據需要自行設計實現(xiàn),這里不做限制。
8.所述服務提供單元獲取查詢結果后,判斷臨時參數(shù)是否過期,如果過期則根據請求類型得到對應的脫敏函數(shù)名,并使用脫敏函數(shù)對查詢結果進行脫敏。其中的請求類型,這里定義了“訂單信息”和“地址信息”,還可以包含用戶隱私的其他類型,這里只作為舉例使用,不做具體限制,設計實現(xiàn)人員可以自行設計實現(xiàn)。
本發(fā)明是一種訪問時間自調節(jié)的隱私數(shù)據保護方法和系統(tǒng),與現(xiàn)有技術相比具有以下突出的優(yōu)點。
1.在用戶登錄狀態(tài)下,如果用戶查看隱私信息時的時間在臨時參數(shù)有效期內,系統(tǒng)為其提供敏感數(shù)據;否則超出臨時參數(shù)有效期,如果用戶重新輸入密碼則系統(tǒng)為其顯示敏感數(shù)據,如果用戶不重新輸入密碼則系統(tǒng)為其顯示脫敏后的數(shù)據,由于脫敏后數(shù)據仍然具有閱讀價值,可以滿足用戶一些基本的業(yè)務需求,同時保護了用戶的敏感信息。
2.客戶端程序接收到服務端返回的數(shù)據后開始計時,在用戶未跳出且未進行任何需要請求服務器的操作的狀態(tài)下,當計時超過臨時參數(shù)有效期時,客戶端程序自動退出隱私頁面,保護了用戶的隱私信息。
3.采用臨時參數(shù)作為用戶的標識,用戶每次重新登錄時都產生新臨時參數(shù),并用新臨時參數(shù)替換舊臨時參數(shù),可避免惡意破壞者獲得臨時參數(shù)后進行重放攻擊。
4.為不同級別的用戶設置不同的臨時參數(shù)可用時長,滿足了不同級別的用戶對數(shù)據操作時長要求不同的需求。
附圖說明
圖1是本發(fā)明訪問時間自調節(jié)的隱私數(shù)據保護方法和系統(tǒng)的結構圖。
圖2是本發(fā)明客戶端程序處理階段的流程圖。
圖3是本發(fā)明服務提供單元接收到查詢請求的流程圖。
圖4是本發(fā)明服務提供單元接收到查詢結果的流程圖。
圖5是本發(fā)明臨時參數(shù)列表的示例圖。
圖6是本發(fā)明用戶級別表的示例圖。
圖7是本發(fā)明脫敏函數(shù)對應表的示例圖。
具體實施方式
下面將結合附圖對本發(fā)明做進一步的詳細說明。圖1是本發(fā)明訪問時間自調節(jié)的隱私數(shù)據保護方法和系統(tǒng)的結構圖,包括客戶端程序、服務提供單元、臨時存儲單元、脫敏規(guī)則設置單元和脫敏模塊集;圖2是客戶端程序處理階段的流程圖,具體步驟包括客戶端程序處理階段中的所有步驟;圖3是服務提供單元接收到查詢請求的流程圖,具體步驟包括服務端處理階段的步驟3-1至步驟3-5中的內容;圖4是服務提供單元接收到查詢結果的流程圖,具體步驟包括服務端處理階段的步驟3-6至步驟3-7中的內容;圖5是臨時參數(shù)列表的示例圖,用于服務提供單元判斷獲得查詢結果時的時間是否在臨時參數(shù)對應的臨時參數(shù)有效期內,并根據判斷結果處理查詢結果;圖6是用戶級別表的示例圖,用于保存不同級別用戶的臨時參數(shù)可用時長;圖7脫敏函數(shù)對應表的示例圖,用于服務提供單元在獲得查詢結果后,判斷當前時間超過臨時參數(shù)有效期時,根據請求類型查找對應的脫敏函數(shù)。
1)系統(tǒng)初始化:
第一步:訪問時間自調節(jié)的隱私數(shù)據保護方法和系統(tǒng)的系統(tǒng)管理員通過用戶級別設置單元設置用戶的級別及不同級別用戶的臨時參數(shù)可用時長。
第二步:用戶級別設置單元將用戶的級別設置信息保存在用戶級別表中。
2)客戶端程序處理階段:
步驟2-1:用戶登錄客戶端,用戶查看隱私頁面,客戶端程序查看用戶是否已登錄過隱私頁面,如果已經登錄過此隱私頁面,則轉至步驟2-4繼續(xù)執(zhí)行;否則,轉至步驟2-2繼續(xù)執(zhí)行;
例1:若當前客戶端程序為某購物平臺,用戶james登錄客戶端后,點擊查看全部訂單頁面,該頁面為隱私信息頁面,客戶端程序查看其之前未登錄過該頁面,轉至步驟2-2繼續(xù)執(zhí)行;
例2:若當前客戶端程序為某購物平臺,用戶joy登錄客戶端后,點擊查看全部訂單頁面,客戶端程序查看其之前joy登錄過隱私頁面,轉至步驟2-4繼續(xù)執(zhí)行。
步驟2-2:用戶登錄,輸入密碼,如果用戶身份驗證通過則轉至步驟2-3繼續(xù)執(zhí)行;否則需要用戶重新登錄驗證身份;
例1:用戶james登錄輸入密碼,驗證身份成功,轉至步驟2-3繼續(xù)執(zhí)行。
步驟2-3:判斷當前臨時參數(shù)temp是否為空,如果為空,則置舊臨時參數(shù)變量oldtemp=null;如果不為空,則置oldtemp=temp??蛻舳顺绦虍a生新臨時參數(shù)newtemp,轉至步驟2-7繼續(xù)執(zhí)行;
例1:用戶james產生新臨時參數(shù)為650cf9febcac76ed,并置oldtemp=null,轉至步驟2-7繼續(xù)執(zhí)行。
步驟2-4:客戶端程序查看臨時參數(shù)(temp)是否過期,如果當前時間在臨時參數(shù)有效期內,則稱臨時參數(shù)(temp)未過期轉至步驟2-5繼續(xù)執(zhí)行;否則轉至步驟2-6繼續(xù)執(zhí)行;
例2:客戶端查看臨時參數(shù)temp是否過期(joy的臨時參數(shù)為6081d5c48fa50395,臨時參數(shù)有效期為2017/04/26/13:40),當前時間為2017/04/26/13:39,在臨時參數(shù)有效期內,轉至步驟2-5繼續(xù)執(zhí)行。
步驟2-5:定義當前的臨時參數(shù)為舊臨時參數(shù)即oldtemp=temp,并置newtemp=null,并轉至步驟2-7繼續(xù)執(zhí)行;
例2:客戶端程序定義當前臨時參數(shù)為舊臨時參數(shù)oldtemp=temp,設新臨時參數(shù)為空,并轉至步驟2-7繼續(xù)執(zhí)行。
步驟2-6:提示用戶輸入密碼,若用戶選擇重新輸入密碼并驗證身份成功,則轉至步驟2-3繼續(xù)執(zhí)行;否則轉至步驟2-5繼續(xù)執(zhí)行。
步驟2-7:客戶端程序將新臨時參數(shù)newtemp、舊臨時參數(shù)oldtemp和查詢請求提交給服務器;
例1:客戶端程序將newtemp(650cf9febcac76ed),oldtemp(null)和查詢請求提交給服務器;
例2:客戶端程序將newtemp(null),oldtemp(6081d5c48fa50395)和查詢請求提交給服務器。
3)服務端處理階段。
服務提供單元獲得查詢請求(設為q)、新臨時參數(shù)(設為newtemp)、舊臨時參數(shù)(設為oldtemp),并根據查詢請求q獲取請求類型(設為r),然后作出以下操作:
例1:服務提供單元獲得查詢請求q,新臨時參數(shù)(650cf9febcac76ed),舊臨時參數(shù)(null),并根據查詢請求獲得請求類型為“訂單信息”;
例2:服務提供單元獲得查詢請求q,新臨時參數(shù)(null),舊臨時參數(shù)(6081d5c48fa50395),并根據查詢請求獲得請求類型為“訂單信息”。
步驟3-1:服務提供單元查看oldtemp是否存在于臨時參數(shù)列表中的第一列中,如果存在則轉至步驟3-2繼續(xù)執(zhí)行;否則轉至步驟3-4繼續(xù)執(zhí)行;
例1:服務提供單元檢查oldtemp不存在臨時參數(shù)列表中的第一列中,轉至步驟3-4繼續(xù)執(zhí)行;
例2:服務提供單元檢查oldtemp存在于臨時參數(shù)列表中的第一列中,轉至步驟3-2繼續(xù)執(zhí)行。
步驟3-2:查看newtemp是否為空,如果為空,則轉至步驟3-3繼續(xù)執(zhí)行;否則,newtemp不為空,則使用newtemp替換oldtemp,并根據當前時間(設為t1),和臨時參數(shù)可用時長(設為t2),計算得到臨時參數(shù)有效期(設為t),即t=t1+t2,更新newtemp對應的臨時參數(shù)有效期為t,轉至步驟3-5繼續(xù)執(zhí)行;
例2:查看newtemp為空,轉至步驟3-3繼續(xù)執(zhí)行。
步驟3-3:服務提供單元查看當前時間是否超過oldtemp對應的臨時參數(shù)有效期(設為d),如果超過oldtemp對應的臨時參數(shù)有效期d,則將查詢請求q提交給數(shù)據庫;否則將oldtemp對應的臨時參數(shù)有效期d與臨時參數(shù)可用時長t2相加得到d’,即d’=d+t2,將臨時參數(shù)列表中oldtemp對應的臨時參數(shù)有效期更新為d’,轉至步驟3-5繼續(xù)執(zhí)行;
例2:查看oldtemp對應的臨時參數(shù)有效期為2017/04/26/13:40,臨時參數(shù)可用時長為2min,則兩者相加2017/04/26/13:40+2min=2017/04/26/13:42,將oldtemp對應的臨時參數(shù)有效期更新為2017/04/26/13:42,并轉至步驟3-5繼續(xù)執(zhí)行。
步驟3-4:服務提供單元查看newtemp是否為空,如果newtemp為空,則提示錯誤;否則,服務提供單元獲得用戶級別,當前時間t1,臨時參數(shù)可用時長(t2),并根據當前時間和臨時參數(shù)可用時長計算得到臨時參數(shù)有效期,設為y,即y=t1+t2,將(臨時參數(shù)newtemp、臨時參數(shù)有效期y)保存在臨時參數(shù)列表中,轉至步驟3-5繼續(xù)執(zhí)行;
例1:服務提供單元查看新臨時參數(shù)650cf9febcac76ed,不為空,則得到當前時間為2017/4/26/13:26,得到用戶級別表中james對應的臨時參數(shù)可用時長為5min,則將當前時間與臨時參數(shù)可用時長相加得到臨時參數(shù)可用時長為2017/4/26/13:26+5min=2017/4/26/13:31,將(650cf9febcac76ed,2017/4/26/13:31)保存在臨時參數(shù)列表中,轉至步驟3-5繼續(xù)執(zhí)行。
步驟3-5:將查詢請求q提交給數(shù)據庫。
步驟3-6:服務提供單元獲得查詢結果(設為data),檢查當前時間是否在用戶臨時參數(shù)對應的臨時參數(shù)有效期內,如果超過臨時參數(shù)有效期,則轉至步驟3-7繼續(xù)執(zhí)行;否則將查詢結果data和臨時參數(shù)有效期返回給客戶端程序;
例1:服務提供單元獲得查詢結果,為訂單信息data,當前時間為2017/4/26/13:27,在臨時參數(shù)有效期2017/4/26/13:31內,則將訂單信息data和臨時參數(shù)有效期2017/4/26/13:31返回客戶端程序;
例2:服務提供單元獲得查詢結果,為訂單信息data,當前時間為2017/04/26/13:43,超過了臨時參數(shù)有效期2017/04/26/13:42,則轉至步驟3-7繼續(xù)執(zhí)行。
步驟3-7:服務提供單元根據請求類型r查找r對應的脫敏函數(shù)名(設為f),并使用脫敏函數(shù)f對查詢結果data進行脫敏處理,得到脫敏后的查詢結果data’,即data’=f(data),然后將脫敏后的查詢結果data’和臨時參數(shù)有效期返回客戶端程序;
例2:服務提供單元根據查詢類型“訂單信息”在脫敏函數(shù)對應表中得到脫敏函數(shù)名為truncate,使用脫敏函數(shù)truncate處理數(shù)據data,得到data’=truncate(data),將data’和臨時參數(shù)有效期2017/04/26/13:42返回客戶端程序。
4)客戶端計時階段
客戶端程序獲得查詢結果和臨時參數(shù)有效期,并開始計時,如果用戶在臨時參數(shù)有效期內跳出此頁面,則停止計時,并當用戶再次訪問此隱私頁面時,重新執(zhí)行第二部分中客戶端程序處理階段的步驟;否則,若用戶在臨時參數(shù)有效期內沒有進行任何需要獲取數(shù)據庫數(shù)據的操作,則客戶端程序自動退出此頁面,并提示用戶重新登錄,若用戶在臨時參數(shù)有效期內進行了需要獲取數(shù)據庫數(shù)據的操作,則在收到查詢結果和臨時參數(shù)有效期后,重新開始計時;
例1:客戶端程序獲得查詢結果data和臨時參數(shù)有效期2017/4/26/13:31,并開始計時,若james在計時到達2017/4/26/13:31之前跳出此頁面,則停止計時,若james在計時到達2017/4/26/13:31內沒有進行進行獲取數(shù)據庫數(shù)據的操作,則客戶端程序自動退出此頁面,并提示其重新登錄。