版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第七章身份認(rèn)證1一、認(rèn)證的基本原理
物理基礎(chǔ):
(1)用戶所知道的;常見的如:密碼和口令。
(2)用戶所擁有的;如:身份證、護(hù)照,密鑰盤等。
(3)用戶的特征;包括用戶的生物特征:指紋,紅膜,DNA,聲紋;還包括用戶的下意識行為,如:簽名。2身份認(rèn)證系統(tǒng)架構(gòu)包含三項(xiàng)主要組成元件:
認(rèn)證服務(wù)器(AuthenticationServer)負(fù)責(zé)進(jìn)行使用者身份認(rèn)證工作,服務(wù)器上存放使用者的私有密鑰、認(rèn)證方式及使用者認(rèn)證的信息。
認(rèn)證系統(tǒng)用戶端軟件(AuthenticationClientSoftware)認(rèn)證系統(tǒng)用戶端通常都是需要進(jìn)行登陸的設(shè)備或系統(tǒng),在這些設(shè)備及系統(tǒng)中必須具備可以與認(rèn)證服務(wù)器協(xié)同運(yùn)作的認(rèn)證協(xié)定。
認(rèn)證設(shè)備(Authenticator)認(rèn)證設(shè)備是使用者用來產(chǎn)生或計(jì)算密碼的軟硬件設(shè)備。
3
口令機(jī)制用戶名/口令認(rèn)證技術(shù):最簡單、最普遍的身份識別技術(shù),如:各類系統(tǒng)的登錄等。口令具有共享秘密的屬性,是相互約定的代碼,只有用戶和系統(tǒng)知道。例如,用戶把他的用戶名和口令送服務(wù)器,服務(wù)器操作系統(tǒng)鑒別該用戶。口令有時由用戶選擇,有時由系統(tǒng)分配。通常情況下,用戶先輸入某種標(biāo)志信息,比如用戶名和ID號,然后系統(tǒng)詢問用戶口令,若口令與用戶文件中的相匹配,用戶即可進(jìn)入訪問??诹钣卸喾N,如一次性口令,基于時間的口令。4
數(shù)字證書是一種檢驗(yàn)用戶身份的電子文件,也是企業(yè)現(xiàn)在可以使用的一種工具。這種證書可以授權(quán)購買,提供更強(qiáng)的訪問控制,并具有很高的安全性和可靠性。非對稱體制身份識別的關(guān)鍵是將用戶身份與密鑰綁定。CA(CertificateAuthority)通過為用戶發(fā)放數(shù)字證書(Certificate)來證明用戶公鑰與用戶身份的對應(yīng)關(guān)系。5驗(yàn)證者向用戶提供一隨機(jī)數(shù);用戶以其私鑰KS對隨機(jī)數(shù)進(jìn)行簽名,將簽名和自己的證書提交給驗(yàn)證方;驗(yàn)證者驗(yàn)證證書的有效性,從證書中獲得用戶公鑰KP,以KP驗(yàn)證用戶簽名的隨機(jī)數(shù)。6
智能卡網(wǎng)絡(luò)通過用戶擁有什么東西來識別的方法,一般是用智能卡或其它特殊形式的標(biāo)志,這類標(biāo)志可以從連接到計(jì)算機(jī)上的讀出器讀出來。訪問不但需要口令,也需要使用物理智能卡。智能卡技術(shù)將成為用戶接入和用戶身份認(rèn)證等安全要求的首選技術(shù)。用戶將從持有認(rèn)證執(zhí)照的可信發(fā)行者手里取得智能卡安全設(shè)備,也可從其他公共密鑰密碼安全方案發(fā)行者那里獲得。這樣智能卡的讀取器必將成為用戶接入和認(rèn)證安全解決方案的一個關(guān)鍵部分。第七講認(rèn)證7
主體特征認(rèn)證目前已有的設(shè)備包括:視網(wǎng)膜掃描儀、聲音驗(yàn)證設(shè)備、手型識別器等。安全性高。例如:系統(tǒng)中存儲了他的指紋,他接入網(wǎng)絡(luò)時,就必須在連接到網(wǎng)絡(luò)的電子指紋機(jī)上提供他的指紋(這就防止他以假的指紋或其它電子信息欺騙系統(tǒng)),只有指紋相符才允許他訪問系統(tǒng)。更普通的是通過視網(wǎng)膜膜血管分布圖來識別,原理與指紋識別相同,聲波紋識別也是商業(yè)系統(tǒng)采用的一種識別方式。8用戶名/口令具有實(shí)現(xiàn)簡單的優(yōu)點(diǎn),但存在以下安全缺點(diǎn):1、大多數(shù)系統(tǒng)的口令是明文傳送到驗(yàn)證服務(wù)器的,容易被截獲。某些系統(tǒng)在建立一個加密鏈路后再進(jìn)行口令的傳輸以解決此問題,如配置鏈路加密機(jī)。2、口令維護(hù)的成本較高。為保證安全性,口令應(yīng)當(dāng)經(jīng)常更換。另外為避免對口令的字典攻擊,口令應(yīng)當(dāng)保證一定的長度,并且盡量采用隨機(jī)的字符。但缺點(diǎn)是難于記憶。3、口令容易在輸入的時候被攻擊者偷窺,而且用戶無法及時發(fā)現(xiàn)。簡單和安全是互相矛盾的兩個因素。9
安全與不安全的口令
UNIX系統(tǒng)口令密碼都是用8位(新的是13位)DES算法進(jìn)行加密的,即有效密碼只有前8位,所以一味靠密碼的長度是不可以的。安全的口令要求:1)位數(shù)>6位。2)大小寫字母混合。3)字母與數(shù)字混合。4)口令有字母、數(shù)字以外的符號。二、基于口令的身份認(rèn)證10
不安全的口令則有如下幾種情況:
(1)使用用戶名(帳號)作為口令。(2)使用用戶名(帳號)的變換形式作為口令。將用戶名顛倒或者加前后綴作為口令,比如說著名的黑客軟件John,如果你的用戶名是fool,那么它在嘗試使用fool作為口令之后,還會試著使用諸如fool123、loof、loof123、lofo等作為口令,只要是你想得到的變換方法,John也會想得到。11
(3)使用自己或者親友的生日作為口令。這種口令很脆弱,因?yàn)檫@樣往往可以得到一個6位或者8位的口令,但實(shí)際上可能的表達(dá)方式只有100×12×31=37200種。(4)使用常用的英文單詞作為口令。這種方法比前幾種方法要安全一些。一般用戶選擇的英文單詞幾乎都落在黑客的字典庫里。(5)使用5位或5位以下的字符作為口令。12加強(qiáng)口令安全的措施:A、禁止使用缺省口令。B、定期更換口令。C、保持口令歷史記錄,使用戶不能循環(huán)使用舊口令。D、用口令破解程序測試口令。
13
2、口令攻擊的種類
計(jì)算資源依靠口令的方式來保護(hù)的脆弱性:網(wǎng)絡(luò)數(shù)據(jù)流竊聽。由于認(rèn)證信息要通過網(wǎng)絡(luò)傳遞,并且很多認(rèn)證系統(tǒng)的口令是未經(jīng)加密的明文,攻擊者通過竊聽網(wǎng)絡(luò)數(shù)據(jù),就很容易分辨出某種特定系統(tǒng)的認(rèn)證數(shù)據(jù),并提取出用戶名和口令。口令被盜也就是用戶在這臺機(jī)器上的一切信息將全部喪失,并且危及他人信息安全,計(jì)算機(jī)只認(rèn)口令不認(rèn)人。最常見的是電子郵件被非法截獲。14認(rèn)證信息截取/重放(Record/Replay)有的系統(tǒng)會將認(rèn)證信息進(jìn)行簡單加密后進(jìn)行傳輸,如果攻擊者無法用第一種方式推算出密碼,可以使用截取/重放方式。攻擊者仍可以采用離線方式對口令密文實(shí)施字典攻擊;對付重放的方法有:1在認(rèn)證交換中使用一個序數(shù)來給每一個消息報文編號,僅當(dāng)收到的消息序號合法時才接受之;2使用時間戳(A接受一個新消息僅當(dāng)該消息包含一個A認(rèn)為是足夠接近A所知道的時間戳);3詢問/應(yīng)答方式(A期望從B獲得一個新消息,則先發(fā)給B一個臨時值,并要求后續(xù)從B收到的消息包含正確的這個臨時值)15字典攻擊:由于多數(shù)用戶習(xí)慣使用有意義的單詞或數(shù)字作為密碼,某些攻擊者會使用字典中的單詞來嘗試用戶的密碼。所以大多數(shù)系統(tǒng)都建議用戶在口令中加入特殊字符,以增加口令的安全性。窮舉嘗試(BruteForce):這是一種特殊的字典攻擊,它使用字符串的全集作為字典。如果用戶的密碼較短,很容易被窮舉出來,因而很多系統(tǒng)都建議用戶使用長口令。窺探:攻擊者利用與被攻擊系統(tǒng)接近的機(jī)會,安裝監(jiān)視器或親自窺探合法用戶輸入口令的過程,以得到口令。16社交工程:攻擊者冒充合法用戶發(fā)送郵件或打電話給管理人員,以騙取用戶口令。比如,在終端上發(fā)現(xiàn)如下信息:
Pleaseenteryourusernametologon:
Yourpassword:這很可能是一個模仿登錄信息的特洛伊木馬程序,他會記錄口令,然后傳給入侵者。垃圾搜索:攻擊者通過搜索被攻擊者的廢棄物,得到與攻擊系統(tǒng)有關(guān)的信息,如果用戶將口令寫在紙上又隨便丟棄,則很容易成為垃圾搜索的攻擊對象。
17口令猜中概率公式:P=L?R/SL:口令生命周期R:進(jìn)攻者單位時間內(nèi)猜測不同口令次數(shù)S:所有可能口令的數(shù)目。為降低猜中的概率:1、減少口令使用壽命,即提高口令更換的頻率;2、降低進(jìn)攻者單位時間內(nèi)猜測嘗試口令的次數(shù);3、增加可能口令的數(shù)目,即提高口令的字符個數(shù)。然而,口令的頻繁更換增加了用戶的負(fù)擔(dān),也為資深入侵者提供了條件(為了便于記憶,人們往往選擇與其個人相關(guān)的口令,如某重要的日期),口令字符個數(shù)的增加也會增加用戶的負(fù)擔(dān)且不會對資深入侵者有更大影響,因此,手段2應(yīng)是較為有效的防猜中手段。181.選擇很難破譯的加密算法讓硬件解密商品不能發(fā)揮作用。2.控制用戶口令強(qiáng)度(長度、混合、大小寫)3.摻雜口令先輸入口令,然后口令程序取一個12位的隨機(jī)數(shù)(通過讀取實(shí)時時鐘)并把它并在用戶輸入的口令后面。然后加密這個復(fù)合串。最后把64位的加密結(jié)果連同12位的隨機(jī)數(shù)(叫做salt)一起存入口令文件。194.不要暴露賬戶是否存在的信息例:打入一個用戶名后,不論賬戶是否存在,都在相同時間里要求輸入口令。5.限制口令嘗試次數(shù)。6.系統(tǒng)中只保存口令的加密形式207.一次性口令(OTP:OneTimePassword)
在登錄過程中加入不確定因素,使每次登錄過程中傳送的信息都不相同,以對付重放攻擊。確定口令的方式:1)聲稱者與驗(yàn)證者兩端共同擁有一串隨機(jī)口令,在該串的某一位置保持同步。用于人工控制環(huán)境中。2)兩端共同使用一個隨機(jī)序列生成器,在序列生成器的初態(tài)保持同步。3)使用時戳,兩端維持同步的時鐘。21三、基于智能卡的身份認(rèn)證
1、智能卡的安全性
IC卡是英文IntegratedCirtuit(集成電路)卡的縮寫,也稱“MEMORYCARD”和“SMARTCARD”,中文譯作“聰明卡”、“智慧卡”和“智能卡”等。這種集成電路卡,是隨著半導(dǎo)體技術(shù)的發(fā)展以及社會對信息的安全性和存儲容量要求的日益提高而應(yīng)運(yùn)而生的。它是一種將具有加密、存儲、處理能力的集成電路芯片嵌裝于塑料基片上而制成的卡片,它的外型與普通的信用卡十分相似。
IC卡可簡單地分為三種類型:存儲卡、邏輯加密卡、CPU卡。22
IC卡優(yōu)點(diǎn):存儲容量大、體積小而輕、保密性強(qiáng)、網(wǎng)絡(luò)要求低數(shù)據(jù)可靠性高IC卡防磁、防靜電、防潮、耐溫、抗干擾能力強(qiáng),一張IC卡片可重復(fù)讀寫十萬次,卡中數(shù)據(jù)可保存幾十年。
IC卡讀寫操作通過電信號傳輸來完成,因而對計(jì)算機(jī)的實(shí)時性、敏感性要求降低。內(nèi)部數(shù)據(jù)保密性、可靠性好,讀寫穩(wěn)定可脫機(jī)工作,易于安裝維護(hù),而磁卡系統(tǒng)離不開網(wǎng)絡(luò);232、智能卡技術(shù)規(guī)范
1)ISO7816描述智能卡底層接口標(biāo)準(zhǔn),定義讀卡器和智能卡之間如何傳遞字節(jié)流。此標(biāo)準(zhǔn)主要是定義了塑料基片的物理和尺寸特性(7816/1),觸點(diǎn)的尺寸和位置(7816/2),信息交換的底層協(xié)議描述(7816/3),7816/4論述了跨行業(yè)的命令集。
2)PC/SC(PersonalComputer/SmartCard)工作組
Microsoft聯(lián)合其它幾家公司推出了稱為PC/SC的智能卡應(yīng)用程序標(biāo)準(zhǔn),用于Win32平臺的個人計(jì)算機(jī)與智能卡之間實(shí)現(xiàn)互通信。PC/SC工作組于1996年五月成立,目的在于規(guī)范一個開放的Windows接口。PC/SC工作組持有對PC-ICC互操作規(guī)范的所有權(quán)。24
3)OpenCard框架由IBM,Netscape,NCI和Sun在1997年3月27日提出的用于網(wǎng)絡(luò)環(huán)境的智能應(yīng)用框架。目的是支持智能卡應(yīng)用程序在網(wǎng)絡(luò)計(jì)算機(jī)、PC機(jī)、ATM和GSM平臺上實(shí)現(xiàn)應(yīng)用互操作。OpenCard
還提供了到PC/SC的接口。
4)JavaCard論壇1996年10月推出了JavaCardAPI規(guī)范,目前版本為2.1.1,1997年4月27日,JavaCard論壇正式宣布成立。JavaCard論壇的成立目的是完善JavaCardAPI規(guī)范,使之最終成為多應(yīng)用智能卡的首選編程語言。25
JavaCard就是能夠運(yùn)行Java程序的智能卡。JavaCard在出廠時就在ROM中燒入了操作系統(tǒng)、JavaCard虛擬機(jī)、API類庫和可選的applets,隨后,初始化和個人化向EEPROM中寫入數(shù)據(jù)。所謂JavaCard規(guī)范,主要是定義了Java作為一種獨(dú)立于平臺的編程技術(shù)在智能卡上的應(yīng)用。JavaCardAPI與正式的國際標(biāo)準(zhǔn)(如ISO7816)和工業(yè)規(guī)范標(biāo)準(zhǔn)(如Europay/MasterCard/Visa)兼容。也就是說Javaapplet能夠直接運(yùn)行在遵循ISO7816標(biāo)準(zhǔn)的智能卡之上。26第七講認(rèn)證
3、基于智能卡的認(rèn)證機(jī)制在基于Web的電子商務(wù)應(yīng)用中,Javaapplet與智能卡之間的通信是:應(yīng)用程序與讀卡器通信,而讀卡器將使用上面介紹的標(biāo)準(zhǔn)與智能卡通信。在用戶進(jìn)行商務(wù)交易前,服務(wù)器首先使用智能卡完成用戶身份的認(rèn)證。身份認(rèn)證過程中為了產(chǎn)生變動的密碼一般采用雙運(yùn)算因子的計(jì)算方式,也就是加密算法的輸入值有兩個數(shù)值,其一為用戶密鑰、另一為變動因子,由于用戶密鑰為固定數(shù)值,因此變動因子必須不斷變動才可以算出不斷變動的動態(tài)密碼。服務(wù)器及智能卡必須隨時保持相同的變動因子,才能算出相同的動態(tài)密碼。27
詢問/應(yīng)答認(rèn)證變動因子是由服務(wù)器產(chǎn)生的隨機(jī)數(shù)字。認(rèn)證過程如下:1)登錄請求??蛻魴C(jī)首先向服務(wù)器發(fā)出登錄請求,服務(wù)器提示用戶輸入用戶ID和PIN。
2)詢問。用戶提供ID給服務(wù)器,然后服務(wù)器提供一個隨機(jī)串X(Challenge)給插在客戶端的智能卡作為驗(yàn)證算法的輸入,服務(wù)器則根據(jù)用戶ID取出對應(yīng)的密鑰K后,利用發(fā)送給客戶機(jī)的隨機(jī)串X,在服務(wù)器上用加密引擎進(jìn)行運(yùn)算,得到運(yùn)算結(jié)果RS。28
3)應(yīng)答。智能卡根據(jù)X與內(nèi)在密鑰K使用硬件加密引擎運(yùn)算,也得到一個運(yùn)算結(jié)果RC,并發(fā)送給服務(wù)器。4)驗(yàn)證。比較RS和RC便可確定用戶的合法性。由于密鑰存在于智能卡中,運(yùn)算過程也是在智能卡中完成,密鑰認(rèn)證是通過加密算法來實(shí)現(xiàn)的,因而極大地提高了安全性。并且每當(dāng)客戶端有一次服務(wù)申請時,服務(wù)器便產(chǎn)生一個隨機(jī)串給客戶,即使在網(wǎng)上傳輸?shù)恼J(rèn)證數(shù)據(jù)被截獲,也不能帶來安全上的問題。29詢問/應(yīng)答身份認(rèn)證
30優(yōu)點(diǎn):1、沒有同步的問題。2、一片認(rèn)證卡可以用來存取被不同認(rèn)證服務(wù)器所保護(hù)的系統(tǒng)。3、最安全的認(rèn)證方式。缺點(diǎn):1、使用者必須按較多的按鈕,操作較繁復(fù)。2、比較多輸入的失誤。31變動因子使用服務(wù)器端與客戶端的同步時間值。認(rèn)證過程如下:1)用戶向服務(wù)器發(fā)出登錄請求,服務(wù)器提示用戶輸入用戶ID和用戶PIN。
2)服務(wù)器根據(jù)用戶ID取出對應(yīng)的密鑰K,使用K與服務(wù)器時間T計(jì)算動態(tài)密碼RS。
3)智能卡根據(jù)內(nèi)在的密鑰K與客戶機(jī)時間T使用相同的專用算法計(jì)算動態(tài)密碼RC,并發(fā)送給服務(wù)器。4)服務(wù)器比較RS與RC,如果相同則用戶合法。時間同步身份認(rèn)證32時間同步認(rèn)證卡在一個固定期間中(通常是一分鐘)產(chǎn)生同一個動態(tài)密碼,依據(jù)時間的流逝產(chǎn)生不同的密碼。33優(yōu)點(diǎn):易于使用。缺點(diǎn):1、時間同步困難,可能造成必須重新輸入新密碼。軟體認(rèn)證卡采用PC的時刻,很可能隨時被修改。常常需要與服務(wù)器重新對時。2、不如Challenge/Response認(rèn)證更安全343)事件同步事件同步認(rèn)證卡依據(jù)認(rèn)證卡上的私有密鑰產(chǎn)生一序列的動態(tài)密碼,如果使用者意外多產(chǎn)生了幾組密碼造成不同步的狀態(tài),服務(wù)器會自動重新同步到目前使用的密碼,一旦一個密碼被使用過后,在密碼序列中所有這個密碼之前的密碼都會失效。
35事件同步的身份認(rèn)證36優(yōu)點(diǎn):容易使用。由于使用者無法知道序列數(shù)字,所以安全性高,序列號碼絕不會顯示出來。缺點(diǎn):如果沒有PIN號碼的保護(hù)及認(rèn)證卡借給別人使用時,會有安全的疑慮。37
四、基于生物特征的身份認(rèn)證對用戶固有的某些特征進(jìn)行測量,如指紋、聲音或簽字。這些需要特殊硬件,這就限制了生物技術(shù)只能用在比較少的環(huán)境中。其吸引人的地方是生物識別絕不可能丟失和被偷竊。實(shí)際上,存在著某些局限性。傳統(tǒng)的安全常識認(rèn)為認(rèn)證數(shù)據(jù)應(yīng)有規(guī)則地進(jìn)行變化。而使用指紋閱讀器難于做到這一點(diǎn)。某些方法也遭到了用戶的反對。還有,因?yàn)樯锛夹g(shù)具有極為本質(zhì)的特點(diǎn),因此不可能給出準(zhǔn)確的答案。38沒有兩個簽字是絕對相同的,即使來自一個人,還有一些莫明其妙的影響,例如疲勞程度、心境狀況和健康狀況等。在匹配算法中必須建立某些公差。假如某個調(diào)用者經(jīng)認(rèn)證只有93%的可信度,是否讓其登錄?某些系統(tǒng)使用智能卡存儲每個用戶的生物技術(shù)數(shù)據(jù)。這避免了需要主機(jī)數(shù)據(jù)庫,而是依賴于卡的安全性來防止竄改。在用戶和智能卡之間的協(xié)議中,結(jié)合了來自主機(jī)的隨機(jī)質(zhì)詢,因而避免了重播攻擊。39優(yōu)點(diǎn):絕對無法仿冒的使用者認(rèn)證技術(shù)。缺點(diǎn):較昂貴。不夠穩(wěn)定(辯識失敗率高)。40身份的零知識證明
通常的身份認(rèn)證都要求傳輸口令或身份信息(盡管是加密傳輸)。如果不傳輸這些信息,身份也能得到證明就好了,這就需要零知識證明技術(shù)(Theproofofzeroknowledge)
。零知識證明是這樣一種技術(shù),被認(rèn)證方P掌握某些秘密信息,P想設(shè)法讓認(rèn)證方V相信他確實(shí)掌握那些信息,但又不想讓V也知道那些信息。41解釋零知識證明的通俗例子是洞穴問題。如圖:有一個洞,設(shè)P知道咒語,可打開C和D之間的秘密門,不知道者都將走入死胡同中,那么P如何向V出示證明使其相信他知道這個秘密,但又不告訴V有關(guān)咒語。42
P如何使V相信自己掌握了洞穴的秘密:1)V站在A點(diǎn)。2)P進(jìn)入洞中任意一點(diǎn)C或D。
3)當(dāng)P進(jìn)洞之后,V走到B點(diǎn)。4)V叫P:“從左邊出來”或“從右邊出來”。5)P按要求實(shí)現(xiàn)(咒語,即解數(shù)學(xué)難題)。6)P和V重復(fù)執(zhí)行(1)~(5)共n次。被認(rèn)證方P掌握的秘密信息一般是長期沒有解決的猜想問題的證明,但能通過具體的步驟來驗(yàn)證它的正確性。
43Kerberos認(rèn)證系統(tǒng)44網(wǎng)絡(luò)環(huán)境
SecurityServerFileserverPrintingserver...User1User2...Attacker45⊙竊聽⊙重放:利用先前的標(biāo)簽信息,獲得以后對系統(tǒng)的訪問權(quán)?!鸭倜坝脩簟褌窝b機(jī)器潛在的攻擊46一、Kerberos簡介
Kerberos:希臘神話“三個頭的狗—地獄之門守護(hù)者”。希望有三個功能:身份認(rèn)證、記賬、審核。
Kerberos針對分布式環(huán)境,一些工作站可能安裝于不安全場所,而且用戶也并非是完全可信的。客戶在登錄時,需要認(rèn)證。用戶必須獲得由認(rèn)證服務(wù)器發(fā)行的許可證,才能使用目標(biāo)服務(wù)器上的服務(wù)。許可證提供被認(rèn)證的用戶訪問一個服務(wù)時所需的授權(quán)資格。所有客戶和服務(wù)器間的會話都是暫時的。
471、Kerberos的產(chǎn)生背景在網(wǎng)絡(luò)系統(tǒng)中,用戶需要從多臺計(jì)算機(jī)得到服務(wù),控制訪問的方法有三種:
a.)認(rèn)證工作由用戶登錄的計(jì)算機(jī)來管理,服務(wù)程序不負(fù)責(zé)認(rèn)證,這對于封閉式網(wǎng)絡(luò)是可行的方案。
b.)收到服務(wù)請求時,對發(fā)來請求的主機(jī)進(jìn)行認(rèn)證,對每臺認(rèn)證過的主機(jī)的用戶不進(jìn)行認(rèn)證。例:rlogin和rsh
程序。半開放系統(tǒng)可用此方法。每個服務(wù)選擇自己信任的計(jì)算機(jī),在認(rèn)證時檢查主機(jī)地址來實(shí)現(xiàn)認(rèn)證。48
C)
在開放式系統(tǒng)中,主機(jī)不能控制登錄它的每一個用戶,另外有來自系統(tǒng)外部的假冒等情況發(fā)生,以上兩種方法都不能保證用戶身份的真實(shí)性,必須對每一個服務(wù)請求,都要認(rèn)證用戶的身份。開放式系統(tǒng)的認(rèn)證的要求:1.)安全性:沒有攻擊的薄弱環(huán)節(jié)。2.)可靠性:認(rèn)證服務(wù)是其他服務(wù)的基礎(chǔ),要可靠,不能癱瘓。3.)透明性:用戶覺察不到認(rèn)證服務(wù),只是輸入口令。4.)可擴(kuò)展性:支持加入更多的服務(wù)器。492、什么是Kerberos
Kerberos:為網(wǎng)絡(luò)通信提供可信第三方服務(wù)的面向開放系統(tǒng)的認(rèn)證機(jī)制.每當(dāng)用戶C申請得到某服務(wù)程序S的服務(wù)時,用戶和服務(wù)程序會首先向Kerberos要求認(rèn)證對方的身份,認(rèn)證建立在用戶和服務(wù)程序?qū)erberos信任基礎(chǔ)上。在申請認(rèn)證時,C和S都是Kerberos認(rèn)證服務(wù)的用戶,為了和其它服務(wù)的用戶區(qū)別,Kerberos用戶統(tǒng)稱為當(dāng)事人(principle),principle可以是用戶或者某項(xiàng)服務(wù)。50當(dāng)用戶登錄到工作站時,Kerberos對用戶進(jìn)行初始認(rèn)證,此后用戶可以在整個登錄時間得到相應(yīng)的服務(wù)。Kerberos不依賴用戶的終端或請求服務(wù)的安全機(jī)制,認(rèn)證工作由認(rèn)證服務(wù)器完成。時間戳技術(shù)被應(yīng)用于防止重放攻擊。
Kerberos保存當(dāng)事人及其密鑰的數(shù)據(jù)庫。共享密鑰只被當(dāng)事人和Kerberos知道,當(dāng)事人在登記時與Kerberos商定。使用共享密鑰,Kerberos可以創(chuàng)建消息使一個當(dāng)事人相信另一個當(dāng)事人的真實(shí)性。Kerberos還產(chǎn)生一種臨時密鑰,稱做對話密鑰,通信雙方用在具體的通信中。51Kerberos提供三種安全等級:1)只在網(wǎng)絡(luò)開始連接時進(jìn)行認(rèn)證,認(rèn)為連接建立起來后的通信是可靠的。認(rèn)證式網(wǎng)絡(luò)文件系統(tǒng)(Authenticatednetworkfilesystem)使用此種安全等級。2)安全消息傳遞:對每次消息都進(jìn)行認(rèn)證工作,但是不保證每條消息不被泄露。3)私有消息傳遞:不僅對每條消息進(jìn)行認(rèn)證,而且對每條消息進(jìn)行加密。Kerberos在發(fā)送密碼時就采用私有消息模式。52二、Kerberos原理
1、Kerberos的組成
Kerberos應(yīng)用程序庫:應(yīng)用程序接口,包括創(chuàng)建和讀取認(rèn)證請求,以及創(chuàng)建safemessage和privatemessage的子程序。加密/解密庫:DES等。
Kerberos數(shù)據(jù)庫:記載了每個Kerberos用戶的名字,私有密鑰,截止信息(記錄的有效時間,通常為幾年)等信息。數(shù)據(jù)庫管理程序:管理Kerberos數(shù)據(jù)庫53
KDBM服務(wù)器(數(shù)據(jù)庫管理服務(wù)器):接受客戶端的請求對數(shù)據(jù)庫進(jìn)行操作。認(rèn)證服務(wù)器(AS):存放一個Kerberos數(shù)據(jù)庫的只讀的副本,用來完成principle的認(rèn)證,并生成會話密鑰。數(shù)據(jù)庫復(fù)制軟件:管理數(shù)據(jù)庫從KDBM服務(wù)所在的機(jī)器,到認(rèn)證服務(wù)器所在的機(jī)器的復(fù)制工作,為了保持?jǐn)?shù)據(jù)庫的一致性,每隔一段時間就需要進(jìn)行復(fù)制工作。用戶程序:登錄Kerberos,改變Kerberos密碼,顯示和破壞Kerberos標(biāo)簽(ticket)等工作。應(yīng)用程序:54Kerberos的主要認(rèn)證模型如下:
出于實(shí)現(xiàn)和安全考慮,Kerberos認(rèn)證服務(wù)被分配到兩個相對獨(dú)立的服務(wù)器。
認(rèn)證服務(wù)器AS:它同時應(yīng)該連接并維護(hù)一個中央數(shù)據(jù)庫存放用戶口令、標(biāo)識等)
票據(jù)許可服務(wù)器TGS(TicketGrantingServer)。整個系統(tǒng)將由四部分組成:AS,TGS,Client,Server。55ServerServerServerServerKerberosDatabaseTicketGrantingServerAuthenticationServerWorkstationKerberosKeyDistributionService56
Kerberos有兩種證書:票據(jù)ticket和認(rèn)證符authenticator。這兩種證書都要加密,但加密的密鑰不同。
Ticket用來安全地在AS和S之間傳遞用戶的身份,同時保證使用ticket的用戶必須是ticket中指定的用戶。Ticket的組成:C/S的標(biāo)識,client的地址,時間戳,生存時間,會話密鑰五部分組成。Ticket一旦生成,在life指定的時間內(nèi)可以被client多次使用來申請同一個server的服務(wù)。57
Authenticator:提供信息與ticket中的信息進(jìn)行比較,一起保證發(fā)出ticket的用戶就是ticket中指定的用戶。認(rèn)證符有下列部分組成:client的名字,client的地址,記錄當(dāng)前時間的時間戳。authenticator只能在一次服務(wù)請求中使用,每當(dāng)client向server申請服務(wù)時,必須重新生成Authenticator。58通過三階段六步操作,用戶C和服務(wù)V互相驗(yàn)證彼此的身份,并且擁有只有C和V兩者知道的會話密鑰Kc,v,以后的通信都可以通過會話密鑰得到保護(hù)。ASTGSDB用戶C服務(wù)器VKerberos592、Kerberos工作原理
常用術(shù)語的簡寫:C:客戶機(jī),AS:認(rèn)證服務(wù)器,V:服務(wù)器。
IDc、IDv、IDtgs
分別為C,V,TGS的身份。
ADc:用戶的網(wǎng)絡(luò)地址;TSi:第i個時戳;
Lifetime:第I個有效期限;Pc:C上的用戶口令
Kc:C和AS的共享密鑰
Kv:V和TGS的共享密鑰
Ktgs:TGS和AS的共享密鑰
Kc,tgs:C與TGS的共享密鑰
Kc,v:C與V的共享密鑰60用戶C請求服務(wù)S的整個Kerberos認(rèn)證過程1)認(rèn)證服務(wù)交換用戶C向AS發(fā)出請求,以獲取訪問TGS的令牌(票據(jù)許可證):Tickettgs得到初始化令牌的工作在用戶登錄工作站時進(jìn)行,在用戶看來和登錄分時系統(tǒng)是完全相同的。登錄時用戶被要求輸入用戶名,輸入后系統(tǒng)向AS發(fā)送一條包含用戶和TGS服務(wù)兩者名字的請求,以及時戳TS1(表示是新請求)。61
AS檢查用戶有效,則隨機(jī)產(chǎn)生用戶和TGS通信的會話密鑰Kc,tgs,并創(chuàng)建令牌Tickettgs
,令牌包含用戶名,用戶地址,TGS服務(wù)名,當(dāng)前時間(時戳TS2)
,有效時間,還有剛才創(chuàng)建的會話密鑰。然后將令牌用Ktgs加密。AS向C發(fā)送加密過的令牌Tickettgs和會話密鑰Kc,tgs,發(fā)送的消息用只有用戶和認(rèn)證服務(wù)器A知道的Kc來加密,Kc值基于用戶密碼。62用戶機(jī)器收到AS回應(yīng)后,要求用戶輸入密碼,將密碼轉(zhuǎn)化為DES密鑰Kc,然后將AS發(fā)回的信息解開,保存令牌Tickettgs和會話密鑰Kc,tgs,為了安全,用戶密碼Pc和密鑰Kc則被丟棄。當(dāng)用戶的登錄時間超過了令牌的有效時間時,用戶的請求就會失敗,這時系統(tǒng)會要求用戶使用kinit程序重新申請令牌Tickettgs。用戶運(yùn)行klist命令可以查看自己所擁有的令牌的當(dāng)前狀態(tài)。631.CAS:IDC||IDtgs||TS12.ASC:EKc[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs]
其中:Tickettgs=EKtgs[Kc,tgs||IDc||ADc||IDtgs||TS2||Lifetime2]說明:1.不輸入C的口令,就不能解開來自
AS的信息2.TS1時戳用來防止重放攻擊;3.Kc
由用戶口令導(dǎo)出;4.Kc,tgs
是
C和
TGS間的會話密鑰。642)C從TGS得到所請求服務(wù)的令牌Ticketv。一個令牌只能申請一個特定的服務(wù),所以用戶必須為每一個服務(wù)V申請新的令牌,用戶可以從TGS處得到服務(wù)令牌Ticketv。用戶程序首先向TGS發(fā)出申請令牌的請求。請求信息中包含V的名字,上一步中得到的請求TGS服務(wù)的加密令牌Tickettgs,還有加密過的認(rèn)證符Authenticatorc
。認(rèn)證符含有:用戶身份、網(wǎng)址、時戳。認(rèn)證符與ticket不同,只用一次且有效期短。65如果有效,TGS生成用于C和V之間通信的會話密鑰Kc,v,并生成用于C申請得到V服務(wù)的令牌Ticketv,其中包含C和V的名字,C的網(wǎng)絡(luò)地址,當(dāng)前時間,有效時間和會話密鑰Kc,v
。令牌Ticketv的有效時間是初始令牌Tickettgs
剩余的有效時間和所申請的服務(wù)缺省有效時間中最短的時間。
TGS用C和TGS之間的會話密鑰Kc,tgs
加密Ticketv和會話密鑰Kc,v,然后發(fā)送給用戶C。C得到回答后,用Kc,tgs解密,得到所請求的令牌Ticketv和會話密鑰Kc,v
。663.CTGS:IDv||Tickettgs||AuthenticatorcAuthenticatorc=EKc,tgs[IDc||ADc||TS3]說明:TGS擁有
Ktgs,可以解密
Tickettgs
,然后使用從Tickettgs
得到的Kc,tgs
來解密
Authenticatorc將認(rèn)證符中的數(shù)據(jù)與票據(jù)中的數(shù)據(jù)比較,以驗(yàn)證票據(jù)發(fā)送者就是票據(jù)持有者。4.TGSC:EKc,tgs[Kc,v||IDv||TS4||Ticketv]
Ticketv=EKv[Kc,v||IDc||ADc||IDv||TS4||Lifetime4]67(3)客戶機(jī)與服務(wù)器之間認(rèn)證交換。
C向V發(fā)送服務(wù)許可票據(jù)Ticketv
和認(rèn)證符Authenticatorc
,V收到后用Kv
解密Ticketv
,然后用Kc,v解密認(rèn)證符。比較得到的用戶名,網(wǎng)絡(luò)地址,時間等信息,判斷C的身份,請求是否有效。用戶和服務(wù)程序之間的時鐘必須同步在幾分鐘的時間段內(nèi),當(dāng)請求的時間與系統(tǒng)當(dāng)前時間相差太遠(yuǎn)時,認(rèn)為請求是無效的,用來防止重放攻擊。為防止重放攻擊,V通常保存一份最近收到的有效請求的列表,當(dāng)收到一份請求與已經(jīng)收到的某份請求的令牌和時間完全相同時,認(rèn)為此請求無效。68(3)客戶機(jī)與服務(wù)器之間認(rèn)證交換。當(dāng)C也想驗(yàn)證V的身份時,V將收到的時間戳加1,并用會話密鑰Kc,v加密后發(fā)送給用戶,用戶收到回答后,用Kc,v解密后對增加的時戳進(jìn)行驗(yàn)證,從而確定V的身份。此后,客戶與服務(wù)器之間通過共享的會話密鑰秘密通信。695.CV:Ticketv||Authenticatorc6.VC:Ekc,v[TS5+1]其中:
Ticketv=EKv[Kc,v||IDc||ADc||IDv||TS4||Lifetime4]
Authenticatorc=Ekc,v
[IDc||ADc||TS5]703、Kerberos數(shù)據(jù)庫管理認(rèn)證工作由AS實(shí)現(xiàn),它從Kerberos數(shù)據(jù)庫中讀取用戶的信息來完成認(rèn)證工作,對數(shù)據(jù)庫操作是只讀的。對數(shù)據(jù)庫的更新和管理操作由另外的服務(wù)來完成。KDBM只能運(yùn)行在主Kerberos服務(wù)器上,機(jī)器上維護(hù)可寫的Kerberos數(shù)據(jù)庫,而其他的認(rèn)證服務(wù)程序則可運(yùn)行在從Kerberos服務(wù)器上,機(jī)器上維護(hù)Kerberos的只讀備份,完成認(rèn)證工作,數(shù)據(jù)庫復(fù)制軟件用來完成從主機(jī)到從機(jī)的復(fù)制工作。
711)KDBM服務(wù)程序(KDBMserver)用于添加principle、改變其密碼。KDBM服務(wù)請求是獨(dú)一無二的,所以請求KDBM服務(wù)不需要向tgs申請令牌,而采用認(rèn)證中的第一步和第三步,直接向認(rèn)證服務(wù)器申請認(rèn)證,這樣做的目的是為了要求用戶輸入原來的密碼。當(dāng)用戶不在時,別人可能會篡改用戶的密碼,尤其是超級用戶,可以更改任何人的密碼,所以要在申請KDBM服務(wù)時輸入用戶的密碼。當(dāng)KDBM收到請求時,比較請求的發(fā)出者和被操作者,當(dāng)兩者相同時,操作被允許。當(dāng)兩者不同時,在存取控制列表中尋找發(fā)出者的存在,如果存在,操作被允許,否則,操作被拒絕。KDBM存放所有請求的日志,防止異常情況發(fā)生。
722)kadmin和kpasswd命令Kadmin命令只能被Kerberos超級用戶使用,用來添加principle和更改principle的密碼。Kadmin運(yùn)行時會要求輸入超級用戶密碼,當(dāng)一個用戶為Kerberos超級用戶時,會在原來的用戶上創(chuàng)建一個admin實(shí)例(instance),admin實(shí)例的密碼可以與原來用戶的密碼不同,kadmin要求輸入admin實(shí)例的密碼。Kpasswd命令被principle用來修改Kerberos密碼,同樣要求輸入用戶原來的密碼完成認(rèn)證工作。733)數(shù)據(jù)庫復(fù)制為了提高系統(tǒng)的效率和可靠性,Kerberos在master上存放數(shù)據(jù)庫,而在slave上存放數(shù)據(jù)庫的只讀副本。這樣當(dāng)master出現(xiàn)異常情況時,系統(tǒng)還可以完成日常的認(rèn)證工作,并且多臺認(rèn)證服務(wù)器的使用減少了瓶頸的發(fā)生。但維持?jǐn)?shù)據(jù)庫的多個副本帶來了如何保持各個副本間數(shù)據(jù)一致性的問題。有一個簡單有效的辦法可以解決這個問題,那就是每隔一個小時就進(jìn)行一次從master到slave的轉(zhuǎn)儲工作。
74為了保證數(shù)據(jù)庫不被竊聽和篡改,Kerberos使用以下措施:數(shù)據(jù)庫中principle的所有密碼在存儲時都用Kerberos數(shù)據(jù)庫專用密鑰進(jìn)行加密,這樣在傳輸過程中即使被偷聽,偷聽者也無法得到想要的信息;在傳輸之前先傳輸校驗(yàn)和,這樣當(dāng)有多出的冒充信息或者接收信息被篡改時,可以通過比較校驗(yàn)和及時發(fā)現(xiàn)。75Kerberos的局限性:1.時間同步問題:因?yàn)檎麄€Kerberos的協(xié)議都嚴(yán)重地依賴于時鐘,而實(shí)際證明,要求在分步式系統(tǒng)環(huán)境中實(shí)現(xiàn)良好的時鐘同步,是一個很難的課題。如果能夠?qū)崿F(xiàn)一種基于安全機(jī)制的時間服務(wù),或是研制一種相對獨(dú)立于計(jì)算機(jī)和網(wǎng)絡(luò)環(huán)境、且基于一種或幾種世界標(biāo)準(zhǔn)時鐘的,能夠準(zhǔn)確進(jìn)行時間轉(zhuǎn)化和時間服務(wù)的聯(lián)機(jī)物理時鐘,這種問題將得
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大班班務(wù)工作計(jì)劃班務(wù)工作計(jì)劃小班模板
- Unit 4 My Favourite Subject Section A 2a~2f說課稿-2024-2025學(xué)年人教版英語七年級上冊
- 習(xí)作:多彩的活動 說課稿-2024-2025學(xué)年語文六年級上冊(統(tǒng)編版)
- 2025教導(dǎo)處工作計(jì)劃結(jié)尾例文
- 寫作《學(xué)寫傳記》說課稿2024-2025學(xué)年統(tǒng)編版語文八年級上冊
- 2025年學(xué)校后勤工作計(jì)劃怎么寫
- 2025年行政人事月工作計(jì)劃
- 人教版初中八年級上冊 綜合探究二 從馬鐙看中世紀(jì)歐亞國家間的文明傳播 說課稿
- Unit 6 Is he your grandpa 第三課時 (說課稿) -2024-2025學(xué)年譯林版(三起)(2024)英語三年級上冊
- 2025護(hù)理部工作計(jì)劃:兒科護(hù)理部工作計(jì)劃
- 藝術(shù)漆培訓(xùn)課件
- 建德海螺二期施工組織設(shè)計(jì)
- 山東省菏澤市2023-2024學(xué)年高一上學(xué)期期末測試物理試題(解析版)
- 2024年學(xué)校后勤日用品采購合同范本2篇
- 中建中建機(jī)電工程聯(lián)動調(diào)試實(shí)施方案范本
- 新《安全生產(chǎn)法》安全培訓(xùn)
- 山東省濟(jì)南市2023-2024學(xué)年高一上學(xué)期1月期末考試 物理 含答案
- 中華人民共和國安全生產(chǎn)法知識培訓(xùn)
- 物業(yè)品質(zhì)提升方案課件
- 《ROHS知識培訓(xùn)》課件
- 上海教育出版社 藝術(shù) 八年級上冊第三單元 鄉(xiāng)音鄉(xiāng)韻 京腔京韻系鄉(xiāng)情 教學(xué)設(shè)計(jì)
評論
0/150
提交評論