第四章_身份認(rèn)證.ppt_第1頁
第四章_身份認(rèn)證.ppt_第2頁
第四章_身份認(rèn)證.ppt_第3頁
第四章_身份認(rèn)證.ppt_第4頁
第四章_身份認(rèn)證.ppt_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余66頁可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第四章 身份認(rèn)證,4.1 認(rèn)證的基本原理 4.2 認(rèn)證協(xié)議 4.3 典型的認(rèn)證應(yīng)用,介紹三個(gè)概念: (1) 認(rèn)證(Authentication):在做任何動(dòng)作之前必須要有方法來識(shí)別動(dòng)作執(zhí)行者的真實(shí)身份。 (2) 授權(quán)(Authorization):指當(dāng)用戶身份被確認(rèn)合法后,賦予該用戶進(jìn)行文件和數(shù)據(jù)等操作的權(quán)限。 (3) 審計(jì)(Auditing):每個(gè)人都該為自己所做的操作負(fù)責(zé),所以在做完事情之后都要留下記錄,以便核查責(zé)任。,4.1.1 身份認(rèn)證概述 在現(xiàn)實(shí)生活中,我們個(gè)人的身份主要是通過各種證件來確認(rèn)的,比如:身份證、戶口本等。 認(rèn)證是對(duì)網(wǎng)絡(luò)中的主體進(jìn)行驗(yàn)證的過程,用戶必須提供他是誰的證明,他

2、是某個(gè)雇員,某個(gè)組織的代理、某個(gè)軟件過程(如交易過程)。 認(rèn)證( authentication )是證明一個(gè)對(duì)象的身份的過程。與決定把什么特權(quán)附加給該身份的授權(quán)( authorization )不同。,4.1 認(rèn)證的基本原理,在現(xiàn)實(shí)生活中,我們個(gè)人的身份主要是通過各種證件來確認(rèn)的,比如:身份證、戶口本等。 認(rèn)證是對(duì)網(wǎng)絡(luò)中的主體進(jìn)行驗(yàn)證的過程,用戶必須提供他是誰的證明,他是某個(gè)雇員,某個(gè)組織的代理、某個(gè)軟件過程(如交易過程)。 認(rèn)證( authentication )是證明一個(gè)對(duì)象的身份的過程。與決定把什么特權(quán)附加給該身份的授權(quán)( authorization )不同。,通常有三種方法驗(yàn)證主體身份

3、。 1)是只有該主體了解的秘密,如口令、密鑰; 2)是主體攜帶的物品,如智能卡和令牌卡; 3)是只有該主體具有的獨(dú)一無二的特征或能力,如指紋、聲音、視網(wǎng)膜圖或簽字等。 單獨(dú)用一種方法進(jìn)行認(rèn)證不充分,身份認(rèn)證系統(tǒng)架構(gòu)包含三項(xiàng)主要組成元件: 認(rèn)證服務(wù)器(Authentication Server) 負(fù)責(zé)進(jìn)行使用者身份認(rèn)證的工作,服務(wù)器上存放使用者的私有密鑰、認(rèn)證方式及其他使用者認(rèn)證的信息。 認(rèn)證系統(tǒng)用戶端軟件(Authentication Client Software) 認(rèn)證系統(tǒng)用戶端通常都是需要進(jìn)行登陸(login)的設(shè)備或系統(tǒng),在這些設(shè)備及系統(tǒng)中必須具備可以與認(rèn)證服務(wù)器協(xié)同運(yùn)作的認(rèn)證協(xié)定。

4、認(rèn)證設(shè)備(Authenticator) 認(rèn)證設(shè)備是使用者用來產(chǎn)生或計(jì)算密碼的軟硬件設(shè)備。,1. 口令機(jī)制 用戶名/口令認(rèn)證技術(shù):最簡(jiǎn)單、最普遍的身份識(shí)別技術(shù),如:各類系統(tǒng)的登錄等。 口令具有共享秘密的屬性,是相互約定的代碼,只有用戶和系統(tǒng)知道。例如,用戶把他的用戶名和口令送服務(wù)器,服務(wù)器操作系統(tǒng)鑒別該用戶。 口令有時(shí)由用戶選擇,有時(shí)由系統(tǒng)分配。通常情況下,用戶先輸入某種標(biāo)志信息,比如用戶名和ID號(hào),然后系統(tǒng)詢問用戶口令,若口令與用戶文件中的相匹配,用戶即可進(jìn)入訪問。 口令有多種,如一次性口令;還有基于時(shí)間的口令,用戶名/口令具有實(shí)現(xiàn)簡(jiǎn)單的優(yōu)點(diǎn),但存在以下安全缺點(diǎn): 1、大多數(shù)系統(tǒng)的口令是明文傳

