国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種在對(duì)象關(guān)系映射中可自毀數(shù)據(jù)方法

2016-09-02 07:12楊家奇王志堅(jiān)
關(guān)鍵詞:密文密鑰生命周期

楊家奇,王志堅(jiān),傅 曉,王 宇

(河海大學(xué)計(jì)算機(jī)與信息學(xué)院,南京211100)

一種在對(duì)象關(guān)系映射中可自毀數(shù)據(jù)方法

楊家奇,王志堅(jiān),傅曉,王宇

(河海大學(xué)計(jì)算機(jī)與信息學(xué)院,南京211100)

提出一種數(shù)據(jù)自毀方法,引入Web分層技術(shù)概念,將對(duì)象關(guān)系映射中的過(guò)程分為不同層級(jí),通過(guò)雙重散列加密,被加密的文件分為兩個(gè)部分,將時(shí)間、訪問(wèn)次數(shù)和銷(xiāo)毀策略作為屬性進(jìn)行加密作為文件頭部.該方法不需要任何認(rèn)為干涉,生命周期結(jié)束后可自行在分布式系統(tǒng)中自行銷(xiāo)毀,實(shí)現(xiàn)對(duì)對(duì)象關(guān)系映射中文件的細(xì)粒度控制.

對(duì)象關(guān)系映射;文件數(shù)據(jù);屬性加密;自毀

對(duì)象關(guān)系映射(Object-Relation Mapping,ORM)是一種用于實(shí)現(xiàn)面向?qū)ο缶幊讨胁煌愋拖到y(tǒng)數(shù)據(jù)之間相互轉(zhuǎn)換的技術(shù)[1].通過(guò)對(duì)象關(guān)系映射,可以直接對(duì)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中的面向?qū)ο箢I(lǐng)域模型進(jìn)行訪問(wèn)和操作,而無(wú)需關(guān)心其在數(shù)據(jù)庫(kù)中的存儲(chǔ)結(jié)構(gòu)以及異構(gòu)數(shù)據(jù)之間的轉(zhuǎn)換如何實(shí)現(xiàn),這就為程序的兼容性和移植性提供方便.對(duì)象關(guān)系映射本質(zhì)上是業(yè)務(wù)實(shí)體(Business Entity)的各種表現(xiàn)形式之間的映射.大多數(shù)對(duì)象關(guān)系映射系統(tǒng),例如Hibernate和NHibernate等,都使用可擴(kuò)展置標(biāo)語(yǔ)言(Extensible Markup Language,XML)[2]來(lái)實(shí)現(xiàn)映射持久化.如圖1所示,這些含有對(duì)象關(guān)系映射信息的文件因此被稱為映射文件(Mapping Files).

圖1 對(duì)象關(guān)系映射系統(tǒng)結(jié)構(gòu)圖

映射文件中含有記錄業(yè)務(wù)實(shí)體各表現(xiàn)形式的必要信息,其中包括描述業(yè)務(wù)實(shí)體在關(guān)系數(shù)據(jù)庫(kù)中以關(guān)系數(shù)據(jù)形式存儲(chǔ)的相關(guān)數(shù)據(jù)庫(kù)連接串、表名、列名等等.在大多數(shù)情況下,為了保持對(duì)象關(guān)系映射在應(yīng)用中的透明性(Transparence),應(yīng)用程序開(kāi)發(fā)者并不希望系統(tǒng)用戶直接訪問(wèn)上述信息.另一方面,如果惡意用戶獲取了這些信息,也有可能利用其中的相關(guān)內(nèi)容對(duì)系統(tǒng)進(jìn)行攻擊從而造成安全上的風(fēng)險(xiǎn).在大規(guī)模分布式計(jì)算系統(tǒng),尤其是云計(jì)算當(dāng)中,開(kāi)發(fā)者無(wú)法對(duì)部署到每個(gè)節(jié)點(diǎn)上的分布式應(yīng)用程序中的映射文件進(jìn)行細(xì)粒度的控制.計(jì)算任務(wù)完成后,被提交到節(jié)點(diǎn)上的映射文件依然有可能存在,并造成持續(xù)的泄露風(fēng)險(xiǎn).

數(shù)據(jù)加密是保護(hù)數(shù)據(jù)的一種有效手段,近幾年國(guó)內(nèi)外學(xué)者提出一些基于屬性加密的方法,如采用基于屬性的加密算法[3-6]和基于代理重加密[7-9]等技術(shù),在很大程度上實(shí)現(xiàn)數(shù)據(jù)安全加密,但均未提出數(shù)據(jù)的生命周期概念,無(wú)法將數(shù)據(jù)文檔自動(dòng)銷(xiāo)毀;而采用Dissolver系統(tǒng)[10]進(jìn)行數(shù)據(jù)自毀的策略具有生命周期概念,但無(wú)法實(shí)現(xiàn)分布式系統(tǒng)的數(shù)據(jù)自動(dòng)銷(xiāo)毀.Xiong[11]先提出一種安全的文檔自毀策略ISDS,利用IBE加密算法將文檔保存與DHT網(wǎng)絡(luò),但容易受到Sybil攻擊,導(dǎo)致密鑰被破解,而后Xiong[12-15]等人又進(jìn)一步提出的組合文檔加密等3種方式在很大程度上實(shí)現(xiàn)了具有生命周期的文檔控制,解決了Sybil等網(wǎng)絡(luò)攻擊,但基于DHT網(wǎng)絡(luò)的應(yīng)用使其難以滿足ORM關(guān)系中的細(xì)粒度控制;岳風(fēng)順[16]提出了基于DHT網(wǎng)絡(luò)將文件進(jìn)行拆分成密文和密鑰,從密文中隨機(jī)抽取密鑰存儲(chǔ)在DHT網(wǎng)絡(luò),其加密思想較好,且實(shí)現(xiàn)難度不大,在生命周期結(jié)束后文檔密鑰消失,密文也就無(wú)法破解,但由于密文的大小決定了密鑰的隨機(jī)性很大,其密鑰的復(fù)雜度受密文大小以及隨機(jī)函數(shù)影響較大.Wang[17]和Zeng[18]等人先后提出Vanish系統(tǒng)和SafeVanish系統(tǒng),通過(guò)樹(shù)結(jié)構(gòu)提高密鑰管理效率,但會(huì)受到Sybil攻擊,只要獲得足夠密鑰分量,就可以解析密鑰;尤其是SafeVanish系統(tǒng)增加了密鑰長(zhǎng)度,增加了加解密算法的時(shí)間損耗.Json[19]提出了一種基于P2P網(wǎng)絡(luò)的文件自毀機(jī)制,通過(guò)下家peer對(duì)上家peer的反饋,來(lái)總結(jié)每一個(gè)peer是否可信,從而決定將data是否發(fā)送給下家,但該機(jī)制中的data只能是一次性的,即一次用完后即刪除,并且該機(jī)制需要在每一個(gè)peer中添加路由表和可信表,需要實(shí)時(shí)更新,增加開(kāi)銷(xiāo).Fu[20]等人研究了一種可進(jìn)行自毀的郵件,基于WEB系統(tǒng)和中心服務(wù)器,將郵件進(jìn)行分割加密組裝成一份url,規(guī)避了SafeVanish系統(tǒng)易受Sybil攻擊,降低了密鑰長(zhǎng)度,但該方法只限于在線查看,需要中心服務(wù)器實(shí)時(shí)服務(wù),而基于離線的data查看問(wèn)題并未討論,即離線的ORM分布式系統(tǒng)無(wú)法實(shí)現(xiàn)掌控.Tung,Tsai-Yeh[21]提出一種在可進(jìn)行短信自刪除的手機(jī)端應(yīng)用XMPP,通過(guò)將時(shí)間設(shè)定刪除條件,將密鑰刪除,但密文依然存在與手機(jī)中.

