培訓(xùn)啦 IT技術(shù)

大數(shù)據(jù)培訓(xùn)_安全認(rèn)證原理和認(rèn)證機(jī)制

教培參考

教育培訓(xùn)行業(yè)知識(shí)型媒體

發(fā)布時(shí)間: 2025年05月18日 06:19

2025年【IT技術(shù)】報(bào)考條件/培訓(xùn)費(fèi)用/專業(yè)咨詢 >>

IT技術(shù)報(bào)考條件是什么?IT技術(shù)培訓(xùn)費(fèi)用是多少?IT技術(shù)專業(yè)課程都有哪些?

點(diǎn)擊咨詢

大數(shù)據(jù)培訓(xùn)_安全認(rèn)證原理和認(rèn)證機(jī)制

功能
Kerberos這一名詞來源于希臘神話“三個(gè)頭的狗——地獄之門守護(hù)者”,后來沿用作為安全認(rèn)證的概念,使用Kerberos的系統(tǒng)在設(shè)計(jì)上采用“客戶端/服務(wù)器”結(jié)構(gòu)與AES等加密技術(shù),并且能夠進(jìn)行相互認(rèn)證(即客戶端和服務(wù)器端均可對(duì)對(duì)方進(jìn)行身份認(rèn)證)??梢杂糜诜乐垢`聽、防止replay攻擊、保護(hù)數(shù)據(jù)完整性等場(chǎng)合,是一種應(yīng)用對(duì)稱密鑰體制進(jìn)行密鑰管理的系統(tǒng)。
結(jié)構(gòu)
Kerberos的原理架構(gòu)如圖1所示,各模塊的說明如表1所示。

原理架構(gòu)

?

步驟原理說明:
應(yīng)用客戶端(Application Client)可以是集群內(nèi)某個(gè)服務(wù),也可以是客戶二次開發(fā)的一個(gè)應(yīng)用程序,應(yīng)用程序可以向應(yīng)用服務(wù)提交任務(wù)或者作業(yè)。
應(yīng)用程序在提交任務(wù)或者作業(yè)前,需要向Kerberos服務(wù)申請(qǐng)TGT(Ticket-Granting Ticket),用于建立和Kerberos服務(wù)器的安全會(huì)話。
Kerberos服務(wù)在收到TGT請(qǐng)求后,會(huì)解析其中的參數(shù)來生成對(duì)應(yīng)的TGT,使用客戶端指定的用戶名的密鑰進(jìn)行加密響應(yīng)消息。
應(yīng)用客戶端收到TGT響應(yīng)消息后,解析獲取TGT,此時(shí),再由應(yīng)用客戶端(通常是rpc底層)向Kerberos服務(wù)獲取應(yīng)用服務(wù)端的ST(Server Ticket)。
Kerberos服務(wù)在收到ST請(qǐng)求后,校驗(yàn)其中的TGT合法后,生成對(duì)應(yīng)的應(yīng)用服務(wù)的ST,再使用應(yīng)用服務(wù)密鑰將響應(yīng)消息進(jìn)行加密處理。
應(yīng)用客戶端收到ST響應(yīng)消息后,將ST打包到發(fā)給應(yīng)用服務(wù)的消息里面?zhèn)鬏斀o對(duì)應(yīng)的應(yīng)用服務(wù)端(Application Server)。
應(yīng)用服務(wù)端收到請(qǐng)求后,使用本端應(yīng)用服務(wù)對(duì)應(yīng)的密鑰解析其中的ST,并校驗(yàn)成功后,本次請(qǐng)求合法通過。
基本概念
以下為常見的基本概念,可以幫助用戶減少在學(xué)習(xí)Kerberos框架所花費(fèi)的時(shí)間,有助于更好的理解Kerberos業(yè)務(wù)。以HDFS安全認(rèn)證為例:
TGT
票據(jù)授權(quán)票據(jù)(Ticket-Granting Ticket),由Kerberos服務(wù)生成,提供給應(yīng)用程序與Kerberos服務(wù)器建立認(rèn)證安全會(huì)話,該票據(jù)的默認(rèn)有效期為24小時(shí),24小時(shí)后該票據(jù)自動(dòng)過期。
TGT申請(qǐng)方式:

通過HDFS提供的接口獲取(具體接口信息可以參考HDFS二次開發(fā)指南)。

private Boolean login(Configuration conf){

boolean flag = false;

UserGroupInformation.setConfiguration(conf);

try {

UserGroupInformation.loginUserFromKeytab(conf.get(PRINCIPAL),conf.get(KEYTAB));

System.out.println("UserGroupInformation.isLoginKeytabbased():" +UserGroupInformation.isLoginKeytabbased());

flag = true;

} catch (IOException e) {

e.printStackTrace();

}

return flag;

}

通過客戶端shell命令以kinit方式獲取,具體使用方式可參考Shell操作維護(hù)命令說明書。
ST
服務(wù)票據(jù)(Server Ticket),由Kerberos服務(wù)生成,提供給應(yīng)用程序與應(yīng)用服務(wù)建立安全會(huì)話,該票據(jù)一次性有效。
ST的生成在FusionInsight產(chǎn)品中,基于hadoop-rpc通信,由rpc底層自動(dòng)向Kerberos服務(wù)端提交請(qǐng)求,由Kerberos服務(wù)端生成。

認(rèn)證代碼實(shí)例講解?

private void init() throws IOException {

Configuration conf = new Configuration();

// conf file

conf.addResource(new Path(System.getProperty("user.dir")

+ File.separator + "conf" + File.separator + "hdfs-site.xml"));

conf.addResource(new Path(System.getProperty("user.dir")

+ File.separator + "conf" + File.separator + "core-site.xml"));

// security mode

if ("kerberos".equalsIgnoreCase(conf

.get("hadoop.security.authentication"))) {

// 注[1]

conf.set(PRINCIPAL,"hdfstest@HADOOP.COM");

// keytab file

conf.set(KEYTAB,System.getProperty("user.dir") + File.separator

+ "conf" + File.separator + "user.keytab");

// kerberos path

String krbfilepath = System.getProperty("user.dir")

+ File.separator + "conf" + File.separator + "krb5.conf";

System.setProperty("java.security.krb5.conf",krbfilepath);

login(conf); //注[2]

}

// get filesystem

try {

fSystem = FileSystem.get(conf); //注[3]

} catch (IOException e) {

throw new IOException("Get fileSystem failed.");

}

}

private Boolean login(Configuration conf){

boolean flag = false;

UserGroupInformation.setConfiguration(conf);

try {

UserGroupInformation.loginUserFromKeytab(conf.get(PRINCIPAL),conf.get(KEYTAB));

System.out.println("UserGroupInformation.isLoginKeytabbased(): " +UserGroupInformation.isLoginKeytabbased());

flag = true;

} catch (IOException e) {

e.printStackTrace();

}

return flag;

}

溫馨提示:
本文【大數(shù)據(jù)培訓(xùn)_安全認(rèn)證原理和認(rèn)證機(jī)制】由作者教培參考提供。該文觀點(diǎn)僅代表作者本人,培訓(xùn)啦系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),若存在侵權(quán)問題,請(qǐng)及時(shí)聯(lián)系管理員或作者進(jìn)行刪除。
我們采用的作品包括內(nèi)容和圖片部分來源于網(wǎng)絡(luò)用戶投稿,我們不確定投稿用戶享有完全著作權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果侵犯了您的權(quán)利,請(qǐng)聯(lián)系我站將及時(shí)刪除。
內(nèi)容侵權(quán)、違法和不良信息舉報(bào)
Copyright @ 2025 培訓(xùn)啦 All Rights Reserved 版權(quán)所有.