5、送到驗(yàn)證服務(wù)器的,容易被截獲。某些系統(tǒng)在建立一個(gè)加密鏈路后再進(jìn)行口令的傳輸以解決此問題,如配置鏈路加密機(jī)。 2、口令維護(hù)的成本較高。為保證安全性,口令應(yīng)當(dāng)經(jīng)常更換。另外為避免對(duì)口令的字典攻擊,口令應(yīng)當(dāng)保證一定的長度,并且盡量采用隨機(jī)的字符。但缺點(diǎn)是難于記憶。 3、口令容易在輸入的時(shí)候被攻擊者偷窺,而且用戶無法及時(shí)發(fā)現(xiàn)。 簡(jiǎn)單和安全是互相矛盾的兩個(gè)因素。,2. 數(shù)字證書 這是一種檢驗(yàn)用戶身份的電子文件,也是企業(yè)現(xiàn)在可以使用的一種工具。這種證書可以授權(quán)購買,提供更強(qiáng)的訪問控制,并具有很高的安全性和可靠性。 非對(duì)稱體制身份識(shí)別的關(guān)鍵是將用戶身份與密鑰綁定。CA(Certificate Authori

6、ty)通過為用戶發(fā)放數(shù)字證書(Certificate)來證明用戶公鑰與用戶身份的對(duì)應(yīng)關(guān)系。,驗(yàn)證者向用戶提供一隨機(jī)數(shù);用戶以其私鑰KS對(duì)隨機(jī)數(shù)進(jìn)行簽名,將簽名和自己的證書提交給驗(yàn)證方;驗(yàn)證者驗(yàn)證證書的有效性,從證書中獲得用戶公鑰KP,以KP驗(yàn)證用戶簽名的隨機(jī)數(shù)。,3. 智能卡 網(wǎng)絡(luò)通過用戶擁有什么東西來識(shí)別的方法,一般是用智能卡或其它特殊形式的標(biāo)志,這類標(biāo)志可以從連接到計(jì)算機(jī)上的讀出器讀出來。訪問不但需要口令,也需要使用物理智能卡。 IC卡是英文Integrated Cirtuit(集成電路)卡的縮寫,也稱“MEMORY CARD”和“SMART CARD”,中文譯作“聰明卡”、“智慧卡”和“

7、智能卡”等。,是一種將具有加密、存儲(chǔ)、處理能力的集成電路芯片嵌裝于塑料基片上而制成的卡片,它的外型與普通的信用卡十分相似,IC卡優(yōu)點(diǎn): 存儲(chǔ)容量大 、體積小而輕、保密性強(qiáng)、網(wǎng)絡(luò)要求低 數(shù)據(jù)可靠性高 IC卡防磁、防靜電、防潮、耐溫、抗干擾能力強(qiáng),一張IC卡片可重復(fù)讀寫十萬次,卡中數(shù)據(jù)可保存幾十年。 IC卡讀寫操作通過電信號(hào)傳輸來完成,因而對(duì)計(jì)算機(jī)的實(shí)時(shí)性、敏感性要求降低。內(nèi)部數(shù)據(jù)保密性、可靠性好,讀寫穩(wěn)定可脫機(jī)工作,易于安裝維護(hù),而磁卡系統(tǒng)離不開網(wǎng)絡(luò);,1996年10月推出了Java Card API規(guī)范,目前版本為2.1.1,1997年4月27日,Java Card論壇正式宣布成立。Java

8、Card論壇的成立目的是完善Java Card API規(guī)范,使之最終成為多應(yīng)用智能卡的首選編程語言。 Java Card就是能夠運(yùn)行Java程序的智能卡。 Java Card在出廠時(shí)就在ROM中燒入了操作系統(tǒng)、 Java Card虛擬機(jī)、 API類庫和可選的applets,隨后,初始化和個(gè)人化向EEPROM 中寫入數(shù)據(jù)。 Java Card API與正式的國際標(biāo)準(zhǔn)(如ISO7816)和工業(yè)規(guī)范標(biāo)準(zhǔn)(如Europay/Master Card/Visa)兼容。也就是說Java applet能夠直接運(yùn)行在遵循ISO7816標(biāo)準(zhǔn)的智能卡之上。,基于智能卡的認(rèn)證機(jī)制有以下方式: 挑戰(zhàn)/響應(yīng)(Challe

9、nge/Response)認(rèn)證; 時(shí)間同步(Time Synchronous)認(rèn)證; 事件同步(Event Synchronous)認(rèn)證.,1.挑戰(zhàn)/響應(yīng)認(rèn)證 變動(dòng)因子是由服務(wù)器產(chǎn)生的隨機(jī)數(shù)字。認(rèn)證過程如下: 1)認(rèn)證請(qǐng)求。客戶機(jī)首先向服務(wù)器發(fā)出登錄請(qǐng)求,服務(wù)器提示用戶輸入用戶ID和PIN 。 2)挑戰(zhàn)。用戶提供ID給服務(wù)器,然后服務(wù)器提供一個(gè)隨機(jī)串X(Challenge)給插在客戶端的智能卡作為驗(yàn)證算法的輸入,服務(wù)器則根據(jù)用戶ID取出對(duì)應(yīng)的密鑰K后,利用發(fā)送給客戶機(jī)的隨機(jī)串X,在服務(wù)器上用加密引擎進(jìn)行運(yùn)算,得到運(yùn)算結(jié)果RS。 3)響應(yīng)。智能卡根據(jù)X與內(nèi)在密鑰K使用硬件加密引擎運(yùn)算,也得到一個(gè)

