王家騏 于海霞
摘要:Apache Hadoop 是被廣泛使用的一種云計算框架,但是由于其安全機制的薄弱,也是阻礙其發展的中心問題。本文概論了Hadoop平臺的安全認證機制、訪問控制機制及數據傳輸和數據加密機制的欠缺問題,同時提出了基于PKI的身份認證、基于角色的訪問控制和基于身份認證的分級加密等相應的改進措施。
關鍵詞:Hadoop平臺;安全機制;身份認證;分級加密
中圖分類號:TP311? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2018)31-0047-02
1 Hadoop平臺的安全問題
在初期Hadoop平臺是以數據處理的數量和速度為研究中心,數據處理的效率是首位,未細致設計和考慮平臺的安全問題,存在著諸如缺乏用戶和服務的身份認證、數據的隱私設計等安全隱患。雖然后續的Hadoop平臺由于業務需求,增加了HDFS文件訪問權限及ACL的審計和授權機制,但依舊缺乏身份驗證機制等安全機制,故惡意用戶可以使用身份偽裝的方式輕易繞過Hadoop的安全方案。Hadoop平臺的安全現狀主要體現在以下幾個方面。
1)安全認證機制的欠缺
Hadoop平臺有兩類安全認證機制,一類是Hadoop平臺服務器集群間的認證機制,另一類是Hadoop平臺與用戶間的認證機制。在第一類模式下,破壞者利用偽裝手段,偽裝為集群里任一合法Task Tracker或Data Node服務器,然后實施對其他服務器的攻擊,或偽裝為任一合法者,從而接受Job Tracker或Name Node服務器發布的數據和任務。在第二類模式下,惡意用戶可以偽裝為合法用戶,使用非法的方式訪問HDFS或 Map Reduce服務器;甚至可以實施一些如篡改他人用戶作業、修改HDFS上他人用戶數據、惡意提交作業等非法活動。
即使在后繼的版本中,使用Kerberos進行身份認證,為每個任務進行KDC認證,提高了安全性。但若當Hadoop集群為同時運行的成百上千個任務進行認證時,KDC的負載會瞬時急劇增大,從而影響整個集群的性能。且在KDC向客戶端發送其申請的授權票據信息時,信息是不安全的,會造成信息的泄露。
2)訪問控制機制的欠缺
在Hadoop早期版中,對于存儲在HDFS上的資源,采用的是“比特位權限判定”訪問控制模型,共有9個比特位。權限類型包含讀(r)、寫(w)、執行(x)共三種,訪問HDFS的用戶有user、group和other共三類。當用戶提交文件至Hadoop集群時,需要通過hadoop fs -chmod指令來設定提交文件的訪問權限。
Hadoop早期版中訪問控制機制里的授權管理有著明顯的缺陷,即不能針對單獨用戶進行訪問控制授權。如:系統中某other類別的用戶操作沒有寫入權限的某文件,若此用戶申請獲得該文件的寫權限,則系統就需開放other類的權限,可放開了other權限后,所有的other類用戶就具備了對此文件的寫權限,這顯然是訪問控制機制中授權管理的不合理、不安全部分。
在后繼的版本中,使用ACL進行訪問控制機制。但是高權限用戶能夠很容易地修改服務器端的ACL訪問控制列表,因而也存在著不安全的因素。
3)數據傳輸和數據加密機制的欠缺
在 Hadoop的早期版中,集群的各節點間(如:Master和Slave間、Client和服務器間)的數據傳輸由于采用的是基于TCP/IP協議的數據明文傳輸,為經過加密處理,因此用戶的隱私數據和系統的敏感數據在傳輸過程中極易被竊取和篡改。另外,由于集群服務器的內存和外部存儲器存儲的數據未經加密處理和存儲保護,非常容易導致存儲的用戶數據和關鍵信息的泄密。
在后繼的版本里,由于考慮到集群的大量并行計算的資源開銷,為了提高系統的計算處理速度,而未考慮傳輸和存儲過程的數據保護機制,導致了無法避免的安全隱患。也有的第三方版本在TCP/IP層應用了SSL協議,能夠滿足一定條件下的部分安全需求。
2 Hadoop平臺的安全對策改進
針對上述的Hadoop平臺安全現狀,在實際的生產實踐中,可以采用基于PKI的身份認證、基于角色的訪問控制和基于身份認證的分級加密等方法解決安全認證機制欠缺、訪問控制機制欠缺和數據傳輸及數據加密機制欠缺的問題。
2.1 基于PKI的身份認證方法
PKI(Public Key Infrastructure)即公鑰基礎設施,是一種利用非對稱密鑰加密技術,采用公鑰理論技術實現身份認證、數字簽名等功能,同時實現了公鑰和證書的高效管理。
由CA(認證中心)、RA(注冊機構)、LDAP(數字證書庫)、密鑰備份和恢復系統、證書撤銷系統及PKI應用接口等部分組成了一個完整的PKI系統。
一個用戶獲得身份證書的具體過程如下:
l 用戶通過瀏覽器向PKI應用接口提出證書申請;
l 由PKI應用接口向RA注冊中心提交申請數據;
l 由RA注冊中心向CA認證中心提交申請數據或拒絕申請,用戶申請證書失敗;
l CA認證中心通過申請認證,產生數字證書并反饋至RA注冊中心,用戶獲得認證的身份。或拒絕申請,用戶申請證書失敗;
l RA注冊中心接收通過認證的數字證書,并更新LDAP服務器的數字證書庫;
l 用戶通過瀏覽器從LDAP服務器查詢和下載數字證書。
2.2 基于角色的訪問控制方法
其工作原理是Hadoop平臺不再將具體的權限直接授予用戶,而是改變將權限授予某類角色,當用戶進入Hadoop平臺時,Hadoop平臺會根據用戶信息分配對應的角色,用戶從而獲得相應的權限,從而實現了具體權限和用戶間直接聯系的隔離。
這種訪問控制方法特別適用與多用戶和分布式的Hadoop平臺。當Hadoop平臺中不斷有新用戶注冊時,只需要為用戶分配具體的角色(因為平臺中角色相對穩定,不需要頻繁變更權限),則這些用戶就擁有了相應的權限,因而不需要重復為用戶反復分配權限;由于角色的權限是分配到眾用戶,故此種訪問控制方法能有效縮小ACL的訪問控制列表存儲空間,還可以節約系統資源,及加快判定權限的速度。
2.3 基于身份認證的分級加密方法
該方法的參與角色有三個,分別是:客戶端、服務器端和第三方認證中心AC。其中AC認證中心作用是實現角色的身份認證及分級加密密鑰的分發。當AC認證中心接收到客戶端的請求,判定其為合法用戶,就發送身份認證令牌;同時分級加密密鑰分發模塊基于AC的可信任身份,結合用戶的具體情況,生成和發布分級加密密鑰,并存儲用戶和Hadoop服務器使用的公開密鑰。客戶端通過AC認證中心的認證后能夠獲得分級加密密鑰從而實現數據加密傳輸/存儲的安全服務。服務器端接收和處理經過AC認證中心認證后的認證用戶提交的加密數據,并判斷該用戶是否被賦予相關的權限。
該方法的實現需要經過身份認證、分級加密和服務校驗共三個階段。在身份認證階段,經過身份認證申請和服務認證申請兩個步驟能夠有效保證密鑰頒發的安全性以及云數據的安全傳輸;在分級加密階段,AC認證中心根據客戶端申請具體需求(如文件類型及大小)選擇適合的加密策略并反饋給客戶端,客戶端再根據加密策略上傳文件至服務器端,從而使分級加密機制和身份認證機制有效結合在一起;在服務校驗階段,當服務器端接收到客戶端傳來的加密文件之后,首先要啟動校驗服務進行數據傳輸合法性校驗,若校驗結果為合法就將加密文件提交給HDFS處理保存,若校驗結果為不合法則認為當前傳輸的數據存在安全問題,拒絕數據的存儲。
3 結束語
隨著Hadoop平臺應用的越來越廣泛,以及人們越來越重視數據的安全性,因此對Hadoop平臺的安全性研究就變得越來越重要。本文通針對Hadoop平臺的安全認證機制、訪問控制機制及數據傳輸和數據加密機制的欠缺問題,提出了相應的改進措施,它們分別是:基于PKI的身份認證、基于角色的訪問控制和基于身份認證的分級加密等方法。通過這些改進措施能為Hadoop平臺提供安全性更強的解決方案。
參考文獻:
[1] 史文浩,江國華,秦小麟,等.基于用戶信任值的HDFS訪問控制模型研究[J].計算機科學與探索,2016,10(1):25-35.
[2] 陳貞.HDFS環境下的訪問控制技術研究[D].重慶:重慶大學,2014.
[3] Wang Cong,Chow S S M,Wang Qian,et al.Privacy-preserving public auditing for secure cloud storage[J].IEEE Transactions on Computers,2013,62(2):362-375.
[4] 林釔霖.基于PKI的身份認證系統研究[D].重慶:重慶理工大學,2013.
[5] 盛宇偉.云計算環境下CA認證中心的研究與設計[D].北京:北京郵電大學,2013.
[6] White T.Hadoop權威指南[M].2版.北京:清華大學出版社,2011.