亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于PKI的HDFS認(rèn)證及安全傳輸機(jī)制研究

        2014-06-05 15:27:41李延改趙華偉
        山東科學(xué) 2014年5期
        關(guān)鍵詞:密鑰客戶端集群

        李延改,趙華偉

        (1.山東財(cái)經(jīng)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 濟(jì)南 250014;2.山東中孚信息產(chǎn)業(yè)股份有限公司,山東 濟(jì)南 250101)

        基于PKI的HDFS認(rèn)證及安全傳輸機(jī)制研究

        李延改1,2,趙華偉1*

        (1.山東財(cái)經(jīng)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 濟(jì)南 250014;2.山東中孚信息產(chǎn)業(yè)股份有限公司,山東 濟(jì)南 250101)

        為解決Hadoop核心子項(xiàng)目Hadoop分布式文件系統(tǒng)(HDFS)文件服務(wù)過程中存在的認(rèn)證及安全傳輸問題,對當(dāng)前所采用的Kerberos方案進(jìn)行了詳細(xì)的分析,針對其在安全性和效率性方面存在的缺陷,提出將基于PKI的數(shù)字證書認(rèn)證技術(shù)及基于數(shù)字信封的AES對稱加密技術(shù)應(yīng)用到HDFS的安全機(jī)制中。分析表明,該安全機(jī)制與Kerberos相比,能夠?yàn)镠DFS文件服務(wù)提供更安全、更高效的解決方案。

        Hadoop;HDFS安全;Kerberos;PKI

        Hadoop作為Apache旗下的一個開源分布式計(jì)算平臺,從2002年發(fā)布面世以來,就受到了廣泛的關(guān)注。Hadoop強(qiáng)大的存儲能力和高效的并行計(jì)算能力,受到了企業(yè)界的青睞,逐步成為大數(shù)據(jù)時代數(shù)據(jù)存儲處理的有效工具,Amazon、Yahoo等知名組織更是用Hadoop集群搭建自己的私有云架構(gòu)。然而盡管有著無與倫比的存儲和計(jì)算能力,Hadoop薄弱的安全機(jī)制[1]卻成為其發(fā)展推廣的重大障礙,讓許多亟待使用它的企業(yè)望而卻步。

        HDFS是Hadoop項(xiàng)目的核心項(xiàng)目,是Hadoop應(yīng)用的一個分布式文件系統(tǒng),起源于谷歌的GFS文件系統(tǒng),但相較于GFS,HDFS搭建運(yùn)行在廉價(jià)的商用機(jī)器集群上,并且采用流式數(shù)據(jù)訪問模式,可以處理超大文件,有著較高的訪問吞吐量。HDFS作為Hadoop數(shù)據(jù)存儲的基礎(chǔ)[2],也是其上層并行計(jì)算Mapreduce的基礎(chǔ),所以Hadoop的安全機(jī)制的第一步便是HDFS的安全機(jī)制設(shè)計(jì)。

        本文通過分析HDFS目前所采用的Kerberos認(rèn)證方案[3],指出了其在安全性和效率性等方面存在的缺陷,提出了一種基于PKI的數(shù)字證書認(rèn)證機(jī)制來代替Kerberos認(rèn)證,并在文件傳輸階段采用基于數(shù)字信封的AES對稱加密技術(shù)的安全方案。通過對比分析表明,本文提出的安全方案不論在安全性還是在效率性方面,都優(yōu)于Kerberos。

        1 HDFS簡介

        1.1 體系結(jié)構(gòu)

        HDFS是被設(shè)計(jì)用來處理超大文件的分布式文件系統(tǒng)[4],采用Master/Slaver架構(gòu)對文件系統(tǒng)進(jìn)行管理。一個HDFS集群是由一個Namenode節(jié)點(diǎn)和一定數(shù)目的Datanodes節(jié)點(diǎn)組成的,采用中心控制模式,各類節(jié)點(diǎn)在集群中的主要作用是:

        (1)Namenode作為集群中心服務(wù)器,承擔(dān)Master的任務(wù)[5]。

        Namenode負(fù)責(zé)對HDFS文件系統(tǒng)的文件目錄樹及文件索引目錄、文件Block列表等進(jìn)行相應(yīng)的維護(hù),并將這些信息持久化到本地磁盤的命名空間鏡像和編輯日志中。負(fù)責(zé)對HDFS文件系統(tǒng)的命名空間、集群配置信息和文件Block塊的創(chuàng)建、刪除和復(fù)制等進(jìn)行管理。負(fù)責(zé)接收客戶端對HDFS文件系統(tǒng)的訪問請求,執(zhí)行相應(yīng)的文件操作,例如對文件的打開、關(guān)閉和重命名等。將HDFS中的超大文件劃分為多個Block塊,存儲在不同的Datanode中,并由Namenode中的元數(shù)據(jù)記錄每個Block與對應(yīng)的Datanode的映射關(guān)系,客戶端可以通過Namenode獲得文件的元數(shù)據(jù)信息,即每個文件的每個Block所在的Datanode地址。

        (2)Datanode是具體任務(wù)的執(zhí)行節(jié)點(diǎn),承擔(dān)Worker任務(wù)。

        Datanode是文件存儲的基本單元,將文件的Block存儲在本地文件系統(tǒng)中,同時保存了Block的元數(shù)據(jù)信息。接受Nmaenode統(tǒng)一的調(diào)度,對文件的Block塊進(jìn)行創(chuàng)建、刪除和復(fù)制等操作,同時Datanode還負(fù)責(zé)接收處理客戶端對文件的讀/寫請求。

        (3)Datanode與Namenode間的交互[6]。

        Namenode在每次啟動系統(tǒng)時都會動態(tài)重建文件系統(tǒng)的元數(shù)據(jù)信息,會以心跳輪詢集群中的Datanode節(jié)點(diǎn),Datanode以心跳響應(yīng)Namenode,定時向Namenode發(fā)送它所存儲的文件塊信息。

        HDFS的體系結(jié)構(gòu)如圖1所示。

        圖1 HDFS的體系結(jié)構(gòu)Fig.1 Architecture of HDFS

        1.2 工作原理

        HDFS是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的,適用于一次寫入、多次讀取的場合。文件在HDFS中以Block的形式存儲在數(shù)據(jù)節(jié)點(diǎn)Datanode中,默認(rèn)的Block大小為64 M,復(fù)制因子是3,即同一Block會被存放在3個不同的Datanode上??蛻舳俗x取文件Block時選取離自己最近的Datanode節(jié)點(diǎn)進(jìn)行數(shù)據(jù)讀取。HDFS的工作原理如下。

        1.2.1 讀文件流程

        (1)客戶端通過RPC向HDFS的Namenode發(fā)送文件讀請求;

        (2)Namenode將客戶端所請求的文件的Blocks所在的Datanodes地址,以及Block副本所在的地址等元數(shù)據(jù)信息返回給客戶端;

        (3)客戶端根據(jù)Blocks所在地址與相應(yīng)的Datanodes通信,讀取文件數(shù)據(jù)。

        1.2.2 寫文件過程

        (1)客戶端通過RPC向HDFS的Namenode發(fā)送文件寫請求,Namenode檢查客戶端要創(chuàng)建的文件是否存在,若不存在則會為文件創(chuàng)建一個記錄,否則拋出異常;

        (2)客戶端開始寫入文件時,會將文件切分成許多Packets,然后向Namenode申請新的Blocks,獲取這些Packets及其副本所要存儲的Datanodes的一個列表;

        (3)客戶端得到這些列表后,將Packet寫入第一個Datanode中,成功后第一個Datanode再將數(shù)據(jù)傳送給第二個Datanode,第二個Datanode再將數(shù)據(jù)依次寫入到第三個Datanode,至此數(shù)據(jù)寫入完成;

        (4)寫完第一個Packet后,依次循環(huán)將所有的Packets寫入HDFS中。

        2 HDFS安全現(xiàn)狀研究及不足之處

        2.1 基于Kerberos的HDFS安全認(rèn)證機(jī)制

        Hadoop在設(shè)計(jì)之初,不僅集群實(shí)體之間缺乏認(rèn)證機(jī)制,而且數(shù)據(jù)傳輸及存儲也缺乏加密機(jī)制。針對Hadoop的安全缺陷,Hadoop1.0.0版本后,引入了Kerberos認(rèn)證機(jī)制,用以保證集群節(jié)點(diǎn)的可信性[7-8]。Kerberos是一種基于對稱密鑰體制的計(jì)算機(jī)網(wǎng)絡(luò)認(rèn)證協(xié)議,實(shí)現(xiàn)了機(jī)器級別的安全認(rèn)證,也就是說在非安全網(wǎng)絡(luò)通信環(huán)境下,某個實(shí)體可以通過Kerberos向另一個實(shí)體以一種安全的方式證明自己的身份。Kerberos的實(shí)現(xiàn)需要一個可信賴的第三方,這個第三方被稱為密鑰分發(fā)中心(KDC),它由兩個相互獨(dú)立的邏輯部分認(rèn)證服務(wù)器(AS)和票據(jù)授權(quán)服務(wù)器(Ticket Granting Service)組成。Kerberos持有一個密鑰數(shù)據(jù)庫,用來記載每個Kerberos用戶的密鑰,這個密鑰只有Kerberos用戶和KDC知道,該密鑰可以對網(wǎng)絡(luò)實(shí)體與KDC的通信進(jìn)行加密。而對于兩個實(shí)體間的通信,KDC會為他們產(chǎn)生一個臨時會話密鑰,用來加密他們之間的交互信息。

        在搭建Hadoop集群時,事先對集群中確定的機(jī)器節(jié)點(diǎn)由管理員手動添加到Kerberos數(shù)據(jù)庫中,在KDC上分別產(chǎn)生KDC與各個節(jié)點(diǎn)的keytab文件(該文件包含了KDC和對應(yīng)節(jié)點(diǎn)的名字,還有他們之間的密鑰等信息),然后將這些keytab分發(fā)到對應(yīng)的節(jié)點(diǎn)上。通過這些keytab文件,節(jié)點(diǎn)可以實(shí)現(xiàn)與KDC的安全通信,進(jìn)而獲得與KDC發(fā)放的與目標(biāo)節(jié)點(diǎn)通信的臨時密鑰,最后實(shí)現(xiàn)被目標(biāo)節(jié)點(diǎn)認(rèn)證這一過程。

        HDFS過程中基于Kerberos的認(rèn)證機(jī)制如下[9-10]。

        2.1.1 Client與KDC通信過程

        首先,Client向KDC發(fā)送自己的身份信息,然后KDC中的Ticket Granting Service產(chǎn)生TGT(ticketgranting ticket),KDC將這個TGT用協(xié)議開始前Client與KDC之間的密鑰K1加密后回復(fù)給Client。此時只有真正的Client才能利用它與KDC之間的密鑰將加密后的TGT解密,從而獲得TGT(圖2)。

        2.1.2 Client與Namenode通信過程

        (1)Client用先前得到的TGT向KDC請求Namenode服務(wù)的Ticket;

        (2)KDC中的Ticket Granting Service將為客戶端和Namenode之間生成一個Session Key,即K3用于Namenode和客戶端之間的通信,并打包生成Ticket;

        圖2 Client與KDC通信過程Fig.2 Communication process of Client and KDC

        (3)為了保證K3的安全性,KDC用客戶端的密鑰K1將K3加密,隨(Ticket)K2一起返回給Client,其中K2是Namenode的密鑰;

        (4)Client用自己的密鑰K1將(K3)K1解密,得到K3,由于Client不知道Namenode的密鑰K2,所以它無法解密或算改Ticket中的信息;

        (5)Client將自己的用戶名、IP等打包成Authenticator用K3加密后發(fā)送給Namenode,一并發(fā)給Namenode的還有(Ticket)K2;

        (6)Namenode接到客戶端發(fā)來的消息后,先用自己的密鑰K2解密(Ticket)K2,得到{K3,用戶名,IP,地址,服務(wù)名,有效期,時間戳}這些信息。然后用得到的K3解密Authenticator={(用戶名,IP)K3},再一次得到客戶端的用戶名和IP,比較兩次得到的用戶名和IP,若一致,則說明客戶端是真實(shí)可靠的,而并非假冒偽造,從而驗(yàn)證了客戶端的身份合法性,至此Client與Namenode之間的通信認(rèn)證已經(jīng)完成;

        (7)Client獲得了Namenode的安全認(rèn)證后,Namenode向Client分發(fā)認(rèn)證令牌Delegation Token,該令牌用于客戶端與Namenode間的再次識別認(rèn)證。但是Delegation Token有一定的時間期效,令牌一旦過期就要重新申請。

        整個過程如圖3所示。

        圖3 Client與Namenode通信認(rèn)證過程Fig.3 Communication authentication process of Client and Namenode

        2.1.3 Client與Datanode的認(rèn)證過程

        認(rèn)證過程基本相同,因篇幅原因不再贅述。

        2.2 Kerberos的缺陷分析

        2.2.1 安全性缺陷分析

        客戶端及集群節(jié)點(diǎn)的密鑰都存儲在Kerberos的KDC密鑰數(shù)據(jù)庫中,如果一個合法的客戶端被敵手俘獲,并且攻破KDC,就能得到所有客戶端及集群節(jié)點(diǎn)與KDC通信的密鑰。那么它就可以冒充合法實(shí)體與KDC通信,進(jìn)而得到與Hadoop集群服務(wù)器通信的臨時會話密鑰,然后對Hadoop集群服務(wù)器發(fā)起攻擊。

        客戶端向KDC申請TGT時發(fā)送的身份信息不進(jìn)行加密,因此這些信息存在被竊取、篡改等不安全因素。

        Kerberos的認(rèn)證過程中,兩個實(shí)體之間的通信采用對稱加密,消息沒有相應(yīng)的校驗(yàn)措施,某個惡意敵手,可能截獲消息,進(jìn)而對消息進(jìn)行篡改,則接收端對接收到的消息進(jìn)行解密,得到一堆無意義的不正確的明文,如果敵手還知道這兩個實(shí)體的通信密鑰則可以對消息進(jìn)行偽造,這時接收端收到的則是偽造的消息。所以Kerberos的認(rèn)證過程不能保證兩個實(shí)體通信過程中所發(fā)送信息的完整性。

        Kerberos方案中,客戶端與Datanode之間進(jìn)行文件傳輸時,沒有考慮數(shù)據(jù)的加密處理,因此數(shù)據(jù)的傳輸安全沒有保障。

        2.2.2 效率性缺陷分析

        在Hadoop集群中搭建Kerberos環(huán)境,是一個相當(dāng)麻煩的工作,通常需要花費(fèi)一周的時間,其過程中又總會出現(xiàn)各種無法預(yù)料或難以解決的錯誤。而且Kerberos十分復(fù)雜,一旦出現(xiàn)故障,要花費(fèi)數(shù)周來進(jìn)行維修,耗費(fèi)大量的人力物力。集群中任何兩個實(shí)體之間進(jìn)行初次通信時都要有Kerberos的參與,這無疑降低了Hadoop集群的運(yùn)作速度。

        KDC成為HDFS文件系統(tǒng)的瓶頸。在Kerberos方案中,兩個實(shí)體的身份認(rèn)證,要向Kerberos的密鑰分配中心KDC請求授權(quán)票據(jù),而在Hadoop集群中,同一時間可能執(zhí)行成千上萬的任務(wù),如果每個任務(wù)的執(zhí)行都要使用Kerberos認(rèn)證,當(dāng)這些任務(wù)在一個很短的時間內(nèi)同時向Kerberos服務(wù)器發(fā)送票據(jù)請求時,就會使KDC陷入癱瘓危機(jī),進(jìn)而影響系統(tǒng)性能。

        Kerberos的認(rèn)證令牌具有一定有效期,因此,Hadoop集群中主機(jī)的時鐘與Kerberos服務(wù)器的時鐘兩者的時間相差不能超過10 min,否則認(rèn)證就會失敗。所以在搭建Kerberos環(huán)境時,還要額外的設(shè)置網(wǎng)絡(luò)時間協(xié)議后臺程序來保持時鐘同步。

        3 基于PKI的HDFS安全機(jī)制

        3.1 PKI與CA證書

        PKI的全稱是“公鑰基礎(chǔ)設(shè)施”,即利用公鑰理論和技術(shù)建立的安全服務(wù)基礎(chǔ)設(shè)施。PKI能夠?yàn)樗械木W(wǎng)絡(luò)提供加密和數(shù)字簽名等密碼服務(wù)以及必需的密鑰和證書管理體系,因此簡單來說,PKI是一種遵循既定標(biāo)準(zhǔn)的密鑰管理平臺。

        PKI的核心是CA認(rèn)證中心[11-13],PKI的一些重要功能,例如證書發(fā)放、證書更新、證書撤銷和證書驗(yàn)證等都是通過CA實(shí)現(xiàn)的,其中的證書發(fā)放和數(shù)字證書管理是CA的核心功能,因此CA主要由注冊服務(wù)器、證書申請受理和審核機(jī)構(gòu)、認(rèn)證中心服務(wù)器這三部分組成。

        由于PKI不僅具有良好的跨平臺性和可操作性,而且能夠提供完善的信息安全服務(wù),因此,我們提出用基于PKI的加密、數(shù)字簽名、認(rèn)證和數(shù)字信封等技術(shù)來構(gòu)建HDFS的安全機(jī)制。

        3.2 基于PKI的HDFS安全機(jī)制設(shè)計(jì)

        3.2.1 HDFS認(rèn)證的初始化

        在集群為客戶提供安全服務(wù)之前,要進(jìn)行安全初始化操作:首先我們要讓HDFS中的Namenode節(jié)點(diǎn)和Datanodes節(jié)點(diǎn)向CA申請合法身份證書,CA驗(yàn)證了Hadoop中節(jié)點(diǎn)的用戶身份后,為其創(chuàng)建相應(yīng)的公私鑰對,并為其頒發(fā)數(shù)字證書;然后我們在每個節(jié)點(diǎn)創(chuàng)建一個配置文件,用來存儲集群中所有合法節(jié)點(diǎn)的用戶身份信息及數(shù)字證書。

        在安全初始化階段完成后,集群便可以向客戶提供安全的文件服務(wù)。

        3.2.2 客戶端在Namenode上進(jìn)行身份注冊與身份注銷

        一個客戶端若要訪問Hadoop的HDFS服務(wù),例如進(jìn)行一些大型文件的存儲或是讀取HDFS上文件數(shù)據(jù),那么這個客戶端必須成為Hadoop集群認(rèn)證的合法客戶,所以客戶端的第一步便是向Hadoop集群進(jìn)行注冊。這里我們假設(shè)客戶端已經(jīng)被CA認(rèn)證,并從CA處獲得了自己的數(shù)字證書。

        客戶端將自己的{用戶名,IP,地址,時間戳,[(用戶名,IP,地址,時間戳)hash]KSC}KPN發(fā)送給Namenode進(jìn)行注冊。Namenode接到客戶端發(fā)來消息后用自己的私鑰KSN進(jìn)行第一步解密得到客戶端的身份信息,然后根據(jù)客戶端的身份信息,到認(rèn)證中心CA下載該用戶的數(shù)字證書,將客戶端的身份信息及其數(shù)字證書寫入到自己管理的客戶配置文件中,并分發(fā)到集群中的Datanodes節(jié)點(diǎn)中。其中KSC為Client的私鑰,KPN為Namenode的公鑰。

        當(dāng)用戶不再需要Hadoop的HDFS服務(wù),要與Hadoop徹底斷開聯(lián)系時,用戶可以執(zhí)行注銷行為,則Hadoop集群中的節(jié)點(diǎn)將配置文件中關(guān)于客戶端的所有信息及其數(shù)字證書一并清除。

        客戶端注冊過程如圖4所示。

        圖4 客戶端注冊過程Fig.4 Registration process at Client side

        3.2.3 Namenode與Datanode之間的通信認(rèn)證過程

        Hadoop集群啟動后,Namenode要通過心跳與Datanode通信,從Datanode上收集它所存儲的文件Block的元數(shù)據(jù)信息。Namenode將這些元數(shù)據(jù)信息收集來之后加載到內(nèi)存之中,以便加快隨后的客戶端與Namenode的交互過程。這個安全認(rèn)證過程如下:

        (1)D→N:消息I1:{文件塊信息,D的身份信息,時間戳,[(文件塊信息,用戶身份信息,時間戳)hash]KSD}KPN。其中KSD為D的私鑰,而KPN為N的公鑰。

        (2)N接到消息后,用自己的私鑰KSN解密消息,得到D的身份,然后用該D的公鑰KPD解密數(shù)字簽名得到(文件塊信息,用戶身份身份信息,時間戳)hash,然后對得到的文件塊信息和用戶身份進(jìn)行hash,得到又一個數(shù)字簽名,兩者進(jìn)行比較,若一致則驗(yàn)證了D身份的合法性,同時也說明消息沒有被篡改。

        (3)N→D:{Responde,[(Responde)hash]KSN}KPD。

        (4)D用同樣的方法來解開N發(fā)送來的消息,確認(rèn)N身份的合法性。

        過程如圖5所示。

        圖5 Datanode與Namenode的通信認(rèn)證過程Fig.5 Communication authentication process between Datanode and Namenode

        3.2.4 客戶端進(jìn)行文件讀過程中的認(rèn)證與加密過程

        3.2.4.1 客戶端在請求文件讀服務(wù)時與Namenode的安全通信過程

        (1)C→N:消息I1:{用戶身份身份信息,文件讀服務(wù)請求,時間戳[(用戶身份信息,文件讀服務(wù)請求,時間戳)hash]KSC}KPN。其中KSC為Client的私鑰。

        (2)N接收到C發(fā)來的消息后進(jìn)行解密驗(yàn)證,驗(yàn)證合格則將C所請求的文件所在的Datanode地址返回給C,并打包生成相應(yīng)的數(shù)據(jù)訪問令牌,一并返回給C。

        N→C:消息I2:{Datanode地址,[(Datanode地址)hash]KSN}KPC,其中KPC為C的公鑰;

        數(shù)據(jù)訪問令牌(Block Access Token):{數(shù)據(jù)塊信息,數(shù)據(jù)訪問權(quán)限,時間期限,[(數(shù)據(jù)塊信息,數(shù)據(jù)訪問令牌,時間期限)hash]KSN}KPD。

        (3)C接到N發(fā)來的兩個消息后,解開第一條消息,得到消息中包含的Datanode地址信息。但C也無法解密,無法偽造數(shù)據(jù)訪問令牌。

        上述過程如圖6所示。

        圖6 客戶端與Namenode之間的通信認(rèn)證過程Fig.6 Communication authentication process between Client and Namenode

        客戶端得到它所請求文件所在的地址后,就可以直接與相應(yīng)的Datanode通信,來獲得數(shù)據(jù)。為了使客戶端與Datanode的數(shù)據(jù)傳輸過程是安全的,我們對這個過程中傳輸?shù)臄?shù)據(jù)進(jìn)行加密,為了避免非對稱加密速度緩慢的問題,我們將基于數(shù)字信封的對稱加密技術(shù)AES[12]運(yùn)用到這個過程中。

        3.2.4.2 客戶端與Datanode安全通信過程

        (1)Client向Datanode發(fā)送數(shù)據(jù)請求前,自身先產(chǎn)生一段對稱密碼K;

        (2)C→D:消息I1:{(用戶身份信息,對稱密碼K,時間戳),[(用戶身份信息,對稱密碼K,時間戳)hash]KSC}KPD;數(shù)據(jù)訪問令牌;

        (3)D接收到C發(fā)過來的數(shù)據(jù)后,先解開數(shù)字令牌,驗(yàn)證C數(shù)據(jù)權(quán)限,若權(quán)限合法,再解開第二條消息驗(yàn)證客戶端身份并獲得對稱密碼;

        (4)D→C:{數(shù)據(jù)}K。

        過程如圖7所示。

        圖7 客戶端與Datanode之間的安全通信過程Fig.7 Secure communication process between Client and Datanode

        3.2.5 客戶端進(jìn)行文件寫過程中的認(rèn)證與加密過程

        這個過程和上述文件讀過程開頭部分基本一致,只是在客戶端將數(shù)據(jù)塊寫入第一個Datanode后,第一個Datanode要繼續(xù)將文件塊寫入到第二個作為備份的Datanode節(jié)點(diǎn)。而后第二個節(jié)點(diǎn)要繼續(xù)將數(shù)據(jù)塊寫入第三個備份的Datanode節(jié)點(diǎn)(默認(rèn)Hadoop的備份節(jié)點(diǎn)是3)。下面是文件寫與文件讀過程中不一樣的步驟。

        (1)客戶端首先要向第一個節(jié)點(diǎn)Datanode1寫入數(shù)據(jù),同樣自己先產(chǎn)生一段對稱密碼K;

        (2)C→D1:消息I1:{(C用戶身份,對稱密碼K,時間戳),[(用戶身份,對稱密碼K,時間戳)hash]KSC}KPD1;{數(shù)據(jù)}K;

        (3)D1接收到C發(fā)來的消息,解密第一條消息,驗(yàn)證客戶端身份并得到對稱密碼K,然后打包消息I2:{(D1用戶身份,對稱密碼K,時間戳),[(D1用戶身份,對稱密碼K,時間戳)hash]KSD1}KPD2,然后將打包好的消息I1同C發(fā)送過來的{數(shù)據(jù)}K一起發(fā)往D2;

        (4)D2將數(shù)據(jù)發(fā)往D3與上述過程一致。

        過程如圖8所示。

        4 本方案的安全性和效率分析

        下面我們從安全性和效率性兩方面對本方案和Kerberos方案進(jìn)行對比分析。

        4.1 安全性分析

        CA作為獨(dú)立的第三方認(rèn)證機(jī)構(gòu)作,并沒有像Kerberos那樣與Hadoop集群緊密聯(lián)系在一起,因此Hadoop自身的安全性不像Kerberos認(rèn)證那樣依賴于這個認(rèn)證機(jī)構(gòu)。從客戶端的注冊過程我們可以知道,客戶端一旦注冊成功,則Hadoop集群中的每個節(jié)點(diǎn)都保存有它的數(shù)字證書,所以如果CA認(rèn)證中心出現(xiàn)短暫的事故,則Hadoop集群中正在運(yùn)行的作業(yè)仍然可以繼續(xù)使用CA先前頒發(fā)的數(shù)字證書,而不必立刻停掉這些作業(yè)。這相較于Kerberos是很大的一個提高。

        在本文提出的認(rèn)證過程中,HDFS中的兩個實(shí)體間進(jìn)行消息傳遞時的數(shù)字簽名機(jī)制能夠保證所傳輸?shù)男畔⒌脑垂?jié)點(diǎn)認(rèn)證性和完整性,這一點(diǎn)Kerberos無法做到。

        HDFS在文件傳輸階段使用數(shù)字信封技術(shù),客戶端產(chǎn)生一個對稱密鑰,并用客戶端的私鑰KSC對這個對稱密鑰進(jìn)行加密,相同密鑰長度,非對稱加密發(fā)放的抗攻擊性要比其他加密方法強(qiáng)很多倍,這保證了對稱密鑰在傳輸過程中的安全性。而文件數(shù)據(jù)則用此對稱密鑰進(jìn)行AES加密,保證了數(shù)據(jù)傳輸過程中的安全性。

        HDFS的文件服務(wù)過程中,數(shù)字證書認(rèn)證可產(chǎn)生可靠的數(shù)字簽名,使這個過程中的客戶端及服務(wù)端都對自己發(fā)送的消息數(shù)據(jù)具有不可抵賴性。而Kerberos方案則無法做到這一點(diǎn)。

        4.2 效率分析

        前面在Kerberos的缺陷分析中我們知道,Kerberos的認(rèn)證環(huán)境搭建十分麻煩,且極易出錯,相比較而言Hadoop集群中節(jié)點(diǎn)數(shù)字證書的的申請則要快捷方便許多,CA認(rèn)證中心能為客戶提供24×7不間斷的服務(wù)。

        HDFS采用數(shù)字證書認(rèn)證時,兩個實(shí)體通信認(rèn)證的過程中只需要用到CA中心頒發(fā)的證書,而不需要CA中心的再次參與,因此即使集群中的文件任務(wù)再多,也不存在像Kerberos認(rèn)證時的KDC瓶頸問題,且用數(shù)字證書的認(rèn)證只有一個證書申請過程,這要比Kerberos的三步認(rèn)證簡潔很多。

        本文所提的方案在客戶端與Datanode進(jìn)行數(shù)據(jù)傳輸階段采用對稱加密方法AES,AES的加密方法與傳統(tǒng)的加密方法相比具有速度快、適應(yīng)性強(qiáng)且靈活性高等特點(diǎn),從而保證了大規(guī)模數(shù)據(jù)傳輸?shù)男省?/p>

        5 結(jié)語

        Hadoop作為目前云計(jì)算的的熱門技術(shù),有著不可限量的應(yīng)用前景,而其安全問題的重要性也隨著Hadoop的推廣而愈加突出,HDFS作為Hadoop的底層存儲項(xiàng)目,其自身的安全也是Hadoop集群安全的基礎(chǔ),本文通過分析HDFS文件服務(wù)過程中存在的認(rèn)證問題及數(shù)據(jù)傳輸過程中的安全性問題,并總結(jié)目前所采用的Kerberos解決方案及其缺陷,提出了一種基于PKI的更加快捷、安全的數(shù)字證書認(rèn)證機(jī)制,并在數(shù)據(jù)傳輸階段采用基于數(shù)字信封的AES對稱加密,這些措施極大地提高了HDFS的安全性和效率性。

        當(dāng)然本文還有一些未解決的問題,例如HDFS中的文件訪問控制策略的研究,以及Hadoop中Mapreduce中的安全機(jī)制研究等,這些都是后續(xù)需要解決的問題。

        [1]皮麗華.不可盲崇拜Hadoop警惕安全性漏洞[EB/OL].[2013-04-15]. http://tech.it168.com/a2011/1208/1285/000001285780.shtml.

        [2]劉琨,李愛菊,董龍江.基于hadoop的云存儲的研究及實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2011,27(7):220-221.

        [3]O'MALLEY O,ZHANG K,RADIA S,et al.Hadoop security design[EB/OL].[2013-04-15]. http://www.docin.com/p-663863857.html.

        [4]WHITE T.Hadoop權(quán)威指南[M].北京:清華大學(xué)出版社,2010.

        [5]HOLMESA.Hadoop in practice[M].US:Manning Publications Co.,2012.

        [6]陸嘉恒.Hadoop實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2012.

        [7]柴黃琪,蘇成.基于HDFS的安全機(jī)制設(shè)計(jì)[J].計(jì)算機(jī)安全,2010(12):22-25.

        [8]馬媛.基于Hadoop的云計(jì)算平臺安全機(jī)制研究[J].信息安全與通信保密,2012(6):89-92

        [9]BECHERER A.Hadoop security design just addkerberos?Really?[EB/OL].[2013-04-18]. http://media.blackhat.com/bh-us-10/whitepapers/Becherer/BlackHat-USA-2010-Becherer-Andrew-Hadoop-Security-wp.pdf.

        [10]The Apache Software Foundation.Service level authorization guide[EB/OL].[2013-04-18]. http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ServiceLevelAuth.html#Service_Level_Authorization_Guide.

        [11]斯坦普.信息安全原理與實(shí)踐[M].北京:清華大學(xué)出版社,2013.

        [12]謝冬青.PKI原理與技術(shù)[M].北京:清華大學(xué)出版社,2004.

        [13]寧宇鵬,陳昕.PKI技術(shù)[M].北京:機(jī)械工業(yè)出版社,2004.

        PKI based HDFS authentication and secure transmission mechanism

        LI Yan-gai1,2,ZHAO Hua-wei1*
        (1.School of Computer Science and Technology,Shandong University of Finance and Economics,Jinan 250014,China;2.Shandong Zhongfu Information Industry Co.,Ltd.,Jinan 250101,China)

        We detailedly analyze existing Kerberos scheme to solve the authentication andsecure transmission in the process of file service of Hadoop DistributedFile System(HDFS),a core sub-project of Hadoop.We then generalize the negatives of its security andefficiency.We further app ly PKI baseddig ital certificate authentication anddigital envelop based AES symmetric enc ryp tion to the security mechanism of HDFS.Analysis shows that the approach can provide a safer andmore efficient solution for HDFS service,as compared with Kerberos.

        Hadoop;security of HDFS;Kerberos;PKI

        TP393.08

        A

        1002-4026(2014)05-0033-09

        10.3976/j.issn.1002-4026.2014.05.007

        2014-05-21

        山東省自然科學(xué)基金(ZR2011FL027);濟(jì)南市科技發(fā)展計(jì)劃

        李延改(1989-),女,碩士研究生,研究方向?yàn)樾畔踩?/p>

        *通訊作者,趙華偉,副教授,博士/博士后。Email:1056846736@qq.com

        猜你喜歡
        密鑰客戶端集群
        探索企業(yè)創(chuàng)新密鑰
        密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
        海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
        一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:40
        縣級臺在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        一種對稱密鑰的密鑰管理方法及系統(tǒng)
        基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
        Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
        日韩少妇内射免费播放18禁裸乳| 91国语对白在线观看| 欧美大屁股xxxx| 三叶草欧洲码在线| 狠狠色综合网站久久久久久久| 欧美天欧美天堂aⅴ在线| 欧美天欧美天堂aⅴ在线| 中文字幕人妻中文| 精品国产福利片在线观看| 国产精品深夜福利免费观看| 久久99精品这里精品动漫6| 久久国产A∨一二三| 亚洲性爱区免费视频一区| 国产精品亚洲一区二区极品| 婷婷开心五月综合基地| 女同性恋一区二区三区四区| 亚洲国产大胸一区二区三区| 国产午夜精品久久精品| 国产高清人肉av在线一区二区| 亚洲精品一区二区在线免费观看 | 久久久噜噜噜久久中文福利| 国产乱码卡二卡三卡老狼| 亚洲av无码片vr一区二区三区| 亚洲热线99精品视频| 国产色无码精品视频国产| 99精品国产高清一区二区麻豆| 暖暖免费 高清 日本社区在线观看| 国产精品无码片在线观看| 国产乱子伦精品免费女| japanese色国产在线看视频| 中文字幕有码手机视频| 国产视频激情在线观看| 激情亚洲一区国产精品| 综合亚洲伊人午夜网| 桃红色精品国产亚洲av| 老师开裆丝袜喷水视频| 久久只精品99品免费久23| 少妇人妻偷人精品视蜜桃| 亚洲男同志gay 片可播放| 国内精品久久久久久久亚洲| 国产男女做爰猛烈视频网站|