馮軒+黃剛
摘 要: Apache Hadoop是一種廣泛使用的分布式系統(tǒng)基礎架構,它實現(xiàn)了一個分布式文件系統(tǒng)(HDFS),并假定系統(tǒng)中的數(shù)據(jù)節(jié)點是同構的。當云系統(tǒng)向上擴展時,數(shù)據(jù)節(jié)點很可能變得異構。而絕大多數(shù)的研究是為了提高Hadoop在異構環(huán)境下的性能,很少注意到數(shù)據(jù)安全的改進。文章提出的SecHDFS數(shù)據(jù)分配方案通過秘密共享技術來提高異構Hadoop系統(tǒng)中數(shù)據(jù)存儲的安全性,可在提高安全性的同時保持系統(tǒng)的性能。
關鍵詞: 數(shù)據(jù)節(jié)點; 分布式文件系統(tǒng); 異構系統(tǒng); 數(shù)據(jù)安全; 秘密共享技術
中圖分類號:TP311.5 文獻標志碼:A 文章編號:1006-8228(2017)06-08-03
Research on data security assignment in Hadoop heterogeneous system
Feng Xuan, Huang Gang
(School of Computer, Nanjing University of Posts and Telecommunications, Nanjing, Jiangsu 210003, China)
Abstract: Apache Hadoop is a widely used distributed system infrastructure, which implements a distributed file system (HDFS) and assumes that the data nodes in the system are homogeneous. When the cloud system expands, the data nodes are likely to become heterogeneous. The vast majority of the research is to improve the performance of Hadoop in heterogeneous environment, while little to improve the data security. In this paper, the SecHDFS data allocation scheme is proposed to improve the security of data storage in a heterogeneous Hadoop system by secret sharing technology, which can improve the security while maintaining the system performance.
Key words: data node; Hadoop distributed file system; heterogeneous systems; data security; secret sharing technology
0 引言
Hadoop是一個能夠讓用戶輕松架構和使用的分布式計算平臺。用戶可以輕松地在Hadoop上開發(fā)和運行處理海量數(shù)據(jù)的應用程序。在所有的系統(tǒng)設計中,分布式框架最容易受到安全性攻擊并成為侵入式攻擊的目標。在數(shù)據(jù)安全性方面,HDFS[1],Hadoop的數(shù)據(jù)存儲系統(tǒng),非常依賴于加密技術來保護數(shù)據(jù)。通過一個異構環(huán)境,當DataNode因為每個節(jié)點的加密和安全標準變化被破壞,系統(tǒng)作為一個整體,不會受到影響。但是,HDFS并不考慮異構性。HDFS的主要安全風險之一是數(shù)據(jù)復制[2]。盡管數(shù)據(jù)復制提升了可靠性,它也可能因為云處理器的存儲片段的增加而帶來安全風險[3]。有證據(jù)表明,異構特性可用于提高非復制數(shù)據(jù)的存儲安全性。
我們的工作重點在于通過引入安全Hadoop分布式文件系統(tǒng)(SecHDFS),使用S-FAS分段分配方案并將其應用于Hadoop中的HDFS,來解決Hadoop中的數(shù)據(jù)復制的安全問題。在將文件提交到Hadoop系統(tǒng)之后, SecHDFS方案將生成一個分組的候選節(jié)點的目標列表,這些節(jié)點將被傳遞到Hadoop數(shù)據(jù)放置策略的修改版本中。Sec HDFS將嘗試使用盡可能多的不同類型的數(shù)據(jù)節(jié)點來存儲不同的片段,同時在DataNodes中保持同一類型的復制。
考慮到加密方法需要將分段的加密密鑰從NameNode傳播到DataNode, 如果一個攻擊者能夠攔截加密密鑰的片段,那么,根據(jù)秘密共享理論[4],攻擊者將能夠在獲得部分片段后重建加密密鑰和解密截取的文件。 但是,如果兩個DataNodes具有不同的漏洞,則對其中一個DataNode的成功攻擊不一定可以對另一個DataNode的成功攻擊。
1 背景知識
1.1 Hadoop的HDFS文件存儲
Hadoop的分布式文件系統(tǒng)HDFS,采用流式數(shù)據(jù)訪問模式,可以用來存儲超大文件和海量數(shù)據(jù),其具有分布式存儲管理、方便部署、高吞吐率的特點[5-6]。集群HDFS擁有兩種節(jié)點(名稱節(jié)點NameNode和數(shù)據(jù)節(jié)點DataNode),在內存中名稱節(jié)點保存著整個文件系統(tǒng)的名字空間和文件數(shù)據(jù)塊映射的映像信息,而數(shù)據(jù)節(jié)點則負責存儲和讀取數(shù)據(jù)文件。從數(shù)據(jù)加密安全性來看,可以分為對數(shù)據(jù)文件加密和對數(shù)據(jù)塊加密,而由于一個數(shù)據(jù)文件加密很可能會被破解或泄漏,降低了安全性,所以本文從數(shù)據(jù)塊加密角度出發(fā),闡述利用秘密共享技術的數(shù)據(jù)塊加解密方案。一個簡單的HDFS文件系統(tǒng)架構如圖1所示。
[NameNode][DataNode][DataNode][DataNode][DataNode][客戶端] [機架1] [read] [數(shù)據(jù)請求][DataNode][DataNode] [機架2] [備份][客戶端] [write] [塊信息]
1.2 秘密共享技術
秘密共享的思想是將秘密以適當?shù)姆绞讲鸱?,拆分后的每一個份額由不同的參與者管理,單個參與者無法恢復秘密信息,只有若干個參與者一同協(xié)作才能恢復秘密消息。更重要的是,當其中任何相應范圍內參與者出問題時,秘密仍可以完整恢復。
一個秘密共享系統(tǒng)[4]由秘密分發(fā)者D,參與者集合P={U1,U2,…,Un},訪問結構T,秘密空間S,秘密份額空間K,一個秘密分配算法Divide-Secret和一個秘密重構算法Recover-Secret等構成。秘密共享的人員由參與者集合P給出;哪些參與者可一起恢復秘密由接入結構T指出;秘密空間S給出秘密的取值范圍;秘密份額的取值范圍由份額空間K指出;秘密產生秘密份額的概率多項式時間算法給出分配算法;恢復算法是確定性的,如何恢復秘密由接入結構中P的子集給出。
1.3 SecHDFS密鑰管理和分發(fā)方案
在Hadoop中實現(xiàn)數(shù)據(jù)復制以提高可靠性。然而,這增加了數(shù)據(jù)存儲中涉及的安全風險。在提出的SecHDFS方案中,根據(jù)異構Hadoop系統(tǒng)中的漏洞特征對DataNode進行分類和分組。理想的數(shù)據(jù)分配是將一個片段的所有副本存儲到同一組的DataNode中。假設我們在每種類型中有足夠的DataNode可以選擇,我們的SecHDFS就具體使用以下策略來進行數(shù)據(jù)塊的放置。
⑴ 基于其安全漏洞,把Hadoop系統(tǒng)中的所有DataNode分為不同的節(jié)點類型組。
⑵ 當放置數(shù)據(jù)時,SecHDFS方案將盡可能采取很多不同組的DataNodes,同時保持Hadoop的原始隨機數(shù)據(jù)節(jié)點選擇。
⑶ 相同數(shù)據(jù)片段的所有副本將存儲在同一組的DataNode中。
⑷ 將(m,n)秘密共享方案并入SecHDFS分配機制。
2 安全性分析
根據(jù)秘密共享技術中門限多重秘密共享方案[5],一般的(t,n)門限方案就是一個秘密K被n個參與者共享,至少t個參與者聯(lián)合可以重構這個秘密;而t-1個或者更少的參與者不能得到這個秘密的任何信息。由于重構n階多項式f(x)需要知道(n+1)個滿足Yi=f(Xi)的點(Xi,Yi)。由于(t-1)個或更少的參與者的合作不能得到這樣的(n+1)個點。利用n個或更少的點來重構n階多項式f(x)的難度等價于成功地攻破了Shamir[6]的(t,n)門限方案,這在計算上是不可行的。因此,(t-1)個或者更少的參與者的合作不能正確地重構n階多項式f(x),換句話說,就不能恢復出共享的秘密。
因此,通過對任何DataNode使用一組成功的攻擊方法,只會有一個文件的片段會被泄露,整個文件的安全性得以保證。
3 模型實現(xiàn)和性能分析
在本節(jié)中,我們開發(fā)了一個保證模型,以保證定量評估Hadoop異構系統(tǒng)的數(shù)據(jù)存儲。
在實現(xiàn)該模型的時候采用了以下幾個工具:hadoop-0.20.2-core.jar、jdk1.7、MyEclipse、dom4j.jar、bcprov-jdk16-145.jar。其中hadoop-0.20.2-core.jar提供了利用hadoop的API接口函數(shù),我們還搭建了一個裝有hadoop的分布式集群環(huán)境,用來分布式存儲數(shù)據(jù)文件,bcprov-jdk16-145.jar負責實現(xiàn)對數(shù)據(jù)的加解密算法。
其中SecHDFS方案控制數(shù)據(jù)放置的決策。最后,我們制定了以下保證模型:
⑴
該模型的實現(xiàn)包括以下幾個模塊:文件存儲模塊,文件訪問控制模塊,數(shù)據(jù)加解密模塊,數(shù)據(jù)文件I/O模塊,如圖2所示。
[客戶端][文件存儲][文件訪問控制][數(shù)據(jù)加解密][數(shù)據(jù)文件I/O][Hadoop平臺]
這一模型表明,保證受K DataNode類型,Hadoop系統(tǒng)中的N個DataNode和第j組中的Sj DataNode的影響。此外,成功攻擊片段的概率受到P(Z)的影響,文件中的閾值m和片段數(shù)(與塊號相同)r的重復也對系統(tǒng)保證有所影響。
如果目標Hadoop系統(tǒng)中的所有DataNode,共享同一組安全漏洞,則一個成功的攻擊方法將能夠重建受損文件。圖3表明對于具有同類漏洞的Hadoop系統(tǒng),閾值m對系統(tǒng)保證沒有影響。當涉及具有Hadoop異構系統(tǒng)時,系統(tǒng)保證隨著K和閾值m的值的增加而顯著增加(參見圖3)。這種趨勢意味著高度的異構使系統(tǒng)的機密性更好的得以保證。
在所有四個測試案例中,N設置為120,K設置為1至6,r設置為2;當K為1時,系統(tǒng)是一個同構系統(tǒng)。
SecHDFS通過將他們安全方法在不同組的應用來識別DataNode。當一些節(jié)點做出寫入請求時,通過定義放置決策擴展的數(shù)據(jù)片段的數(shù)量,模塊將通過參考我們的預處理的DataNode配置信息來生成包含HDFS最佳候選的列表。這個過程是基于我們的SecHDFS方案,并將節(jié)點列表導出到HDFS。
在SecHDFS應用中,所有信息(包括安全漏洞和存儲負載)都將存儲在節(jié)點配置文件中。配置文件將在我們的方案初始化期間加載,并且放置決策擴展將在SecHDFS方案之前預處理信息。此外,在SecHDFS方案確定候選節(jié)點列表之后,SecHDFS模塊將把該列表發(fā)送到我們的定制數(shù)據(jù)放置策略中。
4 SecHDFS的性能評估
我們的實驗結果如圖4,SecHDFS方案和HDFS默認方案在放置同量數(shù)據(jù)時花費的時間相似。這兩種策略在文件增大時顯示相同的趨勢。
系統(tǒng)大小N為16,復制度為1。
5 結束語
本文結合秘密共享理論提出了一種SecHDFS的安全數(shù)據(jù)分配方案和基于HDFS的一種分布式數(shù)據(jù)安全存儲模型,以提高Hadoop異構系統(tǒng)中的數(shù)據(jù)存儲安全性同時保持系統(tǒng)性能。我們討論了SecHDFS的動機,設計,實施,保證評估模型和性能評估?;诜植际綌?shù)據(jù)安全存儲模型的分析和實驗結果表明,SecHDFS方案與默認HDFS方案相比,明顯提升了數(shù)據(jù)存儲安全性,同時不影響Hadoop系統(tǒng)的性能。采用基于HDFS的分布式數(shù)據(jù)安全存儲模型有以下四點優(yōu)勢:①可移植性;②高效數(shù)據(jù)存取;③可擴展性;④數(shù)據(jù)的保密性和完整性。利用秘密共享技術和HDFS,有效解決了對數(shù)據(jù)安全存儲問題。下一步的研究內容包括保證Hadoop中的MapReduce多任務之間調度的安全性和HDFS的I/O效率的優(yōu)化。
參考文獻(References):
[1] Azzedin F. Towards a scalable HDFS architecture[C]//
International Conference on Collaboration Technologies and Systems,2013:155-161
[2] Islam N S, Rahman M W, Jose J, et al. High performance
RDMA-based design of HDFS over InfiniBand[C]//International Conference for High PERFORMANCE Computing, Networking, Storage and Analysis. IEEE Computer Society,2012:1-12
[3] Daoud M I, Kharma N. A high performance algorithm for
static task scheduling in heterogeneous dist-ributed computing systems[J]. Journal of Parallel & Distributed Computing,2008.68(4):399-409
[4] Dragan C C, Tiplea F L. Distributive Weighted Threshold
Secret Sharing Schemes[J]. Information Sciences,2016.339:85-97
[5] 許春香,肖國鎮(zhèn).門限多重秘密共享方案[J].電子學報,
2004.32(10):1688-1689
[6] Ning C, Wu Z H, Liu H Z, et al. Improving downloading
performance in hadoop distributed file system[J]. Journal of Computer Applications,2010.30(8):2060-2065
[7] Yang C C, Chang T Y, Hwang M S. A (t, n) multi-secret
sharing scheme[J].Applied Mathematics & Computation,2004.151(2):483-490
[8] Wilson R, Tse D, Scholtz R A. Channel Identification:
Secret Sharing using Reciprocity in Ultrawideband Channels[J]. IEEE Transactions on Information Forensics & Security,2007.2:364-375