10、運(yùn)算結(jié)果RC,并發(fā)送給服務(wù)器。 4)驗(yàn)證。比較RS和RC便可確定用戶的合法性。,圖4.1 挑戰(zhàn)/響應(yīng)認(rèn)證,由于密鑰存在于智能卡中,運(yùn)算過程也是在智能卡中完成,密鑰認(rèn)證是通過加密算法來實(shí)現(xiàn)的,因而極大地提高了安全性。,詢問/應(yīng)答身份認(rèn)證的優(yōu)點(diǎn): 沒有同步的問題。 一片認(rèn)證卡可以用來存取被不同認(rèn)證服務(wù)器所保護(hù)的系統(tǒng)。 最安全的認(rèn)證方式。 缺點(diǎn): 使用者必須按較多的按鈕,操作較繁復(fù)。 比較多輸入的失誤。,2)時(shí)間同步認(rèn)證 變動(dòng)因子使用服務(wù)器端與客戶端的同步時(shí)間值。認(rèn)證過程如下: 1)用戶向服務(wù)器發(fā)出登錄請(qǐng)求,服務(wù)器提示用戶輸入用戶ID和用戶PIN。 2)服務(wù)器根據(jù)用戶ID取出對(duì)應(yīng)的密鑰K,使用K與服

11、務(wù)器時(shí)間T計(jì)算動(dòng)態(tài)密碼RS。 3)智能卡根據(jù)內(nèi)在的密鑰K與客戶機(jī)時(shí)間T使用相同的專用算法計(jì)算動(dòng)態(tài)密碼RC,并發(fā)送給服務(wù)器。 4)服務(wù)器比較RS與RC,如果相同則用戶合法。,時(shí)間同步認(rèn)證卡在一個(gè)固定期間中(通常是一分鐘)產(chǎn)生同一個(gè)動(dòng)態(tài)密碼,依據(jù)時(shí)間的流逝產(chǎn)生不同的密碼。,圖4.2 時(shí)間同步認(rèn)證,時(shí)間同步身份認(rèn)證 優(yōu)點(diǎn): 易于使用。 缺點(diǎn): 時(shí)間同步困難,可能造成必須重新輸入新密碼。軟體認(rèn)證卡采用PC的時(shí)刻,很可能隨時(shí)被修改。常常需要與服務(wù)器重新對(duì)時(shí)。 2.不如Challenge/Response認(rèn)證更安全,3)事件同步 事件同步認(rèn)證卡依據(jù)認(rèn)證卡上的私有密鑰產(chǎn)生一序列的動(dòng)態(tài)密碼,如果使用者意外多產(chǎn)

12、生了幾組密碼造成不同步的狀態(tài),服務(wù)器會(huì)自動(dòng)重新同步到目前使用的密碼,一旦一個(gè)密碼被使用過后,在密碼序列中所有這個(gè)密碼之前的密碼都會(huì)失效。,圖4.3 事件同步認(rèn)證,事件同步的身份認(rèn)證 優(yōu)點(diǎn): 容易使用。 由于使用者無法知道序列數(shù)字,所以安全性高,序列號(hào)碼絕不會(huì)顯示出來。 缺點(diǎn): 如果沒有PIN號(hào)碼的保護(hù)及認(rèn)證卡借給別人使用時(shí),會(huì)有安全的疑慮。,身份認(rèn)證應(yīng)用: VPN系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)設(shè)備管理的身份認(rèn)證,4. 生物特征認(rèn)證 目前已有的設(shè)備包括:視網(wǎng)膜掃描儀、聲音驗(yàn)證設(shè)備、手型識(shí)別器等。安全性高。 例如:系統(tǒng)中存儲(chǔ)了他的指紋,他接入網(wǎng)絡(luò)時(shí),就必須在連接到網(wǎng)絡(luò)的電子指紋機(jī)上提供他的指紋(這就防止他以假的指

13、紋或其它電子信息欺騙系統(tǒng)),只有指紋相符才允許他訪問系統(tǒng)。更普通的是通過視網(wǎng)膜膜血管分布圖來識(shí)別,原理與指紋識(shí)別相同,聲波紋識(shí)別也是商業(yè)系統(tǒng)采用的一種識(shí)別方式。,生物特征認(rèn)證 優(yōu)點(diǎn): 絕對(duì)無法仿冒的使用者認(rèn)證技術(shù)。 缺點(diǎn): 較昂貴。 不夠穩(wěn)定(辯識(shí)失敗率高)。,4.1.2 基于口令的認(rèn)證 安全與不安全的口令 UNIX系統(tǒng)口令密碼都是用8位(新的是13位)DES算法進(jìn)行加密的,即有效密碼只有前8位,所以一味靠密碼的長度是不可以的。安全的口令要求: 1) 位數(shù)6位。 2) 大小寫字母混合。 3)字母與數(shù)字混合。 4) 口令有字母、數(shù)字以外的符號(hào)。,4.2 認(rèn)證協(xié)議,1. 不安全的口令則有如下幾種情