本文基于對(duì)稱加密算法(Rijndael)和非對(duì)稱加密算法(2048位RSA算法),采用類似Web編程的分層思想,分為應(yīng)用層、數(shù)據(jù)自毀層和數(shù)據(jù)訪問(wèn)層,合稱為持久層數(shù)據(jù),結(jié)構(gòu)清晰明朗.不同的層之間根據(jù)兩種加密算法的特性而采用不同加密算法.在電子文件頭部添加時(shí)間期限、訪問(wèn)次數(shù)和銷(xiāo)毀策略的屬性,通過(guò)雙重散列轉(zhuǎn)換,以實(shí)現(xiàn)文件生命周期的控制.將時(shí)間作為屬性添加到文件頭部,作為生命周期結(jié)束與否的標(biāo)志,同時(shí)作為散列的密文,增加文件被暴力破解的復(fù)雜度.電子文件生命周期結(jié)束后,運(yùn)用MVC思想中的觀察者模式通過(guò)查看銷(xiāo)毀策略,決定對(duì)當(dāng)前文件執(zhí)行相應(yīng)的自毀步驟.密文和密鑰均受控制條件限制,控制條件可根據(jù)實(shí)際情形設(shè)置,實(shí)現(xiàn)對(duì)電子文件生命周期的細(xì)粒度控制.

1 分析與設(shè)計(jì)

定義1:自毀數(shù)據(jù),是指一條計(jì)算機(jī)數(shù)據(jù),不論以何種形式存儲(chǔ),在特定條件下能夠?qū)θ嘶蛴?jì)算機(jī)系統(tǒng)變?yōu)椴豢勺x狀態(tài).

從以上定義中可以看出,自毀數(shù)據(jù)具備兩個(gè)基本特征:首先,自毀數(shù)據(jù)作為計(jì)算機(jī)數(shù)據(jù),其內(nèi)容必然包含有意義的信息;其次,在特定條件下,該數(shù)據(jù)能夠變?yōu)椴豢勺x狀態(tài),即對(duì)人或計(jì)算機(jī)系統(tǒng)呈現(xiàn)無(wú)意義的序列.因此,可以使用過(guò)程Dest()來(lái)表示自毀數(shù)據(jù)兩種形態(tài)——有意義的可讀狀態(tài)RD,以及無(wú)意義的不可讀狀態(tài)UD——之間的不可逆的轉(zhuǎn)換:

在大多數(shù)操作系統(tǒng)中,只有可執(zhí)行文件和腳本中的代碼才能被執(zhí)行.XML之類的數(shù)據(jù)文件內(nèi)部不含有任何可執(zhí)行代碼,因此需要借助第三方程序?qū)崿F(xiàn)對(duì)自身的操作.同樣的,過(guò)程Dest()也必須是獨(dú)立于數(shù)據(jù)文件之外的可執(zhí)行程序或服務(wù),當(dāng)滿足預(yù)設(shè)的特定條件時(shí)通過(guò)數(shù)據(jù)文件被觸發(fā),以執(zhí)行自毀過(guò)程,如圖2所示.

圖2 自毀過(guò)程示意圖

自毀數(shù)據(jù)在本文需要解決三個(gè)問(wèn)題:

1)在傳輸過(guò)程中防止文件被截取并被篡改;2)在文件生命周期內(nèi)保護(hù)數(shù)據(jù)不泄密,特定用戶可查看;3)在文件生命周期結(jié)束后自動(dòng)徹底銷(xiāo)毀.

為解決問(wèn)題1,需對(duì)文件數(shù)據(jù)進(jìn)行加密和解密,保證傳輸過(guò)程中文件是不可讀的狀態(tài),到達(dá)特定分布式終端后,解密成可讀狀態(tài).為解決問(wèn)題2,需要對(duì)文件進(jìn)行控制條件設(shè)計(jì),保證文件在生命周期內(nèi)可讀,在生命周期外銷(xiāo)毀.為解決問(wèn)題3,需要對(duì)文件進(jìn)行自毀設(shè)計(jì),采用DOD 5220-22-M保證文件變?yōu)椴豢勺x,無(wú)法恢復(fù).

