本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,特別涉及一種數(shù)據(jù)保護方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,人們可以隨時隨地接入互聯(lián)網(wǎng),與不同地域不同行業(yè)的人進行即時的互動。基于互聯(lián)網(wǎng)技術(shù)帶來的便利性,各種云辦公協(xié)作系統(tǒng)應(yīng)運而生。云辦公模式打破了企業(yè)傳統(tǒng)的辦公室協(xié)作模式,目前很多企業(yè)正在往云辦公模式悄然進化。
云辦公模式,本質(zhì)上是通過云計算技術(shù),讓員工可以在任何時間任何地點接入網(wǎng)絡(luò)進行辦公,同時把企業(yè)進行以人為單位的細胞拆分,隨時進行重組合作。這樣從個體到團體進行效率激發(fā),又同時提高了員工舒適度降低了企業(yè)辦公成本,未來優(yōu)勢可想而知。
然而,互聯(lián)網(wǎng)技術(shù)的發(fā)展為人們生活,企業(yè)運營等帶來便利和高效的同時,也加大了數(shù)據(jù)安全的風險。近年來,各種數(shù)據(jù)安全事件層出不窮,據(jù)報道,2015年,全球61個國家出現(xiàn)79790起數(shù)據(jù)泄露事件,其中2122起已經(jīng)得到確認。
想讓基于互聯(lián)網(wǎng)技術(shù)的云辦公計算技術(shù)健康發(fā)展,必須解決數(shù)據(jù)安全問題?,F(xiàn)有的數(shù)據(jù)安全技術(shù)還停留在辦公室模式時代,其基本思想是對數(shù)據(jù)的流轉(zhuǎn)畫出一個邊界,數(shù)據(jù)在邊界之內(nèi)可以自由流轉(zhuǎn),但不能跨出邊界。這種數(shù)據(jù)安全技術(shù)已經(jīng)無法適應(yīng)云辦公時代的要求。
技術(shù)實現(xiàn)要素:
在云辦公時代,數(shù)據(jù)流轉(zhuǎn)是沒有邊界的。數(shù)據(jù)在哪兒并不重要,也不需要被關(guān)心。重要的是誰有權(quán)限對數(shù)據(jù)做什么樣的操作。為此,本發(fā)明實施例提供了一種通過對數(shù)據(jù)的使用權(quán)限進行管理來保護數(shù)據(jù)的方法,使得數(shù)據(jù)的使用在提高安全性的同時,能夠打破地域的限制。
具體而言,本發(fā)明實施例提供了一種數(shù)據(jù)保護方法,包括:在數(shù)據(jù)接收方要對來自數(shù)據(jù)發(fā)送方的經(jīng)過加密的數(shù)據(jù)進行解密時,檢查數(shù)據(jù)接收方是否有由數(shù)據(jù)發(fā)送方生成的且處于有效狀態(tài)的數(shù)字許可,如有則允許數(shù)據(jù)接收方使用在數(shù)據(jù)解密過程中所需的至少一個密鑰。
本發(fā)明實施例還提供了一種數(shù)據(jù)保護系統(tǒng),包括服務(wù)器,所述服務(wù)器包括:密鑰管理單元,其配置為基于數(shù)據(jù)發(fā)送方的請求而生成或存儲至少一個密鑰;驗證單元,其配置為基于數(shù)據(jù)接收方的請求而檢查數(shù)據(jù)接收方是否有對應(yīng)于該請求的處于有效狀態(tài)的數(shù)字許可,如有則允許數(shù)據(jù)接收方在對來自數(shù)據(jù)發(fā)送方的經(jīng)過加密的數(shù)據(jù)進行解密的過程中使用所述至少一個密鑰。
通過本發(fā)明實施例,數(shù)據(jù)接收方在得到來自數(shù)據(jù)發(fā)送方的加密數(shù)據(jù)后,需要向服務(wù)器提出申請來獲得數(shù)據(jù)解密過程所需的密鑰的使用權(quán),服務(wù)器檢查接收方是否有該密鑰的使用許可,如有則允許解密數(shù)據(jù),如果沒有則不允許解密數(shù)據(jù),通過對密鑰及其使用許可進行管理實現(xiàn)對數(shù)據(jù)解密權(quán)限的有效管理和控制,極大地提高了云辦公時代的數(shù)據(jù)安全性。
附圖說明
圖1為本發(fā)明的數(shù)據(jù)保護方法的一個實施方式的流程圖;
圖2為本發(fā)明的數(shù)據(jù)保護方法的另一個實施方式的流程圖;
圖3為本發(fā)明的數(shù)據(jù)保護方法的一個具體實施例的流程圖;
圖4為本發(fā)明的數(shù)據(jù)保護方法的另一個具體實施例的流程圖;
圖5為本發(fā)明的數(shù)據(jù)保護方法的再一個具體實施例的流程圖;
圖6為本發(fā)明的數(shù)據(jù)保護系統(tǒng)的一個實施方式的框圖。
具體實施方式
下面參照附圖對本發(fā)明的實施方式進行詳細說明。
圖1為本發(fā)明的數(shù)據(jù)保護方法的一個實施方式的流程圖。
如圖1所示,本實施方式的數(shù)據(jù)保護方法包括:
s101、數(shù)據(jù)接收方要對來自數(shù)據(jù)發(fā)送方的經(jīng)過加密的數(shù)據(jù)進行解密;
數(shù)據(jù)發(fā)送方可將經(jīng)過加密的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方,該加密的數(shù)據(jù)是由數(shù)據(jù)發(fā)送方使用數(shù)據(jù)加密密鑰加密后生成并發(fā)送的。數(shù)據(jù)加密密鑰可以由數(shù)據(jù)發(fā)送方生成后在服務(wù)器中進行備份,或者也可以由服務(wù)器響應(yīng)于數(shù)據(jù)發(fā)送方的請求而生成數(shù)據(jù)加密密鑰。
s102、檢查數(shù)據(jù)接收方是否有由數(shù)據(jù)發(fā)送方生成的且處于有效狀態(tài)的數(shù)字許可;
在本發(fā)明各個實施方式中,數(shù)據(jù)接收方在從數(shù)據(jù)發(fā)送方獲得經(jīng)過加密的數(shù)據(jù)后,并不能直接從數(shù)據(jù)接收方獲得數(shù)據(jù)加密密鑰或直接使用密鑰對數(shù)據(jù)進行解密,而是需要先由服務(wù)器檢查數(shù)據(jù)接收方是否擁有合法有效的數(shù)字許可。
合法的數(shù)據(jù)接收方會持有數(shù)據(jù)發(fā)送方頒發(fā)的數(shù)字許可。數(shù)據(jù)發(fā)送方可以生成數(shù)字許可后發(fā)送給數(shù)據(jù)接收方,或者將數(shù)字許可發(fā)送給服務(wù)器。數(shù)據(jù)發(fā)送方也可以在服務(wù)器上為數(shù)據(jù)發(fā)送方生成數(shù)字許可。服務(wù)器收到數(shù)字許可后可進行存儲,或者轉(zhuǎn)發(fā)給數(shù)據(jù)接收方。
在數(shù)字許可中例如可限制接收方對數(shù)據(jù)的使用次數(shù)、使用期限、是否可轉(zhuǎn)發(fā)他人使用、接收方的權(quán)限是否僅限于轉(zhuǎn)發(fā)、是否允許修改數(shù)據(jù)等。
作為備選,在本發(fā)明一個實施方式中,在數(shù)字許可中可以例如限制接收方對數(shù)據(jù)加密密鑰的使用次數(shù)、使用期限等。
服務(wù)器對數(shù)字許可的檢查可以例如由數(shù)據(jù)接收方發(fā)起的密鑰使用請求而觸發(fā),或者也可以例如在數(shù)據(jù)接收方從服務(wù)器獲得數(shù)據(jù)加密密鑰后對數(shù)據(jù)進行解密的動作來觸發(fā)檢查。
s103、如有,則允許數(shù)據(jù)接收方使用在數(shù)據(jù)解密過程中所需的至少一個密鑰;
在本發(fā)明實施方式中,數(shù)據(jù)加密密鑰可以是一組直接或者間接的用于加解密數(shù)據(jù)的密鑰及管理和使用該組密鑰所需要的相關(guān)數(shù)據(jù)的集合。
數(shù)據(jù)接收方可以通過向服務(wù)器提出密鑰使用請求而獲得數(shù)據(jù)解密過程中所需的密鑰或使用密鑰所需的相關(guān)數(shù)據(jù),在服務(wù)器通過檢查確定數(shù)據(jù)接收方持有數(shù)據(jù)發(fā)送方頒發(fā)的處于有效狀態(tài)的數(shù)字許可時,確定數(shù)據(jù)接收方擁有對加密數(shù)據(jù)進行解密的權(quán)限,則向數(shù)據(jù)接收方發(fā)送數(shù)據(jù)加密密鑰或?qū)?shù)據(jù)加密密鑰進行加密的密鑰等數(shù)據(jù)解密過程所需的密鑰,或發(fā)送使用密鑰所需的相關(guān)數(shù)據(jù)。
服務(wù)器可以在下發(fā)密鑰或其使用相關(guān)數(shù)據(jù)之前或之后對數(shù)據(jù)接收方是否擁有合法有效的數(shù)字許可進行檢查。只有在通過服務(wù)器的檢查后,數(shù)據(jù)接收方才能獲得使用解密過程所需密鑰或與密鑰的使用相關(guān)數(shù)據(jù)的權(quán)限,從而對加密的數(shù)據(jù)進行解密使用。
通過本發(fā)明實施例,數(shù)據(jù)接收方在得到來自數(shù)據(jù)發(fā)送方的加密數(shù)據(jù)后,需要向服務(wù)器提出申請來獲得數(shù)據(jù)解密過程所需的密鑰的使用權(quán),服務(wù)器檢查接收方是否有該密鑰的使用許可,如有則允許解密數(shù)據(jù),如果沒有則不允許解密數(shù)據(jù),通過對密鑰及其使用許可進行管理實現(xiàn)對數(shù)據(jù)加解密的有效管理和控制,極大地提高了云辦公時代的數(shù)據(jù)安全性。
作為示例,在本發(fā)明實施方式中,s103可以具體實施為,服務(wù)器響應(yīng)于數(shù)據(jù)接收方的請求或在檢查確定存在有效數(shù)字許可后,根據(jù)所述數(shù)字許可中的許可信息而允許數(shù)據(jù)接收方使用服務(wù)器上的所述至少一個密鑰中的相應(yīng)密鑰和/或在使用所述相應(yīng)密鑰時所需的相關(guān)數(shù)據(jù)。
在本發(fā)明上述實施方式中,加密的數(shù)據(jù)可以通過采用多個密鑰對目標數(shù)據(jù)進行加密而生成。例如,將數(shù)據(jù)劃分為多個部分,每個部分用不同的密鑰進行加密。相應(yīng)地,數(shù)字許可中可以不僅包括前述的限制接收方對數(shù)據(jù)加密密鑰的使用次數(shù)、使用期限等,還可以規(guī)定該數(shù)據(jù)接收方有權(quán)限使用的那部分密鑰。數(shù)據(jù)接收方的最高權(quán)限為能夠使用對上述數(shù)據(jù)每個部分進行加密的密鑰。如此,服務(wù)器在檢查數(shù)據(jù)接收方的數(shù)字許可并確定有效后,可以將數(shù)字許可中記載的授權(quán)給數(shù)字接收方使用的那部分密鑰或者密鑰使用相關(guān)數(shù)據(jù)下發(fā)給數(shù)據(jù)接收方使用。
以這種方式,可以不必針對不同權(quán)限的用戶分別對數(shù)據(jù)進行不同地加密,而是可以通過對多個數(shù)據(jù)加密密鑰中的相應(yīng)密鑰進行許可使用的方式來實現(xiàn)讓不同權(quán)限的用戶獲得數(shù)據(jù)中其有權(quán)使用的部分。
在本發(fā)明一個實施方式中,數(shù)據(jù)接收方的終端上安裝有密鑰管理模塊,用于為用戶提供專業(yè)安全的密鑰管理服務(wù)。在這種情況下,s103可以具體實施為,服務(wù)器響應(yīng)于數(shù)據(jù)接收方的請求或在檢查確定存在有效數(shù)字許可后,向數(shù)據(jù)接收方的密鑰管理模塊發(fā)送至少一個密鑰和/或在使用所述至少一個密鑰時所需的相關(guān)數(shù)據(jù)。
在本發(fā)明上述實施方式中,通過為數(shù)據(jù)接收方的終端提供密鑰管理模塊,有關(guān)密鑰的請求、接收以及使用均可通過密鑰管理模塊進行,為數(shù)據(jù)接收方的用戶提供了便利。同時,數(shù)據(jù)發(fā)送方也可以通過其終端上的類似密鑰管理模塊來對密鑰的生成和使用進行管理。
在本發(fā)明進一步的實施方式中,上述密鑰管理模塊接收并使用的密鑰和/或所述使用密鑰所需的相關(guān)數(shù)據(jù)對于數(shù)據(jù)發(fā)送方的用戶或數(shù)據(jù)接收方的用戶不可見。在本發(fā)明該實施方式中,密鑰在由密鑰管理模塊和服務(wù)器構(gòu)成的系統(tǒng)中維護、使用和流轉(zhuǎn),數(shù)據(jù)發(fā)送方和/或數(shù)據(jù)接收方的用戶只能通過密鑰管理模塊使用密鑰,但無法看到具體的密鑰及其數(shù)據(jù)結(jié)構(gòu)。
例如,數(shù)據(jù)接收方的用戶在通過操作密鑰管理模塊向服務(wù)器提出密鑰使用申請并通過服務(wù)器對數(shù)據(jù)許可的檢查后,將從數(shù)據(jù)發(fā)送方獲得的加密數(shù)據(jù)導(dǎo)入密鑰管理模塊,由密鑰管理模塊在其內(nèi)部使用服務(wù)器下發(fā)的密鑰對數(shù)據(jù)進行解密后,將解密的數(shù)據(jù)導(dǎo)出。
此外,數(shù)據(jù)發(fā)送方的用戶也可以在有數(shù)據(jù)需要加密時,將需要加密的數(shù)據(jù)導(dǎo)入其終端上的密鑰管理模塊,由密鑰管理模塊在其內(nèi)部使用密鑰對數(shù)據(jù)進行加密后導(dǎo)出。通過本發(fā)明該實施方式,使得密鑰在生成、使用、傳遞的每個過程中均不可修改或復(fù)制,極大地提高了數(shù)據(jù)安全性。
圖2為本發(fā)明的數(shù)據(jù)保護方法的另一個實施方式的流程圖。
如圖2所示,在本實施方式中,數(shù)據(jù)保護方法包括:
s201、向數(shù)據(jù)接收方發(fā)送對所述數(shù)據(jù)加密時使用的密鑰的密文;
s202、檢查數(shù)據(jù)接收方是否有處于有效狀態(tài)的數(shù)字許可;
s203、如有,允許數(shù)據(jù)接收方獲得用于對密文進行解密的密鑰;
s204、如無,禁止數(shù)據(jù)接收方對密文進行解密。
在本實施方式中,在服務(wù)器檢查數(shù)據(jù)接收方是否有處于有效狀態(tài)的數(shù)字許可之前,可以直接向數(shù)據(jù)接收方發(fā)送對數(shù)據(jù)加密時使用的密鑰的密文,或者響應(yīng)于數(shù)據(jù)接收方的請求而向數(shù)據(jù)接收方發(fā)送該密文。該密文可以由服務(wù)器響應(yīng)于數(shù)據(jù)接收方的請求而發(fā)送,或者由服務(wù)器響應(yīng)于數(shù)據(jù)發(fā)送方的請求而發(fā)送給數(shù)據(jù)接收方,或者由數(shù)據(jù)發(fā)送方直接發(fā)送給數(shù)據(jù)接收方。
密鑰密文的發(fā)送方式不受限制,例如可以單獨發(fā)送,也可以與加密的數(shù)據(jù)同時發(fā)送,或者與數(shù)字許可一同發(fā)送給數(shù)據(jù)接收方。在密鑰密文與數(shù)字許可一同發(fā)送的情況下,還可以將密鑰密文包括在數(shù)字許可中。
在數(shù)據(jù)接收方的終端具備密鑰管理模塊的實施方式中,可以將該密文發(fā)送給數(shù)據(jù)接收方的密鑰管理模塊。
在本發(fā)明該實施方式中,數(shù)據(jù)接收方在獲得加密的數(shù)據(jù)后(或者在獲得加密的數(shù)據(jù)之前或同時),可直接從數(shù)據(jù)發(fā)送端或服務(wù)器獲得數(shù)據(jù)加密密鑰的密文,然后根據(jù)服務(wù)器對數(shù)字許可的檢查結(jié)果來確定是否能夠有權(quán)獲得對該密文進行解密的密鑰,進而用解密的數(shù)據(jù)加密密鑰對加密數(shù)據(jù)進行解密。本實施方式通過對數(shù)據(jù)加密密鑰進一步加密,能夠避免直接將數(shù)據(jù)加密密鑰進行傳送而可能產(chǎn)生的安全隱患。
在本發(fā)明各實施方式中,數(shù)據(jù)發(fā)送方可以只包括一個數(shù)據(jù)發(fā)送端,也可以包括多個數(shù)據(jù)發(fā)送端。當數(shù)據(jù)發(fā)送方只包括一個數(shù)據(jù)發(fā)送端時,由該數(shù)據(jù)發(fā)送端向數(shù)據(jù)接收方發(fā)送加密的數(shù)據(jù),并向該數(shù)據(jù)接收方頒發(fā)關(guān)于數(shù)據(jù)使用權(quán)限或密鑰使用權(quán)限的數(shù)字許可。
當數(shù)據(jù)發(fā)送方包括多個數(shù)據(jù)發(fā)送端時,例如,當一個數(shù)據(jù)發(fā)送端將經(jīng)過加密的數(shù)據(jù)發(fā)送給一個數(shù)據(jù)接收端后,向該數(shù)據(jù)接收端頒發(fā)數(shù)字許可以授權(quán)使用數(shù)據(jù),然后,該數(shù)據(jù)接收端可以成為新的數(shù)據(jù)發(fā)送端,將加密的數(shù)據(jù)發(fā)送給作為數(shù)據(jù)接收方的另一個數(shù)據(jù)接收端,這時,可以由該新的數(shù)據(jù)發(fā)送端向數(shù)據(jù)接收方頒發(fā)關(guān)于數(shù)據(jù)使用權(quán)限或密鑰使用權(quán)限的數(shù)字許可,從而原數(shù)據(jù)發(fā)送端和新的數(shù)據(jù)發(fā)送端共同構(gòu)成數(shù)據(jù)發(fā)送方。不過,本發(fā)明實施方式不限于此,例如,當該新的數(shù)據(jù)發(fā)送端只有轉(zhuǎn)發(fā)加密數(shù)據(jù)的權(quán)限時,數(shù)字許可仍由原數(shù)據(jù)發(fā)送端頒發(fā)給數(shù)據(jù)接收方。
在本發(fā)明一個實施方式中,數(shù)據(jù)接收方用戶可使用賬戶信息通過密鑰管理模塊登錄服務(wù)器,服務(wù)器能夠基于數(shù)據(jù)接收方登錄的用戶賬戶在服務(wù)器的存儲裝置中檢查數(shù)據(jù)接收方是否有所述處于有效狀態(tài)的數(shù)字許可。在本實施方式中,服務(wù)器可將該用戶的數(shù)字許可與其賬戶信息以及加密數(shù)據(jù)的標識號進行關(guān)聯(lián)存儲,以便于進行查詢。
在本發(fā)明一個實施方式中,可以對數(shù)字許可的一部分或全部用數(shù)據(jù)接收方的公鑰直接加密。如此,可以防止數(shù)字許可被數(shù)據(jù)接收方用戶以外的人冒用。
在本發(fā)明另一個實施方式中,可以對數(shù)字許可的一部分或全部用數(shù)據(jù)接收方的公鑰間接加密。例如,可以先用一個密鑰對數(shù)字許可的一部分或全部進行加密,然后將該密鑰用數(shù)據(jù)接收方的公鑰加密后發(fā)送給數(shù)據(jù)接收方。如此,可以進一步防止數(shù)字許可被數(shù)據(jù)接收方用戶以外的人冒用。
在本發(fā)明的各個實施方式種,可使用多種方式對數(shù)據(jù)進行加密。
例如,數(shù)據(jù)發(fā)送方可用一個以上密鑰對數(shù)據(jù)進行加密而生成加密的數(shù)據(jù)。當使用一個密鑰對數(shù)據(jù)加密時,服務(wù)器對持有合法數(shù)字許可的數(shù)據(jù)接收方下發(fā)該密鑰。當使用多個密鑰對數(shù)據(jù)的不同部分加密時,服務(wù)器可根據(jù)合法數(shù)字許可中記載的使用權(quán)限,將數(shù)據(jù)接收方有權(quán)使用的那些密鑰下發(fā)給數(shù)據(jù)接收方。
此外,數(shù)據(jù)發(fā)送方還可以用一個以上密鑰和接收方的公鑰對數(shù)據(jù)進行加密而生成加密數(shù)據(jù)。其中,可以先用該一個以上密鑰對數(shù)據(jù)進行加密后,再用接收方的公鑰進行加密,也可以先用接收方的公鑰對數(shù)據(jù)進行加密后再用該一個以上密鑰對數(shù)據(jù)進行加密。如此可以提高數(shù)據(jù)的安全性。
作為本發(fā)明一種實施方式,數(shù)據(jù)發(fā)送方可以先用第一預(yù)定密鑰對數(shù)據(jù)進行加密而生成加密的數(shù)據(jù),然后對該第一預(yù)定密鑰再進行加密。對第一預(yù)定密鑰再進行加密可以有多種實施方式,例如,可以直接用一個以上密鑰對第一預(yù)定密鑰進行加密,或者也可以用一個以上密鑰和接收方公鑰一起對第一預(yù)定密鑰的不同部分進行加密或者對第一預(yù)定密鑰先后進行加密。
此外,數(shù)據(jù)發(fā)送方可以先用第一預(yù)定密鑰對數(shù)據(jù)進行加密而生成加密的數(shù)據(jù),然后使用第二預(yù)定密鑰對第一預(yù)定密鑰加密后,再用一個以上密鑰和接收方公鑰一起對第二預(yù)定密鑰的不同部分進行加密或者對第二預(yù)定密鑰先后進行加密。
第一預(yù)定密鑰的密文和/或第二預(yù)定密鑰的密文可以與加密的數(shù)據(jù)一起發(fā)給數(shù)據(jù)接收方或可以分別發(fā)送給數(shù)據(jù)接收方,同時服務(wù)器保留上述的一個以上密鑰。服務(wù)器在驗證了數(shù)據(jù)接收方的數(shù)字許可后,將用于解密這些密鑰密文的密鑰和密鑰使用相關(guān)數(shù)據(jù)一同或分別下發(fā)給數(shù)據(jù)接收方。
本發(fā)明各實施方式中,數(shù)字許可包括關(guān)于數(shù)據(jù)的使用次數(shù)、使用期限和/或使用區(qū)域的許可信息,或者可以包括關(guān)于密鑰的使用次數(shù)、使用期限和/或使用區(qū)域的許可信息。可根據(jù)不同的實施方式采用不同類型的數(shù)字許可。
本發(fā)明各實施方式中,數(shù)據(jù)發(fā)送方可使用aes算法、camellia算法或des算法對數(shù)據(jù)進行加密而生成加密數(shù)據(jù),但本發(fā)明可使用的加密算法不限于這些算法,而是還可以使用多種自定義的加密算法。
圖3為本發(fā)明的數(shù)據(jù)保護方法的一個具體實施例的流程圖。
如圖3所示,本實施例包括在數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方分別執(zhí)行的步驟。
首先,在數(shù)據(jù)發(fā)送方包括如下步驟:
s301、創(chuàng)建數(shù)據(jù)加密密鑰
數(shù)據(jù)發(fā)送方可以通過其終端上的密鑰管理模塊在服務(wù)器中創(chuàng)建一個數(shù)據(jù)加密密鑰,或在密鑰管理模塊中創(chuàng)建數(shù)據(jù)加密密鑰后在服務(wù)器中進行備份。這里的數(shù)據(jù)加密密鑰是一組直接或者間接加解密數(shù)據(jù)的密鑰及管理和使用該組密鑰所需要的相關(guān)數(shù)據(jù)的集合,數(shù)據(jù)加密密鑰由密鑰安全系統(tǒng)(如服務(wù)器)維護,用戶只能使用數(shù)據(jù)加密密鑰而無法看到具體的密鑰和數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)發(fā)送方在創(chuàng)建數(shù)據(jù)加密密鑰時可以指定對數(shù)據(jù)加密的算法。數(shù)據(jù)加密算法可以是aes、camellia、des等標準加密算法,也可以是系統(tǒng)自定義的算法。
s302、加密數(shù)據(jù)
數(shù)據(jù)發(fā)送方使用s301中創(chuàng)建的數(shù)據(jù)加密密鑰對待發(fā)送的數(shù)據(jù)進行加密。對待發(fā)送數(shù)據(jù)加密過程可以包含使用數(shù)據(jù)接收方的公鑰參與數(shù)據(jù)的加密,用于增加安全性。具體可以使用數(shù)據(jù)接收方公鑰先對數(shù)據(jù)加密,然后使用數(shù)據(jù)加密密鑰做二次加密,還可以是由數(shù)據(jù)接收方公鑰和數(shù)據(jù)加密密鑰共同加密一個會話密鑰,該會話密鑰用于對數(shù)據(jù)進行加密。
s303、頒發(fā)許可
本步驟中,數(shù)據(jù)發(fā)送方給數(shù)據(jù)接收方頒發(fā)數(shù)據(jù)加密密鑰的使用許可。數(shù)據(jù)加密密鑰的使用許可是使用數(shù)據(jù)加密密鑰的憑證,只有擁有憑證的用戶才能使用數(shù)據(jù)加密密鑰。數(shù)據(jù)發(fā)送方在頒發(fā)數(shù)字許可給數(shù)據(jù)接收方的過程中可以使用接收方的公鑰對數(shù)字許可的部分或者全部內(nèi)容加密,以此防止數(shù)據(jù)許可被他人冒用。
需要注意的是,s303與s302的執(zhí)行順序不受限制,可以先執(zhí)行s302再執(zhí)行s303,也可以先執(zhí)行s303再執(zhí)行s302。
下面對圖3中數(shù)據(jù)接收方執(zhí)行的步驟進行說明。
s311、打開密鑰
本步驟中,數(shù)據(jù)接收方找到并打開密鑰。這里打開密鑰是指數(shù)據(jù)接收方向服務(wù)器提出使用密鑰的申請,并獲得使用密鑰相關(guān)上下文數(shù)據(jù)。打開密鑰的過程中可以包括服務(wù)器對數(shù)據(jù)接收方是否有使用密鑰的有效數(shù)字許可的檢查,如果有使用密鑰的有效數(shù)字許可,則服務(wù)器下發(fā)使用密鑰相關(guān)的上下文數(shù)據(jù)以使得數(shù)據(jù)接收方能成功的打開密鑰,否者就不能打開密鑰?;钪瑱z查數(shù)字許可也可以在s312中進行。
如果數(shù)據(jù)接收方在s03中對數(shù)字許可用接收方公鑰進行過加密,則在服務(wù)器檢查數(shù)字許可時或之前,數(shù)據(jù)接收方可以使用自己的私鑰解密數(shù)字許可中被加密的部分內(nèi)容。
s312、解密數(shù)據(jù)
本步驟中,數(shù)據(jù)接收方使用s311中獲得的使用密鑰相關(guān)上下文數(shù)據(jù)解密數(shù)據(jù)。
如果s311中沒有檢查數(shù)據(jù)接收方的密鑰使用許可,則應(yīng)在s312中包含對數(shù)據(jù)接收方是否有密鑰的使用許可的檢查。
在數(shù)據(jù)解密過程中,如果在s302中加密數(shù)據(jù)時使用了數(shù)據(jù)接收方公鑰參與數(shù)據(jù)或密鑰的加密運算,則s312中對數(shù)據(jù)或密鑰解密時也要使用接收方私鑰才能正確的解密。此外,如果在s302中用會話密鑰對數(shù)據(jù)進行加密后由數(shù)據(jù)接收方公鑰和數(shù)據(jù)加密密鑰共同加密會話密鑰,則s312的解密過程包括使用接收者私鑰和數(shù)據(jù)加密密鑰解密會話密鑰。
圖4為本發(fā)明的數(shù)據(jù)保護方法的一個具體實施例的流程圖。
如圖4所示,本實施例中數(shù)據(jù)發(fā)送方的終端安裝有作為密鑰管理模塊的安全中間件ss以及數(shù)據(jù)發(fā)送端app(應(yīng)用程序),數(shù)據(jù)接收方的終端安裝有作為密鑰管理模塊的安全中間件ss以及數(shù)據(jù)接收端app,并且兩個ss各連接到授權(quán)管理服務(wù)器上。
根據(jù)圖4所示,數(shù)據(jù)發(fā)送端app首先通過ss在授權(quán)管理服務(wù)器上創(chuàng)建一個數(shù)據(jù)加密密鑰,同時數(shù)據(jù)發(fā)送端的ss也可以使用該數(shù)據(jù)加密密鑰。
然后,數(shù)據(jù)發(fā)送端app將需要加密的數(shù)據(jù)提交給數(shù)據(jù)發(fā)送端的ss,由數(shù)據(jù)發(fā)送端的ss使用之前在服務(wù)器上創(chuàng)建的數(shù)據(jù)加密密鑰加密數(shù)據(jù),并返回經(jīng)過加密的數(shù)據(jù)給數(shù)據(jù)發(fā)送端app。ss在加密數(shù)據(jù)的過程中可以使用接收方公鑰與數(shù)據(jù)加密密鑰共同加密數(shù)據(jù),例如先使用會話密鑰加密數(shù)據(jù),然后使用接收方公鑰和數(shù)據(jù)加密密鑰共同加密會話密鑰。
加密數(shù)據(jù)后,數(shù)據(jù)發(fā)送端通過ss給數(shù)據(jù)接收端頒發(fā)數(shù)據(jù)加密密鑰的數(shù)字許可。在頒發(fā)數(shù)據(jù)加密密鑰的數(shù)字許可的過程中可以使用接收方公鑰對數(shù)字許可的部分或者全部內(nèi)容加密。
數(shù)據(jù)接收端app從數(shù)據(jù)發(fā)送方接收到加密的數(shù)據(jù)之后,通過數(shù)據(jù)接收端的ss向授權(quán)管理服務(wù)器申請使用數(shù)據(jù)發(fā)送方創(chuàng)建的上述數(shù)據(jù)加密密鑰。授權(quán)管理服務(wù)器檢查數(shù)據(jù)接收方是否有數(shù)據(jù)加密密鑰的有效數(shù)字許可,如果沒有數(shù)字許可,或者數(shù)字許可無效,例如已過期,則不允許數(shù)據(jù)接收端使用數(shù)據(jù)加密密鑰。
或者,授權(quán)管理服務(wù)器也可以先將數(shù)據(jù)加密密鑰發(fā)送給數(shù)據(jù)接收方的ss,在數(shù)據(jù)接收方的ss對數(shù)據(jù)開始解密時再檢查數(shù)據(jù)接收方是否有數(shù)字許可。
如果數(shù)據(jù)發(fā)送方在頒發(fā)數(shù)字許可時對數(shù)字許可用數(shù)據(jù)接收方公鑰加密,則數(shù)據(jù)接收端可使用接收方私鑰解密數(shù)字許可的加密的部分。
數(shù)據(jù)接收端使用接收方私鑰和授權(quán)管理服務(wù)器上的數(shù)據(jù)加密密鑰共同解密數(shù)據(jù)。如果數(shù)據(jù)接收端的ss在接收到數(shù)據(jù)加密密鑰之前服務(wù)器沒有檢查數(shù)字許可,則服務(wù)器可以在ss使用數(shù)據(jù)加密密鑰時檢查數(shù)據(jù)加密密鑰的數(shù)字許可。
在通過服務(wù)器的檢查后,數(shù)據(jù)接收端的ss對加密的數(shù)據(jù)進行解密后,將解密后的數(shù)據(jù)返回給數(shù)據(jù)接收端app。
圖5為本發(fā)明的數(shù)據(jù)保護方法的再一個具體實施例的流程圖。本實施例中數(shù)據(jù)發(fā)送方的終端安裝有作為密鑰管理模塊的安全中間件ss以及數(shù)據(jù)發(fā)送端app(應(yīng)用程序),數(shù)據(jù)接收方的終端安裝有作為密鑰管理模塊的安全中間件ss以及數(shù)據(jù)接收端app,并且兩個ss各連接到云授權(quán)管理服務(wù)器上。
如圖5所示,首先,數(shù)據(jù)發(fā)送端創(chuàng)建密鑰。在創(chuàng)建密鑰時,在ss中創(chuàng)建用于對數(shù)據(jù)直接加密的數(shù)據(jù)加密密鑰,并在云授權(quán)管理服務(wù)器上創(chuàng)建云端密鑰。本實施例中的數(shù)據(jù)加密密鑰為aes密鑰。
隨后,數(shù)據(jù)發(fā)送端app提交待加密的數(shù)據(jù)以及接收方公鑰給數(shù)據(jù)發(fā)送端的ss,ss使用數(shù)據(jù)加密密鑰加密數(shù)據(jù),相應(yīng)地,加密數(shù)據(jù)時使用的加密算法也是aes算法。
數(shù)據(jù)發(fā)送端也通過ss給數(shù)據(jù)接收方發(fā)數(shù)字許可,許可中可以包含接收方對數(shù)據(jù)的使用限制,例如可以限制接收方對數(shù)據(jù)的使用次數(shù)、時間期限等。同時數(shù)字許可中可以包含由數(shù)據(jù)發(fā)送端ss使用接收方公鑰和云端密鑰共同加密得到的數(shù)據(jù)密鑰的密文。例如,數(shù)據(jù)發(fā)送端ss可以先使用會話密鑰加密數(shù)據(jù)密鑰,然后把會話密鑰分成兩個部分,一部分被云端密鑰加密,一部分被接收方公鑰加密。
數(shù)據(jù)接收端收到密文數(shù)據(jù)后,通過接收端ss向云授權(quán)管理服務(wù)器申請使用數(shù)據(jù)接收端創(chuàng)建的數(shù)據(jù)加密密鑰。云授權(quán)管理服務(wù)器收到使用申請之后,檢查數(shù)據(jù)接收端是否有有效的數(shù)字許可,如果有則允許數(shù)據(jù)接收端使用云端密鑰,如果沒有則報錯。有效的數(shù)字許可是指沒有超出使用限制的數(shù)字許可,例如,在有效期限內(nèi)的數(shù)字許可,或者使用次數(shù)未達規(guī)定次數(shù)的數(shù)字許可等。
得到服務(wù)器的允許后,數(shù)據(jù)接收端ss使用接收方私鑰和云端密鑰解密密鑰信封,還原出數(shù)據(jù)密鑰。具體而言,數(shù)據(jù)接收端ss使用接收方私鑰和云端密鑰分別解密出各自加密的部分會話密鑰,并用會話密鑰解密出數(shù)據(jù)密鑰。
得到數(shù)據(jù)密鑰后,數(shù)據(jù)接收端ss使用數(shù)據(jù)密鑰解密待解密數(shù)據(jù)。相應(yīng)地,解密數(shù)據(jù)時使用的算法也是aes算法。
下面對本發(fā)明的數(shù)據(jù)保護系統(tǒng)的多種實施方式進行說明。
圖6為本發(fā)明的數(shù)據(jù)保護系統(tǒng)的一個實施方式的框圖。
如圖所示,本發(fā)明實施方式的系統(tǒng)包括服務(wù)器1,服務(wù)器1包括密鑰管理單元11和驗證單元12。
密鑰管理單元11配置為基于數(shù)據(jù)發(fā)送方的請求而生成或存儲至少一個密鑰。具體而言,該密鑰可以基于數(shù)據(jù)發(fā)送方的請求而在密鑰管理單元11中生成,也可以在數(shù)據(jù)發(fā)送方生成后存儲在服務(wù)器1的密鑰管理單元11中。
驗證單元12配置為基于數(shù)據(jù)接收方的請求而檢查數(shù)據(jù)接收方是否有對應(yīng)于該請求的處于有效狀態(tài)的數(shù)字許可,如有則允許數(shù)據(jù)接收方在對來自數(shù)據(jù)發(fā)送方的經(jīng)過加密的數(shù)據(jù)進行解密的過程中使用密鑰管理單元11中的至少一個密鑰。
驗證單元12對數(shù)字許可的檢查可以例如由數(shù)據(jù)接收方發(fā)起的密鑰使用請求而觸發(fā),或者也可以例如在數(shù)據(jù)接收方對數(shù)據(jù)進行的解密動作來觸發(fā)檢查。合法的數(shù)據(jù)接收方會持有數(shù)據(jù)發(fā)送方頒發(fā)的數(shù)字許可。數(shù)據(jù)發(fā)送方可以生成數(shù)字許可后發(fā)送給數(shù)據(jù)接收方,或者將數(shù)字許可發(fā)送給服務(wù)器1。數(shù)據(jù)發(fā)送方也可以在服務(wù)器1上為數(shù)據(jù)發(fā)送方生成數(shù)字許可。服務(wù)器1中可以進一步包括數(shù)字許可管理單元(未示出),用于響應(yīng)于數(shù)據(jù)發(fā)送方的請求而生成或存儲數(shù)字許可,或?qū)?shù)字許可通過通信單元發(fā)送給數(shù)據(jù)接收方。
在本發(fā)明實施方式中,數(shù)據(jù)加密密鑰可以是一組直接或者間接的用于加解密數(shù)據(jù)的密鑰及管理和使用該組密鑰所需要的相關(guān)數(shù)據(jù)的集合。
數(shù)據(jù)接收方可以通過向服務(wù)器提出密鑰使用請求,在驗證單元12確定數(shù)據(jù)接收方持有數(shù)據(jù)發(fā)送方頒發(fā)的處于有效狀態(tài)的數(shù)字許可時,確定數(shù)據(jù)接收方擁有對加密數(shù)據(jù)進行解密的權(quán)限,則允許數(shù)據(jù)接收方使用數(shù)據(jù)加密密鑰或密鑰信封的密鑰或使用密鑰所需的相關(guān)數(shù)據(jù)。
驗證單元12可以在下發(fā)該密鑰或相關(guān)數(shù)據(jù)之前或之后對數(shù)據(jù)接收方是否擁有合法有效的數(shù)字許可進行檢查。只有在通過驗證單元12的檢查后,數(shù)據(jù)接收方才能獲得使用解密過程所需密鑰或與密鑰的使用相關(guān)數(shù)據(jù)的權(quán)限,從而對加密的數(shù)據(jù)進行解密使用。
本發(fā)明實施例通過對密鑰及其使用許可進行管理實現(xiàn)對數(shù)據(jù)加解密的有效管理和控制,極大地提高了云辦公時代的數(shù)據(jù)安全性。
在本發(fā)明一個實施方式中,驗證單元12可以配置為根據(jù)數(shù)字許可中的許可信息而允許數(shù)據(jù)接收方使用所述至少一個密鑰中的相應(yīng)密鑰和/或在使用所述相應(yīng)密鑰時所需的相關(guān)數(shù)據(jù)。本實施方式適用于對數(shù)據(jù)的多個部分用不同的密鑰進行加密的情況,驗證單元12在檢查數(shù)據(jù)接收方的數(shù)字許可并確定有效后,可以將數(shù)字許可中記載的授權(quán)給數(shù)字接收方使用的那部分密鑰或者密鑰使用相關(guān)數(shù)據(jù)下發(fā)給數(shù)據(jù)接收方使用。
在本發(fā)明實施方式中,數(shù)據(jù)保護系統(tǒng)還可以包括密鑰管理模塊(未示出),其連接至或安裝在數(shù)據(jù)接收方的終端上。驗證單元12配置為向數(shù)據(jù)接收方的密鑰管理模塊發(fā)送上述至少一個密鑰和/或在使用所述至少一個密鑰時所需的相關(guān)數(shù)據(jù)。通過為數(shù)據(jù)接收方的終端提供密鑰管理模塊,有關(guān)密鑰的請求、接收以及使用均可通過密鑰管理模塊進行,為數(shù)據(jù)接收方的用戶提供了便利。
在本發(fā)明另一個實施方式中,驗證單元12配置為在檢查數(shù)據(jù)接收方是否有有效數(shù)字許可之前,向數(shù)據(jù)接收方發(fā)送對數(shù)據(jù)加密時使用的第一預(yù)定密鑰的密文或?qū)Φ谝活A(yù)定密鑰進行加密的第二預(yù)定密鑰的密文。密文可以由服務(wù)器1響應(yīng)于數(shù)據(jù)接收方的請求而發(fā)送,或者由服務(wù)器1響應(yīng)于數(shù)據(jù)發(fā)送方的請求而發(fā)送給數(shù)據(jù)接收方,或者由數(shù)據(jù)發(fā)送方直接發(fā)送給數(shù)據(jù)接收方。在數(shù)據(jù)接收方的終端具備密鑰管理模塊的實施方式中,可以將該密文發(fā)送給數(shù)據(jù)接收方的密鑰管理模塊。
在本發(fā)明該實施方式中,數(shù)據(jù)接收方在獲得加密的數(shù)據(jù)后(或者在獲得加密的數(shù)據(jù)之前或同時),可直接從數(shù)據(jù)發(fā)送端或服務(wù)器獲得數(shù)據(jù)加密密鑰的密文或?qū)?shù)據(jù)加密密鑰加密的密鑰的密文,然后根據(jù)服務(wù)器對數(shù)字許可的檢查結(jié)果來確定是否能夠有權(quán)獲得對密文進行解密的密鑰,進而獲得數(shù)據(jù)加密密鑰。本實施方式通過對數(shù)據(jù)加密密鑰進一步加密,能夠避免直接將數(shù)據(jù)加密密鑰進行傳送而可能產(chǎn)生的安全隱患。
在本發(fā)明各實施方式中,數(shù)據(jù)發(fā)送方可以包括第一數(shù)據(jù)發(fā)送端和第二數(shù)據(jù)發(fā)送端,密鑰管理單元11基于第一數(shù)據(jù)發(fā)送端的請求而生成至少一個密鑰,而數(shù)字許可由第一數(shù)據(jù)發(fā)送端或第二數(shù)據(jù)發(fā)送端生成。在服務(wù)器1包括數(shù)字許可管理單元時,其可響應(yīng)于第一數(shù)據(jù)發(fā)送端或第二數(shù)據(jù)發(fā)送端的請求而生成、存儲或轉(zhuǎn)發(fā)數(shù)字許可。
在本發(fā)明多個實施方式中,密鑰管理模塊11配置為使得所述至少一個密鑰和/或所述相關(guān)數(shù)據(jù)對于數(shù)據(jù)接收方的用戶不可見。在本發(fā)明該實施方式中,密鑰在由密鑰管理模塊和服務(wù)器構(gòu)成的系統(tǒng)中維護、使用和流轉(zhuǎn),數(shù)據(jù)發(fā)送方和/或數(shù)據(jù)接收方的用戶只能通過密鑰管理模塊使用密鑰,但無法看到具體的密鑰及其數(shù)據(jù)結(jié)構(gòu),在很大程度上提高了密鑰的安全性。
在本發(fā)明一個實施方式中,驗證單元12配置為基于數(shù)據(jù)接收方登錄的用戶賬戶檢查數(shù)據(jù)接收方是否有處于有效狀態(tài)的數(shù)字許可。數(shù)據(jù)接收方用戶可使用賬戶信息通過密鑰管理模塊登錄服務(wù)器。在本實施方式中,服務(wù)器可將該用戶的數(shù)字許可與其賬戶信息以及加密數(shù)據(jù)的標識號進行關(guān)聯(lián)存儲,以便于進行數(shù)字許可的檢查。
在本發(fā)明的實施方式中,在數(shù)據(jù)發(fā)送方或服務(wù)器上的數(shù)字許可管理單元生成所述數(shù)字許可時,可以用數(shù)據(jù)接收方的公鑰加密數(shù)字許可的至少一部分,或者用密鑰加密數(shù)字許可的至少一部分并用數(shù)據(jù)接收方的公鑰加密該密鑰。如此,可以防止數(shù)字許可被數(shù)據(jù)接收方用戶以外的人冒用。
以上對本發(fā)明的一些實施方式進行了說明,但本發(fā)明不限于這些具體的實施例子,本領(lǐng)域技術(shù)人員基于上述記載能夠作出多種變型和修改,這些變型與修改都應(yīng)落入本發(fā)明的保護范圍之內(nèi)。