本申請涉及電數(shù)字數(shù)據(jù)處理領(lǐng)域,尤其涉及數(shù)據(jù)傳遞方法及裝置。
背景技術(shù):
目前,系統(tǒng)為了應用數(shù)據(jù)的安全,都是提供沙箱給每個應用程序,將應用的私有數(shù)據(jù)存儲在專有沙箱中,達到保護應用數(shù)據(jù)安全的目的。這樣,進程間數(shù)據(jù)傳遞會非常困難,但實際開發(fā)中應用之間數(shù)據(jù)交互是必要的。目前市場上常見的方式是提供一個全局可訪問各應用沙箱的進程(超級權(quán)限的應用)去突破應用數(shù)據(jù)的私有數(shù)據(jù)來解決各個進程間數(shù)據(jù)交換問題。然而,一旦該超級權(quán)限的應用被攻破,整個系統(tǒng)所有應用的數(shù)據(jù)都可讀取,大大破壞了整個系統(tǒng)的安全性,同時也破壞了沙箱的安全性,非常危險。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明要解決的技術(shù)問題是提供一種數(shù)據(jù)傳遞方法及裝置,其既解決進程間數(shù)據(jù)的傳遞,同時又保護應用私有數(shù)據(jù)的安全。
為解決上述技術(shù)問題,本發(fā)明的數(shù)據(jù)傳遞方法,包括:
響應于接收到請求應用發(fā)出的數(shù)據(jù)請求,檢查所述請求應用及將處理所述數(shù)據(jù)請求的目標應用是否可信;
響應于所述請求應用和所述目標應用均可信,將所述數(shù)據(jù)請求發(fā)送到所述目標應用;
響應于所述目標應用返回允許會話,生成一個唯一校驗碼并將其連同請求應用信息和目標應用信息發(fā)送給應用授權(quán)中心和應用數(shù)據(jù)傳遞系統(tǒng);
應用授權(quán)中心根據(jù)接收到的請求應用信息、目標應用信息和唯一校驗碼,將所述應用數(shù)據(jù)傳遞系統(tǒng)分別添加到所述請求應用和所述目標應用的沙箱內(nèi);
所述應用數(shù)據(jù)傳遞系統(tǒng)根據(jù)其保存的唯一校驗碼進行數(shù)據(jù)傳遞。
作為本發(fā)明所述方法的改進,所述應用數(shù)據(jù)傳遞系統(tǒng)根據(jù)其保存的唯一校驗碼進行數(shù)據(jù)傳遞的步驟包括:校驗所述請求應用和所述目標應用提供的唯一校驗碼與所述應用數(shù)據(jù)傳遞系統(tǒng)自身保存的唯一校驗碼是否一致;響應于所述請求應用和所述目標應用提供的唯一校驗碼與所述應用數(shù)據(jù)傳遞系統(tǒng)自身保存的有效唯一校驗碼一致,進行數(shù)據(jù)傳遞。
作為本發(fā)明所述方法的另一種改進,所述方法還包括:所述應用數(shù)據(jù)傳遞系統(tǒng)在完成數(shù)據(jù)傳遞操作之后,將所述唯一校驗碼設(shè)置為無效或刪除。
作為本發(fā)明所述方法的進一步改進,所述方法還包括:所述應用數(shù)據(jù)傳遞系統(tǒng)在完成數(shù)據(jù)傳遞操作之后通知所述應用授權(quán)中心對應于所述唯一校驗碼的數(shù)據(jù)傳遞操作已完成;所述應用授權(quán)中心接收到所述通知后將所述應用數(shù)據(jù)傳遞系統(tǒng)的權(quán)限從所述請求應用和所述目標應用的沙箱權(quán)限移除。
為解決上述技術(shù)問題,本發(fā)明的數(shù)據(jù)傳遞裝置,包括:
檢查模塊,用于響應于接收到請求應用發(fā)出的數(shù)據(jù)請求,檢查所述請求應用及將處理所述數(shù)據(jù)請求的目標應用是否可信;
轉(zhuǎn)發(fā)模塊,用于響應于所述請求應用和所述目標應用均可信,將所述數(shù)據(jù)請求發(fā)送到所述目標應用;
校驗碼生成發(fā)送模塊,用于響應于所述目標應用返回允許會話,生成一個唯一校驗碼并將其連同請求應用信息和目標應用信息發(fā)送給應用授權(quán)中心和應用數(shù)據(jù)傳遞系統(tǒng);
授權(quán)模塊,用于使應用授權(quán)中心根據(jù)接收到的請求應用信息、目標應用信息和唯一校驗碼,將所述應用數(shù)據(jù)傳遞系統(tǒng)分別添加到所述請求應用和所述目標應用的沙箱內(nèi);
數(shù)據(jù)處理模塊,用于使所述應用數(shù)據(jù)傳遞系統(tǒng)根據(jù)其保存的唯一校驗碼進行數(shù)據(jù)傳遞。
為解決上述技術(shù)問題,本發(fā)明的有形計算機可讀介質(zhì),包括用于執(zhí)行本發(fā)明的數(shù)據(jù)傳遞方法的計算機程序代碼。
為解決上述技術(shù)問題,本發(fā)明提供一種裝置,包括至少一個處理器;及至少一個存儲器,含有計算機程序代碼,所述至少一個存儲器和所述計算機程序代碼被配置為利用所述至少一個處理器使得所述裝置執(zhí)行本發(fā)明的數(shù)據(jù)傳遞方法的至少部分步驟。
按照本發(fā)明,通過驗證傳遞數(shù)據(jù)應用本身的合法性,同時拿到通信進程間協(xié)定的數(shù)據(jù)存儲對象,然后根據(jù)動態(tài)授權(quán),將數(shù)據(jù)從一個進程私有數(shù)據(jù)空間拷貝到另一個數(shù)據(jù)進程空間,解決了超級權(quán)限應用的存在導致不安全的問題,同時保證應用數(shù)據(jù)必須授權(quán)系統(tǒng)才可訪問其數(shù)據(jù)的策略保證了應用私有數(shù)據(jù)的安全。
結(jié)合附圖閱讀本發(fā)明實施方式的詳細描述后,本發(fā)明的其它特點和優(yōu)點將變得更加清楚。
附圖說明
圖1為根據(jù)本發(fā)明方法的一實施例的流程圖。
圖2為根據(jù)本發(fā)明方法的另一實施例的流程圖。
圖3為根據(jù)本發(fā)明系統(tǒng)的一實施例的結(jié)構(gòu)示意圖。
圖4為根據(jù)本發(fā)明系統(tǒng)的另一實施例的結(jié)構(gòu)示意圖。
為清晰起見,這些附圖均為示意性及簡化的圖,它們只給出了對于理解本發(fā)明所必要的細節(jié),而省略其他細節(jié)。
具體實施方式
下面參照附圖對本發(fā)明的實施方式和實施例進行詳細說明。
通過下面給出的詳細描述,本發(fā)明的適用范圍將顯而易見。然而,應當理解,在詳細描述和具體例子表明本發(fā)明優(yōu)選實施例的同時,它們僅為說明目的給出。
為了便于下文的描述,下面給出一些術(shù)語的定義。
沙箱是指每個應用程序的運行環(huán)境,其保存了所有應用運行需要和產(chǎn)生的數(shù)據(jù),數(shù)據(jù)不可被外界訪問。
圖1示出了根據(jù)本發(fā)明的數(shù)據(jù)傳遞方法的一實施例的流程圖?,F(xiàn)以兩個應用A和B為例,結(jié)合圖1所示流程圖對其間的數(shù)據(jù)傳遞方法的各步驟進行具體說明。
在步驟S102中,應用協(xié)商中心響應于接收到請求應用A發(fā)出的數(shù)據(jù)請求如數(shù)據(jù)讀取或者傳輸請求,檢查請求應用A及將處理所述數(shù)據(jù)請求的目標應用B是否可信、合法。確定是否可信、合法可通過簽名、唯一標識號uid等確定。例如,只要應用滿足下述條件之一或多個,則應用視為可信、合法應用:1)通過應用的名稱查詢到的應用的簽名證書為系統(tǒng)應用簽名;2)通過應用的名稱查詢到其安裝來源為應用商店;3)通過應用的名稱查詢到其唯一標識號uid在系統(tǒng)uid區(qū)間內(nèi),如在0-20000的區(qū)間內(nèi)。當然,只要適當,也可采取其它確定方式。
在步驟S104中,對于合法的應用A和應用B進程,應用協(xié)商中心受理所述數(shù)據(jù)請求,并將所述數(shù)據(jù)請求發(fā)送到B應用進程。如果B應用沒有運行,則可啟動B進程后發(fā)送給B進程對應的請求;或者,直接向A進程返回協(xié)商失敗,處理結(jié)束。
在步驟S106中,確定協(xié)商是否成功。如果B進程返回允許會話,則表明協(xié)商成功,處理進行到步驟S108。否則,處理進行到步驟S120。
在步驟S108中,應用協(xié)商中心生成一個唯一校驗碼表示此次數(shù)據(jù)傳輸會話通道成功,便于后續(xù)數(shù)據(jù)傳輸操作認證。唯一校驗碼例如可根據(jù)兩個應用的uid及當前時間生成。只要適當,也可采取其它生成方式。應用協(xié)商中心將校驗碼及A、B進程的uid發(fā)送到應用授權(quán)中心及應用數(shù)據(jù)傳遞系統(tǒng),同時將唯一校驗碼反饋給A、B進程。
在步驟S110中,應用授權(quán)中心接收到A、B進程的uid及應用協(xié)商中心發(fā)布的唯一校驗碼時,將應用數(shù)據(jù)傳遞系統(tǒng)分別添加到進程A、B的沙箱內(nèi),這樣其具有訪問A、B沙箱數(shù)據(jù)的權(quán)限。
在步驟S112中,應用數(shù)據(jù)傳遞系統(tǒng)拿到協(xié)商中心發(fā)布的校驗碼進行保存,并根據(jù)其啟動數(shù)據(jù)處理。
在步驟S120中,處理結(jié)束。
本發(fā)明通過對數(shù)據(jù)訪問有效性和合法性校驗以及數(shù)據(jù)操作相關(guān)應用的安全認證,將數(shù)據(jù)從一個進程拷貝到另外一個進程的系統(tǒng),解決了進程間數(shù)據(jù)的傳遞,同時保護了應用私有數(shù)據(jù)的安全。
根據(jù)本發(fā)明的一種實施方式,所述步驟S112包括:應用數(shù)據(jù)傳遞系統(tǒng)進行數(shù)據(jù)傳遞時首先校驗A、B應用提供的校驗碼與其自身保存的有效的校驗碼是否一致。如果一致,則進行數(shù)據(jù)的處理操作。否則,不進行數(shù)據(jù)傳遞,處理結(jié)束。
圖2示出了根據(jù)本發(fā)明的數(shù)據(jù)傳遞方法的另一實施例的流程圖,該實施例的方法除包括圖1所示方法的步驟之外,在步驟S112之后還包括:
在步驟S202中,應用數(shù)據(jù)傳遞系統(tǒng)在完成數(shù)據(jù)傳遞操作之后,將所述唯一校驗碼設(shè)置為無效。作為備選,在應用數(shù)據(jù)傳遞系統(tǒng)完成數(shù)據(jù)傳遞操作之后,也可將所述唯一校驗碼刪除。
在步驟S204中,應用數(shù)據(jù)傳遞系統(tǒng)通知應用授權(quán)中心對應校驗碼的數(shù)據(jù)操作完成。
在步驟S206中,應用授權(quán)中心接收到應用數(shù)據(jù)傳遞系統(tǒng)發(fā)送的數(shù)據(jù)操作完成事件,將應用數(shù)據(jù)傳遞系統(tǒng)的權(quán)限從A、B應用的沙箱權(quán)限移除,避免無效校驗碼的攻擊。
圖3示出了根據(jù)本發(fā)明的數(shù)據(jù)傳遞裝置的一實施例的結(jié)構(gòu)示意圖,該裝置包括:檢查模塊310,用于響應于接收到請求應用發(fā)出的數(shù)據(jù)請求,檢查所述請求應用及將處理所述數(shù)據(jù)請求的目標應用是否可信;轉(zhuǎn)發(fā)模塊320,用于響應于所述請求應用和所述目標應用均可信,將所述數(shù)據(jù)請求發(fā)送到所述目標應用;校驗碼生成發(fā)送模塊330,用于響應于所述目標應用返回允許會話,生成一個唯一校驗碼并將其連同請求應用信息和目標應用信息發(fā)送給應用授權(quán)中心和應用數(shù)據(jù)傳遞系統(tǒng);授權(quán)模塊340,用于使應用授權(quán)中心根據(jù)接收到的請求應用信息、目標應用信息和唯一校驗碼,將所述應用數(shù)據(jù)傳遞系統(tǒng)分別添加到所述請求應用和所述目標應用的沙箱內(nèi);數(shù)據(jù)處理模塊350,用于使所述應用數(shù)據(jù)傳遞系統(tǒng)根據(jù)其保存的唯一校驗碼進行數(shù)據(jù)傳遞。所述檢查模塊310可包括下述之一或多個:第一確定子模塊,用于確定應用的簽名證書是否為系統(tǒng)應用簽名;第二確定子模塊,用于確定應用是否來自應用商店;和第三確定子模塊,用于確定應用的唯一標識uid是否在系統(tǒng)uid區(qū)間內(nèi)。
根據(jù)本發(fā)明所述裝置的一種實施方式,所述數(shù)據(jù)處理模塊350包括:校驗子模塊352,用于校驗所述請求應用和所述目標應用提供的唯一校驗碼與所述應用數(shù)據(jù)傳遞系統(tǒng)自身保存的唯一校驗碼是否一致;數(shù)據(jù)傳遞子模塊354,用于響應于所述請求應用和所述目標應用提供的唯一校驗碼與所述應用數(shù)據(jù)傳遞系統(tǒng)自身保存的有效唯一校驗碼一致,進行數(shù)據(jù)傳遞。
圖4示出了根據(jù)本發(fā)明的數(shù)據(jù)傳遞裝置的另一實施例的結(jié)構(gòu)示意圖,除包括圖3所示的所有模塊之外,該實施例的裝置還包括:設(shè)置模塊410,用于使所述應用數(shù)據(jù)傳遞系統(tǒng)在完成數(shù)據(jù)傳遞操作之后,將所述唯一校驗碼設(shè)置為無效或刪除;通知模塊420,用于使所述應用數(shù)據(jù)傳遞系統(tǒng)在完成數(shù)據(jù)傳遞操作之后通知所述應用授權(quán)中心對應于所述唯一校驗碼的數(shù)據(jù)傳遞操作已完成;移除模塊430,用于使所述應用授權(quán)中心接收到所述通知后將所述應用數(shù)據(jù)傳遞系統(tǒng)的權(quán)限從所述請求應用和所述目標應用的沙箱權(quán)限移除。
在此所述的多個不同實施例或者其特定特征、結(jié)構(gòu)或特性可在本發(fā)明的一個或多個實施方式中適當組合。另外,在某些情形下,只要適當,流程圖中和/或流水處理描述的步驟順序可修改,并不必須精確按照所描述的順序執(zhí)行。另外,本發(fā)明的多個不同方面可使用軟件、硬件、固件或者其組合和/或執(zhí)行所述功能的其它計算機實施的模塊或裝置進行實施。本發(fā)明的軟件實施可包括保存在計算機可讀介質(zhì)中并由一個或多個處理器執(zhí)行的可執(zhí)行代碼。計算機可讀介質(zhì)可包括計算機硬盤驅(qū)動器、ROM、RAM、閃存、便攜計算機存儲介質(zhì)如CD-ROM、DVD-ROM、閃盤驅(qū)動器和/或例如具有通用串行總線(USB)接口的其它裝置,和/或任何其它適當?shù)挠行位蚍嵌虝河嬎銠C可讀介質(zhì)或可執(zhí)行代碼可保存于其上并由處理器執(zhí)行的計算機存儲器。本發(fā)明可結(jié)合任何適當?shù)牟僮飨到y(tǒng)使用。
除非明確指出,在此所用的單數(shù)形式“一”、“該”均包括復數(shù)含義(即具有“至少一”的意思)。應當進一步理解,說明書中使用的術(shù)語“具有”、“包括”和/或“包含”表明存在所述的特征、步驟、操作、元件和/或部件,但不排除存在或增加一個或多個其他特征、步驟、操作、元件、部件和/或其組合。如在此所用的術(shù)語“和/或”包括一個或多個列舉的相關(guān)項目的任何及所有組合。
前面說明了本發(fā)明的一些優(yōu)選實施例,但是應當強調(diào)的是,本發(fā)明不局限于這些實施例,而是可以本發(fā)明主題范圍內(nèi)的其它方式實現(xiàn)。本領(lǐng)域技術(shù)人員可以在本發(fā)明技術(shù)構(gòu)思的啟發(fā)和不脫離本發(fā)明內(nèi)容的基礎(chǔ)上對本發(fā)明作出各種變形和修改,這些變形或修改仍落入本發(fā)明的保護范圍之內(nèi)。