根據(jù)以上具體問(wèn)題和解決方案,設(shè)計(jì)數(shù)據(jù)自毀系統(tǒng)如圖3所示.在應(yīng)用層的對(duì)象關(guān)系映射組件與數(shù)據(jù)訪問(wèn)層的映射文件之間加入一個(gè)自毀層.自毀層的數(shù)據(jù)自毀原型系統(tǒng)用以響應(yīng)應(yīng)用層讀取持久化的對(duì)象關(guān)系映射信息的請(qǐng)求,讀取數(shù)據(jù)訪問(wèn)層中的對(duì)象關(guān)系映射信息并向應(yīng)用層返回XML格式的數(shù)據(jù).當(dāng)計(jì)算任務(wù)完成時(shí),數(shù)據(jù)層的自毀數(shù)據(jù)調(diào)用自毀層的數(shù)據(jù)自毀原型系統(tǒng)將自身銷(xiāo)毀,應(yīng)用層將無(wú)法通過(guò)自毀層讀取數(shù)據(jù)層數(shù)據(jù).

圖3 改進(jìn)的對(duì)象關(guān)系映射系統(tǒng)結(jié)構(gòu)圖

1.1數(shù)據(jù)訪問(wèn)層設(shè)計(jì)

應(yīng)用程序開(kāi)發(fā)者習(xí)慣將包含對(duì)象關(guān)系映射信息的XML數(shù)據(jù)以文件形式封裝.為了不改變開(kāi)發(fā)者原有的使用習(xí)慣,本文所設(shè)計(jì)的數(shù)據(jù)訪問(wèn)層依然使用文件的形式來(lái)實(shí)現(xiàn)映射關(guān)系持久化.數(shù)據(jù)訪問(wèn)層中映射文件內(nèi)封裝的數(shù)據(jù)能且僅能通過(guò)自毀層原型系統(tǒng)訪問(wèn),若用戶使用其他工具直接讀取映射文件,則映射文件呈現(xiàn)為無(wú)意義的序列.實(shí)現(xiàn)這一要求,需要使用數(shù)據(jù)加密技術(shù)對(duì)映射文件進(jìn)行保護(hù).

加密后的映射文件分為兩個(gè)部分:首部和主體.分別用Header表示首部數(shù)據(jù),Body表示主體數(shù)據(jù).

設(shè)包含對(duì)象關(guān)系映射信息的XML數(shù)據(jù)為D,產(chǎn)生哈希信息BH的哈希過(guò)程為BHash(Data),產(chǎn)生隨機(jī)密鑰RKey的偽隨機(jī)過(guò)程為Random(),對(duì)稱加密過(guò)程為SymmetricEncrypt(PlainText,Key),則主體數(shù)據(jù)Body由以下公式得出:

設(shè)任務(wù)完成時(shí)的判斷條件為 SelfDestCondition,產(chǎn)生哈希信息HH的哈希過(guò)程為HHash(Data),非對(duì)稱加密過(guò)程AsymmetricEncrypt(PlainText,PrivateKey),產(chǎn)生密鑰對(duì)(PublicKey,PrivateKey)的過(guò)程為Generator(),則首部數(shù)據(jù)Header由以下公式得出:

加密后的映射文件結(jié)構(gòu)如圖4所示.

圖4 映射文件結(jié)構(gòu)圖

在本文研究的問(wèn)題中,由于云計(jì)算的節(jié)點(diǎn)租用多采取計(jì)時(shí)方式,因此任務(wù)完成時(shí)的判斷條件SelfDestCondition可設(shè)為租期到期時(shí)間,以Datatime類型數(shù)據(jù)表示.

映射文件分為兩部分的益處在于,只有使用匹配的公鑰才能解密首部數(shù)據(jù),并得到解密主體數(shù)據(jù)所需的對(duì)稱密鑰.由于對(duì)稱密鑰由偽隨機(jī)過(guò)程生成,直接蠻力攻擊(Brute-force Attack)主體數(shù)據(jù)等價(jià)于唯密文破解對(duì)稱加密過(guò)程SymmetricEncrypt所用加密算法的難度;而攻擊首部數(shù)據(jù)的唯一方法是旁路攻擊(Side-way Attack)獲取公鑰,否則只有通過(guò)蠻力攻擊,也就是唯密文破解非對(duì)稱加密過(guò)程AsymmetricEncrypt所用加密算法的等價(jià)問(wèn)題.本文使用Rijndael算法作為對(duì)稱加密算法,其中密鑰長(zhǎng)度設(shè)為256bit,塊(Block)大小設(shè)置為128bit,以符合FIPS PUB 197關(guān)于國(guó)家秘密(National Secret)級(jí)別數(shù)據(jù)的加密要求[22].使用RSA作為非對(duì)稱加密算法,其中密鑰長(zhǎng)度設(shè)置為2 048 bit,以符合SET(Secure Electronic Transaction)協(xié)議中關(guān)于CA(Certificate Authority)中心安全級(jí)別的密鑰長(zhǎng)度要求.

首部和主體數(shù)據(jù)中均含有各自的哈希信息,數(shù)據(jù)在傳輸和存儲(chǔ)過(guò)程中若被從外部非法篡改,通過(guò)哈希過(guò)程可以被發(fā)現(xiàn),從而降低遭受中間人攻擊(Man-In-the-Middle Attack)的風(fēng)險(xiǎn).

為區(qū)別于原有XML數(shù)據(jù),本文中的映射文件采用.sdd后綴名,以標(biāo)識(shí)其為自毀數(shù)據(jù)(Self-Destructing Data).

1.2自毀層

1.2.1自毀層設(shè)計(jì)與模型

自毀層處于應(yīng)用層和數(shù)據(jù)訪問(wèn)層之間,應(yīng)用層對(duì)象關(guān)系映射組件通過(guò)自毀層上的接口從映射文件中讀取映射信息.當(dāng)滿足映射文件首部所包含的自毀條件時(shí),自毀層根據(jù)預(yù)先設(shè)定的安全銷(xiāo)毀策略將數(shù)據(jù)訪問(wèn)層中相應(yīng)的映射文件銷(xiāo)毀.本文使用一個(gè)自毀數(shù)據(jù)原型系統(tǒng)來(lái)實(shí)現(xiàn)自毀層的功能設(shè)計(jì)要求.