14、況: (1)使用用戶名(帳號(hào))作為口令。 (2)使用用戶名(帳號(hào))的變換形式作為口令。將用戶名顛倒或者加前后綴作為口令,比如說著名的黑客軟件John,如果你的用戶名是fool,那么它在嘗試使用fool作為口令之后,還會(huì)試著使用諸如fool123、loof、loof123、lofo等作為口令,只要是你想得到的變換方法,John也會(huì)想得到。,(3)使用自己或者親友的生日作為口令。這種口令很脆弱,因?yàn)檫@樣往往可以得到一個(gè)6位或者8位的口令,但實(shí)際上可能的表達(dá)方式只有1001231=37200種。 (4)使用常用的英文單詞作為口令。這種方法比前幾種方法要安全一些。一般用戶選擇的英文單詞幾乎都落在黑客的

15、字典庫里。 (5)使用5位或5位以下的字符作為口令。,2. 加強(qiáng)口令安全的措施: A、禁止使用缺省口令。 B、定期更換口令。 C、保持口令歷史記錄,使用戶不能循環(huán)使用舊口令。 D、用口令破解程序測(cè)試口令。,3. 口令攻擊的種類 計(jì)算資源依靠口令的方式來保護(hù)的脆弱性: 網(wǎng)絡(luò)數(shù)據(jù)流竊聽(Sniffer): 由于認(rèn)證信息要通過網(wǎng)絡(luò)傳遞,并且很多認(rèn)證系統(tǒng)的口令是未經(jīng)加密的明文,攻擊者通過竊聽網(wǎng)絡(luò)數(shù)據(jù),就很容易分辨出某種特定系統(tǒng)的認(rèn)證數(shù)據(jù),并提取出用戶名和口令。,Sniffer 抓包截圖一,Sniffer 抓包截圖二,認(rèn)證信息截取/重放(Record/Replay) 有的系統(tǒng)會(huì)將認(rèn)證信息進(jìn)行簡(jiǎn)單加密后進(jìn)

16、行傳輸,如果攻擊者無法用第一種方式推算出密碼,可以使用截取/重放方式。攻擊者仍可以采用離線方式對(duì)口令密文實(shí)施字典攻擊; 對(duì)付重放的方法有: 1在認(rèn)證交換中使用一個(gè)序數(shù)來給每一個(gè)消息報(bào)文編號(hào) ,僅當(dāng)收到的消息序號(hào)合法時(shí)才接受之; 2使用時(shí)間戳 (A接受一個(gè)新消息僅當(dāng)該消息包含一個(gè) A認(rèn)為是足夠接近 A所知道的時(shí)間戳 ); 3詢問 /應(yīng)答方式 (A期望從 B獲得一個(gè)新消息 ,則先發(fā)給 B一個(gè)臨時(shí)值 ,并要求后續(xù)從 B收到的消息包含正確的這個(gè)臨時(shí)值 ),字典攻擊:由于多數(shù)用戶習(xí)慣使用有意義的單詞或數(shù)字作為密碼,某些攻擊者會(huì)使用字典中的單詞來嘗試用戶的密碼。所以大多數(shù)系統(tǒng)都建議用戶在口令中加入特殊字符

17、,以增加口令的安全性。 窮舉嘗試(Brute Force): 這是一種特殊的字典攻擊,它使用字符串的全集作為字典。如果用戶的密碼較短,很容易被窮舉出來,因而很多系統(tǒng)都建議用戶使用長口令。 窺探: 攻擊者利用與被攻擊系統(tǒng)接近的機(jī)會(huì),安裝監(jiān)視器或親自窺探合法用戶輸入口令的過程,以得到口令。,社交工程: 攻擊者冒充合法用戶發(fā)送郵件或打電話給管理人員,以騙取用戶口令。比如,在終端上發(fā)現(xiàn)如下信息: Please enter your user name to logon: Your password: 這很可能是一個(gè)模仿登錄信息的特洛伊木馬程序,他會(huì)記錄口令,然后傳給入侵者。 垃圾搜索: 攻擊者通過搜索

