培訓啦 IT技術

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

教培參考

教育培訓行業(yè)知識型媒體

發(fā)布時間: 2025年01月11日 10:14

2025年【IT技術】報考條件/培訓費用/專業(yè)咨詢 >>

IT技術報考條件是什么?IT技術培訓費用是多少?IT技術專業(yè)課程都有哪些?

點擊咨詢

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

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

原理架構

?

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

通過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操作維護命令說明書。
ST
服務票據(jù)(Server Ticket),由Kerberos服務生成,提供給應用程序與應用服務建立安全會話,該票據(jù)一次性有效。
ST的生成在FusionInsight產(chǎn)品中,基于hadoop-rpc通信,由rpc底層自動向Kerberos服務端提交請求,由Kerberos服務端生成。

認證代碼實例講解?

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;

}

985大學 211大學 全國院校對比 專升本

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