自毀層與應(yīng)用層之間的交互接口需要符合應(yīng)用層的原有規(guī)范,只有這樣才能實(shí)現(xiàn)原有應(yīng)用程序到使用自毀數(shù)據(jù)的應(yīng)用程序之間的無(wú)縫遷移.而應(yīng)用程序開(kāi)發(fā)者也不需要對(duì)原有代碼進(jìn)行修改,只需要簡(jiǎn)單的引用自毀數(shù)據(jù)原型系統(tǒng)并導(dǎo)入其命名空間,即可完成程序的移植過(guò)程.自毀層與應(yīng)用層之間的請(qǐng)求-響應(yīng)(Request-Response)機(jī)制如圖5所示.

對(duì)象關(guān)系映射組件請(qǐng)求格式多為字符串類型的文件路徑,返回的響應(yīng)流(Response Stream)為XML數(shù)據(jù)形式的映射信息.因此,在原型系統(tǒng)中,遵照上述接口,可用以下公式表示自毀層的輸入輸出:

圖5 自毀層與應(yīng)用層交互接口

其中:FilePath為應(yīng)用層所請(qǐng)求的映射文件路徑,XMLStream為自毀層返回的 XML數(shù)據(jù),SelfDestructingLayer()為自毀層業(yè)務(wù)邏輯過(guò)程.

自毀層數(shù)據(jù)自毀原型系統(tǒng)接收到映射文件路徑請(qǐng)求之后,通過(guò)路徑查找文件系統(tǒng)下相應(yīng)映射文件.若映射文件不存在,原型系統(tǒng)過(guò)程終止并拋出出錯(cuò)信息;若文件存在,則對(duì)映射文件進(jìn)行分割,將其分為首部和主體,并分別對(duì)這兩部分?jǐn)?shù)據(jù)進(jìn)行處理.對(duì)于首部數(shù)據(jù),使用預(yù)先存儲(chǔ)的公鑰進(jìn)行解密,從解密后的首部數(shù)據(jù)明文中分離出自毀條件、主體數(shù)據(jù)的隨機(jī)密鑰以及首部數(shù)據(jù)的哈希信息.原型系統(tǒng)根據(jù)首部數(shù)據(jù)哈希信息,對(duì)自毀條件、主體數(shù)據(jù)的隨機(jī)密鑰進(jìn)行校驗(yàn).若校驗(yàn)失敗,證明首部數(shù)據(jù)已遭到破壞,過(guò)程終止并拋出錯(cuò)誤信息;若校驗(yàn)成功,則對(duì)自毀條件進(jìn)行判斷.上文所述,自毀條件為Datetime類型數(shù)據(jù),其含義是節(jié)點(diǎn)租期到期時(shí)間.若當(dāng)前時(shí)間已超過(guò)租期到期時(shí)間,原型系統(tǒng)認(rèn)為在當(dāng)前節(jié)點(diǎn)上的計(jì)算任務(wù)已完成,執(zhí)行預(yù)定安全銷(xiāo)毀策略銷(xiāo)毀相應(yīng)的映射文件數(shù)據(jù),過(guò)程終止并拋出錯(cuò)誤信息;若當(dāng)前時(shí)間未超過(guò)租期到期時(shí)間,則使用主體數(shù)據(jù)的隨機(jī)密鑰對(duì)主體數(shù)據(jù)進(jìn)行解密,并從解密后的主體數(shù)據(jù)明文中分離出XML數(shù)據(jù)和主體數(shù)據(jù)的哈希信息.原型系統(tǒng)根據(jù)體數(shù)據(jù)哈希信息對(duì)XML數(shù)據(jù)進(jìn)行校驗(yàn).若校驗(yàn)失敗,證明主體數(shù)據(jù)以遭到破壞,過(guò)程終止并拋出錯(cuò)誤信息;若校驗(yàn)成功,將XML數(shù)據(jù)以響應(yīng)流的形式返回至應(yīng)用層,自毀層業(yè)務(wù)邏輯過(guò)程成功完成.

1.2.2時(shí)間期限設(shè)計(jì)

原型系統(tǒng)通過(guò)映射文件中的租期到期時(shí)間和當(dāng)前時(shí)間比較,以判斷節(jié)點(diǎn)租期是否到期.需注意的是,不論操作系統(tǒng)時(shí)鐘還是主板上的硬件時(shí)鐘,節(jié)點(diǎn)的系統(tǒng)時(shí)間都可以被用戶更改從而繞過(guò)自毀層控制.為抵抗此類攻擊,自毀層原型系統(tǒng)有必要與Internet日期時(shí)間服務(wù)器進(jìn)行同步,使用世界標(biāo)準(zhǔn)時(shí)間而非節(jié)點(diǎn)系統(tǒng)時(shí)間作為當(dāng)前時(shí)間.Internet日期時(shí)間服務(wù)器使用日期時(shí)間協(xié)議(Daytime Protocol)[23],向發(fā)起TCP連接請(qǐng)求的主機(jī)返回標(biāo)準(zhǔn)格式的Daytime數(shù)據(jù).原型系統(tǒng)與Internet日期時(shí)間服務(wù)器的時(shí)間同步過(guò)程如圖6所示.

圖6 Internet時(shí)間同步

當(dāng)映射文件中的租期到期時(shí)間大于或等于當(dāng)前時(shí)間,原型系統(tǒng)將銷(xiāo)毀映射文件數(shù)據(jù).需注意的是,在文件系統(tǒng)中刪除一個(gè)文件并不意味著將其數(shù)據(jù)銷(xiāo)毀,而僅是對(duì)需刪除的文件進(jìn)行一個(gè)標(biāo)記操作.

1.2.3文件數(shù)據(jù)徹底自毀

以FAT文件系統(tǒng)為例[24],文件數(shù)據(jù)被分開(kāi)存儲(chǔ)于分區(qū)(Partition)上的簇(Cluster)中,這些包含文件數(shù)據(jù)的簇的地址在文件分配表(File Allocation Table)中以鏈表形式保存,其地址中的值即為下一簇地址,簇鏈尾部的簇地址中值為空.文件目錄表(File Directory Table)中則保存文件的元數(shù)據(jù)和起始簇號(hào).當(dāng)一個(gè)文件被刪除時(shí),文件系統(tǒng)首先在文件分配表中將該文件對(duì)應(yīng)簇鏈中每一個(gè)簇標(biāo)記為空閑,最后在文件目錄表中刪除該文件的信息.但是,文件數(shù)據(jù)仍然存在于簇中,只要通過(guò)文件分配表查找到被刪除文件的首簇,然后通過(guò)鏈表依次讀取簇鏈中每個(gè)簇中的數(shù)據(jù).將每一個(gè)簇的數(shù)據(jù)映射到文件數(shù)據(jù)對(duì)應(yīng)偏移位置,當(dāng)整個(gè)簇鏈中的簇的數(shù)據(jù)都被讀取之后,整個(gè)文件數(shù)據(jù)即被恢復(fù).