18、被攻擊者的廢棄物,得到與攻擊系統(tǒng)有關(guān)的信息,如果用戶將口令寫在紙上又隨便丟棄,則很容易成為垃圾搜索的攻擊對(duì)象。,口令猜中概率公式: P=LR/S L:口令生命周期 R:進(jìn)攻者單位時(shí)間內(nèi)猜測(cè)不同口令次數(shù) S:所有可能口令的數(shù)目。,為降低猜中的概率: 1減少口令使用壽命 ,即提高口令更換的頻率 ; 2降低進(jìn)攻者單位時(shí)間內(nèi)猜測(cè)嘗試口令的次數(shù) ; 3增加可能口令的數(shù)目 ,即提高口令的字符個(gè)數(shù)。 然而 ,口令的頻繁更換增加了用戶的負(fù)擔(dān) ,也為資深入侵者提供了條件 (為了便于記憶 ,人們往往選擇與其個(gè)人相關(guān)的口令 ,如某重要的日期 ),口令字符個(gè)數(shù)的增加也會(huì)增加用戶的負(fù)擔(dān)且不會(huì)對(duì)資深入侵者有更大影響 ,因

19、此 ,手段 2應(yīng)是較為有效的防猜中手段。,身份的零知識(shí)證明,通常的身份認(rèn)證都要求傳輸口令或身份信息(盡管是加密傳輸)。如果不傳輸這些信息,身份也能得到證明就好了,這就需要零知識(shí)證明技術(shù)(The proof of zero knowledge) 。零知識(shí)證明是這樣一種技術(shù),被認(rèn)證方P掌握某些秘密信息,P想設(shè)法讓認(rèn)證方V相信他確實(shí)掌握那些信息,但又不想讓V也知道那些信息。,解釋零知識(shí)證明的通俗例子是洞穴問題。 如圖:有一個(gè)洞,設(shè)P知道咒語,可打開C和D之間的秘密門,不知道者都將走入死胡同中,那么P如何向V出示證明使其相信他知道這個(gè)秘密,但又不告訴V有關(guān)咒語。,圖 4.4 零知識(shí)洞穴,4.3 典型的

20、認(rèn)證應(yīng)用 4.3.1Kerberos 認(rèn)證系統(tǒng),Kerberos:希臘神話“三個(gè)頭的狗地獄之門守護(hù)者” 希望有三個(gè)功能:身份認(rèn)證、記賬、審核。 Kerberos針對(duì)分布式環(huán)境,一些工作站可能安裝于不安全場(chǎng)所,而且用戶也并非是完全可信的。 客戶在登錄時(shí),需要認(rèn)證。用戶必須獲得由認(rèn)證服務(wù)器發(fā)行的許可證,才能使用目標(biāo)服務(wù)器上的服務(wù)。 許可證提供被認(rèn)證的用戶訪問一個(gè)服務(wù)時(shí)所需的授權(quán)資格。 所有客戶和服務(wù)器間的會(huì)話都是暫時(shí)的。,Kerberos是由美國麻省理工學(xué)院提出的基于可信賴的第三方的認(rèn)證系統(tǒng)。Kerberos提供了一種在開放式網(wǎng)絡(luò)環(huán)境下進(jìn)行身份認(rèn)證的方法,它使網(wǎng)絡(luò)上的用戶可以相互證明自己的身份。

21、Kerberos采用對(duì)稱密鑰體制對(duì)信息進(jìn)行加密?;舅枷耄耗苷_對(duì)信息進(jìn)行解密的用戶就是合法用戶。用戶在對(duì)應(yīng)用服務(wù)器進(jìn)行訪問之前,必須先從第三方(Kerberos服務(wù)器)獲取該應(yīng)用服務(wù)器的訪問許可證(ticket)。,網(wǎng)絡(luò)環(huán)境,Security Server,File server,Printing server,. . .,User 1,User 2,. . .,Attacker,1、Kerberos的產(chǎn)生背景 在網(wǎng)絡(luò)系統(tǒng)中,用戶需要從多臺(tái)計(jì)算機(jī)得到服務(wù),控制訪問的方法有三種: a.)認(rèn)證工作由用戶登錄的計(jì)算機(jī)來管理,服務(wù)程序不負(fù)責(zé)認(rèn)證,這對(duì)于封閉式網(wǎng)絡(luò)是可行的方案。 b.)收到服務(wù)請(qǐng)求時(shí),

