y}實現(xiàn)主節(jié)點與從節(jié)點之間的數(shù)據(jù)加密傳輸,其中SCA為對稱加密算法,SCJfey為該對稱加密算法的密鑰;
[0052]從節(jié)點利用從節(jié)點私鑰SN_Prv對對稱加密算法{SCA,SC_Key}進(jìn)行加密得到從節(jié)點私鑰加密的對稱加密算法SCA_SN,并利用主節(jié)點公鑰MN_Pub對從節(jié)點私鑰加密的SCA_SN進(jìn)行加密得到主節(jié)點公鑰和從節(jié)點私鑰雙重加密的對稱加密算法SCA_Check,有:
[0053]SCA_SN = PBA.encrypt ({SCA, SC_Key},SN_Prv)
[0054]SCA_Check = PBA.encrypt (SCA_SN,MN_Pub)
[0055]步驟4-2-3:主節(jié)點收到從節(jié)點發(fā)來的從節(jié)點證書、從節(jié)點私鑰加密的隨機(jī)信息SN_Rand、從節(jié)點私鑰加密的用戶會話SN_U_SeSS1n、主節(jié)點公鑰和從節(jié)點私鑰雙重加密的對稱加密算法SCA_Check后,主節(jié)點開始驗證從節(jié)點證書中的CA服務(wù)器的身份ID,并利用從節(jié)點證書中的從節(jié)點公鑰SN_Pub解密從節(jié)點私鑰加密的隨機(jī)信息SN_Rand,如果從節(jié)點私鑰加密的隨機(jī)信息SN_Rand的解密信息不同于封裝在代理證書中的隨機(jī)信息CA_Rand,表明從節(jié)點未通過主節(jié)點的身份認(rèn)證,主節(jié)點斷開與該從節(jié)點之間的連接;否則,表明從節(jié)點通過主節(jié)點的身份認(rèn)證,進(jìn)入步驟4-2-4 ;
[0056]步驟4-2-4:主節(jié)點利用從節(jié)點公鑰SN_Pub對從節(jié)點私鑰加密的用戶會話SN_[Sess1n進(jìn)行解密以獲取經(jīng)過從節(jié)點私鑰加密并通過從節(jié)點公鑰解密的用戶會話[Sess1n";然后對獲取的U_Sess1n"進(jìn)行驗證,如果U_Sess1n"與用戶實例的用戶會話U_Sess1n不一致,主節(jié)點再次發(fā)送主節(jié)點私鑰加密的用戶會話MN_U_Sess1n到從節(jié)點,并要求從節(jié)點確認(rèn)和重傳主節(jié)點私鑰加密的用戶會話MN_U_SeSS1n和從節(jié)點私鑰加密的用戶會話SN_U_Sess1n,重復(fù)上述操作,如果U_Sess1n"超過3次未通過驗證,則主節(jié)點斷開從節(jié)點的連接;如果U_Sess1n"通過驗證,主節(jié)點采用主節(jié)點私鑰MN_Prv對主節(jié)點公鑰和從節(jié)點私鑰雙重加密的對稱加密算法SCA_Check解密得到SCA_Sf,再利用從節(jié)點公鑰SN_Pub對SCA_Sf進(jìn)行解密得到對稱加密算法{SCA,SC_Key},表示為:
[0057]SCA_SN' = PBA.decrypt (SCA_Check, MN_Prv)
[0058]{SCA,SC_Key} = PBA.decrypt(SCA_SN',SN_Pub)
[0059]所述步驟4-3中,在第三次握手中主節(jié)點發(fā)送確認(rèn)信息給從節(jié)點,該確認(rèn)信息使用對稱加密算法{SCA,SC_Key}進(jìn)行加密,此時主節(jié)點與從節(jié)點之間完成了雙向身份認(rèn)證。
[0060]所述步驟5中,主節(jié)點將用戶實例的用戶會話[Sess1n作為身份認(rèn)證信息以為從節(jié)點分配任務(wù),從節(jié)點將在執(zhí)行任務(wù)前,檢查[Sess1n的存活周期;如果用戶實例的用戶會話U_Sess1n過期,從節(jié)點要求主節(jié)點更新U_Sess1n的存活周期,主節(jié)點申請新的代理證書并直接發(fā)送給從節(jié)點,在接收到新的代理證書后,從節(jié)點更新U_Sess1n的存活周期,并執(zhí)行任務(wù)。
[0061]所述步驟6中,終止用戶提交的作業(yè)分為以下兩種情況:
[0062](I)當(dāng)從節(jié)點上的所有任務(wù)執(zhí)行完成時,用戶提交相應(yīng)的活躍作業(yè)被終止;
[0063]主節(jié)點向用戶發(fā)送作業(yè)執(zhí)行結(jié)果,并同時向所有參與作業(yè)執(zhí)行的從節(jié)點發(fā)送作業(yè)完成消息,收到作業(yè)完成消息的從節(jié)點刪除用戶實例的用戶會話[Sess1n、代理證書和對稱加密算法{SCA,SC_Key};
[0064](2)當(dāng)從節(jié)點上的所有任務(wù)發(fā)生造成任務(wù)不能再被執(zhí)行的錯誤時,用戶提交相應(yīng)的活躍作業(yè)被終止;
[0065]主節(jié)點向用戶發(fā)送有關(guān)錯誤的信息,并同時向所有參與作業(yè)執(zhí)行的從節(jié)點發(fā)送作業(yè)終止消息,收到作業(yè)終止消息的從節(jié)點終止作業(yè)的當(dāng)前任務(wù),并斷開與主節(jié)點的連接,同時主節(jié)點刪除用戶實例、用戶實例的用戶會SU_SeSS1n、代理證書和對稱加密算法{SCA,SC_Key},并斷開與從節(jié)點的連接。
[0066]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
[0067]本發(fā)明提供的基于公鑰算法和SSL協(xié)議的多集群Hadoop系統(tǒng)安全優(yōu)化方法,在不影響單集群Hadoop系統(tǒng)原有安全機(jī)制的情況下,能夠有效地實現(xiàn)跨越多個集群環(huán)境運行的Hadoop系統(tǒng)的用戶身份認(rèn)證和網(wǎng)絡(luò)攻擊防護(hù),彌補(bǔ)了單集群Hadoop系統(tǒng)原有安全機(jī)制運行于多個集群環(huán)境時的不足之處,與單集群Hadoop系統(tǒng)原有安全防護(hù)機(jī)制共同構(gòu)成了多集群Hadoop系統(tǒng)的完整安全防護(hù)系統(tǒng)。
【附圖說明】
[0068]圖1是現(xiàn)有技術(shù)中多集群Hadoop系統(tǒng)的體系結(jié)構(gòu)示意圖;
[0069]圖2是本發(fā)明實施例中多集群Hadoop系統(tǒng)的安全優(yōu)化方法示意圖;
[0070]圖3是本發(fā)明實施例中多集群Hadoop系統(tǒng)的安全優(yōu)化方法流程圖;
[0071]圖4是本發(fā)明實施例中主節(jié)點與從節(jié)點之間進(jìn)行雙向身份認(rèn)證示意圖;
[0072]圖5是本發(fā)明實施例中多集群Hadoop系統(tǒng)的安全優(yōu)化方法實現(xiàn)圖。
【具體實施方式】
[0073]下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。
[0074]本發(fā)明提出了一種基于公鑰算法和SSL協(xié)議的多集群Hadoop系統(tǒng)安全優(yōu)化方法,以解決上述【背景技術(shù)】中的問題。下面是本發(fā)明所提出的安全優(yōu)化方法涉及到的一些術(shù)語:
[0075](I)用戶實例(user instance):用戶實例是主節(jié)點(master node)為擁有活躍作業(yè)(active job)的用戶而創(chuàng)建的一個對象,并在用戶的活躍作業(yè)終止后由主節(jié)點刪除。用戶實例與相應(yīng)用戶的身份和作業(yè)信息以及從節(jié)點(slave node)的認(rèn)證過程相關(guān)。任何兩個不同用戶的用戶實例都是獨立的,但是對于擁有多個活躍作業(yè)的同一用戶而言,其所有活躍作業(yè)共享同一用戶實例。如果某個用戶登出,但是多集群Hadoop系統(tǒng)中仍有該用戶的活躍作業(yè),則相應(yīng)用戶實例不會被刪除,此即為用戶活躍作業(yè)的“離線執(zhí)行”模式。
[0076](2)代理證書(proxy credential)和從節(jié)點證書(slave credential):代理證書和從節(jié)點證書是由同一認(rèn)證機(jī)構(gòu)(certificat1n authority,CA)頒發(fā)的兩種證書。代理證書用于主節(jié)點(實際上是主節(jié)點維護(hù)的用戶實例)到從節(jié)點的身份認(rèn)證,每個用戶實例對應(yīng)一個代理證書。在一個用戶實例被一個從節(jié)點身份認(rèn)證后,兩者之間將建立一個安全連接并且不再需要代理證書。因此,代理證書屬于一次使用,而且只有很短的存活周期來保護(hù)身份認(rèn)證過程免遭中間人(man-1n-the-middle,MITM)攻擊和回放(replay)攻擊。
[0077](3)用戶會話(user sess1n):用戶會話在用戶實例身份認(rèn)證完成后,充當(dāng)用戶實例的身份信息。因此,一個用戶會話與相應(yīng)的用戶實例具有相同的存活周期。
[0078](4) CA服務(wù)器(CA Server):CA服務(wù)器是一個頒發(fā)代理證書和從節(jié)點證書的重要組件。由于多集群Hadoop系統(tǒng)的底層文件系統(tǒng)采用的是Globus安全基礎(chǔ)設(shè)施(Globussecurity infrastructure,GSI)并且已經(jīng)擁有一個CA服務(wù)器,因此本發(fā)明所提出的安全優(yōu)化方法直接使用多集群Hadoop系統(tǒng)的底層文件系統(tǒng)的CA服務(wù)器作為CA服務(wù)器。
[0079]本發(fā)明所提出的安全優(yōu)化方法采用數(shù)字簽名經(jīng)常使用的公鑰加密算法。為了方便描述,使用PBA表示公鑰加密算法,其加密過程和解密過程可以表示為:
[0080]加密過程:PBA.encrypt (m, k),其中m為被加密信息,k為私鑰或公鑰;
[0081]解密過程:PBA.decrypt (m, k),其中m為被解密信息,k為私鑰或公鑰。
[0082]圖2展示了本發(fā)明所提出的安全優(yōu)化方法的結(jié)構(gòu)。該安全優(yōu)化方法在不改變主節(jié)點/從節(jié)點架構(gòu)的情況下,對單集群Hadoop系統(tǒng)原有的安全機(jī)制進(jìn)行擴(kuò)展,增加額外的認(rèn)證證書、加密算法和安全連接協(xié)議來進(jìn)行通信各方的身份認(rèn)證、建立安全連接、傳輸加密數(shù)據(jù)和執(zhí)行作業(yè)任務(wù),以完善多集群Hadoop系統(tǒng)的安全防護(hù)機(jī)制。
[0083]如圖3,本發(fā)明提供一種基于公鑰算法和SSL協(xié)議的多集群Hadoop系統(tǒng)安全優(yōu)化方法,所述方法包括以下步驟:
[0084]步驟1:用戶登錄主節(jié)點時對用戶進(jìn)行身份信息認(rèn)證;
[0085]步驟2:主節(jié)點向CA服務(wù)器申請并獲得代理證書;
[0086]步驟3:主節(jié)點創(chuàng)建從節(jié)點列表,并確定主節(jié)點身份信息;
[0087]步驟4:主節(jié)點與從節(jié)點之間進(jìn)行雙向身份認(rèn)證;
[0088]步驟5:多集群Hadoop系統(tǒng)執(zhí)行用戶提交的作業(yè);
[0089]步驟6:終止用戶提交的作業(yè)。
[0090]所述步驟I具體包括以下步驟:
[0091]步驟1-1:用戶向多集群Hadoop系統(tǒng)提交作業(yè)時,輸入用戶身份信息{Username,Password}單點登錄到主節(jié)點;
[0092]步驟1-2:多集群Hadoop系統(tǒng)收到用戶身份信息{Username,Password}后,主節(jié)點搜索自身的用戶身份信息庫,檢查該用戶是否存在;如果用戶名Username和口令Password正確,并且用戶有權(quán)訪問多集群Hadoop系統(tǒng)的資源,貝U表明用戶通過主節(jié)點的身份信息認(rèn)證,進(jìn)入到步驟1-3 ;否則,表明用戶未通過主節(jié)點的身份信息認(rèn)證,主節(jié)點將向用戶發(fā)送錯誤信息作為反饋;
[0093]步驟1-3:用戶通過主節(jié)點的身份認(rèn)證后,提交作業(yè)到多集群Hadoop系統(tǒng),主節(jié)點接收用戶提交作業(yè),進(jìn)行初始化并為用戶創(chuàng)建用戶實例;然后通知CA服務(wù)器為該用戶實例頒發(fā)代理證書。如果當(dāng)用戶通過身份認(rèn)證登錄到主節(jié)點時,用戶實例已經(jīng)存在,這意味著用戶實例處于離線執(zhí)行模式。此時,主節(jié)點只為用戶顯示活躍作業(yè)的當(dāng)前狀態(tài),而不執(zhí)行進(jìn)一步的操作。
[0094]所述步驟2具體包括以下步驟:
[0095]步驟2-1:利用SSL協(xié)議完成主節(jié)點和CA服務(wù)器雙向身份認(rèn)證,建立經(jīng)過加密的安全連接。由于多集群Hadoop系統(tǒng)運行于通過公眾網(wǎng)互聯(lián)的大規(guī)模分布式環(huán)境,并采用普通文本來傳輸身份認(rèn)證等敏感信息,因此需要所有連接都是安全的。SSL(Secure Socke