同樣的,NTFS(New Technology File System)文件系統(tǒng)中,文件數(shù)據(jù)所在的鏈表被存儲(chǔ)在主文件表(Master File Table)中[25].通過(guò)讀取被標(biāo)記為空閑的簇,查找簇鏈上對(duì)應(yīng)的簇?cái)?shù)據(jù),可以對(duì)NTFS文件系統(tǒng)中被刪除的文件數(shù)據(jù)進(jìn)行恢復(fù).

分布式文件系統(tǒng),例如HDFS(Hadoop Distributed File System)文件系統(tǒng),則是通過(guò)名字節(jié)點(diǎn)(Name Node)和數(shù)據(jù)節(jié)點(diǎn)(Data Node)來(lái)進(jìn)行文件數(shù)據(jù)訪問(wèn)和操作[26].其中,名字節(jié)點(diǎn)用于管理文件系統(tǒng)的命名空間,保存目錄結(jié)構(gòu)以及所有文件夾和文件的元數(shù)據(jù);數(shù)據(jù)節(jié)點(diǎn)則用來(lái)存儲(chǔ)文件數(shù)據(jù).和FAT以及NTFS不同的是,HDFS采用塊(Block)而非簇作為保存文件數(shù)據(jù)的最小存儲(chǔ)單位,每個(gè)塊的大小為64MB.當(dāng)在HDFS文件系統(tǒng)中通過(guò)-rm進(jìn)行刪除文件操作時(shí),名字節(jié)點(diǎn)通過(guò)傳入請(qǐng)求中的文件路徑將文件移至/trash目錄,此時(shí)文件依然存在并可通過(guò)命名空間org.apache.Hadoop.fs.Trash訪問(wèn).當(dāng)被移動(dòng)至/trash中的文件經(jīng)刪除周期org.apache.Hadoop.fs.Trash.Inerval后,HDFS從后臺(tái)調(diào)用清理線程org.apache.Hadoop.fs.Trash.Emptier開(kāi)始清理該文件.清理線程查找被刪除文件的路徑所映射的塊所在的數(shù)據(jù)節(jié)點(diǎn),并刪除所有對(duì)應(yīng)的塊.數(shù)據(jù)節(jié)點(diǎn)通過(guò)心跳(Heartbeat)和塊報(bào)告(Block Report)與名字節(jié)點(diǎn)進(jìn)行通信,以確定其工作狀態(tài)是否正常,數(shù)據(jù)塊是否完整.若數(shù)據(jù)節(jié)點(diǎn)及所要?jiǎng)h除的塊均工作正常,則清理線程向數(shù)據(jù)節(jié)點(diǎn)提交刪除塊的操作.最后,清理線程刪除名字節(jié)點(diǎn)上的文件信息,完成整個(gè)刪除過(guò)程.

由于分布式系統(tǒng)的并發(fā)性和異步性,數(shù)據(jù)節(jié)點(diǎn)上相應(yīng)塊的操作不可能像本地文件系統(tǒng)一樣實(shí)時(shí)同步完成.而且,為了保障文件數(shù)據(jù)的完整性,HDFS會(huì)根據(jù)副本系數(shù)在不同的數(shù)據(jù)節(jié)點(diǎn)上創(chuàng)建塊的冗余副本以進(jìn)行差錯(cuò)控制.原則上,只要所有被刪除文件的相應(yīng)塊沒(méi)有全部被刪除,文件數(shù)據(jù)就可以根據(jù)名字節(jié)點(diǎn)中所存儲(chǔ)的塊映射信息被恢復(fù).

為防止攻擊者通過(guò)技術(shù)手段恢復(fù)文件系統(tǒng)中刪除的映射文件,必須調(diào)用安全銷(xiāo)毀策略對(duì)映射文件內(nèi)容進(jìn)行清理和銷(xiāo)毀,而非簡(jiǎn)單的刪除.美國(guó)國(guó)防部推薦了一種針對(duì)可寫(xiě)入媒體中信息的銷(xiāo)毀方法:依次使用一個(gè)字符(character)、該字符的反碼、一個(gè)隨機(jī)字符覆蓋所有媒體上的可尋址區(qū)域并校驗(yàn)[27].基于該方法的原理,在原型系統(tǒng)中引入DOD 5220-22-M標(biāo)準(zhǔn)作為安全銷(xiāo)毀策略,用以實(shí)現(xiàn)對(duì)文件系統(tǒng)中到期映射文件數(shù)據(jù)的銷(xiāo)毀.具體算法流程如下:首先,使用0x00對(duì)映射文件中所對(duì)應(yīng)的每個(gè)簇進(jìn)行覆蓋;然后,使用0x00的反碼,即0xFF再次覆蓋;最后,使用偽隨機(jī)函數(shù)生成的隨機(jī)字節(jié)最后一次覆蓋.當(dāng)以上三步均成功完成之后,從文件系統(tǒng)中將映射文件刪除.經(jīng)過(guò)該安全銷(xiāo)毀策略銷(xiāo)毀的文件數(shù)據(jù),即使其索引被恢復(fù),由于其數(shù)據(jù)所在的簇(在分布式文件系統(tǒng)中則為塊)中的數(shù)據(jù)已被完全覆蓋,故而不可能重建原文件,攻擊者僅能獲得最后一次覆蓋過(guò)程所寫(xiě)入的無(wú)意義的隨機(jī)字節(jié)序列.

2 系統(tǒng)實(shí)現(xiàn)