22、對(duì)發(fā)來請(qǐng)求的主機(jī)進(jìn)行認(rèn)證,對(duì)每臺(tái)認(rèn)證過的主機(jī)的用戶不進(jìn)行認(rèn)證。例:rlogin和rsh 程序。半開放系統(tǒng)可用此方法。每個(gè)服務(wù)選擇自己信任的計(jì)算機(jī),在認(rèn)證時(shí)檢查主機(jī)地址來實(shí)現(xiàn)認(rèn)證。,C) 在開放式系統(tǒng)中,主機(jī)不能控制登錄它的每一個(gè)用戶,另外有來自系統(tǒng)外部的假冒等情況發(fā)生,以上兩種方法都不能保證用戶身份的真實(shí)性,必須對(duì)每一個(gè)服務(wù)請(qǐng)求,都要認(rèn)證用戶的身份。 開放式系統(tǒng)的認(rèn)證的要求: 1.) 安全性:沒有攻擊的薄弱環(huán)節(jié)。 2.)可靠性:認(rèn)證服務(wù)是其他服務(wù)的基礎(chǔ),要可靠,不能癱瘓。 3.) 透明性:用戶覺察不到認(rèn)證服務(wù),只是輸入口令。 4.)可擴(kuò)展性:支持加入更多的服務(wù)器。,2、什么是Kerberos

23、Kerberos:為網(wǎng)絡(luò)通信提供可信第三方服務(wù)的面向開放系統(tǒng)的認(rèn)證機(jī)制. 每當(dāng)用戶C申請(qǐng)得到某服務(wù)程序S的服務(wù)時(shí),用戶和服務(wù)程序會(huì)首先向Kerberos要求認(rèn)證對(duì)方的身份,認(rèn)證建立在用戶和服務(wù)程序?qū)erberos信任基礎(chǔ)上。 Kerberos不依賴用戶的終端或請(qǐng)求服務(wù)的安全機(jī)制,認(rèn)證工作由認(rèn)證服務(wù)器完成。時(shí)間戳技術(shù)被應(yīng)用于防止重放攻擊。,二、Kerberos原理,1、Kerberos的組成 MIT為雅典娜(Athena)計(jì)劃開發(fā)的認(rèn)證系統(tǒng)。組成: Kerberos應(yīng)用程序庫:應(yīng)用程序接口,包括創(chuàng)建和讀取認(rèn)證請(qǐng)求,以及創(chuàng)建safe message 和private message的子程序。 加

24、密/解密庫:DES等。 Kerberos數(shù)據(jù)庫:記載了每個(gè)Kerberos 用戶的名字,私有密鑰,截止信息(記錄的有效時(shí)間,通常為幾年)等信息。 數(shù)據(jù)庫管理程序:管理Kerberos數(shù)據(jù)庫,KDBM服務(wù)器(數(shù)據(jù)庫管理服務(wù)器):接受客戶端的請(qǐng)求對(duì)數(shù)據(jù)庫進(jìn)行操作。 認(rèn)證服務(wù)器(AS):存放一個(gè)Kerberos數(shù)據(jù)庫的只讀的副本,用來完成principle的認(rèn)證,并生成會(huì)話密鑰 數(shù)據(jù)庫復(fù)制軟件:管理數(shù)據(jù)庫從KDBM服務(wù)所在的機(jī)器,到認(rèn)證服務(wù)器所在的機(jī)器的復(fù)制工作,為了保持?jǐn)?shù)據(jù)庫的一致性,每隔一段時(shí)間就需要進(jìn)行復(fù)制工作 用戶程序:登錄Kerberos,改變Kerberos密碼,顯示和破壞Kerbero

25、s標(biāo)簽(ticket)等工作。 應(yīng)用程序:,Kerberos的主要認(rèn)證模型如下: 出于實(shí)現(xiàn)和安全考慮,Kerberos認(rèn)證服務(wù)被分配到兩個(gè)相對(duì)獨(dú)立的服務(wù)器。 認(rèn)證服務(wù)器AS:它同時(shí)應(yīng)該連接并維護(hù)一個(gè)中央數(shù)據(jù)庫存放用戶口令、標(biāo)識(shí)等) 票據(jù)許可服務(wù)器TGS(Ticket Granting Server)。 整個(gè)系統(tǒng)將由四部分組成:AS,TGS,Client,Server。,Server,Server,Server,Server,Ticket Granting Server,Authentication Server,Workstation,Kerberos Key Distribution Ser

26、vice,Kerberos 有兩種證書:票據(jù)ticket和認(rèn)證符authenticator。這兩種證書都要加密,但加密的密鑰不同。 Ticket用來安全地在AS和S之間傳遞用戶的身份,同時(shí)保證使用ticket的用戶必須是ticket中指定的用戶。Ticket的組成: C/S的標(biāo)識(shí),client的地址,時(shí)間戳,生存時(shí)間,會(huì)話密鑰五部分組成。Ticket一旦生成,在life指定的時(shí)間內(nèi)可以被client多次使用來申請(qǐng)同一個(gè)server的服務(wù)。,Authenticator:提供信息與ticket中的信息進(jìn)行比較,一起保證發(fā)出ticket的用戶就是ticket中指定的用戶。認(rèn)證符有下列部分組成: cl

