在古希臘神話中,Kerberos是住在冥河岸邊的三頭犬,負責看守冥界的入口。而在信息技術界,Kerberos是一種被普遍採用的網絡認證協議,經過對稱加密的技術,保護網絡系統的安全。特別是在Hadoop開源大數據平臺,Kerberos是惟一內置支持的安全的用戶認證方式。它能夠獨立於各服務組件,保證只有經過身份認證的節點才能夠訪問對應的服務,進而維護開源大數據的系統安全。數據庫
做爲開源大數據衛士的Kerberos,其安全性可靠性毋庸置疑,可是在運營維護和部署成本等方面,卻會爲規模較大的企業用戶帶來一筆不小的負擔。一般,企業在接入Kerberos以前,已經在多個場景下配置了對應的身份認證系統。而Hadoop開源大數據平臺所使用的Kerberos,並不能支持除Kerberos內置的用戶名密碼認證之外的其它認證機制,沒法和企業已經部署的用戶認證方式進行無縫對接。更讓人煩惱的是,Java也沒有一個完整的Kerberos庫,很難對它進行更改。所以,要把已有的身份認證系統接入Kerberos的認證流程中,其開發難度和工做量都將會是很是龐大的。安全
開源大數據平臺如何才能保證身份認證安全?
Kerberos 在現實中遇到的問題網絡
Kerberos的這些問題,對騰訊AI Lab這樣的企業級用戶,形成了不小的困擾:騰訊AI Lab此前的大數據集羣並無啓用身份認證,沒法實現用戶存儲隔離,任意用戶均可經過更改客戶端的配置,僞形成超級用戶訪問全部內容。因此,必須把分散在不一樣服務上的認證方式都合併在一塊兒,基於已有的大數據集羣進行身份認證的二次開發。這要求開發者保證現有的服務不受影響,讓用戶能夠沿用過去熟悉的認證方式,不能作太多的更改。同時,還不能用把全部用戶帳號信息都同步到新數據庫的方式,由於這會增長大量的部署和運維成本。架構
爲了幫助騰訊AI Lab應對這些挑戰,在安全認證領域積累了豐富經驗的英特爾大數據部門,基於英特爾®的數據中心平臺,英特爾開發了可插拔的身份認證框架Hadoop Authentication Service (HAS)。它能夠與現有的認證和受權體系對接,無需在已有的用戶帳號系統和Kerberos數據庫之間遷移和同步用戶帳號信息,也不影響現有服務的連續性。同時,這種架構不須要獨立維護本身的身份信息,減小了中間環節,大大下降了企業身份信息管理的複雜性和風險。框架
開源大數據平臺如何才能保證身份認證安全?
HAS系統架構示意圖運維
與傳統的Kerberos不一樣,HAS在功能上包括了一個Token Authority和一個Apache Kerby 提供的Kerby KDC。Token Authority將其餘已有認證系統的信息轉換成HAS Token,再使用HAS Token向Kerby KDC換取Kerberos Ticket。拿到Kerberos Ticket後,就能夠經過標準的Kerberos協議流程訪問Hadoop集羣的服務。工具
基於這樣的技術手段,用戶能夠繼續使用原先的Kerberos認證機制,也能夠繼續使用之前熟悉的認證方式登陸。全部分散的服務都統一在一套認證系統中,無需再分別從新設置。與此同時,由於避免了用戶帳戶信息的拷貝和同步,HAS下降了運營維護的複雜度和成本,和信息泄露的風險。oop
HAS不只能夠做爲在Hadoop集羣上通用集成的用戶認證解決方案,更能夠定製成插件與企業特有認證系統結合。針對騰訊AI Lab的需求,英特爾還定製了MySQL插件。當用戶選擇使用MySQL插件認證方式後,只須要在本身的環境中配置好帳號信息,客戶端就會自動完成用戶身份認證。此外,英特爾還實現了自動化部署工具,一鍵部署Keytab與SSL證書,極大簡化了部署與優化工做。大數據
HAS可以幫助各類不一樣的雲計算、大數據相關的行業用戶,更便捷地以低成本部署身份認證系統。對英特爾的工程師而言:技術是爲了服務用戶,而不是爲了展示本身的技術能力。開發HAS的初衷,就是爲了方便用戶的使用,將複雜的問題變得簡單。優化
HAS還在不斷地完善中,藉助Intel® SGX技術,英特爾將來會進一步提升HAS的安全性。在Intel的下一代Xeon SP處理器上,將有機會運用SGX技術來隔離處理和存儲HAS認證過程當中產生和使用的敏感數據,讓身份認證更加安全。
文章來源:雷鋒網