本節(jié)以NHibenate為例,詳細(xì)說(shuō)明如何在原有的對(duì)象關(guān)系映射系統(tǒng)中實(shí)添加數(shù)據(jù)自毀系統(tǒng),實(shí)現(xiàn)映射文件自毀功能.

在Microsoft Visual Studio.Net集成開(kāi)發(fā)環(huán)境中編寫(xiě)2.2中所設(shè)計(jì)的的自毀層原型系統(tǒng)代碼,并編譯成動(dòng)態(tài)鏈接庫(kù)(Dynamic Link Library)形式.在面向?qū)ο箢I(lǐng)域中,2.1中所設(shè)計(jì)的映射文件模型定義如下:

其中,AsymmetricEncrypt使用RSA 2048,SymmetricEncrypt使用Rijndael,HHash和BHash均使用MD5[28].

動(dòng)態(tài)鏈接庫(kù)僅向外部暴露兩個(gè)接口:一個(gè)將XML數(shù)據(jù)轉(zhuǎn)換為映射文件,另一個(gè)則將映射文件轉(zhuǎn)換為XML數(shù)據(jù).其命名空間與接口如下:

其中,SelfDestructingData.XMLDataToMapping -

File供映射文件分發(fā)者使用.分發(fā)者設(shè)定需要封裝的XML數(shù)據(jù),數(shù)據(jù)到期時(shí)間以及加密所用的私鑰之后,該函數(shù)將XML數(shù)據(jù)以映射文件方式封裝.

SelfDestructingData.MappingFileToXMLData供部署了關(guān)系映射系統(tǒng)的應(yīng)用程序使用,以實(shí)現(xiàn)程序中對(duì)映射文件的讀取操作.

在NHibenate中,需要重寫(xiě)(Override)下面方法,以便于應(yīng)用程序開(kāi)發(fā)者使用,關(guān)鍵代碼如下:

重寫(xiě)之后,應(yīng)用程序開(kāi)發(fā)者只要在項(xiàng)目中引用相應(yīng)的命名空間,即可將原有應(yīng)用程序轉(zhuǎn)換為支持自毀數(shù)據(jù)的程序.一個(gè)轉(zhuǎn)換后的項(xiàng)目如圖7所示.

圖7 使用自毀數(shù)據(jù)的應(yīng)用程序

3 與現(xiàn)有技術(shù)比較

3.1功能對(duì)比

本文方案技術(shù)與現(xiàn)有文件生命周期控制方法比較,本方法增加了自主時(shí)間期限、訪問(wèn)次數(shù)自動(dòng)檢測(cè)等功能,實(shí)現(xiàn)對(duì)數(shù)據(jù)的主動(dòng)有效控制,當(dāng)達(dá)到判斷條件后自動(dòng)徹底銷(xiāo)毀,比熊[11-15]等人方法實(shí)現(xiàn)方法簡(jiǎn)單,算法通用性好,且實(shí)踐可行;將岳[16]和Json[19]的方法中被動(dòng)控制轉(zhuǎn)化為主動(dòng)設(shè)置時(shí)間期限和訪問(wèn)次數(shù)等控制條件,且無(wú)需額外工作(如拉格朗日定理或可信表更新)進(jìn)行文檔驗(yàn)證進(jìn)行解密.具體表現(xiàn)為下面4點(diǎn):

1)通過(guò)雙重散列實(shí)現(xiàn)文件數(shù)據(jù)的散列轉(zhuǎn)換和首部驗(yàn)證消息散列轉(zhuǎn)換,多重安全機(jī)制保障密文數(shù)據(jù)的安全性.將對(duì)稱加密密鑰封裝在Header中,并使用非對(duì)稱加密手段加密Header部分,防止密鑰丟失或者被竊導(dǎo)致文件數(shù)據(jù)被查看.

2)在加解密過(guò)程中,引入了時(shí)間期限、訪問(wèn)次數(shù)以及銷(xiāo)毀策略等因素,充分考慮文件數(shù)據(jù)的使用規(guī)范,實(shí)現(xiàn)對(duì)文件數(shù)據(jù)的有效控制,避免文件接收者可以無(wú)限期和無(wú)限次的訪問(wèn)數(shù)據(jù).

3)檢測(cè)到數(shù)據(jù)文件使用時(shí)間已到期或訪問(wèn)次數(shù)結(jié)束,自動(dòng)調(diào)用銷(xiāo)毀策略將數(shù)據(jù)文件銷(xiāo)毀,根據(jù)數(shù)據(jù)文件安全程度的高低,對(duì)于數(shù)據(jù)文件分為三種銷(xiāo)毀方式:一次隨機(jī)序列覆蓋、三次覆蓋和七次隨機(jī)序列覆蓋,降低了用戶殘留文件數(shù)據(jù)泄漏的風(fēng)險(xiǎn).

4)達(dá)到判斷條件后自動(dòng)銷(xiāo)毀,無(wú)需用戶或可信第三方介入,避免因意外因素導(dǎo)致的文件數(shù)據(jù)外泄、漏刪等情況,規(guī)避人為導(dǎo)致的數(shù)據(jù)外泄風(fēng)險(xiǎn).

3.2性能對(duì)比

在時(shí)間開(kāi)銷(xiāo)上,該方案由于進(jìn)行了對(duì)稱加密算法和非對(duì)稱加密算法的設(shè)計(jì),在時(shí)間開(kāi)銷(xiāo)上增加不少.但與普通的文件打開(kāi)耗時(shí)相比,對(duì)于普通用戶完全是可接受范圍.通過(guò)方案自帶檢測(cè)代碼加密文件發(fā)現(xiàn),加密一個(gè)1M的文件只需要9 ms左右時(shí)間,對(duì)于用戶反應(yīng)時(shí)間0.1s來(lái)說(shuō),這點(diǎn)時(shí)間開(kāi)銷(xiāo)可以忽略不計(jì).而解密時(shí)間就更小,1M大小的文件解密時(shí)間僅為3ms左右,也遠(yuǎn)低于0.1s,不改變?nèi)藗兇蜷_(kāi)電子文件的習(xí)慣.在Xiong[11-15]與岳風(fēng)順[16]的方案中并未對(duì)加解密時(shí)間開(kāi)銷(xiāo)進(jìn)行試驗(yàn),僅限于理論研究基礎(chǔ)上的技術(shù)探討;而Fu[20]的方案由于增加了數(shù)據(jù)庫(kù)檢索的時(shí)間,并且隨著郵件越大,轉(zhuǎn)換成的uuid串的越多,當(dāng)數(shù)據(jù)庫(kù)中保存的uuid達(dá)到GB級(jí)別,則時(shí)間開(kāi)銷(xiāo)會(huì)大幅提升,故在時(shí)間開(kāi)銷(xiāo)上略大于本方案的數(shù)據(jù);Json[19]的方案中由于實(shí)時(shí)維護(hù)路由表和可信表,對(duì)于同一個(gè)文件data,增加了維護(hù)的時(shí)間開(kāi)銷(xiāo),而本方案無(wú)需維護(hù)時(shí)間;而對(duì)于Tung[21]的方案,由于是單重加密,且只有時(shí)間屬性,時(shí)間開(kāi)銷(xiāo)較本方案小一些.