27、ient的名字,client的地址,記錄當(dāng)前時(shí)間的時(shí)間戳。authenticator只能在一次服務(wù)請(qǐng)求中使用,每當(dāng)client向server申請(qǐng)服務(wù)時(shí),必須重新生成Authenticator。,通過三階段六步操作,用戶C和服務(wù)V互相驗(yàn)證彼此的身份,并且擁有只有C和V兩者知道的會(huì)話密鑰Kc.v,以后的通信都可以通過會(huì)話密鑰得到保護(hù)。,AS,TGS,DB,用戶C,服務(wù)器V,Kerberos,用戶C請(qǐng)求服務(wù)S的整個(gè)Kerberos認(rèn)證過程 1)認(rèn)證服務(wù)交換 用戶C向AS發(fā)出請(qǐng)求,以獲取訪問TGS的令牌(票據(jù)許可證):Tickettgs 得到初始化令牌的工作在用戶登錄工作站時(shí)進(jìn)行,在用戶看來和登錄分時(shí)

28、系統(tǒng)是完全相同的。登錄時(shí)用戶被要求輸入用戶名,輸入后系統(tǒng)向AS發(fā)送一條包含用戶和TGS服務(wù)兩者名字的請(qǐng)求,以及時(shí)戳TS1(表示是新請(qǐng)求)。,AS檢查用戶有效,則隨機(jī)產(chǎn)生用戶和TGS通信的會(huì)話密鑰Kc,tgs,并創(chuàng)建令牌Tickettgs ,令牌包含用戶名,用戶地址,TGS服務(wù)名,當(dāng)前時(shí)間(時(shí)戳TS2) ,有效時(shí)間,還有剛才創(chuàng)建的會(huì)話密鑰。然后將令牌用Ktgs加密。AS向C發(fā)送加密過的令牌Tickettgs和會(huì)話密鑰Kc,tgs,發(fā)送的消息用只有用戶和認(rèn)證服務(wù)器A知道的Kc來加密,Kc值基于用戶密碼。,用戶機(jī)器收到AS回應(yīng)后,要求用戶輸入密碼,將密碼轉(zhuǎn)化為DES密鑰Kc,然后將AS發(fā)回的信息解開

29、,保存令牌Tickettgs和會(huì)話密鑰Kc,tgs,為了安全,用戶密碼Pc和密鑰Kc則被丟棄。 當(dāng)用戶的登錄時(shí)間超過了令牌的有效時(shí)間時(shí),用戶的請(qǐng)求就會(huì)失敗,這時(shí)系統(tǒng)會(huì)要求用戶使用kinit程序重新申請(qǐng)令牌Tickettgs。用戶運(yùn)行klist命令可以查看自己所擁有的令牌的當(dāng)前狀態(tài)。,1. CAS: IDC|IDtgs|TS1 2. AS C: EKcKc,tgs|IDtgs|TS2|Lifetime2|Tickettgs 其中:Tickettgs = EKtgsKc, tgs|IDc|ADc| IDtgs |TS2|Lifetime2 說明: 1. 不輸入C的口令,就不能解開來自 AS的信息

30、2. TS1時(shí)戳用來防止重放攻擊; 3. Kc 由用戶口令導(dǎo)出; 4. Kc,tgs 是 C 和 TGS間的會(huì)話密鑰。,2) C從TGS得到所請(qǐng)求服務(wù)的令牌Ticketv。 一個(gè)令牌只能申請(qǐng)一個(gè)特定的服務(wù),所以用戶必須為每一個(gè)服務(wù)V申請(qǐng)新的令牌,用戶可以從TGS處得到服務(wù)令牌Ticketv 。 用戶程序首先向TGS發(fā)出申請(qǐng)令牌的請(qǐng)求。請(qǐng)求信息中包含V的名字,上一步中得到的請(qǐng)求TGS服務(wù)的加密令牌Tickettgs,還有加密過的認(rèn)證符Authenticatorc 。認(rèn)證符含有:用戶身份、網(wǎng)址、時(shí)戳。認(rèn)證符與ticket不同,只用一次且有效期短。,如果有效,TGS生成用于C和V之間通信的會(huì)話密鑰K

31、c,v,并生成用于C申請(qǐng)得到V服務(wù)的令牌Ticketv,其中包含C和V的名字,C的網(wǎng)絡(luò)地址,當(dāng)前時(shí)間,有效時(shí)間和會(huì)話密鑰Kc,v 。令牌Ticketv的有效時(shí)間是初始令牌Tickettgs 剩余的有效時(shí)間和所申請(qǐng)的服務(wù)缺省有效時(shí)間中最短的時(shí)間。 TGS用C和TGS之間的會(huì)話密鑰Kc,tgs 加密Ticketv和會(huì)話密鑰Kc,v,然后發(fā)送給用戶C。C得到回答后,用Kc,tgs解密,得到所請(qǐng)求的令牌Ticketv和會(huì)話密鑰Kc,v 。,3. CTGS: IDv|Tickettgs|Authenticatorc Authenticatorc=EKc,tgsIDc|ADc|TS3 說明: TGS擁有

