本申請涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種數(shù)據(jù)加密、解密、密鑰請求處理的方法和裝置及系統(tǒng)。
背景技術(shù):
大型平臺(如網(wǎng)絡(luò)交易平臺)每天都會產(chǎn)生大量的敏感數(shù)據(jù)(如訂單數(shù)據(jù)等),這些敏感數(shù)據(jù)會通過數(shù)據(jù)開放平臺,開放給眾多的第三方應(yīng)用(比如訂單處理、客戶管理、物流和商家等)。在通過數(shù)據(jù)開放平臺將這些敏感數(shù)據(jù)開放給第三方應(yīng)用時,若沒有好的加密方式,這些敏感數(shù)據(jù)將面臨巨大的泄漏風(fēng)險(xiǎn)。
現(xiàn)有技術(shù)中提供了一些應(yīng)用于網(wǎng)絡(luò)、主機(jī)、應(yīng)用維度的安全技術(shù)手段以降低數(shù)據(jù)被非法竊取的風(fēng)險(xiǎn),但是無法徹底解決問題。如現(xiàn)有技術(shù)中的:(1)通道加密方式,該方式使用臨時協(xié)商的密鑰對傳輸內(nèi)容做動態(tài)加解密(如https連接中使用的加解密方式),當(dāng)密文到達(dá)端口后就被解密,通訊結(jié)束后密鑰就被丟棄。這類加密只能解決通信過程中的防竊聽,無法保護(hù)機(jī)器中生存期較長(如需保存的數(shù)據(jù))的敏感數(shù)據(jù)。(2)數(shù)據(jù)庫加解密方式,該方案在硬件讀寫層增加了加解密保護(hù),但是對數(shù)據(jù)的使用者是透明的。通過該方案可以防止物理存儲被盜(如硬盤被盜)引起的信息泄露,但是無法解決云應(yīng)用環(huán)境主機(jī)或應(yīng)用被入侵導(dǎo)致的數(shù)據(jù)泄漏。另外,現(xiàn)有技術(shù)中的加密方式,均將密鑰存在加解密終端的本地,一旦終端的信息被盜,密鑰也就泄露了。
針對上述采用現(xiàn)有技術(shù)中加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供了一種數(shù)據(jù)加密、解密、密鑰請求處理的方法和裝置及系統(tǒng),以至少解決加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的技術(shù)問題。
根據(jù)本申請實(shí)施例的一個方面,提供了一種數(shù)據(jù)加密的方法,該方法包括:在獲取待加密數(shù)據(jù)之后,終端生成用于請求加密密鑰的加密密鑰請求,并將加密密鑰請求發(fā)送至密鑰服務(wù)器;接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息,其中,響應(yīng) 信息中至少包括:加密密鑰和加密密鑰對應(yīng)的算法類型;利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種數(shù)據(jù)解密的方法,該方法包括:終端獲取用于解密待解密數(shù)據(jù)的解密請求,其中,待解密數(shù)據(jù)為包括密文數(shù)據(jù)和密鑰版本的加密結(jié)果;對待解密數(shù)據(jù)進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本;生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器,其中,解密密鑰請求用于密鑰服務(wù)器查找與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型;接收密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型;根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種密鑰請求的處理方法,該方法包括:接收終端發(fā)送的用于獲取密鑰的密鑰請求,其中,密鑰請求包括加密密鑰請求和解密密鑰請求;若密鑰請求為加密密鑰請求,則從數(shù)據(jù)庫中讀取最新版本的加密密鑰和加密密鑰的算法類型,基于加密密鑰和加密密鑰的算法類型返回至終端;若密鑰請求為解密密鑰請求,則從解密密鑰請求中獲取密鑰版本,從數(shù)據(jù)庫中讀取與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型,將解密密鑰和解密密鑰的算法類型返回至終端。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種數(shù)據(jù)加解密的系統(tǒng),該系統(tǒng)包括:第一終端,用于在獲取待加密數(shù)據(jù)之后,生成用于請求加密密鑰的加密密鑰請求,并將加密密鑰請求發(fā)送至密鑰服務(wù)器;密鑰服務(wù)器,基于加密密鑰請求生成響應(yīng)信息,并將響應(yīng)信息返回至第一終端,其中,響應(yīng)信息中至少包括:加密密鑰和加密密鑰對應(yīng)的算法類型,其中,第一終端還用于利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種數(shù)據(jù)加密的裝置,該裝置包括:第一生成單元,用于在獲取待加密數(shù)據(jù)之后,終端生成用于請求加密密鑰的加密密鑰請求,并將加密密鑰請求發(fā)送至密鑰服務(wù)器;第一接收單元,用于接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息,其中,響應(yīng)信息中至少包括:加密密鑰和加密密鑰對應(yīng)的算法類型;加密單元,用于利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種數(shù)據(jù)解密的裝置,該裝置包括:獲取單元,用于終端獲取用于解密待解密數(shù)據(jù)的解密請求,其中,待解密數(shù)據(jù)為包括密文數(shù)據(jù)和密鑰版本的加密結(jié)果;解析單元,用于對待解密數(shù)據(jù)進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本;生成單元,用于生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器,其中,解密密鑰請求用于密鑰服務(wù)器查找與密鑰版本對 應(yīng)的解密密鑰和解密密鑰的算法類型;接收單元,用于接收密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型;解密單元,用于根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種密鑰請求的處理裝置,該裝置包括:接收單元,用于接收終端發(fā)送的用于獲取密鑰的密鑰請求,其中,密鑰請求包括加密密鑰請求和解密密鑰請求;加密處理單元,用于若密鑰請求為加密密鑰請求,則從數(shù)據(jù)庫中讀取最新版本的加密密鑰和加密密鑰的算法類型,基于加密密鑰和加密密鑰的算法類型返回至終端;解密處理單元,用于若密鑰請求為解密密鑰請求,則從解密密鑰請求中獲取密鑰版本,從數(shù)據(jù)庫中讀取與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型,將解密密鑰和解密密鑰的算法類型返回至終端。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行加密時,終端向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度;另外,在上述實(shí)施例中只要獲取到待加密數(shù)據(jù)即可加密,也即可以在數(shù)據(jù)傳輸之前就已經(jīng)加密,而不是在傳輸端口才加密,這樣即便終端本地被攻擊,也可以保證數(shù)據(jù)的安全。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了加密密鑰和待加密數(shù)據(jù)的安全。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1是根據(jù)現(xiàn)有技術(shù)的一種終端內(nèi)部結(jié)構(gòu)的示意圖;
圖2是根據(jù)本申請實(shí)施例的一種可選的數(shù)據(jù)加密方法的流程圖;
圖3是根據(jù)本申請實(shí)施例的一種可選的加密版本和密鑰對應(yīng)關(guān)系的示意圖;
圖4是根據(jù)本申請實(shí)施例的一種可選的數(shù)據(jù)解密方法的流程圖;
圖5是根據(jù)本申請實(shí)施例的一種可選的密鑰請求的處理方法的流程圖;
圖6是根據(jù)本申請實(shí)施例的另一種可選的密鑰請求的處理方法的原理框圖;
圖7是根據(jù)本申請實(shí)施例的另一種可選的數(shù)據(jù)加密方法的原理框圖;
圖8是根據(jù)本申請實(shí)施例的另一種可選的數(shù)據(jù)解密方法的原理框圖;
圖9是根據(jù)本申請實(shí)施例的數(shù)據(jù)加解密的系統(tǒng)的示意圖;
圖10是根據(jù)本申請實(shí)施例的一種可選地?cái)?shù)據(jù)加解密的系統(tǒng)的示意圖;
圖11是根據(jù)本申請實(shí)施例的數(shù)據(jù)加密裝置的示意圖;
圖12是根據(jù)本申請實(shí)施例的數(shù)據(jù)解密裝置的示意圖;
圖13是根據(jù)本申請實(shí)施例的一種可選的網(wǎng)絡(luò)環(huán)境示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分的實(shí)施例,而不是全部的實(shí)施例。基于本申請中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
需要說明的是,本申請的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實(shí)施例1
根據(jù)本申請實(shí)施例,還提供了一種數(shù)據(jù)加密的方法的實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本申請實(shí)施例所提供的方法實(shí)施例可以在移動終端、計(jì)算機(jī)終端或者類似的運(yùn)算裝置中執(zhí)行。以運(yùn)行在計(jì)算機(jī)終端上為例,圖1是本申請實(shí)施例的一種數(shù)據(jù)加密的方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖。
如圖1所示,計(jì)算機(jī)終端10可以包括一個或多個(圖中僅示出一個)處理器102(處理器102可以包括但不限于微處理器MCU或可編程邏輯器件FPGA等的處理裝置)、用于存儲數(shù)據(jù)的存儲器104、以及用于通信功能的傳輸模塊106。本領(lǐng)域普通技術(shù)人員可以理解,圖1所示的結(jié)構(gòu)僅為示意,其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端10還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。
存儲器104可用于存儲應(yīng)用軟件的軟件程序以及模塊,如本申請實(shí)施例中的數(shù)據(jù)加密的方法對應(yīng)的程序指令/模塊,處理器102通過運(yùn)行存儲在存儲器104內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的應(yīng)用程序的漏洞檢測方法。存儲器104可包括高速隨機(jī)存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實(shí)例中,存儲器104可進(jìn)一步包括相對于處理器102遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至計(jì)算機(jī)終端10。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
傳輸裝置106用于經(jīng)由一個網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實(shí)例可包括計(jì)算機(jī)終端10的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個實(shí)例中,傳輸裝置106包括一個網(wǎng)絡(luò)適配器(Network Interface Controller,NIC),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進(jìn)行通訊。在一個實(shí)例中,傳輸裝置106可以為射頻(Radio Frequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
在上述運(yùn)行環(huán)境下,本申請?zhí)峁┝巳鐖D2所示的數(shù)據(jù)加密的方法。圖2是根據(jù)本申請實(shí)施例的數(shù)據(jù)加密的方法的流程圖。
如圖2所示該方法包括如下步驟:
步驟S202:在獲取待加密數(shù)據(jù)之后,終端生成用于請求加密密鑰的加密密鑰請求,并將加密密鑰請求發(fā)送至密鑰服務(wù)器。
該密鑰服務(wù)器的安全等級比較高,如可通過專門的殺毒、防火墻策略對該密鑰服務(wù)器進(jìn)行防護(hù),以使得該密鑰服務(wù)器的安全等級較高。將密鑰保存在安全等級較高的服務(wù)器的安全中心上(而不是保存在服務(wù)器的硬盤上),可以使得密鑰更安全。
步驟S204:接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息,其中,響應(yīng)信息中至少包括:加密密鑰和加密密鑰對應(yīng)的算法類型。
步驟S206:利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行加密時,終端向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度;另外,在上述實(shí)施例中只要獲取到待加密數(shù)據(jù)即可加密,也即可以在數(shù)據(jù)傳輸之前就已經(jīng)加密,而不是在傳輸端口才加密,這樣即便終端本地被攻擊,也可以保證數(shù)據(jù)的安全。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了加密密鑰和待加密數(shù)據(jù)的安全。
可選地,響應(yīng)信息中還可以包括加密密鑰的密鑰版本。
如圖2所示,在得到密文數(shù)據(jù)之后,該實(shí)施例可以包括步驟S208和步驟S210。
具體地,步驟S208:將密文數(shù)據(jù)和加密密鑰的密鑰版本作為待加密數(shù)據(jù)的加密結(jié)果;
步驟S210:輸出待加密數(shù)據(jù)的加密結(jié)果。
上述實(shí)施例中的密鑰服務(wù)器上保存有所有版本的密鑰和密鑰對應(yīng)的算法類型;其中的待加密數(shù)據(jù)可以是:任意需加密的數(shù)據(jù),如網(wǎng)絡(luò)交易平臺上的訂單數(shù)據(jù)、已經(jīng)存儲在數(shù)據(jù)庫或磁盤中的數(shù)據(jù)以及各種第三方應(yīng)用程序保留和/或生成的數(shù)據(jù)等。
需要說明的是,本申請上述實(shí)施例可以作為一個獨(dú)立的應(yīng)用程序,也可以作為一個加密插件安裝在終端的應(yīng)用程序上,如安裝在第三方應(yīng)用程序上;并且,上述實(shí)施例可以因應(yīng)用場景的不同而確定待加密數(shù)據(jù)中的敏感數(shù)據(jù),對該待加密數(shù)據(jù)全部或部分進(jìn)行加密,如僅加密待加密數(shù)據(jù)中的敏感數(shù)據(jù)。
其中,敏感數(shù)據(jù)為:記錄有若不當(dāng)使用或未經(jīng)授權(quán)被人接觸或修改會不利于國家利益或聯(lián)邦政府計(jì)劃的實(shí)行或不利于個人依法享有的個人隱私權(quán)的所有信息的數(shù)據(jù)。
如,對于訂單數(shù)據(jù)來說,可以確定加密訂單數(shù)據(jù)中的交易對象的姓名、身份證號、家庭地址等信息為敏感信息,在對該訂單加密時僅加密這些加密信息,可以將整個訂單信息都加密;對于公司機(jī)密文件來說,可能該機(jī)密文件全部都被確定為敏感信息。
本申請對待加密數(shù)據(jù)的形式和上述實(shí)施例的應(yīng)用場景也不做限定,如數(shù)據(jù)形式可以為數(shù)據(jù)流和數(shù)據(jù)庫等。
可選地,若上述實(shí)施例應(yīng)用在從源頭訂閱和傳輸加密數(shù)據(jù)的場景中,信息發(fā)放平臺(如網(wǎng)絡(luò)交易平臺)在獲取到信息訂閱請求(如下載信息的請求)之后,確定該被 訂閱的信息為待加密數(shù)據(jù),信息發(fā)放平臺從密鑰服務(wù)器(如加密中心)獲得密鑰,加密被訂閱信息中的敏感數(shù)據(jù),然后傳輸給信息處理端(如發(fā)出訂閱請求的終端),信息處理端在需要時對敏感數(shù)據(jù)解密。
可選地,若上述實(shí)施例應(yīng)用在自行加解密在已經(jīng)在數(shù)據(jù)庫/磁盤上的數(shù)據(jù)的應(yīng)用場景中,數(shù)據(jù)庫/磁盤所運(yùn)行的終端從密鑰服務(wù)器獲得密鑰后,可以對需要保存在數(shù)據(jù)庫和磁盤上的數(shù)據(jù)加解密。
下面以網(wǎng)絡(luò)交易平臺上的訂單數(shù)據(jù)為例詳述本申請上述實(shí)施例:
若交易對象A為提供虛擬服務(wù)或虛擬貨物的交易對象(如商家),在一段時間內(nèi)(如一天)通過網(wǎng)絡(luò)交易平臺上可以產(chǎn)生多個交易對象B(如買家)與交易對象A的訂單,則交易對象A可以通過第三方應(yīng)用程序歸類整理這些訂單,如,結(jié)算應(yīng)用。交易對象A可以通過該結(jié)算應(yīng)用調(diào)用網(wǎng)絡(luò)交易平臺上的訂單信息,網(wǎng)絡(luò)加密平臺在接收到該調(diào)用訂單信息得到請求之后,確定該訂單信息為待加密數(shù)據(jù),并確定待加密的訂單中敏感信息(數(shù)據(jù))為訂單的買家身份信息。網(wǎng)絡(luò)交易平臺生成加密密鑰請求,密鑰服務(wù)器接收到該加密密鑰請求之后獲取加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本,基于該三個信息生成響應(yīng)信息,將該響應(yīng)信息返回至網(wǎng)絡(luò)交易平臺,網(wǎng)絡(luò)交易平臺接收到響應(yīng)信息之后,基于加密密鑰和算法類型對待加密數(shù)據(jù)中的敏感信息進(jìn)行加密,得到密文數(shù)據(jù),該加密插件可以將該密文數(shù)據(jù)和密鑰版本進(jìn)行信息拼接,得到加密結(jié)果,并輸出該訂單的加密結(jié)果,網(wǎng)絡(luò)交易平臺在得到加密結(jié)果之后,將該訂單的加密結(jié)果發(fā)送至交易對象A的安裝有第三方應(yīng)用(如結(jié)算應(yīng)用)的終端。
根據(jù)本申請的上述實(shí)施例,在需對加密結(jié)果進(jìn)行解密時,方法還可以包括:對加密結(jié)果進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本;生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器,其中,解密密鑰請求用于密鑰服務(wù)器查找與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型;根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果。
在上述實(shí)施例中,在需要對加密結(jié)果(即待解密數(shù)據(jù))進(jìn)行解密時,需要解密的終端對該加密結(jié)果進(jìn)行解析,解析出兩個部分:密文數(shù)據(jù)和密鑰版本。該需要解密的終端基于該密鑰版本生成解密密鑰請求,即,生成攜帶有密鑰版本的解密密鑰請求,將該解密密鑰請求發(fā)送至密鑰服務(wù)器,密鑰服務(wù)器接收到該解密密鑰請求之后,從數(shù)據(jù)庫中查找與該密鑰版本對應(yīng)的解密密鑰和該解密密鑰的算法類型,并將該解密密鑰和解密密鑰的算法類型攜帶在解密密鑰請求的響應(yīng)信息中,該發(fā)送解密密鑰氫氣肚餓終端接收到該響應(yīng)信息之后,利用解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到明文數(shù)據(jù)(即解密結(jié)果),解密成功。
通過上述實(shí)施例,由于在加密時,在加密結(jié)果中攜帶了密文版本,并且將密鑰都存儲在密鑰服務(wù)器上,因此,在解密時,通過密鑰版本可以從密鑰服務(wù)器上述獲取版本正確的解密密鑰。在該實(shí)施例中,即便是“加密結(jié)果”(即待解密數(shù)據(jù))的加密密鑰的版本很低,也可以直接從密鑰服務(wù)器上讀到正確的解密密鑰,而如果將密鑰存在終端本地由于版本過低,可能已經(jīng)丟棄從而無法解密;而上述方案,則不存在現(xiàn)有技術(shù)中的問題,本申請的方案可以兼容多種版本的密鑰。
在上述實(shí)施例中,為了使過去的密文仍然有能夠被解密的能力,我們在加密結(jié)果中帶上了若干字節(jié)的“版本標(biāo)記”(即上文的密鑰版本),而密鑰管理中心(即上述的密鑰服務(wù)器)會保存所有版本的密鑰,當(dāng)請求方需要解密的舊版本密文時,可以向密鑰管理中心請求對應(yīng)舊密鑰,這樣就解決了密鑰變換的時候,新舊版本密文的使用銜接問題。
在一個可選的實(shí)施例中,在將密文數(shù)據(jù)和加密密鑰的密鑰版本作為待加密數(shù)據(jù)的加密結(jié)果之后,對加密結(jié)果進(jìn)行編碼處理,以將加密結(jié)果編碼為可讀的信息;并將編碼后的加密結(jié)果作為待加密數(shù)據(jù)的加密結(jié)果。
其中,上述實(shí)施例中對待加密數(shù)據(jù)進(jìn)行加密得到的密文數(shù)據(jù)為二進(jìn)制密文,該密文數(shù)據(jù)中可能會有亂碼或者其他無法識別的信息,將該加密結(jié)果進(jìn)行編碼后,編碼后的加密結(jié)果都是可讀、可打印的,用戶也可以通過肉眼識別這些信息。
在上述實(shí)施例中,在終端需解密加密結(jié)果(實(shí)質(zhì)上該加密結(jié)果為編碼后的加密結(jié)果)時,先對其進(jìn)行解碼得到解碼后的加密結(jié)果,然后對解碼后的加密結(jié)果進(jìn)行解碼。
在本申請的上述實(shí)施例中,在接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息之前,方法還可以包括:密鑰服務(wù)器從數(shù)據(jù)庫中讀取最新版本的加密密鑰,基于加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本生成響應(yīng)信息。
具體地,在讀取加密密鑰時,讀取的是最新版本的加密密鑰,由于在本申請的方案中,密鑰由密鑰服務(wù)器統(tǒng)一管理,該密鑰服務(wù)器在每間隔一段時間,更新一次密鑰,如圖3所示,密鑰N對應(yīng)密文版本N,密鑰N+1對應(yīng)密文版本N+1;密鑰N-1對應(yīng)密文版本N-1,相對來說該圖中的密鑰N-1、密鑰N以及密鑰N+1的密鑰泄露風(fēng)險(xiǎn)依次變小。在上述實(shí)施例中,密鑰生成的時間越早,安全性越低,通過及時變更密鑰,保證密鑰的安全性;并且在加密時,讀取最新版本的加密密鑰(安全性相對較高的加密密鑰),可以進(jìn)一步保證加密的安全性。
需要進(jìn)一步說明的是,加密密鑰請求中還攜帶有生成該加密密鑰請求的應(yīng)用程序的身份信息(如身份標(biāo)識、或驗(yàn)證碼等),密鑰服務(wù)器在接收到該加密密鑰請求之后, 先對其進(jìn)行身份驗(yàn)證,若該加密密鑰請求驗(yàn)證成功,則密鑰服務(wù)器從數(shù)據(jù)庫中讀取最新版本的加密密鑰,并讀取加密密鑰的算法類型以及密鑰版本,將這三個信息返回給服務(wù)器。
可選地,在接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息之后,方法還包括:將加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本在終端的內(nèi)存中緩存預(yù)設(shè)時間段。
在上述實(shí)施例中,終端在獲取加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本之后將其緩存在終端的內(nèi)存中,而不是將其緩存在緩存區(qū),緩存在內(nèi)存中,可以加大密鑰被破解的難度。
具體地,獲取加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本之后將其緩存在終端的內(nèi)存中一段時間(可以為兩個小時),該存儲時間段可以小于密鑰服務(wù)器上加密密鑰的更新時間段,這樣可以保證終端上保存的加密密鑰都是最新的密鑰。
為了保證獲取到最新版本的加密密鑰的信息,并且減少終端和服務(wù)器的處理事件數(shù)量,終端生成用于請求加密密鑰的加密密鑰請求可以包括:獲取終端的內(nèi)存中最后一次緩存加密密鑰的緩存時間;計(jì)算緩存時間與終端的當(dāng)前系統(tǒng)時間的時間差;若時間差超過預(yù)設(shè)時間閾值,則生成加密密鑰請求;若時間差未超過預(yù)設(shè)時間閾值,則讀取緩存的加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本。
進(jìn)一步地,終端生成用于請求加密密鑰的加密密鑰請求可以包括:判斷終端的內(nèi)存中是否緩存有加密密鑰;若終端的內(nèi)存中緩存有加密密鑰,則讀取緩存的加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本;若終端的內(nèi)存中未緩存加密密鑰,則生成加密密鑰請求。
在上述實(shí)施例中,由于終端的內(nèi)存中緩存有最新版本的加密密鑰,而加密密鑰的版本更新也需要時間,也即,終端無需在每次需加密數(shù)據(jù)時均向加密服務(wù)器請求加密密鑰,如果終端的內(nèi)存中緩存有加密密鑰則直接讀取緩存的加密信息,如果終端的內(nèi)存中沒有緩存加密密鑰,則生成加密密鑰請求。通過該實(shí)施例,終端無需每次加密時,都生成加密請求向服務(wù)器請求密鑰,不但減小了終端的計(jì)算量,也減小了服務(wù)器的負(fù)擔(dān)。
可選地,若終端的內(nèi)存中緩存有加密密鑰,則讀取緩存的加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本可以包括:獲取終端的內(nèi)存中最后一次緩存加密密鑰的緩存時間;計(jì)算緩存時間與終端的當(dāng)前系統(tǒng)時間的時間差;若時間差超過預(yù)設(shè)時間閾值,則生成加密密鑰請求;若時間差未超過預(yù)設(shè)時間閾值,則讀取緩存的加密密 鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本。
由于緩存在終端的內(nèi)存中的加密密鑰的信息,每隔一段時間更新一次,若更新失敗,則可以通過上述的緩存時間的判斷機(jī)制,識別出更新失敗的情況,即若緩存時間與終端的當(dāng)前系統(tǒng)時間的時間差超過預(yù)設(shè)時間閾值,則認(rèn)為,當(dāng)前緩存的加密密鑰的信息不是最新的加密密鑰,則生成加密密鑰請求。
通過上述實(shí)施例,可以識別終端的內(nèi)存中的加密密鑰是否更新失敗,并在更新失敗的情況下,向密鑰服務(wù)器請求加密密鑰,從而可以保證加密時使用最新的加密密鑰。
進(jìn)一步地,利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)可以包括:調(diào)取算法類型所指向的加密算法;利用加密密鑰,根據(jù)加密算法計(jì)算待加密數(shù)據(jù)的二進(jìn)制密文,將二進(jìn)制密文作為密文數(shù)據(jù)。
具體地,服務(wù)器不僅可以返回加密密鑰的算法類型,終端接收到該加密密鑰的算法類型之后調(diào)用該算法類型對應(yīng)的加密算法,使用該利用加密密鑰,根據(jù)加密算法計(jì)算待加密數(shù)據(jù)的二進(jìn)制密文,得到待加密數(shù)據(jù)的密文數(shù)據(jù)。
在本申請的上述實(shí)施例中,將加密密鑰的值、加密密鑰的算法類型以及加密密鑰的密鑰版本作為加密密鑰的屬性,通過密鑰服務(wù)器同一管理該密鑰的屬性信息,并且通過標(biāo)準(zhǔn)開發(fā)工具包SDK(即Software Development Kit)封裝實(shí)現(xiàn)上述實(shí)施例的代碼,用戶在加密時,只需調(diào)用該SKD即可實(shí)現(xiàn)對待加密數(shù)據(jù)的加密,并且該SDK工具包中預(yù)存了各種加密算法,在接收到服務(wù)器的算法類型之后,從該工具包中直接調(diào)用對應(yīng)的加密算法即可對待加密數(shù)據(jù)加密。
進(jìn)一步地,通過標(biāo)準(zhǔn)開發(fā)工具包SDK實(shí)現(xiàn)本申請上述實(shí)施例,可以兼容多個數(shù)據(jù)發(fā)放平臺,從網(wǎng)絡(luò)交易平臺流出的數(shù)據(jù)可以直接調(diào)用密鑰管理中心(如密鑰服務(wù)器)的密鑰,從而從傳輸源頭就加密;另一方面,如果第三方應(yīng)用程序還接入了別的平臺的數(shù)據(jù),也可以直接調(diào)用SDK來請求密鑰和加解密,使得多個平臺的數(shù)據(jù)都可以互相兼容,并且各個平臺兼容的成本很小,僅需調(diào)用SDK即可實(shí)現(xiàn)。
需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本申請,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本申請所必須的。
實(shí)施例2
在上述圖1所示的運(yùn)行環(huán)境下,本申請還提供了如圖4所示的數(shù)據(jù)解密的方法。圖4是根據(jù)本申請實(shí)施例的數(shù)據(jù)解密的方法的流程圖。
如圖4所示該方法包括如下步驟:
步驟S402:終端獲取用于解密待解密數(shù)據(jù)的解密請求,其中,待解密數(shù)據(jù)為包括密文數(shù)據(jù)和密鑰版本的加密結(jié)果。
步驟S404:對待解密數(shù)據(jù)進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本。
步驟S406:生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器,其中,解密密鑰請求用于密鑰服務(wù)器查找與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型。
步驟S408:接收密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型。
步驟S410:根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行解密時,終端基于密鑰版本向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度;另外,在上述實(shí)施例中在需要解密時才解密,也即可以在數(shù)據(jù)傳輸之后仍保持加密的狀態(tài),而不是在傳輸端口就解密,這樣即便終端本地被攻擊,也可以保證數(shù)據(jù)的安全。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的解密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了解密密鑰和待解密數(shù)據(jù)的安全。
本申請實(shí)施例對解密的場景不做限定,如:數(shù)據(jù)流解密、數(shù)據(jù)庫解密、在本地保留和管理的經(jīng)上述實(shí)施例一的方案加密得到的加密結(jié)果的解密。
在上述實(shí)施例中,在需要對加密結(jié)果(即待解密數(shù)據(jù))進(jìn)行解密時,需要解密的終端對該加密結(jié)果進(jìn)行解析,解析出兩個部分:密文數(shù)據(jù)和密鑰版本。該需要解密的終端基于該密鑰版本生成解密密鑰請求,即,生成攜帶有密鑰版本的解密密鑰請求,將該解密密鑰請求發(fā)送至密鑰服務(wù)器,密鑰服務(wù)器接收到該解密密鑰請求之后,從數(shù)據(jù)庫中查找與該密鑰版本對應(yīng)的解密密鑰和該解密密鑰的算法類型,并將該解密密鑰和解密密鑰的算法類型攜帶在解密密鑰請求的響應(yīng)信息中,該發(fā)送解密密鑰氫氣肚餓 終端接收到該響應(yīng)信息之后,利用解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到明文數(shù)據(jù)(即解密結(jié)果),解密成功。
通過上述實(shí)施例,由于在加密時,在加密結(jié)果中攜帶了密文版本,并且將密鑰都存儲在密鑰服務(wù)器上,因此,在解密時,通過密鑰版本可以從密鑰服務(wù)器上述獲取版本正確的解密密鑰。在該實(shí)施例中,即便是“加密結(jié)果”(即待解密數(shù)據(jù))的加密密鑰的版本很低,也可以直接從密鑰服務(wù)器上讀到正確的解密密鑰,而如果將密鑰存在終端本地由于版本過低,可能已經(jīng)丟棄從而無法解密;而上述方案,則不存在現(xiàn)有技術(shù)中的問題,本申請的方案可以兼容多種版本的密鑰。
在上述實(shí)施例中,為了使過去的密文仍然有能夠被解密的能力,我們在加密結(jié)果中帶上了若干字節(jié)的“版本標(biāo)記”(即上文的密鑰版本),而密鑰管理中心(即上述的密鑰服務(wù)器)會保存所有版本的密鑰,當(dāng)請求方需要解密的舊版本密文時,可以向密鑰管理中心請求對應(yīng)舊密鑰,這樣就解決了密鑰變換的時候,新舊版本密文的使用銜接問題。
在一個可選的實(shí)施例中,在將密文數(shù)據(jù)和加密密鑰的密鑰版本作為待加密數(shù)據(jù)的加密結(jié)果之后,對加密結(jié)果進(jìn)行編碼處理,以將加密結(jié)果編碼為可讀的信息;并將編碼后的加密結(jié)果作為待加密數(shù)據(jù)的加密結(jié)果。
其中,上述實(shí)施例中對待加密數(shù)據(jù)進(jìn)行加密得到的密文數(shù)據(jù)為二進(jìn)制密文,該密文數(shù)據(jù)中可能會有亂碼或者其他無法識別的信息,將該加密結(jié)果進(jìn)行編碼后,編碼后的加密結(jié)果都是可讀、可打印的,用戶也可以通過肉眼識別這些信息。
在上述實(shí)施例中,在終端需解密加密結(jié)果(實(shí)質(zhì)上該加密結(jié)果為編碼后的加密結(jié)果)時,先對其進(jìn)行解碼得到解碼后的加密結(jié)果,然后對解碼后的加密結(jié)果進(jìn)行解碼。
可選地,在接收密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型之后,方法還可以包括:將解密密鑰、解密密鑰的算法類型以及密鑰版本在終端的內(nèi)存中緩存預(yù)設(shè)時間段。
上述實(shí)施例中,將解密密鑰、解密密鑰的算法類型以及密鑰版本在終端的內(nèi)存中緩存預(yù)設(shè)時間段(如2h),可以在需重復(fù)使用該版本的密鑰時,無需向服務(wù)器請求,直接可以從內(nèi)存中直接讀取,節(jié)省了處理時間和降低了處理復(fù)雜度。
具體地,終端獲取用于解密待解密數(shù)據(jù)的解密請求可以包括:判斷終端的內(nèi)存中是否緩存有與密鑰版本對應(yīng)的解密密鑰;若終端的內(nèi)存中緩存有與密鑰版本對應(yīng)的解密密鑰,則讀取緩存的解密密鑰、解密密鑰的算法類型以及解密密鑰的密鑰版本;若終端的內(nèi)存中未緩存與密鑰版本對應(yīng)的解密密鑰,則生成解密密鑰請求。
通過上述實(shí)施例,可以在生成解密密鑰請求之前,檢測終端的內(nèi)存中是否存在該版本的解密密鑰,若有,則無需向服務(wù)器請求,直接讀取,節(jié)省了處理時間和降低了處理復(fù)雜度。
在上述實(shí)施例中根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果可以包括:調(diào)取算法類型所指向的解密算法;利用解密密鑰,根據(jù)解密算法解密密文數(shù)據(jù),得到解密結(jié)果。
需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本申請,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本申請所必須的。
實(shí)施例3
在上述圖1所示的運(yùn)行環(huán)境下,本申請還提供了如圖5所示的密鑰請求的處理方法。圖5是根據(jù)本申請實(shí)施例的密鑰請求的處理方法的流程圖。
如圖5所示,該實(shí)施例包括如下步驟:
步驟S502:接收終端發(fā)送的用于獲取密鑰的密鑰請求,其中,密鑰請求包括加密密鑰請求和解密密鑰請求。
步驟S504:若密鑰請求為加密密鑰請求,則從數(shù)據(jù)庫中讀取最新版本的加密密鑰和加密密鑰的算法類型,基于加密密鑰和加密密鑰的算法類型返回至終端。
步驟S506:若密鑰請求為解密密鑰請求,則從解密密鑰請求中獲取密鑰版本,從數(shù)據(jù)庫中讀取與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型,將解密密鑰和解密密鑰的算法類型返回至終端。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行加解密時,終端向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了加密密鑰和待加密數(shù)據(jù)的安全。
上述實(shí)施例中,可以在從數(shù)據(jù)庫中讀取最新版本的加密密鑰和加密密鑰的算法類 型的同時,讀取該加密密鑰的密鑰版本;以及在基于加密密鑰和加密密鑰的算法類型返回至終端的同時,將加密密鑰的密鑰版本返回至該終端,以供第一終端生成密文數(shù)據(jù)后,將加密密鑰和密文數(shù)據(jù)作為待加密數(shù)據(jù)的加密結(jié)果。
具體地,從數(shù)據(jù)庫中讀取加密密鑰或解密密鑰可以包括:對終端進(jìn)行身份驗(yàn)證,若終端的身份驗(yàn)證通過,則從數(shù)據(jù)庫中讀取加密密鑰或解密密鑰;若終端的身份驗(yàn)證未通過、或密鑰服務(wù)器的數(shù)據(jù)庫中不存在與終端對應(yīng)的加密密鑰或解密密鑰,則生成錯誤提示信息,并將錯誤提示信息返回至終端。
需要進(jìn)一步說明的是,密鑰請求中還攜帶有生成該密鑰請求的應(yīng)用程序的身份信息(如身份標(biāo)識、或驗(yàn)證碼等),密鑰服務(wù)器在接收到該密鑰請求之后,先對其進(jìn)行身份驗(yàn)證,若該密鑰請求驗(yàn)證成功,則密鑰服務(wù)器從數(shù)據(jù)庫中讀取對應(yīng)的密鑰,并讀取密鑰的算法類型以及密鑰版本,將這三個信息返回給服務(wù)器。
下面結(jié)合附圖6至圖8以及上述實(shí)施例一和實(shí)施例二詳述本申請實(shí)施例:
由于本申請中,將密鑰在密鑰服務(wù)器上統(tǒng)一管理,使用密鑰服務(wù)器在線配發(fā)密鑰,無需終端自己記錄歷史密鑰,也無需對舊密文做遷移。
具體地,密鑰服務(wù)器可以維護(hù):密鑰擁有者的信息、密鑰版本以及密鑰信息(包括密鑰算法和密鑰內(nèi)容),其中的密鑰擁有者的信息即為有權(quán)限訪問密鑰服務(wù)器的訪問者的信息,密鑰內(nèi)容可以為密鑰的值。
如圖6所示,在終端需加密或解密時,均需生成密鑰請求向服務(wù)器請求密鑰,如圖6所示的請求包中可以包括:終端的身份信息和/或密鑰版本,其中,加密密鑰請求的請求包中沒有密鑰版本。密鑰服務(wù)器接收到密鑰請求之后,檢索密鑰:若密鑰請求為加密密鑰請求,則檢索最新版本的密鑰;若密鑰請求為解密密鑰請求,則檢索與密鑰版本對應(yīng)的密鑰,并就將密鑰、密鑰算法類型及密鑰的版本等信息返回至終端。
若在上述的過程中,終端身份驗(yàn)證未通過、密鑰服務(wù)器未檢索到對應(yīng)的密鑰或者密鑰請求的格式有誤,密鑰服務(wù)器生成錯誤提示信息,將該錯誤提示信息返回給終端,終端接收到該信息之后,可以在終端的屏幕上顯示該錯誤提示信息。
下面結(jié)合圖7詳述本申請上述實(shí)施例一中的加密過程:
第一終端的第三方應(yīng)用程序在獲取到待加密數(shù)據(jù)(即明文數(shù)據(jù))之后,調(diào)用SDK生成加密密鑰請求,自動向密鑰服務(wù)器發(fā)送該加密密鑰請求以請求最新版本的密鑰,密鑰服務(wù)器返回密鑰的值(即加密密鑰)、密鑰對應(yīng)的算法類型以及密鑰的版本。SDK根據(jù)加密密鑰以及算法類型加密明文數(shù)據(jù),得到二進(jìn)制密文,并將二進(jìn)制密文和密鑰 的版本共同組成加密結(jié)果最終輸出。
下面結(jié)合圖8詳述本申請上述實(shí)施例二中的解密過程:
第二終端上安裝的第三方應(yīng)用程序?qū)γ芪?如上述的加密結(jié)果)進(jìn)行解密時,調(diào)用SDK首先把加密結(jié)果解析成二進(jìn)制密文部分和密鑰版本部分。然后向密鑰服務(wù)器請求對應(yīng)版本的密鑰,密鑰服務(wù)器會返回密鑰的值,以及密鑰對應(yīng)的算法類型。SDK根據(jù)密鑰以及算法類型對二進(jìn)制密文進(jìn)行解密,得到最終的解密結(jié)果。
通過上述實(shí)施例,使用安全中心(即密鑰服務(wù)器)在線配發(fā)密鑰,就可以避免以上這些方案的缺點(diǎn),無需自己記錄歷史密鑰,也無須對過去的舊密文做遷移;帶版本密文,用來標(biāo)識對應(yīng)密鑰版本,可以解密任意版本的密文;并且各個版本密鑰以及密鑰算法由安全密鑰管理中心管理,保證密鑰安全。
本申請的上述實(shí)施例,可以解決因系統(tǒng)或應(yīng)用被攻擊導(dǎo)致的敏感信息泄漏問題,具體地可以實(shí)現(xiàn):
(1)同時支持兩種使用方式:從源頭訂閱和傳輸加密數(shù)據(jù);信息發(fā)放平臺從加密中心獲得密鑰,加密訂單中的敏感數(shù)據(jù),然后傳輸給信息處理端。信息處理段在需要時對敏感數(shù)據(jù)解密;僅使用加解密服務(wù),自行加解密在已經(jīng)在數(shù)據(jù)庫/磁盤上的數(shù)據(jù)。信息處理中心獲得密鑰后,可以對需要保存在數(shù)據(jù)庫和磁盤上的數(shù)據(jù)加解密。
(2)加解密密鑰的安全存儲、管理和分發(fā)。由于加密本身是為了防止本地信息被竊取,因此密鑰儲存在本地就是不合適的。在本申請方案中,密鑰不會保存在服務(wù)器硬盤上,而將由安全等級比較高的安全中心管理所有密鑰,并提供“密鑰獲取”接口,而服務(wù)器通過身份驗(yàn)證來動態(tài)獲得密鑰,保證了密鑰的安全和及時更新。
(3)版本策略。為了使過去的密文仍然有能夠被解密的能力,我們在密文中帶上了若干字節(jié)的“版本標(biāo)記”(即密鑰版本),而密鑰管理中心會保存所有版本的密鑰。當(dāng)請求方需要解密的舊版本密文時,可以向密鑰管理中心請求對應(yīng)舊密鑰,密鑰可以兼容多版本的密文。
(4)密鑰和加解密算法管理作為密鑰的“屬性”,通過安全中心的管理,以及SDK的包裝,使得這些實(shí)現(xiàn)細(xì)節(jié)不需要密鑰的使用方關(guān)心,用戶操作簡單便捷安全。
需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本申請,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊 并不一定是本申請所必須的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施例所述的方法。
實(shí)施例4
根據(jù)本申請實(shí)施例,還提供了一種數(shù)據(jù)加解密的系統(tǒng),如圖9所示,該系統(tǒng)包括:第一終端91和密鑰服務(wù)器93。
其中,第一終端,用于在獲取待加密數(shù)據(jù)之后,生成用于請求加密密鑰的加密密鑰請求,并將加密密鑰請求發(fā)送至密鑰服務(wù)器,還用于利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)??蛇x地,第一終端還可以將密文數(shù)據(jù)和加密密鑰的密鑰版本作為待加密數(shù)據(jù)的加密結(jié)果,輸出該待加密數(shù)據(jù)的加密結(jié)果。
密鑰服務(wù)器,基于加密密鑰請求生成響應(yīng)信息,并將響應(yīng)信息返回至第一終端,其中,響應(yīng)信息中至少包括:加密密鑰和加密密鑰對應(yīng)的算法類型??蛇x地,響應(yīng)信息中還可以包括加密密鑰的密鑰版本。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行加密時,終端向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度;另外,在上述實(shí)施例中只要獲取到待加密數(shù)據(jù)即可加密,也即可以在數(shù)據(jù)傳輸之前就已經(jīng)加密,而不是在傳輸端口才加密,這樣即便終端本地被攻擊,也可以保證數(shù)據(jù)的安全。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了加密密鑰和待加密數(shù)據(jù)的安全。
上述實(shí)施例中的密鑰服務(wù)器上保存有所有版本的密鑰和密鑰對應(yīng)的算法類型;其中的待加密數(shù)據(jù)可以是:任意需加密的數(shù)據(jù),如網(wǎng)絡(luò)交易平臺上的訂單數(shù)據(jù)、已經(jīng)存儲在數(shù)據(jù)庫或磁盤中的數(shù)據(jù)以及各種第三方應(yīng)用程序保留和/或生成的數(shù)據(jù)等。
需要說明的是,本申請上述實(shí)施例可以作為一個獨(dú)立的應(yīng)用程序,也可以作為一 個加密插件安裝在終端的應(yīng)用程序上,如安裝在第三方應(yīng)用程序上;并且,上述實(shí)施例可以因應(yīng)用場景的不同而確定待加密數(shù)據(jù)中的敏感數(shù)據(jù),對該待加密數(shù)據(jù)全部或部分進(jìn)行加密,如僅加密待加密數(shù)據(jù)中的敏感數(shù)據(jù)。
其中,敏感數(shù)據(jù)為:記錄有若不當(dāng)使用或未經(jīng)授權(quán)被人接觸或修改會不利于國家利益或聯(lián)邦政府計(jì)劃的實(shí)行或不利于個人依法享有的個人隱私權(quán)的所有信息的數(shù)據(jù)。
如,對于訂單數(shù)據(jù)來說,可以確定加密訂單數(shù)據(jù)中的交易對象的姓名、身份證號、家庭地址等信息為敏感信息,在對該訂單加密時僅加密這些加密信息,可以將整個訂單信息都加密;對于公司機(jī)密文件來說,可能該機(jī)密文件全部都被確定為敏感信息。
本申請對待加密數(shù)據(jù)的形式和上述實(shí)施例的應(yīng)用場景也不做限定,如數(shù)據(jù)形式可以為數(shù)據(jù)流和數(shù)據(jù)庫等。
可選地,若上述實(shí)施例應(yīng)用在從源頭訂閱和傳輸加密數(shù)據(jù)的場景中,信息發(fā)放平臺(如網(wǎng)絡(luò)交易平臺)在獲取到信息訂閱請求(如下載信息的請求)之后,確定該被訂閱的信息為待加密數(shù)據(jù),信息發(fā)放平臺從密鑰服務(wù)器(如加密中心)獲得密鑰,加密被訂閱信息中的敏感數(shù)據(jù),然后傳輸給信息處理端(如發(fā)出訂閱請求的終端),信息處理端在需要時對敏感數(shù)據(jù)解密。
可選地,若上述實(shí)施例應(yīng)用在自行加解密在已經(jīng)在數(shù)據(jù)庫/磁盤上的數(shù)據(jù)的應(yīng)用場景中,數(shù)據(jù)庫/磁盤所運(yùn)行的終端從密鑰服務(wù)器獲得密鑰后,可以對需要保存在數(shù)據(jù)庫和磁盤上的數(shù)據(jù)加解密。
具體地,系統(tǒng)還可以包括:如圖9所示的第二終端95,用于在需對加密結(jié)果進(jìn)行解密時,對加密結(jié)果進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本,生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器;密鑰服務(wù)器,用于查找與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型,并將解密密鑰和解密密鑰的算法類型返回至第二終端,其中,第二終端還用于根據(jù)解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果。
在上述實(shí)施例中,在需要對加密結(jié)果(即待解密數(shù)據(jù))進(jìn)行解密時,需要解密的終端對該加密結(jié)果進(jìn)行解析,解析出兩個部分:密文數(shù)據(jù)和密鑰版本。該需要解密的終端基于該密鑰版本生成解密密鑰請求,即,生成攜帶有密鑰版本的解密密鑰請求,將該解密密鑰請求發(fā)送至密鑰服務(wù)器,密鑰服務(wù)器接收到該解密密鑰請求之后,從數(shù)據(jù)庫中查找與該密鑰版本對應(yīng)的解密密鑰和該解密密鑰的算法類型,并將該解密密鑰和解密密鑰的算法類型攜帶在解密密鑰請求的響應(yīng)信息中,該發(fā)送解密密鑰氫氣肚餓終端接收到該響應(yīng)信息之后,利用解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得 到明文數(shù)據(jù)(即解密結(jié)果),解密成功。
通過上述實(shí)施例,由于在加密時,在加密結(jié)果中攜帶了密文版本,并且將密鑰都存儲在密鑰服務(wù)器上,因此,在解密時,通過密鑰版本可以從密鑰服務(wù)器上述獲取版本正確的解密密鑰。在該實(shí)施例中,即便是“加密結(jié)果”(即待解密數(shù)據(jù))的加密密鑰的版本很低,也可以直接從密鑰服務(wù)器上讀到正確的解密密鑰,而如果將密鑰存在終端本地由于版本過低,可能已經(jīng)丟棄從而無法解密;而上述方案,則不存在現(xiàn)有技術(shù)中的問題,本申請的方案可以兼容多種版本的密鑰。
在上述實(shí)施例中,為了使過去的密文仍然有能夠被解密的能力,我們在加密結(jié)果中帶上了若干字節(jié)的“版本標(biāo)記”(即上文的密鑰版本),而密鑰管理中心(即上述的密鑰服務(wù)器)會保存所有版本的密鑰,當(dāng)請求方需要解密的舊版本密文時,可以向密鑰管理中心請求對應(yīng)舊密鑰,這樣就解決了密鑰變換的時候,新舊版本密文的使用銜接問題。
在一個可選的實(shí)施例中,在將密文數(shù)據(jù)和加密密鑰的密鑰版本作為待加密數(shù)據(jù)的加密結(jié)果之后,對加密結(jié)果進(jìn)行編碼處理,以將加密結(jié)果編碼為可讀的信息;并將編碼后的加密結(jié)果作為待加密數(shù)據(jù)的加密結(jié)果。
其中,上述實(shí)施例中對待加密數(shù)據(jù)進(jìn)行加密得到的密文數(shù)據(jù)為二進(jìn)制密文,該密文數(shù)據(jù)中可能會有亂碼或者其他無法識別的信息,將該加密結(jié)果進(jìn)行編碼后,編碼后的加密結(jié)果都是可讀、可打印的,用戶也可以通過肉眼識別這些信息。
在上述實(shí)施例中,在終端需解密加密結(jié)果(實(shí)質(zhì)上該加密結(jié)果為編碼后的加密結(jié)果)時,先對其進(jìn)行解碼得到解碼后的加密結(jié)果,然后對解碼后的加密結(jié)果進(jìn)行解碼。
如圖10所示,密鑰服務(wù)器93上的密鑰管理中心的安全能力較強(qiáng),數(shù)據(jù)處理端97(包括上述的第一終端和第二終端),安全能力較弱,可能發(fā)生密鑰泄露,需要定期更換密鑰,通過上述實(shí)施例中的方案,通過密鑰服務(wù)器更新密鑰,數(shù)據(jù)處理端無需更新密鑰,只需在有需求的時候想服務(wù)器請求密鑰,從系統(tǒng)角度考慮,無需多個數(shù)據(jù)處理端更新密鑰的事件,提高了整個系統(tǒng)事件的處理性能。
該實(shí)施例中的具體加密和解密的實(shí)現(xiàn)方法與上述實(shí)施例中的實(shí)現(xiàn)方法一致,在此不再贅述。
實(shí)施例5
根據(jù)本申請的上述實(shí)施例,本申請?zhí)峁┝巳鐖D11所示的數(shù)據(jù)加密的裝置。圖11是根據(jù)本申請實(shí)施例的數(shù)據(jù)加密的裝置的示意圖。
如圖11所示該裝置包括:第一生成單元110、第一接收單元111以及加密單元112。
其中,第一生成單元,用于在獲取待加密數(shù)據(jù)之后,終端生成用于請求加密密鑰的加密密鑰請求,并將加密密鑰請求發(fā)送至密鑰服務(wù)器;
第一接收單元,用于接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息,其中,響應(yīng)信息中至少包括:加密密鑰和加密密鑰對應(yīng)的算法類型;
加密單元,用于利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行加密時,終端向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度;另外,在上述實(shí)施例中只要獲取到待加密數(shù)據(jù)即可加密,也即可以在數(shù)據(jù)傳輸之前就已經(jīng)加密,而不是在傳輸端口才加密,這樣即便終端本地被攻擊,也可以保證數(shù)據(jù)的安全。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了加密密鑰和待加密數(shù)據(jù)的安全。
可選地,上述響應(yīng)信息中還包括:加密密鑰的密鑰版本,該裝置還包括如圖11所示的:確定單元113,用于在得到密文數(shù)據(jù)之后,將密文數(shù)據(jù)和加密密鑰的密鑰版本作為待加密數(shù)據(jù)的加密結(jié)果;輸出單元114,用于輸出待加密數(shù)據(jù)的加密結(jié)果。
上述實(shí)施例中的密鑰服務(wù)器上保存有所有版本的密鑰和密鑰對應(yīng)的算法類型;其中的待加密數(shù)據(jù)可以是:任意需加密的數(shù)據(jù),如網(wǎng)絡(luò)交易平臺上的訂單數(shù)據(jù)、已經(jīng)存儲在數(shù)據(jù)庫或磁盤中的數(shù)據(jù)以及各種第三方應(yīng)用程序保留和/或生成的數(shù)據(jù)等。
需要說明的是,本申請上述實(shí)施例可以作為一個獨(dú)立的應(yīng)用程序,也可以作為一個加密插件安裝在終端的應(yīng)用程序上,如安裝在第三方應(yīng)用程序上;并且,上述實(shí)施例可以因應(yīng)用場景的不同而確定待加密數(shù)據(jù)中的敏感數(shù)據(jù),對該待加密數(shù)據(jù)全部或部分進(jìn)行加密,如僅加密待加密數(shù)據(jù)中的敏感數(shù)據(jù)。
可選地,裝置還可以包括:如圖11所示的解析單元115,用于在需對加密結(jié)果進(jìn)行解密時,對加密結(jié)果進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本;第二生成單元116,用于生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器,其中,解密密鑰請求用于密鑰服務(wù)器查找與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型;解密單元117,用于根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果。
在上述實(shí)施例中,在需要對加密結(jié)果(即待解密數(shù)據(jù))進(jìn)行解密時,需要解密的終端對該加密結(jié)果進(jìn)行解析,解析出兩個部分:密文數(shù)據(jù)和密鑰版本。該需要解密的終端基于該密鑰版本生成解密密鑰請求,即,生成攜帶有密鑰版本的解密密鑰請求,將該解密密鑰請求發(fā)送至密鑰服務(wù)器,密鑰服務(wù)器接收到該解密密鑰請求之后,從數(shù)據(jù)庫中查找與該密鑰版本對應(yīng)的解密密鑰和該解密密鑰的算法類型,并將該解密密鑰和解密密鑰的算法類型攜帶在解密密鑰請求的響應(yīng)信息中,該發(fā)送解密密鑰氫氣肚餓終端接收到該響應(yīng)信息之后,利用解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到明文數(shù)據(jù)(即解密結(jié)果),解密成功。
通過上述實(shí)施例,由于在加密時,在加密結(jié)果中攜帶了密文版本,并且將密鑰都存儲在密鑰服務(wù)器上,因此,在解密時,通過密鑰版本可以從密鑰服務(wù)器上述獲取版本正確的解密密鑰。在該實(shí)施例中,即便是“加密結(jié)果”(即待解密數(shù)據(jù))的加密密鑰的版本很低,也可以直接從密鑰服務(wù)器上讀到正確的解密密鑰,而如果將密鑰存在終端本地由于版本過低,可能已經(jīng)丟棄從而無法解密;而上述方案,則不存在現(xiàn)有技術(shù)中的問題,本申請的方案可以兼容多種版本的密鑰。
可選地,裝置還可以包括:讀取單元,用于在接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息之前,密鑰服務(wù)器從數(shù)據(jù)庫中讀取最新版本的加密密鑰;第三生成單元,用于基于加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本生成響應(yīng)信息;緩存單元,用于在接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息之后,將加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本在終端的內(nèi)存中緩存預(yù)設(shè)時間段。
可選地,第一生成單元求包括:獲取模塊,用于獲取終端的內(nèi)存中最后一次緩存加密密鑰的緩存時間;計(jì)算模塊,用于計(jì)算緩存時間與終端的當(dāng)前系統(tǒng)時間的時間差;生成模塊,用于若時間差超過預(yù)設(shè)時間閾值,則生成加密密鑰請求;讀取模塊,用于若時間差未超過預(yù)設(shè)時間閾值,則讀取緩存的加密密鑰、加密密鑰的算法類型以及加密密鑰的密鑰版本。
可選地,加密單元包括:調(diào)取模塊,用于調(diào)取算法類型所指向的加密算法;密文計(jì)算單元,用于利用加密密鑰,根據(jù)加密算法計(jì)算待加密數(shù)據(jù)的二進(jìn)制密文,將二進(jìn)制密文作為密文數(shù)據(jù)。
本申請的上述實(shí)施例,可以解決因系統(tǒng)或應(yīng)用被攻擊導(dǎo)致的敏感信息泄漏問題,具體地可以實(shí)現(xiàn):
(1)同時支持兩種使用方式:從源頭訂閱和傳輸加密數(shù)據(jù);信息發(fā)放平臺從加密中心獲得密鑰,加密訂單中的敏感數(shù)據(jù),然后傳輸給信息處理端。信息處理段在需要 時對敏感數(shù)據(jù)解密;僅使用加解密服務(wù),自行加解密在已經(jīng)在數(shù)據(jù)庫/磁盤上的數(shù)據(jù)。信息處理中心獲得密鑰后,可以對需要保存在數(shù)據(jù)庫和磁盤上的數(shù)據(jù)加解密。
(2)加解密密鑰的安全存儲、管理和分發(fā)。由于加密本身是為了防止本地信息被竊取,因此密鑰儲存在本地就是不合適的。在本申請方案中,密鑰不會保存在服務(wù)器硬盤上,而將由安全等級比較高的安全中心管理所有密鑰,并提供“密鑰獲取”接口,而服務(wù)器通過身份驗(yàn)證來動態(tài)獲得密鑰,保證了密鑰的安全和及時更新。
(3)版本策略。為了使過去的密文仍然有能夠被解密的能力,我們在密文中帶上了若干字節(jié)的“版本標(biāo)記”(即密鑰版本),而密鑰管理中心會保存所有版本的密鑰。當(dāng)請求方需要解密的舊版本密文時,可以向密鑰管理中心請求對應(yīng)舊密鑰,密鑰可以兼容多版本的密文。
(4)密鑰和加解密算法管理作為密鑰的“屬性”,通過安全中心的管理,以及SDK的包裝,使得這些實(shí)現(xiàn)細(xì)節(jié)不需要密鑰的使用方關(guān)心,用戶操作簡單便捷安全。
本實(shí)施例中所提供的各個模塊與方法實(shí)施例對應(yīng)步驟所提供的使用方法相同、應(yīng)用場景也可以相同。當(dāng)然,需要注意的是,上述模塊涉及的方案可以不限于上述實(shí)施例中的內(nèi)容和場景,且上述模塊可以運(yùn)行在計(jì)算機(jī)終端或移動終端,可以通過軟件或硬件實(shí)現(xiàn)。
實(shí)施例6
根據(jù)本申請的上述實(shí)施例,本申請?zhí)峁┝巳鐖D12所示的數(shù)據(jù)解密的裝置。圖12是根據(jù)本申請實(shí)施例的數(shù)據(jù)解密的裝置的示意圖。
如圖12所示該裝置包括:獲取單元121、解析單元123、生成單元125、接收單元127以及解密單元129。
其中,獲取單元,用于終端獲取用于解密待解密數(shù)據(jù)的解密請求,其中,待解密數(shù)據(jù)為包括密文數(shù)據(jù)和密鑰版本的加密結(jié)果;
解析單元,用于對待解密數(shù)據(jù)進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本;
生成單元,用于生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器,其中,解密密鑰請求用于密鑰服務(wù)器查找與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型;
接收單元,用于接收密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型;
解密單元,用于根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文 數(shù)據(jù),得到解密結(jié)果。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行解密時,終端基于密鑰版本向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度;另外,在上述實(shí)施例中在需要解密時才解密,也即可以在數(shù)據(jù)傳輸之后仍保持加密的狀態(tài),而不是在傳輸端口就解密,這樣即便終端本地被攻擊,也可以保證數(shù)據(jù)的安全。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的解密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了解密密鑰和待解密數(shù)據(jù)的安全。
本申請實(shí)施例對解密的場景不做限定,如:數(shù)據(jù)流解密、數(shù)據(jù)庫解密、在本地保留和管理的經(jīng)上述實(shí)施例的方案加密得到的加密結(jié)果的解密。
在上述實(shí)施例中,在需要對加密結(jié)果(即待解密數(shù)據(jù))進(jìn)行解密時,需要解密的終端對該加密結(jié)果進(jìn)行解析,解析出兩個部分:密文數(shù)據(jù)和密鑰版本。該需要解密的終端基于該密鑰版本生成解密密鑰請求,即,生成攜帶有密鑰版本的解密密鑰請求,將該解密密鑰請求發(fā)送至密鑰服務(wù)器,密鑰服務(wù)器接收到該解密密鑰請求之后,從數(shù)據(jù)庫中查找與該密鑰版本對應(yīng)的解密密鑰和該解密密鑰的算法類型,并將該解密密鑰和解密密鑰的算法類型攜帶在解密密鑰請求的響應(yīng)信息中,該發(fā)送解密密鑰氫氣肚餓終端接收到該響應(yīng)信息之后,利用解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到明文數(shù)據(jù)(即解密結(jié)果),解密成功。
通過上述實(shí)施例,由于在加密時,在加密結(jié)果中攜帶了密文版本,并且將密鑰都存儲在密鑰服務(wù)器上,因此,在解密時,通過密鑰版本可以從密鑰服務(wù)器上述獲取版本正確的解密密鑰。在該實(shí)施例中,即便是“加密結(jié)果”(即待解密數(shù)據(jù))的加密密鑰的版本很低,也可以直接從密鑰服務(wù)器上讀到正確的解密密鑰,而如果將密鑰存在終端本地由于版本過低,可能已經(jīng)丟棄從而無法解密;而上述方案,則不存在現(xiàn)有技術(shù)中的問題,本申請的方案可以兼容多種版本的密鑰。
在上述實(shí)施例中,為了使過去的密文仍然有能夠被解密的能力,我們在加密結(jié)果中帶上了若干字節(jié)的“版本標(biāo)記”(即上文的密鑰版本),而密鑰管理中心(即上述的密鑰服務(wù)器)會保存所有版本的密鑰,當(dāng)請求方需要解密的舊版本密文時,可以向密鑰管理中心請求對應(yīng)舊密鑰,這樣就解決了密鑰變換的時候,新舊版本密文的使用銜接問題。
可選地,裝置還包括:緩存單元,用于在接收密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型之后,將解密密鑰、解密密鑰的算法類型以及密鑰版本在終端的內(nèi)存中緩存預(yù)設(shè)時間段。
可選地,生成單元包括:判斷模塊,用于判斷終端的內(nèi)存中是否緩存有與密鑰版本對應(yīng)的解密密鑰;讀取模塊,用于若終端的內(nèi)存中緩存有與密鑰版本對應(yīng)的解密密鑰,則讀取緩存的解密密鑰、解密密鑰的算法類型以及解密密鑰的密鑰版本;生成模塊,用于若終端的內(nèi)存中未緩存與密鑰版本對應(yīng)的解密密鑰,則生成解密密鑰請求。
可選地,解密單元包括:調(diào)取模塊,用于調(diào)取算法類型所指向的解密算法;解密模塊,用于利用解密密鑰,根據(jù)解密算法解密密文數(shù)據(jù),得到解密結(jié)果。
本實(shí)施例中所提供的各個模塊與方法實(shí)施例對應(yīng)步驟所提供的使用方法相同、應(yīng)用場景也可以相同。當(dāng)然,需要注意的是,上述模塊涉及的方案可以不限于上述實(shí)施例中的內(nèi)容和場景,且上述模塊可以運(yùn)行在計(jì)算機(jī)終端或移動終端,可以通過軟件或硬件實(shí)現(xiàn)。
實(shí)施例7
本申請還提供了一種密鑰請求的處理裝置,該裝置包括:
接收單元,用于接收終端發(fā)送的用于獲取密鑰的密鑰請求,其中,密鑰請求包括加密密鑰請求和解密密鑰請求;
加密處理單元,用于若密鑰請求為加密密鑰請求,則從數(shù)據(jù)庫中讀取最新版本的加密密鑰和加密密鑰的算法類型,基于加密密鑰和加密密鑰的算法類型返回至終端;
解密處理單元,用于若密鑰請求為解密密鑰請求,則從解密密鑰請求中獲取密鑰版本,從數(shù)據(jù)庫中讀取與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型,將解密密鑰和解密密鑰的算法類型返回至終端。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行加解密時,終端向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了加密密鑰和待加密數(shù)據(jù)的安全。
上述實(shí)施例中,可以在從數(shù)據(jù)庫中讀取最新版本的加密密鑰和加密密鑰的算法類 型的同時,讀取該加密密鑰的密鑰版本;以及在基于加密密鑰和加密密鑰的算法類型返回至終端的同時,將加密密鑰的密鑰版本返回至該終端,以供第一終端生成密文數(shù)據(jù)后,將加密密鑰和密文數(shù)據(jù)作為待加密數(shù)據(jù)的加密結(jié)果。
本實(shí)施例中所提供的各個模塊與方法實(shí)施例對應(yīng)步驟所提供的使用方法相同、應(yīng)用場景也可以相同。當(dāng)然,需要注意的是,上述模塊涉及的方案可以不限于上述實(shí)施例中的內(nèi)容和場景,且上述模塊可以運(yùn)行在計(jì)算機(jī)終端或移動終端,可以通過軟件或硬件實(shí)現(xiàn)。
實(shí)施例8
本申請的實(shí)施例可以提供一種計(jì)算機(jī)終端,該計(jì)算機(jī)終端可以是計(jì)算機(jī)終端群中的任意一個計(jì)算機(jī)終端設(shè)備,如圖13所示的網(wǎng)絡(luò)環(huán)境圖中的終端97(即上述的信息處理端)與密鑰服務(wù)器93通過網(wǎng)絡(luò)連接??蛇x地,在本實(shí)施例中,上述計(jì)算機(jī)終端也可以替換為移動終端等終端設(shè)備。
可選地,在本實(shí)施例中,上述計(jì)算機(jī)終端可以位于計(jì)算機(jī)網(wǎng)絡(luò)的多個網(wǎng)絡(luò)設(shè)備中的至少一個網(wǎng)絡(luò)設(shè)備。
在本實(shí)施例中,上述計(jì)算機(jī)終端可以執(zhí)行數(shù)據(jù)加密方法中以下步驟:
在獲取待加密數(shù)據(jù)之后,終端生成用于請求加密密鑰的加密密鑰請求,并將加密密鑰請求發(fā)送至密鑰服務(wù)器;接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息,其中,響應(yīng)信息中至少包括:加密密鑰和加密密鑰對應(yīng)的算法類型;利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)。
在本實(shí)施例中,上述計(jì)算機(jī)終端可以執(zhí)行數(shù)據(jù)解密方法中以下步驟:
終端獲取用于解密待解密數(shù)據(jù)的解密請求,其中,待解密數(shù)據(jù)為包括密文數(shù)據(jù)和密鑰版本的加密結(jié)果;對待解密數(shù)據(jù)進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本;生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器,其中,解密密鑰請求用于密鑰服務(wù)器查找與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型;接收密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型;根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果。
在本實(shí)施例中,上述計(jì)算機(jī)終端可以執(zhí)行數(shù)據(jù)解密方法中以下步驟:
接收終端發(fā)送的用于獲取密鑰的密鑰請求,其中,密鑰請求包括加密密鑰請求和解密密鑰請求;若密鑰請求為加密密鑰請求,則從數(shù)據(jù)庫中讀取最新版本的加密密鑰和加密密鑰的算法類型,基于加密密鑰和加密密鑰的算法類型返回至終端;若密鑰請 求為解密密鑰請求,則從解密密鑰請求中獲取密鑰版本,從數(shù)據(jù)庫中讀取與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型,將解密密鑰和解密密鑰的算法類型返回至終端。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行加解密時,終端向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了加密密鑰和待加密數(shù)據(jù)的安全。
本領(lǐng)域普通技術(shù)人員可以理解,上述圖13所示的網(wǎng)絡(luò)結(jié)構(gòu)僅為示意。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:閃存盤、只讀存儲器(Read-Only Memory,ROM)、隨機(jī)存取器(Random Access Memory,RAM)、磁盤或光盤等。
實(shí)施例9
本申請的實(shí)施例還提供了一種存儲介質(zhì)。可選地,在本實(shí)施例中,上述存儲介質(zhì)可以用于保存上述實(shí)施例一所提供的方法所執(zhí)行的程序代碼。
可選地,在本實(shí)施例中,上述存儲介質(zhì)可以位于計(jì)算機(jī)網(wǎng)絡(luò)中計(jì)算機(jī)終端群中的任意一個計(jì)算機(jī)終端中,或者位于移動終端群中的任意一個移動終端中。
可選地,在本實(shí)施例中,存儲介質(zhì)被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:
在獲取待加密數(shù)據(jù)之后,終端生成用于請求加密密鑰的加密密鑰請求,并將加密密鑰請求發(fā)送至密鑰服務(wù)器;接收密鑰服務(wù)器基于加密密鑰請求返回的響應(yīng)信息,其中,響應(yīng)信息中至少包括:加密密鑰和加密密鑰對應(yīng)的算法類型;利用加密密鑰和算法類型對待加密數(shù)據(jù)加密,得到密文數(shù)據(jù)。
可選地,在本實(shí)施例中,存儲介質(zhì)被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:
終端獲取用于解密待解密數(shù)據(jù)的解密請求,其中,待解密數(shù)據(jù)為包括密文數(shù)據(jù)和密鑰版本的加密結(jié)果;對待解密數(shù)據(jù)進(jìn)行解析處理,得到密文數(shù)據(jù)和密鑰版本;生成攜帶有密鑰版本的解密密鑰請求,并將解密密鑰請求發(fā)送至密鑰服務(wù)器,其中,解密密鑰請求用于密鑰服務(wù)器查找與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型;接 收密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型;根據(jù)密鑰服務(wù)器返回的解密密鑰和解密密鑰的算法類型解密密文數(shù)據(jù),得到解密結(jié)果。
可選地,在本實(shí)施例中,存儲介質(zhì)被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:
接收終端發(fā)送的用于獲取密鑰的密鑰請求,其中,密鑰請求包括加密密鑰請求和解密密鑰請求;若密鑰請求為加密密鑰請求,則從數(shù)據(jù)庫中讀取最新版本的加密密鑰和加密密鑰的算法類型,基于加密密鑰和加密密鑰的算法類型返回至終端;若密鑰請求為解密密鑰請求,則從解密密鑰請求中獲取密鑰版本,從數(shù)據(jù)庫中讀取與密鑰版本對應(yīng)的解密密鑰和解密密鑰的算法類型,將解密密鑰和解密密鑰的算法類型返回至終端。
采用上述實(shí)施例,將密鑰統(tǒng)一保存在密鑰服務(wù)器上,由密鑰服務(wù)器負(fù)責(zé)密鑰的安全存儲和分發(fā),在需對數(shù)據(jù)進(jìn)行加解密時,終端向服務(wù)器請求密鑰,服務(wù)器基于該請求在線向終端配發(fā)密鑰和密鑰算法,該方案中無需各個終端在本地記錄密鑰,這樣即便是終端的本地信息被竊取,密鑰也不會被破解;在上述方案中,密鑰服務(wù)器在線動態(tài)配發(fā)密鑰相關(guān)信息,而不是使用固定密鑰、固定算法,增加了破解難度。通過上述實(shí)施例,解決了現(xiàn)有技術(shù)中的加密方式敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)高的問題,提高了加密密鑰和待加密數(shù)據(jù)的安全。
上述本申請實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本申請的上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成 的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可為個人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本申請的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請?jiān)淼那疤嵯?,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本申請的保護(hù)范圍。