在空間開(kāi)銷(xiāo)上,該方案中實(shí)驗(yàn)文件大小僅增加1KB大小左右,相比于一個(gè)1M左右的文件,其大小僅增加了千分之一,完全在可接受范圍內(nèi).在Json[19]的方案中由于需要實(shí)時(shí)維護(hù)路由表和可信表,當(dāng)peer越來(lái)越多時(shí),其表空間占用就會(huì)比1KB大很多;Fu[20]的方案主要開(kāi)銷(xiāo)是數(shù)據(jù)庫(kù)表的維護(hù),當(dāng)用戶越來(lái)越多,服務(wù)器中的表會(huì)越來(lái)越大,穩(wěn)定性越差,只能進(jìn)行分布式表結(jié)構(gòu)和負(fù)載均衡設(shè)計(jì),而生產(chǎn)的url鏈接則較小,不隨郵件大小而變化;而Xiong[11-15]與岳風(fēng)順[16]的方案中,由于密文和密鑰均是多重加密,并將密鑰保存與DHT網(wǎng)絡(luò),故不存在多出來(lái)的1KB開(kāi)銷(xiāo),但超過(guò)生命周期的密文未自毀,依然占用服務(wù)器空間,需要人為的定時(shí)清理;同理,Tung[21]的密文message也需要sender 和receiver進(jìn)行定時(shí)清理,否則手機(jī)空間會(huì)越來(lái)越小.

對(duì)比以上方案,本方案無(wú)需可信服務(wù)器和可信第三方,大大減少服務(wù)器對(duì)文件處理壓力,由于加解密過(guò)程簡(jiǎn)單,對(duì)機(jī)器性能要求不高.而方案[21]將此過(guò)程移至個(gè)人終端,適用于大多數(shù)格式的電子文件,未改變?nèi)藗冊(cè)袨g覽文件習(xí)慣.本方案增加了次數(shù)和銷(xiāo)毀策略屬性,以及在生命周期結(jié)束后對(duì)密文自毀的設(shè)置.

3.3復(fù)雜度對(duì)比

在Xiong[11-15]和岳風(fēng)順[16]的方案中,密鑰從密文中抽取,并保存在DHT網(wǎng)絡(luò),其密鑰需要經(jīng)過(guò)各種信道傳輸,如果被截取足夠的分量,其密鑰也就無(wú)秘密可言;且密鑰的復(fù)雜度受到密文長(zhǎng)度的影響,假若密文本身很短,則其隨機(jī)抽取的密鑰本身的隨機(jī)性就很小,破解的成本大大降低.相比前兩個(gè)方案,本文提出的方法優(yōu)勢(shì)是在相同密鑰長(zhǎng)度的情況下,時(shí)間期限作為第二次Hash散列內(nèi)容一部分,在64位系統(tǒng)中,其破解的可能性為,其復(fù)雜度穩(wěn)定,不受密文大小影響,即使密文長(zhǎng)度為128位也是如此.而Fu[20],Json[19]和Tung[21]均采用對(duì)稱加密,其復(fù)雜度取決于加解密算法的復(fù)雜度,其中Fu[20]的方案中數(shù)據(jù)庫(kù)中的uuid串的數(shù)量對(duì)復(fù)雜度也有影響,數(shù)量越大,其暴力破解獲取加密源字符流的復(fù)雜度也越大,而Json[19]和Tung[21]只取決于算法的復(fù)雜度,并且需要保護(hù)好密鑰表中密鑰.

3.4綜合性能指標(biāo)分析

對(duì)比現(xiàn)有方案,可看出本文提出的方法在抵抗攻擊、穩(wěn)定性、可擴(kuò)展性方面都已經(jīng)很好實(shí)現(xiàn)功能,同時(shí)能夠進(jìn)行多屬性多重散列加密,規(guī)避了密鑰管理的煩惱;在生命周期結(jié)束后無(wú)需擔(dān)心密文未刪除帶來(lái)的泄露風(fēng)險(xiǎn).(見(jiàn)表1).

表1 性能指標(biāo)表

4 結(jié)語(yǔ)

本文針對(duì)對(duì)象關(guān)系映射中存在的明文數(shù)據(jù)所造成的脆弱性,提出了一種在大規(guī)模分布式計(jì)算環(huán)境下可通過(guò)屬性對(duì)數(shù)據(jù)進(jìn)行自毀的方法,以降低以往所使用的XML映射文件被濫用的安全風(fēng)險(xiǎn).本文中所提出的解決方案仍然是基于傳統(tǒng)的密碼學(xué)原理,通過(guò)多重加密確保密文安全,具有很好的適用性.我們?cè)诤罄m(xù)工作中將會(huì)把研究重心放在更加適合于分布式環(huán)境的相關(guān)技術(shù)上,例如適用于對(duì)等網(wǎng)絡(luò)(Peer-to-Peer),分布式哈希表(Distributed Hash Table)等等.

[1]AMBLER S.Mapping Objects To Relational Databases[C]// O/R Mapping In Detail.http://www.agiledata.org/essays/ mappingObjects.html.2006.

[2]TIM B,JEAN P,CMS,et al.Extensible Markup Language (XML)1.0[C]//World Wide Web Consortium.2004:115-146.