32、Ktgs,可以解密 Tickettgs ,然后使用從Tickettgs 得到的Kc,tgs 來解密 Authenticatorc 將認(rèn)證符中的數(shù)據(jù)與票據(jù)中的數(shù)據(jù)比較,以驗(yàn)證票據(jù)發(fā)送者就是票據(jù)持有者。 4. TGS C: EKc,tgsKc,v|IDv|TS4|Ticketv Ticketv= EKvKc,v|IDc|ADc|IDv|TS4|Lifetime4,(3) 客戶機(jī)與服務(wù)器之間認(rèn)證交換。 C向V發(fā)送服務(wù)許可票據(jù)Ticketv 和認(rèn)證符Authenticatorc ,V收到后用Kv 解密Ticketv ,然后用Kc,v解密認(rèn)證符。比較得到的用戶名,網(wǎng)絡(luò)地址,時(shí)間等信息,判斷C的身份,請(qǐng)求

33、是否有效。用戶和服務(wù)程序之間的時(shí)鐘必須同步在幾分鐘的時(shí)間段內(nèi),當(dāng)請(qǐng)求的時(shí)間與系統(tǒng)當(dāng)前時(shí)間相差太遠(yuǎn)時(shí),認(rèn)為請(qǐng)求是無效的,用來防止重放攻擊。為防止重放攻擊,V通常保存一份最近收到的有效請(qǐng)求的列表,當(dāng)收到一份請(qǐng)求與已經(jīng)收到的某份請(qǐng)求的令牌和時(shí)間完全相同時(shí),認(rèn)為此請(qǐng)求無效。,(3) 客戶機(jī)與服務(wù)器之間認(rèn)證交換。 當(dāng)C也想驗(yàn)證V的身份時(shí),V將收到的時(shí)間戳加1,并用會(huì)話密鑰Kc,v加密后發(fā)送給用戶,用戶收到回答后,用Kc,v解密后對(duì)增加的時(shí)戳進(jìn)行驗(yàn)證,從而確定V的身份。 此后,客戶與服務(wù)器之間通過共享的會(huì)話密鑰秘密通信。,5. CV: Ticketv|Authenticatorc 6. V C: Ekc,

34、vTS5+1 其中: Ticketv= EKvKc,v|IDc|ADc|IDv|TS4|Lifetime4Authenticatorc=Ekc,v IDc|ADc|TS5,Kerberos的局限性: 1時(shí)間同步問題: 因?yàn)檎麄€(gè)Kerberos的協(xié)議都嚴(yán)重地依賴于時(shí)鐘,而實(shí)際證明,要求在分步式系統(tǒng)環(huán)境中實(shí)現(xiàn)良好的時(shí)鐘同步,是一個(gè)很難的課題。如果能夠?qū)崿F(xiàn)一種基于安全機(jī)制的時(shí)間服務(wù),或是研制一種相對(duì)獨(dú)立于計(jì)算機(jī)和網(wǎng)絡(luò)環(huán)境、且基于一種或幾種世界標(biāo)準(zhǔn)時(shí)鐘的,能夠準(zhǔn)確進(jìn)行時(shí)間轉(zhuǎn)化和時(shí)間服務(wù)的聯(lián)機(jī)物理時(shí)鐘,這種問題將得到較好的解決;,2口令猜測(cè)問題: Kerberos的口令沒有進(jìn)行額外的特殊處理,以至于即使用強(qiáng)力攻擊(即窮舉法)的時(shí)間復(fù)雜度僅和口令的長度成比例,這將形成一個(gè)兩難的局面:或是增加密鑰長度換取更高的安全,但這會(huì)造成用戶的使用困難(可以參照口令短語方式解決此困難)和增加系統(tǒng)加/解密開銷。,3認(rèn)證域之間的信任問題:認(rèn)證域之間的多級(jí)跳躍過程復(fù)雜且不明確,相互信任和協(xié)調(diào)不方便。若各Kerberos區(qū)域形成復(fù)雜或不規(guī)則的網(wǎng)狀結(jié)構(gòu),則要求方便的域間服務(wù),將付出極大的代價(jià),即系統(tǒng)的可擴(kuò)充性不強(qiáng)。針對(duì)這種無序的狀況,應(yīng)有規(guī)劃有目的地建立起全球一體化的分層(樹狀)結(jié)構(gòu),形成良好的信任鏈條。,4重放攻擊的問題: 長票的生存期較長,容易被重放攻擊;對(duì)短票

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論