專利名稱:多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法。
背景技術(shù):
近年來興起的云計(jì)算模式已經(jīng)成為工業(yè)界和學(xué)術(shù)界關(guān)注的熱點(diǎn)。對于存儲資源,云計(jì)算把資源進(jìn)行集中化管理,一個(gè)或更多的客戶可以共享存儲系統(tǒng)硬件和軟件。這種共享硬件和軟件的途徑,能以遠(yuǎn)低于用戶獨(dú)立購買軟硬件的成倍,提供存儲服務(wù)。多租戶就是說多個(gè)租戶共用一個(gè)實(shí)例,租戶的數(shù)據(jù)既有隔離又有共享,從而解決數(shù)據(jù)存儲的問題。從架構(gòu)層面來分析,SaaS (Software as a Service,和軟件即服務(wù))區(qū)別于傳統(tǒng)技術(shù)的重要差別就是Mult1-Tenant t旲式。傳統(tǒng)的多租戶架構(gòu)(如圖3所示)中,每個(gè)租戶使用不同的虛擬映像或者應(yīng)用程序,訪問通過物理或者邏輯方式隔離的數(shù)據(jù)庫,數(shù)據(jù)在傳輸?shù)倪^程中,通過HTTPS的方式進(jìn)行加密。傳統(tǒng)的多租戶架構(gòu)中,多租戶在通過APP (Application,應(yīng)用程序)訪問的流程如圖4所示。傳統(tǒng)的多租戶架構(gòu)中,多租戶在數(shù)據(jù)存儲上存在以下三種主要的方案。I)獨(dú)立數(shù)據(jù)庫。這是第一種方案,即一個(gè)租戶一個(gè)數(shù)據(jù)庫,這種方案的用戶數(shù)據(jù)隔離級別最高,安全性最好,但成本也高。其優(yōu)點(diǎn)是:為不同的租戶提供獨(dú)立的數(shù)據(jù)庫,有助于簡化數(shù)據(jù)模型的擴(kuò)展設(shè)計(jì),滿足不同租戶的獨(dú)特需求;如果出現(xiàn)故障,恢復(fù)數(shù)據(jù)比較簡單。其缺點(diǎn)是:增大了數(shù)據(jù)庫的安裝數(shù)量,隨之帶來維護(hù)成本和購置成本的增加。這種方案與傳統(tǒng)的一個(gè)客戶、一套數(shù)據(jù)、一套部署類似,差別只在于軟件統(tǒng)一部署在運(yùn)營商那里。如果面對的是銀行、醫(yī)院等需要非常高數(shù)據(jù)隔離級別的租戶,可以選擇這種模式,提高租用的定價(jià)。如果定價(jià)較低,產(chǎn)品走低價(jià)路線,這種方案一般對運(yùn)營商來說是無法承受的。2)共享數(shù)據(jù)庫,隔離數(shù)據(jù)架構(gòu)。這是第二種方案,即多個(gè)或所有租戶共享Database(數(shù)據(jù)庫),但一個(gè)Tenant —個(gè)Schema。其優(yōu)點(diǎn)是:為安全性要求較高的租戶提供了一定程度的邏輯數(shù)據(jù)隔離,并不是完全隔離;每個(gè)數(shù)據(jù)庫可以支持更多的租戶數(shù)量。其缺點(diǎn)是:如果出現(xiàn)故障,數(shù)據(jù)恢復(fù)比較困難,因?yàn)榛謴?fù)數(shù)據(jù)庫將牽扯到其他租戶的數(shù)據(jù);如果需要跨租戶統(tǒng)計(jì)數(shù)據(jù),存在一定困難。3)共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)。這是第三種方案,即租戶共享同一個(gè)Database、同一個(gè)Schema,但在表中通過TenantID區(qū)分租戶的數(shù)據(jù)。這是共享程度最高、隔離級別最低的模式。其優(yōu)點(diǎn)是:維護(hù)和購置成本最低,允許每個(gè)數(shù)據(jù)庫支持的租戶數(shù)量最多。其缺點(diǎn)是:隔離級別最低,安全性最低,需要在設(shè)計(jì)開發(fā)時(shí)加大對安全的開發(fā)量;數(shù)據(jù)備份和恢復(fù)最困難,需要逐表逐條備份和還原。現(xiàn)有技術(shù)的方案在安全方面主要解決了傳輸安全的問題,對于DB數(shù)據(jù)存儲則以適當(dāng)?shù)母綦x來保證數(shù)據(jù)的完整性和私密性,但整個(gè)系統(tǒng)仍然存在如下缺點(diǎn):1)為了 APP能夠識別并處理,數(shù)據(jù)在DB中以明文存儲;2)多APP在同一臺服務(wù)器運(yùn)行,存在被惡意滲透、竊取數(shù)據(jù)的可能;3)用戶名/密碼被破解的情況下,不但可以查看DB中的數(shù)據(jù),也可以修改DB中的數(shù)據(jù)。
傳統(tǒng)的多租戶模式下,用戶數(shù)據(jù)保存在數(shù)據(jù)中心DB中,為了方便APP處理,其保存的數(shù)據(jù)都是不加密的,同時(shí)多APP在同一臺服務(wù)器運(yùn)行,存在被惡意滲透、竊取數(shù)據(jù)的可能;用戶名/密碼被破解的情況下,DB中的數(shù)據(jù)不但會被越權(quán)使用,也可能被越權(quán)修改。
發(fā)明內(nèi)容
本發(fā)明是為避免上述已有技術(shù)中存在的不足之處,提供了一種多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,以提高多租戶環(huán)境下客戶數(shù)據(jù)的安全性。本發(fā)明提供了一種多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法。多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,其采用云端加密存儲+終端解密計(jì)算的方式;數(shù)據(jù)存儲在服務(wù)器上,但是以加密的方式存儲;密鑰保存在用戶手中;數(shù)據(jù)的處理在用戶終端,加解密也不在服務(wù)器上進(jìn)行以防止?jié)B透攻擊。用戶手中的密鑰以USB的方式保存,不可導(dǎo)出;也可以采用讓用戶手動輸入密碼的方法,來對密碼進(jìn)行保護(hù)。本發(fā)明的多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法的特點(diǎn)也在于:租戶在通過APP訪問的過程包括以下幾個(gè)步驟:a.用戶向APP提交訪問請求;b.APP對用戶進(jìn)行認(rèn)證,用戶通過認(rèn)證之后,APP根據(jù)用戶信息定向DB數(shù)據(jù)庫;c.APP不在服務(wù)端處理數(shù)據(jù),服務(wù)器端僅處理數(shù)據(jù)無關(guān)的部分且該處理結(jié)果回傳用戶;APP把用于處理數(shù)據(jù)的程序發(fā)送給用戶客戶端,需要處理的用戶數(shù)據(jù)也以加密的方式發(fā)給用戶客戶端;d.在用戶的客戶端,用戶將接收到的用戶數(shù)據(jù)進(jìn)行解密,然后調(diào)用從服務(wù)器端得到的程序,對數(shù)據(jù)進(jìn)行處理;e.用戶的客戶端將對數(shù)據(jù)的處理結(jié)果與服務(wù)器端發(fā)送的數(shù)據(jù)無關(guān)部分處理結(jié)果,共同呈現(xiàn)給用戶;f.在用戶的客戶端,加密密碼以usb的形式保存;APP在解密過程中,優(yōu)先獲取USB的密碼;g.若用戶對數(shù)據(jù)如果有修改,則在客戶端進(jìn)行加密,加密后數(shù)據(jù)發(fā)送服務(wù)器端,并保存在用戶DB中。在所述步驟b中,若用戶為新用戶,則申請開辟一個(gè)新的DB數(shù)據(jù)庫。與已有技術(shù)相比,本發(fā)明有益效果體現(xiàn)在:本發(fā)明的多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,采用多租戶環(huán)境下服務(wù)器端保存、客戶端端加解密的方式,使用不對稱算法同時(shí)滿足安全和公開需求,提高了多租戶環(huán)境下客戶數(shù)據(jù)的安全性,也可滿足部分?jǐn)?shù)據(jù)保密,另一部分?jǐn)?shù)據(jù)公開的使用需求。本發(fā)明的多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,具有可提高了多租戶環(huán)境下客戶數(shù)據(jù)的安全性,也可滿足部分?jǐn)?shù)據(jù)保密同時(shí)另一部分?jǐn)?shù)據(jù)公開的使用需求等優(yōu)點(diǎn)。
圖1為本發(fā)明的多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法的多租戶數(shù)據(jù)示意圖。圖2為本發(fā)明的多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法的租戶在通過APP訪問流程圖。
圖3為現(xiàn)有技術(shù)中的多租戶應(yīng)用模型。圖4為圖3中的多租戶應(yīng)用模型的租戶在通過APP訪問流程圖。以下通過具體實(shí)施方式
,并結(jié)合附圖對本發(fā)明作進(jìn)一步說明。
具體實(shí)施例方式參見圖1,多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,采用云端加密存儲+終端解密計(jì)算的方式;數(shù)據(jù)存儲在服務(wù)器上,但是以加密的方式存儲;密鑰保存在用戶手中;數(shù)據(jù)的處理在用戶終端,加解密也不在服務(wù)器上進(jìn)行以防止?jié)B透攻擊。用戶手中的密鑰以USB的方式保存,不可導(dǎo)出;也可以采用讓用戶手動輸入密碼的方法,來對密碼進(jìn)行保護(hù)。如圖2所示,租戶在通過APP訪問的過程包括以下幾個(gè)步驟:a.用戶向APP提交訪問請求;b.APP對用戶進(jìn)行認(rèn)證,用戶通過認(rèn)證之后,APP根據(jù)用戶信息定向DB數(shù)據(jù)庫;若用戶為新用戶,則申請開辟一個(gè)新的DB數(shù)據(jù)庫;c.APP不在服務(wù)端處理數(shù)據(jù),服務(wù)器端僅處理數(shù)據(jù)無關(guān)的部分(如框架部分)且該處理結(jié)果回傳用戶;APP把用于處理數(shù)據(jù)的程序發(fā)送給用戶客戶端,需要處理的用戶數(shù)據(jù)(該數(shù)據(jù)是加密的)也以加密的方式發(fā)給用戶客戶端;發(fā)送通道采用傳統(tǒng)的加密方式,例如SSL方式;d.在用戶的客戶端,用戶將接收到的用戶數(shù)據(jù)進(jìn)行解密,然后調(diào)用從服務(wù)器端得到的程序,對數(shù)據(jù)進(jìn)行處理;e.用戶的客戶端將對數(shù)據(jù)的處理結(jié)果與服務(wù)器端發(fā)送的數(shù)據(jù)無關(guān)部分(如框架部分)處理結(jié)果,共同呈現(xiàn)給用戶;f.為了更好的保證安全性以及云客戶端的普適性,在用戶的客戶端,加密密碼建議以usb的形式保存;APP在解密過程中,優(yōu)先獲取USB的密碼;也可以采用讓用戶手動輸入密碼的方法。密碼的保存方法是本系統(tǒng)的一個(gè)組成部分,但不是本系統(tǒng)必選部分。g.若用戶對數(shù)據(jù)如果有修改(包括增加、刪除等修改操作),則在客戶端進(jìn)行加密,加密后數(shù)據(jù)發(fā)送服務(wù)器端,并保存在用戶DB中。部分用戶的數(shù)據(jù)需要一定程度公開,以網(wǎng)盤為例,用戶的數(shù)據(jù)保存在服務(wù)器端,不允許其他人修改,但允許其他人察看,或者部分?jǐn)?shù)據(jù)允許其他人察看,則需要在使用非對稱加密算法加密。在用戶第一次注冊時(shí),用戶需要生成一對公開密鑰(publickey)和私有密鑰(privatekey),向服務(wù)器端提供公開密鑰,并由服務(wù)器端保存,而用戶保存私有密鑰。用戶可以隨時(shí)提起對密鑰對的修改。由于私鑰隱密性高,推薦采用usb保存,并設(shè)置為不可導(dǎo)出。用戶對需要公開的數(shù)據(jù)修改時(shí),處理過程略有變化,解密時(shí)使用公開密鑰,加密時(shí)使用私有密鑰。對于不需要公開的數(shù)據(jù),則采用公開密鑰加密的方式,解密時(shí)使用私有秘鑰。被授權(quán)察看的用戶,其察看數(shù)據(jù)的流程如下:1)被授權(quán)察看的用戶向APP提交訪問請求;2)通過認(rèn)證以及權(quán)限檢查之后,APP根據(jù)請求訪問的對象,獲取DB數(shù)據(jù)庫保存的數(shù)據(jù);3) APP獲取數(shù)據(jù)擁有者保存在服務(wù)器端的公開密鑰,并使用公開密鑰對數(shù)據(jù)進(jìn)行解密。解密后的數(shù)據(jù)通過服務(wù)器端發(fā)送給被授權(quán)察看的用戶客戶端呈現(xiàn)給用戶。
權(quán)利要求
1.多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,其特征是,采用云端加密存儲+終端解密計(jì)算的方式;數(shù)據(jù)存儲在服務(wù)器上,但是以加密的方式存儲;密鑰保存在用戶手中;數(shù)據(jù)的處理在用戶終端,加解密也不在服務(wù)器上進(jìn)行以防止?jié)B透攻擊。
2.根據(jù)權(quán)利要求1所述的多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,其特征是,租戶在通過APP訪問的過程包括以下幾個(gè)步驟: a.用戶向應(yīng)用程序APP提交訪問請求; b.應(yīng)用程序APP對用戶進(jìn)行認(rèn)證,用戶通過認(rèn)證之后,應(yīng)用程序APP根據(jù)用戶信息定向DB數(shù)據(jù)庫; c.應(yīng)用程序APP不在服務(wù)端處理數(shù)據(jù),服務(wù)器端僅處理數(shù)據(jù)無關(guān)的部分且該處理結(jié)果回傳用戶;應(yīng)用程序APP把用于處理數(shù)據(jù)的程序發(fā)送給用戶客戶端,需要處理的用戶數(shù)據(jù)也以加密的方式發(fā)給用戶客戶端。
d.在用戶的客戶端,用戶將接收到的用戶數(shù)據(jù)進(jìn)行解密,然后調(diào)用從服務(wù)器端得到的程序,對數(shù)據(jù)進(jìn)行處理; e.用戶的客戶端將對數(shù)據(jù)的處理結(jié)果與服務(wù)器端發(fā)送的數(shù)據(jù)無關(guān)部分處理結(jié)果,共同呈現(xiàn)給用戶; f.在用戶的客戶端,加密密碼以USB的形式保存;應(yīng)用程序APP在解密過程中,優(yōu)先獲取USB的密碼; g.若用戶對數(shù)據(jù)如果有修改,則在客戶端進(jìn)行加密,加密后數(shù)據(jù)發(fā)送服務(wù)器端,并保存在用戶DB數(shù)據(jù)庫中。
3.根據(jù)權(quán)利要求1所述的多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,其特征是,在所述步驟b中,若用戶為新用戶,則申請開辟一個(gè)新的DB數(shù)據(jù)庫。
全文摘要
本發(fā)明公開了一種多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,采用云端加密存儲+終端解密計(jì)算的方式;數(shù)據(jù)存儲在服務(wù)器上,但是以加密的方式存儲;密鑰保存在用戶手中;數(shù)據(jù)的處理在用戶終端,加解密也不在服務(wù)器上進(jìn)行以防止?jié)B透攻擊。本發(fā)明的多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的方法,具有可提高了多租戶環(huán)境下客戶數(shù)據(jù)的安全性,也可滿足部分?jǐn)?shù)據(jù)保密同時(shí)另一部分?jǐn)?shù)據(jù)公開的使用需求等優(yōu)點(diǎn)。
文檔編號H04L29/06GK103118011SQ201310011059
公開日2013年5月22日 申請日期2013年1月12日 優(yōu)先權(quán)日2013年1月12日
發(fā)明者邱大坤, 李穎和, 唐舜 申請人:合肥華云通信技術(shù)有限公司