[3]XU D,LUO F,GAO L,et al.Fine-grained document sharing using attribute-based encryption in cloud servers[C]//Innovative Computing Technology(INTECH),2013 Third International Conference on.IEEE,2013.65-70.

[4]LIM,YU S,ZHENG Y,et al.Scalable and Secure Sharing of Personal Health Records in Cloud Computing Using Attribute-Based Encryption[J].IEEE Transactionson Parallel&Distributed Systems,2013,24(1):131-143.

[5] EMURA K,MIYAJIA,NOMURA A,etal.A Ciphertext-Policy Attribute-Based Encryption Scheme With Constant Ciphertext Length[J].Information Security Practice&Experience,2009,5451(1):46-59.

[6]ZAVATTONIE,PEREZ L JD,MITSUNARIS,etal.Software Implementation of an Attribute-Based Encryption Scheme[J]. IEEE Transactions on Computers,2015,64:1429-1441.

[7]GREEN M,ATENIESE G.Identity-Based Proxy Re-encryption[M].springer:Berlin Heidelberg,2007,288-306.

[8]PublicKey Cryptography PKC.Public-Key Cryptography--PKC 2014[J].Springer Berlin,2014.

[9]WENG J,YANG Y,TANGQ,etal.Efficient conditional proxy re-encryption with chosen cipher t ext security[J].International Journal of Network Security&Its Applications,2014,2 (4):104-110.

[10]徐菁,余建橋,朱有佃,等.基于遠(yuǎn)程控制的數(shù)據(jù)銷(xiāo)毀技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(9):2206-2208.

[11] XIONG JB,YAO Z Q,JIAN F,et al.A Secure Self-Destruction Schemewith IBE for the Internet Content Privacy[J]. Chinese Journal of Computers,2014.

[12]XIONGJB,YAOZQ,JIAN F,et al.A Secure Self-Destruction Scheme for Composite Documentswith Attribute Based Encryption[J].Acta Electronica Sinica,2014,42(2):366-376.

[13]XIONGJ,YAOZ,M A J,et al.A secure document self-destruction schemewith identity based encryption[C]//Intelligent Networking and Collaborative Systems(INCoS),2013 5th International Conference on.IEEE,2013.239-243.

[14]熊金波,姚志強(qiáng),馬建峰,等.基于屬性加密的組合文檔安全自毀方案[J].電子學(xué)報(bào),2014(2):366-376.

[15]熊金波,姚志強(qiáng),馬建峰,等.基于行為的結(jié)構(gòu)化文檔多級(jí)訪問(wèn)控制[J].計(jì)算機(jī)研究與發(fā)展,2013,50(7):1399-1408.

[16]岳風(fēng)順.云計(jì)算環(huán)境中數(shù)據(jù)自毀機(jī)制研究[D].長(zhǎng)沙:中南大學(xué),2011.

[17]王麗娜,任正偉,余榮威,等.一種適于云存儲(chǔ)的數(shù)據(jù)確定性刪除方法[J].電子學(xué)報(bào),2012,40(2):266-272.

[18]ZENG L,SHIZ,XU S,et al.Safevanish:An improved data self-destruction for protecting data privacy[C]//Cloud Computing Technology and Science(CloudCom),2010 IEEE Second International Conference on.IEEE,2010.521-528.

[19]CROFT J,SIGNORILE R.A self-destructing file distribution system with feedback for peer-to-peer networks/[C]//Proceedings of the 9th WSEAS international conference on Applied computer science.World Scientific and Engineering Academy and Society(WSEAS),2009.

[20]FU X,WANG Z Z,WU H,et al.How to send a self-destructing email:a method of self-destructing email system [C]//Big Data(BigData Congress),2014 IEEE International Congress on.IEEE,2014.304-309.

[21]TUNG T Y,LIN L,LEE D T.Pandora messaging:an enhanced self-message-destructing secure instantmessaging architecture formobile devices[C]//27th International Conference on Advanced Information Networking and Applications Workshops.IEEE,2012.720-725.

[22]FPUB NIST,F(xiàn)IPS PUB 197:Advanced Encryption Standard (AES)[S].2001.

[23]POSTEL J,RFC 867:Daytime protocol[S].1983.

[24]Microsoft,F(xiàn)AT:General Overview of On-Disk Format[S]. 2000.

[25]KOZIEROK,CHARLES M.Overview and history of NTFS[EB/OL].http://www.pcguide.com/ref/hdd/file/ntfs/over.htm,2001.

[26]BORTHAKUR D.The hadoop distributed file system:Architecture and design[J].Hadoop Project Website,2007,11 (11):1-10.

[27]FRIELDS J.National industrial security program.operating manual supplement[J].National Industrial Security Program Operating Manual Supplement,1995.

[28]RIVEST R,RFC 1321:The MD5 Message-Digest Algorithm [S].1992.

A method of self-destructing data in object-relationalmapping

YANG Jia-qi,WANG Zhi-jian,F(xiàn)U Xiao,WANG Yu
(School of Computer and Information,Hohai University,Nanjing 211100,China)

This paper proposed amethod and introduced technology of Web layered concept to divide ORM into three different levels.The encrypted file was divided into two parts.The time,access times,destruction strategy was encrypted as attributes to be a file header by double hash encryption.Thismethod does notneed any intervene,and at the end of the lifecycle it could destroy itself in a distributed system so that it could implement fine-grained control of object relationalmapping files.

object-relation mapping;file data;ABE;self-destructing

TP309

A

1672-0946(2016)02-0203-09

2015-08-13.

江蘇省自然科學(xué)基金(BK20130852)

楊家奇(1990-),男,碩士,研究方向:信息安全和Web開(kāi)發(fā).

猜你喜歡
密文密鑰生命周期
全生命周期下呼吸機(jī)質(zhì)量控制
一種支持動(dòng)態(tài)更新的可排名密文搜索方案
幻中邂逅之金色密鑰
基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
從生命周期視角看并購(gòu)保險(xiǎn)
民用飛機(jī)全生命周期KPI的研究與應(yīng)用
TPM 2.0密鑰遷移協(xié)議研究
企業(yè)生命周期及其管理
一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)