版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、長(zhǎng)沙理工大學(xué)基于linux的用戶認(rèn)證與授權(quán)研究xxx學(xué) 院 計(jì)算機(jī)與通信工程 專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí) 計(jì)算機(jī)0802班 學(xué)號(hào) 學(xué)生姓名 xxx 指導(dǎo)教師 課程成績(jī) 完成日期 2011年3月4日課程設(shè)計(jì)任務(wù)書計(jì)算機(jī)與通信工程學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè) 課程名稱網(wǎng)絡(luò)系統(tǒng)課程設(shè)計(jì)時(shí)間20102011學(xué)年第2學(xué)期12周學(xué)生姓名曹駿指導(dǎo)老師鄧江沙題 目基于linux的用戶認(rèn)證與授權(quán)研究主要內(nèi)容:本課程設(shè)計(jì)主要完成一個(gè)基于linux的用戶認(rèn)證與授權(quán)的研究實(shí)現(xiàn)。1、重點(diǎn)分析了kerberos認(rèn)證系統(tǒng)與ldap目錄服務(wù)系統(tǒng)的消息格式、數(shù)據(jù)庫(kù)管理、安裝配置、配置文件、接口函數(shù)等。2、利用可信平臺(tái)模塊(t
2、pm)對(duì)kerberos協(xié)議及其藍(lán)本needhamschroeder協(xié)議進(jìn)行了改進(jìn),增強(qiáng)了它們的安全性。并搭建了kerberos認(rèn)證系統(tǒng),實(shí)現(xiàn)了用戶登錄的kerberos認(rèn)證、網(wǎng)絡(luò)應(yīng)用的kerberos化。要求:(1)要求能獨(dú)立地運(yùn)用程序語(yǔ)言和數(shù)據(jù)庫(kù)方面知識(shí),編制一個(gè)功能簡(jiǎn)單的小型信息模擬系統(tǒng)。(2)學(xué)生按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果。(3)通過(guò)課程設(shè)計(jì)培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,認(rèn)真的工作作風(fēng)和團(tuán)隊(duì)協(xié)作精神。(4)學(xué)生應(yīng)抱著嚴(yán)謹(jǐn)認(rèn)真的態(tài)度積極投入到課程設(shè)計(jì)過(guò)程中。 應(yīng)當(dāng)提交的文件:(1)課程設(shè)計(jì)報(bào)告。(2)課程設(shè)計(jì)附件(源程序、各類圖紙、實(shí)驗(yàn)數(shù)據(jù)、運(yùn)行截圖等)。課程設(shè)計(jì)成績(jī)?cè)u(píng)
3、定學(xué) 院 計(jì)算機(jī)與通信工程 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí) 計(jì)算機(jī)0802班 學(xué) 號(hào) 200850080212 學(xué)生姓名 曹駿 指導(dǎo)教師 鄧江沙 課程成績(jī) 完成日期 2011年3月4日 指導(dǎo)教師對(duì)學(xué)生在課程設(shè)計(jì)中的評(píng)價(jià)評(píng)分項(xiàng)目?jī)?yōu)良中及格不及格課程設(shè)計(jì)中的創(chuàng)造性成果學(xué)生掌握課程內(nèi)容的程度課程設(shè)計(jì)完成情況課程設(shè)計(jì)動(dòng)手能力文字表達(dá)學(xué)習(xí)態(tài)度規(guī)范要求課程設(shè)計(jì)論文的質(zhì)量指導(dǎo)教師對(duì)課程設(shè)計(jì)的評(píng)定意見(jiàn)綜合成績(jī) 指導(dǎo)教師簽字 年 月 日基于linux的用戶認(rèn)證與授權(quán)系統(tǒng)的研究實(shí)現(xiàn)學(xué)生姓名:曹駿 指導(dǎo)老師:鄧江沙摘 要 本課程設(shè)計(jì)在對(duì)可信計(jì)算的體系結(jié)構(gòu)、linux的安全機(jī)制、現(xiàn)有的認(rèn)證協(xié)議等深入研究的基礎(chǔ)上,提出
4、了基于linux操作系統(tǒng)的用戶認(rèn)證與應(yīng)用授權(quán)的架構(gòu),并最終完成了整個(gè)系統(tǒng)的搭建。本文重點(diǎn)分析了kerberos認(rèn)證系統(tǒng)與ldap目錄服務(wù)系統(tǒng)的消息格式、數(shù)據(jù)庫(kù)管理、安裝配置、配置文件、接口函數(shù)等。利用可信平臺(tái)模塊(tpm)對(duì)kerberos協(xié)議及其藍(lán)本needhamschroeder協(xié)議進(jìn)行了改進(jìn),增強(qiáng)了它們的安全性。并搭建了kerberos認(rèn)證系統(tǒng),實(shí)現(xiàn)了用戶登錄的kerberos認(rèn)證、網(wǎng)絡(luò)應(yīng)用的kerberos化;搭建了openldap目錄服務(wù)系統(tǒng),并利用sasl機(jī)制實(shí)現(xiàn)了其與kerberos認(rèn)證系統(tǒng)的結(jié)合。在此基礎(chǔ)上,利用openldap的訪問(wèn)控制機(jī)制實(shí)現(xiàn)了對(duì)各種網(wǎng)絡(luò)應(yīng)用服務(wù)的授權(quán)訪問(wèn)。
5、利用我們編寫的客戶端應(yīng)用接口,用戶可以完成上述認(rèn)證與授權(quán)過(guò)程。該系統(tǒng)作為信息安全實(shí)踐創(chuàng)新平臺(tái)的一部分,可應(yīng)用于信息安全教學(xué)的實(shí)踐環(huán)節(jié),還可以將其應(yīng)用于黨政機(jī)關(guān)辦公自動(dòng)化與協(xié)同辦公,保護(hù)黨政內(nèi)網(wǎng)的安全。關(guān)鍵詞 身份認(rèn)證;目錄服務(wù);應(yīng)用授權(quán)l(xiāng)inux-based user authentication and authorizationstudent name: caojun advisor:dengjiangshaabstract the curriculum design in the architecture of trusted computing, linux security mech
6、anisms, the existing authentication protocol, such as in-depth study, based on the linux operating system based on user authentication and authorization framework for applications, and ultimately the completion of the entire system structures. this paper analyzes the kerberos authentication system a
7、nd ldap directory services system message format, database management, installation configuration, configuration files, and other interface functions. the use of trusted platform module (tpm) on the kerberos protocol and the needham-schroeder protocol based on improvements to enhance their security.
8、 and to set up kerberos authentication system, the kerberos user login authentication, the kerberos network applications of; build the openldap directory service system, and the use of sasl mechanisms with a combination of kerberos authentication system. on this basis, the use of openldap access con
9、trol mechanisms on the application of a variety of network services, unauthorized access. prepared to use our client application interface, the user can complete authentication and authorization process of the above. the system of information security as part of practical innovation platform, has be
10、en applied to the practice of information security aspects of teaching, but also can be used in party and government organs of office automation and collaboration of office to protect the security of government network.key words authentication;directory service;authorization目錄1引言11.1課題背景11.2課程設(shè)計(jì)目的21
11、.3問(wèn)題描述32用戶認(rèn)證與授權(quán)方案概述52.1 linux的安全機(jī)制52.1.1 pam機(jī)制52.1.2 認(rèn)證機(jī)制72.2 kerberos認(rèn)證系統(tǒng)92.3 輕量級(jí)目錄訪問(wèn)協(xié)議102.3.1 協(xié)議模型102.3.2數(shù)據(jù)模型112.3.3 ldap的實(shí)現(xiàn)113用戶認(rèn)證與授權(quán)方案的研究與實(shí)現(xiàn)133.1搭建kerberos認(rèn)證系統(tǒng)133.1.1、組成模塊的安裝與配置133.1.2、數(shù)據(jù)庫(kù)的創(chuàng)建與管理153.1.3、源代碼分析153.1.4、網(wǎng)絡(luò)應(yīng)用的kerberos化183.2搭建openldap服務(wù)器193.2.1、組成模塊的安裝與配置193.2.2、數(shù)據(jù)庫(kù)的創(chuàng)建與管理203.3 kerberos
12、認(rèn)證系統(tǒng)與openldap的結(jié)合223.4 實(shí)現(xiàn)訪問(wèn)控制233.5 客戶端應(yīng)用程序的編寫25參考文獻(xiàn)27結(jié)束語(yǔ)281引言1.1課題背景 linux是一個(gè)類unix的多用戶、多任務(wù)、功能強(qiáng)大的操作系統(tǒng)。最初版本是芬蘭的linus torvalds于1991年獨(dú)立開發(fā)的。由于其免費(fèi)提供源代碼及可執(zhí)行文件,吸引了全世界各地的unix行家為其編寫了大量的驅(qū)動(dòng)程序和應(yīng)用軟件,在短短的幾年時(shí)間里,linux迅速發(fā)展成為一個(gè)相當(dāng)完善的操作系統(tǒng)。不僅穩(wěn)定可靠,而且還具有良好的兼容性、可移植性。近幾年來(lái),linux操作系統(tǒng)以其高效性、靈活性以及開放性得到了蓬勃發(fā)展,不僅被廣泛應(yīng)用于pc、服務(wù)器,還廣泛的應(yīng)用于手
13、機(jī)、pda等高端嵌入設(shè)備。但是,目前的linux版本在安全方面還存在著許多不足,其安全級(jí)別低于c2級(jí)。其新功能的不斷加入及安全機(jī)制的錯(cuò)誤配置或錯(cuò)誤使用,都會(huì)帶來(lái)很多問(wèn)題。出于系統(tǒng)安全考慮,linux提供的安全機(jī)制主要有:身份標(biāo)識(shí)與鑒別、文件訪問(wèn)控制、特權(quán)管理、安全審計(jì)、ipc資源的訪問(wèn)控制。目前,unix下的一種新的安全機(jī)制已被開發(fā)并且在linux中實(shí)現(xiàn)。這種機(jī)制稱為可插入身份認(rèn)證模塊,即為pam機(jī)制1。當(dāng)用戶在登錄linux時(shí),首先要通過(guò)系統(tǒng)的pam驗(yàn)證。pam機(jī)制可以用來(lái)動(dòng)態(tài)地改變身份驗(yàn)證的方法和要求,允許身份認(rèn)證模塊按需要被加載到內(nèi)核中,模塊在加入后即可用于對(duì)用戶進(jìn)行身份認(rèn)證,而不需要重
14、新編譯其它公用程序。pam體系結(jié)構(gòu)的模塊化設(shè)計(jì)及其定義的良好接口,使得無(wú)需改變或者干擾任何現(xiàn)有的登錄服務(wù)就可以集成范圍廣泛的認(rèn)證和授權(quán)機(jī)制,因此,近年來(lái),對(duì)pam的底層鑒別模塊的擴(kuò)展廣泛應(yīng)用于增強(qiáng)linux操作系統(tǒng)的安全性。kerberos認(rèn)證協(xié)議是目前應(yīng)用最廣泛的、基于可信任第三方的網(wǎng)絡(luò)身份認(rèn)證協(xié)議。linux操作系統(tǒng)更好的安全性保證可以由kerberos來(lái)實(shí)現(xiàn)2,3,目前,基于linux操作系統(tǒng),利用kerberos協(xié)議增強(qiáng)其用戶認(rèn)證的安全性的方案在國(guó)內(nèi)外均有提出。kerberos認(rèn)證協(xié)議最初是麻省理工學(xué)院(mit)為其athena項(xiàng)目開發(fā)的,其從提出到現(xiàn)在,共經(jīng)歷了五個(gè)版本的發(fā)展4。目前
15、廣泛應(yīng)用的版本是其第五版本kerberos v5。其本身存在著一定的局限性,針對(duì)其安全缺陷,已有諸多的解決方案提出。同時(shí),伴隨著其軟件的優(yōu)化、升級(jí),kerberos認(rèn)證系統(tǒng)的應(yīng)用將會(huì)越來(lái)越廣泛。輕量級(jí)目錄訪問(wèn)協(xié)議(ldap)作為目前廣泛應(yīng)用的目錄訪問(wèn)協(xié)議,可以實(shí)現(xiàn)授權(quán)管理、網(wǎng)絡(luò)用戶管理、電子政務(wù)目錄體系等服務(wù)。其基于訪問(wèn)控制策略語(yǔ)句的訪問(wèn)控制列表(access control list,acl)來(lái)實(shí)現(xiàn)訪問(wèn)控制與應(yīng)用授權(quán),不同于現(xiàn)有的關(guān)系型數(shù)據(jù)庫(kù)和應(yīng)用系統(tǒng),訪問(wèn)控制異常靈活和豐富5。目前,ldap已經(jīng)成為internet上目錄服務(wù)的標(biāo)準(zhǔn)協(xié)議。已有包括微軟、ibm在內(nèi)的幾十家大型軟件公司采用了ld
16、ap技術(shù)。在我國(guó),ldap技術(shù)已應(yīng)用在北京大學(xué)校園網(wǎng)絡(luò)用戶管理系統(tǒng)、上海政務(wù)網(wǎng)統(tǒng)一用戶管理、中國(guó)數(shù)字圖書館系統(tǒng)的用戶管理部分,以及北京、上海、天津、福建等省級(jí)認(rèn)證中心等。1.2課程設(shè)計(jì)目的 用戶認(rèn)證與應(yīng)用授權(quán)是安全機(jī)制的前提,基于linux操作系統(tǒng),深入研究用戶認(rèn)證與應(yīng)用授權(quán)機(jī)制,不僅可以深入理解現(xiàn)有的安全機(jī)制,隨著研究的深入,也可以發(fā)現(xiàn)其現(xiàn)有安全機(jī)制的問(wèn)題所在。用戶在登錄linux操作系統(tǒng)時(shí),首先要通過(guò)系統(tǒng)的pam進(jìn)行驗(yàn)證。任何認(rèn)證機(jī)制都可以加入到pam的底層鑒別模塊中,可以被任何基于pam開發(fā)的程序調(diào)用。因此,將更多安全性更高的認(rèn)證機(jī)制擴(kuò)展到pam的底層鑒別模塊中,可以增強(qiáng)linux操作系
17、統(tǒng)的安全性。kerberos是目前應(yīng)用最廣泛的認(rèn)證協(xié)議,本課程設(shè)計(jì)將其作為認(rèn)證模塊擴(kuò)展到pam中,基于pam的程序就可以調(diào)用該認(rèn)證模塊用于用戶認(rèn)證等驗(yàn)證機(jī)制,可以增強(qiáng)系統(tǒng)及各種應(yīng)用的安全性。本課程設(shè)計(jì)提出的用戶認(rèn)證與應(yīng)用授權(quán)系統(tǒng),集成了用戶與各種網(wǎng)絡(luò)應(yīng)用服務(wù)的資源和信息,可以方便有效的實(shí)現(xiàn)對(duì)用戶的統(tǒng)一管理。當(dāng)用戶訪問(wèn)某種網(wǎng)絡(luò)服務(wù)時(shí),首先通過(guò)kerberos的認(rèn)證,登錄到ldap目錄服務(wù)系統(tǒng),然后ldap可以通過(guò)其acl驗(yàn)證用戶是否擁有訪問(wèn)該服務(wù)的權(quán)限。這樣既可以實(shí)現(xiàn)基于用戶的網(wǎng)絡(luò)應(yīng)用管理,也可以實(shí)現(xiàn)對(duì)用戶的訪問(wèn)控制。該系統(tǒng)可以應(yīng)用于信息安全教學(xué)、信息安全系統(tǒng)的開發(fā)與實(shí)現(xiàn),并將應(yīng)用于黨政機(jī)關(guān)辦公
18、自動(dòng)化與協(xié)同辦公,保護(hù)黨政內(nèi)網(wǎng)的安全,具有實(shí)用意義與創(chuàng)新意義。1.3問(wèn)題描述 本課程設(shè)計(jì)在深入理論研究的基礎(chǔ)上,基于linux的pam機(jī)制、kerberos認(rèn)證系統(tǒng)、ldap目錄服務(wù)系統(tǒng)設(shè)計(jì)了域內(nèi)用戶認(rèn)證與應(yīng)用授權(quán)的架構(gòu)。該架構(gòu)運(yùn)行在操作系統(tǒng)為linux的主機(jī)上,提供基本的kerberos登錄認(rèn)證服務(wù),以及kerberos化的遠(yuǎn)程登錄服務(wù)(ktelnet)、kerberos化的文件傳輸(kftp)等網(wǎng)絡(luò)應(yīng)用服務(wù)。openldap目錄服務(wù)系統(tǒng)完成用戶信息的存儲(chǔ)以及相應(yīng)權(quán)限的設(shè)置。本課題編寫了客戶端程序,作為認(rèn)證接口,提供給應(yīng)用程序調(diào)用,實(shí)現(xiàn)用戶的登錄認(rèn)證與應(yīng)用的授權(quán)。根據(jù)所提出的架構(gòu),在“華鐳l
19、inux操作系統(tǒng)”下配置各個(gè)相關(guān)模塊,同時(shí)編程實(shí)現(xiàn)客戶端用戶認(rèn)證的接口函數(shù),使得用戶可以調(diào)用該接口函數(shù)完成登錄某種網(wǎng)絡(luò)應(yīng)用服務(wù)的認(rèn)證。本課程設(shè)計(jì)的理論研究情況列舉如下:(1)linux操作系統(tǒng)相關(guān)的理論知識(shí),包括其組成模塊、內(nèi)部已有的安全機(jī)制、安全缺陷及其安全需求等。(2)linux內(nèi)部的可插入式認(rèn)證模塊(pam)的運(yùn)行原理、組成部分及其應(yīng)用實(shí)例,特別是其內(nèi)部的用戶登錄認(rèn)證與應(yīng)用授權(quán)模塊。(3)學(xué)習(xí)現(xiàn)有的認(rèn)證協(xié)議,著重分析kerberos協(xié)議的藍(lán)本needham-schroeder認(rèn)證協(xié)議,熟悉其協(xié)議過(guò)程、自身缺陷、各次攻擊以及改進(jìn)過(guò)程,并基于可信平臺(tái)模塊(tpm)對(duì)其進(jìn)行改進(jìn),以增強(qiáng)其安全性
20、。(4)研究kerberos認(rèn)證系統(tǒng),包括其系統(tǒng)組成、協(xié)議原理、數(shù)據(jù)庫(kù)創(chuàng)建與管理、應(yīng)用接口函數(shù)等,并研究如何將其配置在所選操作系統(tǒng)“華擂linux”的pam模塊中。(5)研究輕量級(jí)目錄訪問(wèn)協(xié)議(ldap),包括其命名模型、協(xié)議原理、數(shù)據(jù)庫(kù)創(chuàng)建與管理、安全機(jī)制、應(yīng)用接口函數(shù),及其如何與kerberos認(rèn)證系統(tǒng)相結(jié)合等。本課程設(shè)計(jì)所搭建的用戶認(rèn)證與應(yīng)用授權(quán)系統(tǒng)包括服務(wù)器端、客戶端兩部分,分別介紹如下:(1)服務(wù)器端a.配置kerberos的服務(wù)器端,作為kerberos的密鑰分發(fā)中心(kdc),完成as認(rèn)證服務(wù)和tgs票據(jù)授權(quán)服務(wù),并將網(wǎng)絡(luò)應(yīng)用服務(wù)進(jìn)行kerberos化,實(shí)現(xiàn)用戶登錄網(wǎng)絡(luò)應(yīng)用服務(wù)的
21、kerberos認(rèn)證;b.配置openldap的服務(wù)器端,作為用戶身份管理的核心數(shù)據(jù)庫(kù),利用其目錄管理功能實(shí)現(xiàn)對(duì)用戶信息的管理,并利用其訪問(wèn)控制列表(acl)實(shí)現(xiàn)應(yīng)用的授權(quán);c.利用sasl機(jī)制實(shí)現(xiàn)kerberos系統(tǒng)與openldap系統(tǒng)的結(jié)合,并實(shí)現(xiàn)兩者數(shù)據(jù)庫(kù)的匹配,完成用戶認(rèn)證與應(yīng)用授權(quán)系統(tǒng)的模塊架構(gòu)。(2)客戶端a.作為kerberos系統(tǒng)的客戶端用戶在此登錄,完成用戶認(rèn)證、服務(wù)請(qǐng)求,經(jīng)由認(rèn)證服務(wù)器認(rèn)證后,調(diào)用某種kerberos化的網(wǎng)絡(luò)應(yīng)用服務(wù),完成與應(yīng)用服務(wù)器的相互認(rèn)證。b.作為openldap目錄服務(wù)系統(tǒng)的客戶端用戶可以對(duì)目錄信息進(jìn)行管理與訪問(wèn)。c.用戶可以調(diào)用課題所編寫的認(rèn)證接
22、口函數(shù),完成用戶認(rèn)證與應(yīng)用授權(quán)過(guò)程。2用戶認(rèn)證與授權(quán)方案概述2.1 linux的安全機(jī)制2.1.1 pam機(jī)制通常在認(rèn)證時(shí),實(shí)現(xiàn)認(rèn)證功能的代碼通常作為應(yīng)用程序的一部分而一起編譯,如果發(fā)現(xiàn)所用算法存在某些缺陷或想采用另外一種認(rèn)證方法時(shí),用戶不得不重寫(修改或替換)、重新編譯原程序。所以希望能夠?qū)⒄J(rèn)證功能從應(yīng)用中獨(dú)立出來(lái),單獨(dú)進(jìn)行模塊化的設(shè)計(jì)、實(shí)現(xiàn)和維護(hù);另一方面,希望為認(rèn)證模塊建立標(biāo)準(zhǔn)api,以便各個(gè)應(yīng)用程序能方便的調(diào)用它們所提供的各種功能;同時(shí)認(rèn)證機(jī)制對(duì)其上層用戶(包括應(yīng)用程序和最終用戶)是透明的。應(yīng)此需求,1995年,sun的研究人員提出可插入式認(rèn)證模塊,目前其已逐漸成為各種unix系統(tǒng)上包
23、括linux操作系統(tǒng)的認(rèn)證方案。層次結(jié)構(gòu):可插入式認(rèn)證模塊(pam)機(jī)制采用模塊化設(shè)計(jì)和插件功能,提供有關(guān)執(zhí)行用戶認(rèn)證與賬號(hào)維護(hù)的服務(wù)。其在實(shí)現(xiàn)上采用了分層的體系結(jié)構(gòu),將各種具體的認(rèn)證模塊從應(yīng)用程序中獨(dú)立出來(lái),使得認(rèn)證機(jī)制與應(yīng)用程序之間相對(duì)獨(dú)立。從而可以在應(yīng)用程序中根據(jù)需要靈活地插入所需要的認(rèn)證模塊或替換原先的認(rèn)證組件,而不必對(duì)應(yīng)用程序做任何修改。應(yīng)用程序只需調(diào)用應(yīng)用編程接口api即可方便的使用pam提供的各種認(rèn)證功能,而不必了解太多的底層細(xì)節(jié)。pam模塊化的體系結(jié)構(gòu),可以集成范圍廣泛的認(rèn)證機(jī)制,輕易地做到認(rèn)證應(yīng)需而改變,使得軟件的定制、維持和升級(jí)更加輕松。其層次結(jié)構(gòu)如圖2-1所示6。由圖2-
24、1可以看出,pam api是應(yīng)用程序?qū)优cpam服務(wù)模塊之間聯(lián)系的紐帶,起著承上啟下的作用。系統(tǒng)管理員通過(guò)pam配置文件來(lái)制定不同應(yīng)用程序的不同認(rèn)證策略,當(dāng)應(yīng)用程序調(diào)用pam api時(shí),應(yīng)用接口層將按照配置文件pam.conf的規(guī)定,加載相應(yīng)的pam服務(wù)模塊。接著,應(yīng)用程序?qū)拥膮?shù)通過(guò)pamapi傳遞給底層的pam服務(wù)模塊。當(dāng)pam服務(wù)模塊完成相應(yīng)的認(rèn)證操作之后,將結(jié)果返回給應(yīng)用接口層,然后由pam api根據(jù)具體的配置文件將此應(yīng)答返回給應(yīng)用程序?qū)印D2-1 pam層次結(jié)構(gòu) 工作原理:應(yīng)用程序?qū)优cpam服務(wù)模塊通過(guò)pam api建立聯(lián)系,按照需要調(diào)用相關(guān)的服務(wù)模塊,完成對(duì)某種應(yīng)用程序的認(rèn)證。工作
25、流程如下圖2-2所示:圖2-2 pam工作流程對(duì)應(yīng)圖2-2,pam機(jī)制在運(yùn)行時(shí),按照?qǐng)D中所標(biāo)示的數(shù)字,依次完成如下步驟:l 用戶調(diào)用某個(gè)應(yīng)用程序,以得到某種服務(wù);l pam應(yīng)用程序調(diào)用后臺(tái)的pam庫(kù)進(jìn)行認(rèn)證工作;l pam庫(kù)在/etc/pam.d/目錄中查找有關(guān)應(yīng)用程序細(xì)節(jié)的配置文件, 該文件告訴pam,此應(yīng)用程序使用何種認(rèn)證機(jī)制;l pam庫(kù)裝載所需的認(rèn)證模塊;l 上述裝載的認(rèn)證模塊讓pam與應(yīng)用程序中的會(huì)話函數(shù)進(jìn)行通信;l 會(huì)話函數(shù)向用戶要求有關(guān)信息;l 用戶對(duì)這些要求做出回應(yīng),提供所需信息;l pam認(rèn)證模塊通過(guò)pam庫(kù)將認(rèn)證信息提供給應(yīng)用程序;l 認(rèn)證完成后,應(yīng)用程序做出兩種選擇:將所
26、需權(quán)限賦予用戶,并通知用戶;l 若認(rèn)證失敗,也通知用戶。2.1.2 認(rèn)證機(jī)制目前,網(wǎng)絡(luò)通信主要提供五種通用的安全服務(wù):認(rèn)證服務(wù)、訪問(wèn)控制服務(wù)、機(jī)密性服務(wù)、完整性服務(wù)和非否認(rèn)性服務(wù)。認(rèn)證服務(wù)是實(shí)現(xiàn)網(wǎng)絡(luò)安全最重要的服務(wù)之一,其他的安全服務(wù)在某種程度上都依賴于認(rèn)證服務(wù)。認(rèn)證包括信息認(rèn)證和身份認(rèn)證。信息認(rèn)證保證了消息源的可靠性和消息在傳輸過(guò)程中的完整性;身份認(rèn)證可以使通信雙方相互驗(yàn)證身份,以保證通信雙方的真實(shí)性。本課程設(shè)計(jì)重點(diǎn)研究linux的安全機(jī)制用戶身份認(rèn)證機(jī)制,對(duì)其認(rèn)證方式與相關(guān)的認(rèn)證協(xié)議進(jìn)行了詳細(xì)的分析。認(rèn)證機(jī)制主要是認(rèn)證系統(tǒng)所采用的認(rèn)證方式和認(rèn)證協(xié)議,用于安全連接建立前通訊雙方身份的識(shí)別,從
27、而保障接收方接收到的數(shù)據(jù)確實(shí)是由發(fā)送方發(fā)送的。認(rèn)證機(jī)制可以分為兩類:一類是通過(guò)雙方之間的交互式來(lái)證明對(duì)方身份的認(rèn)證機(jī)制。該機(jī)制比較簡(jiǎn)單,可以利用雙方的共享信息,如口令等進(jìn)行身份的認(rèn)證。如果通信雙方?jīng)]有共享信息,可以采用零知識(shí)證明技術(shù)進(jìn)行認(rèn)證。另一類采用可信第三方的認(rèn)證機(jī)制。該機(jī)制中要求至少有一個(gè)可信任的第三方能夠同時(shí)識(shí)別發(fā)送方和接收方。可信第三方證實(shí)發(fā)送方的身份,并回送一個(gè)證明信息(證書或是票據(jù)),從而保證發(fā)送方身份的真實(shí)性。身份認(rèn)證的本質(zhì)是被認(rèn)證方擁有的一些信息(秘密信息、特殊硬件或特有生物學(xué)信息),除被認(rèn)證方外,任何網(wǎng)絡(luò)用戶(認(rèn)證權(quán)威除外)都不能偽造。通過(guò)身份認(rèn)證,通信雙方可以相互驗(yàn)證身份
28、,從而保證雙方都能夠與合法的授權(quán)用戶進(jìn)行通信。主要有下面三種認(rèn)證方式:l 口令認(rèn)證方式口令認(rèn)證是一種最簡(jiǎn)單的用戶身份認(rèn)證方式。系統(tǒng)通過(guò)核對(duì)用戶輸入的用戶名和口令與系統(tǒng)內(nèi)已有的合法用戶名和口令是否匹配來(lái)驗(yàn)證用戶的身份??诹钫J(rèn)證的前提是請(qǐng)求認(rèn)證者必須具有一個(gè)在用戶數(shù)據(jù)庫(kù)中唯一的id7??诹钫J(rèn)證的安全性僅僅基于用戶口令的保密性,而用戶口令為方便記憶,一般較短而容易猜測(cè),因此該方式不能抵御口令猜測(cè)攻擊;其次,口令的明文傳輸使得系統(tǒng)攻擊者很容易遭到竊聽;再者,由于系統(tǒng)以明文形式保存口令,一旦攻擊者獲得口令表,整個(gè)系統(tǒng)的安全性就會(huì)受到威脅。但是,由于該種認(rèn)證方式實(shí)施簡(jiǎn)單,其普遍應(yīng)用于各種網(wǎng)絡(luò)認(rèn)證中。l 基
29、于生物學(xué)特征的認(rèn)證基于生物學(xué)信息的身份認(rèn)證就是利用用戶所特有的生物學(xué)特征來(lái)區(qū)分和確認(rèn)用戶的身份。這些個(gè)人特征是每個(gè)用戶特有的,且在一定時(shí)期內(nèi)不會(huì)改變,如指紋、聲音、視網(wǎng)膜、dna圖案等8。由于這些特征不會(huì)丟失、被盜或忘記,因此適用于對(duì)用戶身份的鑒別和認(rèn)證。但這種方案造價(jià)較高,適用于保密程度很高的場(chǎng)合。l 基于智能卡的認(rèn)證智能卡是由一個(gè)或多個(gè)集成電路芯片組成的集成電路卡。集成電路中的微處理器和存儲(chǔ)器使智能卡具有數(shù)據(jù)存儲(chǔ)和處理的能力。智能卡可存儲(chǔ)用戶的個(gè)人參數(shù)和秘密信息(如idx、pwx和密鑰)。用戶訪問(wèn)系統(tǒng)時(shí)必須持有該智能卡。基于智能卡的認(rèn)證方式是一種雙因子的認(rèn)證方式(pin+智能卡)。只有在用
30、戶正確輸入pin口令后,才能從智能卡中讀取秘密信息,進(jìn)而利用該秘密信息與主機(jī)之間進(jìn)行認(rèn)證9。這種認(rèn)證方案的安全性依賴于智能卡,由于智能卡本身提供硬件保護(hù)措施和加密算法,因此它既不易被偽造,也不能被直接讀取數(shù)據(jù),可以利用這些功能加強(qiáng)系統(tǒng)整體的安全性能。但這種方法硬件投入較大,不管是客戶端的智能卡,還是服務(wù)器端的讀卡設(shè)備,造價(jià)都較高,因而限制了它的普遍性。認(rèn)證協(xié)議是認(rèn)證主體通過(guò)一系列有序的步驟證明自己身份的一個(gè)過(guò)程。認(rèn)證協(xié)議定義了參與認(rèn)證服務(wù)的所有通信方在認(rèn)證過(guò)程中需要交換的所有消息格式和這些消息發(fā)生的次序以及消息的語(yǔ)義,采用密碼學(xué)機(jī)制來(lái)保證消息的完整性、保密性、消息來(lái)源、消息目的、時(shí)間性等。認(rèn)證
31、協(xié)議是認(rèn)證機(jī)制的基礎(chǔ),認(rèn)證協(xié)議的安全性決定了某種認(rèn)證機(jī)制的優(yōu)劣。2.2 kerberos認(rèn)證系統(tǒng)kerberos認(rèn)證協(xié)議是一種應(yīng)用于開放式網(wǎng)絡(luò)環(huán)境、基于可信任第三方的tcp/ip網(wǎng)絡(luò)認(rèn)證協(xié)議,可以在不安全的網(wǎng)絡(luò)環(huán)境中為用戶對(duì)遠(yuǎn)程服務(wù)器的訪問(wèn)提供自動(dòng)鑒別、數(shù)據(jù)安全性和完整性服務(wù)、以及密鑰管理服務(wù)。該協(xié)議是美國(guó)麻省理工學(xué)院(mit)為其athena項(xiàng)目開發(fā)的,基于needham-schroeder認(rèn)證模型,使用des算法進(jìn)行加密和認(rèn)證。至今,kerberos系統(tǒng)已有五個(gè)版本,其中version1到version 3是在實(shí)驗(yàn)室里開發(fā)和測(cè)試的。1988年開發(fā)的version 4是公諸于眾的第一個(gè)版本,
32、它是分布式計(jì)算環(huán)境(dce)框架的組成部分,已在一些unix系統(tǒng)中應(yīng)用過(guò)。1990年推出version 5進(jìn)一步對(duì)version 4中的某些安全缺陷做了改進(jìn),不僅完善了version 4所采用的基于des的加密算法,而且還采用獨(dú)立的加密模塊,允許用戶根據(jù)自己的實(shí)際需要選擇其它的加密算法,使得安全性得到了進(jìn)一步的提高。目前kerberos v5已經(jīng)被ietf正式命名為rfc1510。協(xié)議原理:在kerberos協(xié)議過(guò)程中,發(fā)起認(rèn)證服務(wù)的通信方稱為客戶端,客戶端需要訪問(wèn)的對(duì)象稱為應(yīng)用服務(wù)器。首先是認(rèn)證服務(wù)交換,客戶端從認(rèn)證服務(wù)器(as)請(qǐng)求一張票據(jù)許可票據(jù)(ticket granting tick
33、et,tgt),作為票據(jù)許可服務(wù)(ticketgranting server,tgs),即圖2-3中消息過(guò)程1,2;接著是票據(jù)授權(quán)服務(wù)交換,客戶端向tgs請(qǐng)求與服務(wù)方通信所需要的票據(jù)及會(huì)話密鑰,即圖2-1中消息過(guò)程3,4;最后是客戶端/應(yīng)用服務(wù)器雙向認(rèn)證,客戶端在向應(yīng)用服務(wù)器證實(shí)自己身份的同時(shí),證實(shí)應(yīng)用服務(wù)器的身份,即圖2-3中消息過(guò)程5,6。圖2-3 kerberos認(rèn)證系統(tǒng)結(jié)構(gòu)及其協(xié)議過(guò)程2.3 輕量級(jí)目錄訪問(wèn)協(xié)議在kerberos域內(nèi),kerberos系統(tǒng)可以提供認(rèn)證服務(wù),系統(tǒng)內(nèi)的訪問(wèn)權(quán)限和授權(quán)則需要通過(guò)其他途徑來(lái)解決。輕量級(jí)目錄訪問(wèn)協(xié)議(ldap)使用基于訪問(wèn)控制策略語(yǔ)句的訪問(wèn)控制列表
34、(access control list,acl)來(lái)實(shí)現(xiàn)訪問(wèn)控制與應(yīng)用授權(quán),不同于現(xiàn)有的關(guān)系型數(shù)據(jù)庫(kù)和應(yīng)用系統(tǒng),訪問(wèn)控制異常靈活和豐富。因此,本次課程設(shè)計(jì)將輕量級(jí)目錄訪問(wèn)協(xié)議(ldap)與kerberos認(rèn)證機(jī)制、pam機(jī)制結(jié)合在一起,共同完成域內(nèi)的用戶認(rèn)證與應(yīng)用授權(quán)。2.3.1 協(xié)議模型ldap協(xié)議采用的通用協(xié)議模型是一個(gè)由客戶端(client)發(fā)起操作的客戶端服務(wù)器(server)響應(yīng)模型。在此協(xié)議模型中,ldap客戶端通過(guò)tcp/ip的系統(tǒng)平臺(tái)和ldap服務(wù)器保持連接,這樣任何支持tcp/ip的系統(tǒng)平臺(tái)都能安裝ldap客戶端。應(yīng)用程序通過(guò)應(yīng)用程序接口(api)調(diào)用把操作要求和參數(shù)發(fā)送給l
35、dap客戶端,客戶端發(fā)起ldap請(qǐng)求,通過(guò)tcp/ip傳遞給ldap服務(wù)器;ldap服務(wù)器必須分配一個(gè)端口來(lái)監(jiān)聽客戶端請(qǐng)求,其代替客戶端訪問(wèn)目錄庫(kù),在目錄上執(zhí)行相應(yīng)的操作,把包含結(jié)果或者錯(cuò)誤信息的響應(yīng)回傳給客戶端;應(yīng)用程序取回結(jié)果。當(dāng)客戶端不再需要與服務(wù)器通信時(shí),由客戶端斷開連接。協(xié)議模型如下圖2-4所示:圖2-4 ldap協(xié)議模型在ldapv1與ldapv2中,服務(wù)器需要追蹤全部參考節(jié)點(diǎn)和執(zhí)行協(xié)議操作,將最終結(jié)果返回給客戶端。為了提高效率,在ldapv3中,允許服務(wù)器將指向它的服務(wù)器的參考指針?lè)祷亟o客戶端,由客戶端自己去查找。這樣,雖然增加了客戶端軟件的復(fù)雜程度,但是可以有效分擔(dān)服務(wù)器的負(fù)載
36、,提高服務(wù)器的效率和分布式應(yīng)用能力。2.3.2數(shù)據(jù)模型ldap是以樹狀方式組織信息,稱為目錄信息樹。dit的根節(jié)點(diǎn)是一個(gè)沒(méi)有實(shí)際意義的虛根,樹上的節(jié)點(diǎn)被稱為條目(entry),是樹狀信息中的基本數(shù)據(jù)單元。條目的名稱由一個(gè)或多個(gè)屬性組成,稱為相對(duì)識(shí)別名,此為條目在根節(jié)點(diǎn)下的唯一名稱標(biāo)識(shí),用來(lái)區(qū)別與它同級(jí)別的條目。從一個(gè)條目到根的直接下級(jí)條目的rdn序列組成該條目的識(shí)別名(distinguishe name,dn),dn是該條目在整個(gè)樹中的唯一名稱標(biāo)識(shí)。dn的每一個(gè)rdn對(duì)應(yīng)dit的一個(gè)分支,從root一直到目錄條目。下圖2-5為一個(gè)ldap目錄信息樹結(jié)構(gòu)。圖2-5 ldap目錄信息樹結(jié)構(gòu)2.3.
37、3 ldap的實(shí)現(xiàn)現(xiàn)有的ldap服務(wù)器實(shí)現(xiàn)有:gun組織的openldap開放源代碼的ldap服務(wù)器、novell公司的nds(novell directory services)、微軟的活動(dòng)目錄(active directory)、ibm公司的enetwork ldap服務(wù)器等。在實(shí)際應(yīng)用中,出于兼容性的考慮,需要選擇支持ldapv3的ldap服務(wù)器,同時(shí)要兼顧到ldap服務(wù)器額外提供的功能特性。本課程設(shè)計(jì)基于“華鐳”linux操作系統(tǒng),采用gun組織的openldap作為ldap服務(wù)器,下面對(duì)其做簡(jiǎn)單介紹。openldap是一個(gè)通過(guò)internet進(jìn)行集體開發(fā)的項(xiàng)日。它的目標(biāo)是提供一個(gè)穩(wěn)定
38、的、商業(yè)級(jí)的、功能全面的ldap套件,其中包括ldap服務(wù)器和一些開發(fā)工具,具體內(nèi)容請(qǐng)參考網(wǎng)站。由于openldap是源碼開放的,所以它在linux平臺(tái)上受到廣泛的歡迎,當(dāng)然也可以移植到其他的系統(tǒng)平臺(tái)上,甚至windows平臺(tái)上。openldap 2.x版本支持ldapv3,最新的版本(2.1版)可以支持ldapv3協(xié)議的絕大部分特性,包括一些擴(kuò)展功能。openldap支持模式訪問(wèn)控制和模式擴(kuò)展,但是不支持動(dòng)態(tài)模式擴(kuò)展,無(wú)法在運(yùn)行時(shí)擴(kuò)展模式,只能通過(guò)修改服務(wù)器的配置文件來(lái)實(shí)現(xiàn)。openldap通過(guò)配置文件中的referral指令字實(shí)現(xiàn)到其他命名上下文或其他lda
39、p服務(wù)器的引用。openldap支持的安全機(jī)制比較全面,支持多種sasl認(rèn)證機(jī)制,也可以利用各種認(rèn)證系統(tǒng)和加密系統(tǒng)實(shí)現(xiàn)安全性較高的目錄服務(wù)。openldap使用獨(dú)立進(jìn)程slurpd實(shí)現(xiàn)目錄復(fù)制服務(wù),可以通過(guò)結(jié)合slurpd和slapd的配置文件設(shè)計(jì)復(fù)制策略。openldap也提供自己的訪問(wèn)控制機(jī)制。主要通過(guò)服務(wù)器配置文件中的access指令字實(shí)現(xiàn),access提供了豐富的語(yǔ)法,支持各種通配符,可以實(shí)現(xiàn)強(qiáng)大的訪問(wèn)控制功能。本課題利用openldap目錄服務(wù)存儲(chǔ)用戶信息并實(shí)現(xiàn)基于kerberos認(rèn)證系統(tǒng)的用戶認(rèn)證,利用其訪問(wèn)控制實(shí)現(xiàn)應(yīng)用的授權(quán)。3用戶認(rèn)證與授權(quán)方案的研究與實(shí)現(xiàn)本課題基于linux的
40、pam機(jī)制、kerberos認(rèn)證系統(tǒng)、ldap目錄服務(wù)系統(tǒng)設(shè)計(jì)了域內(nèi)用戶認(rèn)證與應(yīng)用授權(quán)的架構(gòu),該架構(gòu)運(yùn)行在操作系統(tǒng)為linux的主機(jī)上,提供基本的kerberos登錄認(rèn)證服務(wù),以及kerberos化的遠(yuǎn)程登錄服務(wù)(ktelnet)、kerberos化的文件傳輸(kftp)等網(wǎng)絡(luò)應(yīng)用服務(wù)。openldap目錄服務(wù)系統(tǒng)完成用戶信息的存儲(chǔ)以及相應(yīng)權(quán)限的設(shè)置。本課題編寫了客戶端程序,作為認(rèn)證接口,提供給應(yīng)用程序調(diào)用,實(shí)現(xiàn)用戶的登錄認(rèn)證與應(yīng)用的授權(quán)。該系統(tǒng)架構(gòu)如圖3-1所示:圖3-1用戶認(rèn)證與應(yīng)用授權(quán)系統(tǒng)架構(gòu)3.1搭建kerberos認(rèn)證系統(tǒng)3.1.1、組成模塊的安裝與配置由mit開發(fā)的kerberos
41、系統(tǒng),其源代碼是公開的,并且一直在不間斷的進(jìn)行維護(hù)和更新,因此代碼的穩(wěn)定性以及成熟性都非常好,同時(shí)提供了對(duì)多種操作系統(tǒng)的支持。下面介紹其在linux操作系統(tǒng)下的安裝與配置。首先,解壓代碼壓縮包krb5-1.3.1.tacgz,使用gnu自動(dòng)配置工具(autoconf)進(jìn)行安裝。安裝完畢后,系統(tǒng)必須先建立起相關(guān)的kerberos配置文件,從而使系統(tǒng)能夠到指定的文件里讀取配置信息。它使用幾個(gè)端口進(jìn)行密鑰的分發(fā)和管理,需要在linux系統(tǒng)的/etc/services文件末尾增加kerberos使用的端口號(hào)。同時(shí),還必須修改系統(tǒng)的超級(jí)服務(wù)器控制文件inetd.conf。此時(shí),還未將kerberos集成
42、到域名解析服務(wù)器dns,本課程設(shè)計(jì)選擇bind9.2.4作為dns服務(wù)器。kerberos系統(tǒng)使用時(shí)間戳來(lái)防止重放攻擊,因此,還需要設(shè)置時(shí)間同步服務(wù)器ntp server,需要在配置文件中添加與其同步的機(jī)器的ip地址,如下:server server 44kerberos系統(tǒng)的配置文件krb5.conf包含kerbcros的配置信息、用于該域的kdc以及管理服務(wù)器的位置、用于當(dāng)前域和kerberos的缺省設(shè)置以及將主機(jī)名映射到kerberos域的設(shè)置。設(shè)定域名為,krb5.conf簡(jiǎn)單描述如下:libdefaultsdefault_realm=se
43、coa.cnrealmssecoa.cn=kdc=admin_server=kerberos的密鑰分發(fā)中心kdc的配置文件kdc.conf簡(jiǎn)單描述如下:kdc_ports=750,88realmssecoa.cn=kdc_ports=750,88max_life=10h 0m 0smax_renewable_life=7d 0h 0m 0smaster_key_type=des3-hmac-sha13.1.2、數(shù)據(jù)庫(kù)的創(chuàng)建與管理編輯完上述配置文件后,、需要?jiǎng)?chuàng)建并填充存放主信息條的kerbcros的數(shù)據(jù)庫(kù)、創(chuàng)建系統(tǒng)管理員、創(chuàng)建新的密鑰列表、創(chuàng)建新的參與者等。l 創(chuàng)建數(shù)據(jù)庫(kù)在主kdc上使用kdb5
44、_util程序來(lái)創(chuàng)建數(shù)據(jù)庫(kù)和可選的stash文件。stash文件是加密格式駐留在kdc內(nèi)部磁盤上的master key的復(fù)制,它是在kadmind和krb5kdc守護(hù)進(jìn)程啟動(dòng)之前自動(dòng)認(rèn)證kdc的。l 創(chuàng)建系統(tǒng)管理員kerberos基本認(rèn)證系統(tǒng)需要由系統(tǒng)管理員來(lái)對(duì)主體數(shù)據(jù)庫(kù)及密鑰數(shù)據(jù)庫(kù)進(jìn)行管理與維護(hù),創(chuàng)建系統(tǒng)管理員的方法如下:(1)在訪問(wèn)控制(acl)文件里增加系統(tǒng)管理員至少需要添加一個(gè)系統(tǒng)管理員的kerberos主體,訪問(wèn)控制文件名在kdc.conf中指定。缺省的文件名為kadm5.acl,其文件格式為:kerberos-principal permissions optional-targe
45、t-principal該文件里的權(quán)限包括:a、d、m、c、i等,并且可以包含匹配符。為了給所有具有*/adminsecoa.cn主體權(quán)限來(lái)改變?nèi)魏螌?shí)體在數(shù)據(jù)庫(kù)所有權(quán)限,只需在文件中加入如下語(yǔ)句:*/adminsecoa.cn。(2)在kerberos數(shù)據(jù)庫(kù)里增加系統(tǒng)管理員通過(guò)在主kdc上使用kadmin.local命令完成,要增加的管理員主體應(yīng)是acl文件中的主體。生成系統(tǒng)管理員主體admin/admin:#kadmin.local:addprinc admin/adminsecoa.cn。3.1.3、源代碼分析mit的kerberos源代碼非常龐大,下面以最新的1.3.1版本為例,對(duì)其進(jìn)行簡(jiǎn)
46、要的分析。為了不涉及過(guò)多的編程細(xì)節(jié),主要給出一些關(guān)鍵的api函數(shù)的名稱及其主要作用。l krb5_context用來(lái)代表任意進(jìn)程的狀態(tài)。在這個(gè)結(jié)構(gòu)里存儲(chǔ)全局參數(shù),包括缺省域、缺省加密類型、缺省配置文件等。此函數(shù)提供了對(duì)存儲(chǔ)在context結(jié)構(gòu)里的數(shù)據(jù)的訪問(wèn),而這些數(shù)據(jù)是不能被開發(fā)人員直接訪問(wèn)的。krb5_ini_context(/*in/out*/krb5_context*context)此函數(shù)用來(lái)初始化kerberos基本context信息:加密類型、缺省域和指向特定數(shù)據(jù)的指針。在此context中的數(shù)據(jù)應(yīng)該用krb5_free_context()來(lái)釋放。krb5_free_context(
47、/*in/out*/krb5_context context)此函數(shù)用來(lái)釋放通過(guò)krb5_init_context()返回的context。l krb5_auth_context用來(lái)表示一個(gè)連接中直接被客戶/服務(wù)器認(rèn)證所涉及各種功能的內(nèi)容,通常包括密鑰區(qū)、地址、序列號(hào)、認(rèn)證符和校驗(yàn)類型等信息。krb5_auth_con_init(/*out*/krb5_auth_context*auth_context)此函數(shù)用來(lái)初始化auth_context的信息,包括與各種認(rèn)證例程相關(guān)的所有數(shù)據(jù)。krb5_auth_con_free(/*in/out*/krb5_auth_context*auth_con
48、text)此函數(shù)用來(lái)釋放由krb5_auth_con_init函數(shù)返回的認(rèn)證內(nèi)容auth_context。l 主體訪問(wèn)函數(shù)主體定義了一個(gè)參與一次網(wǎng)絡(luò)通信的唯一命名的客戶或服務(wù)器實(shí)體,如下的兩個(gè)函數(shù)允許用來(lái)生成、修改及訪問(wèn)主體部分信息。krb5_parse_name()此函數(shù)用來(lái)將主體名稱的單字符串表示方式轉(zhuǎn)化為協(xié)議中所使用的多個(gè)組成部分的主體名稱格式。krb5_unparse_name()此函數(shù)用來(lái)將多個(gè)組成部分構(gòu)成的主體名稱轉(zhuǎn)化為單字符串表示的主體名稱格式。l 證書緩存函數(shù)krb5_cc_resolve()此函數(shù)用來(lái)把字符串格式的名字轉(zhuǎn)化為相應(yīng)的id,并添寫相關(guān)信息。krb5_cc_defa
49、ult()此函數(shù)用來(lái)獲取缺省證書文件的相關(guān)信息。krb5_cc-initialize()此函數(shù)用來(lái)生成或刷新證書緩存。krb5_cc_get_principal()此函數(shù)用來(lái)獲取證書緩存中的主體信息,通過(guò)調(diào)用krb5_free_principal()來(lái)釋放內(nèi)存。krb5_cc_remove_cred()此函數(shù)用來(lái)銷毀指定主體名的證書。l 其它全局性應(yīng)用函數(shù)krb5_get_credentials()此函數(shù)為使用證書緩存或tgs交換來(lái)獲得一張額外的票據(jù)。krb5_get_in_tkt()客戶利用此函數(shù)獲得使用某種服務(wù)的初始票據(jù)。krb5_mk_req()此函數(shù)用來(lái)格式化一個(gè)krb_ap_req信
50、息到輸出緩沖區(qū)里。krb5_rd_req()此函數(shù)用來(lái)分析一個(gè)krb_ap_req信息,并返回其內(nèi)容。krb5_mk_rep()此函數(shù)用來(lái)格式化并加密一個(gè)krb_ap_rep信息。krb5_rd_rep()此函數(shù)用來(lái)分析并解密一個(gè)krb_ap_rep信息,調(diào)用者應(yīng)該再調(diào)用krb5_free_ap_rep_enc_part()來(lái)釋放此結(jié)構(gòu)。krb5_sendauth()客戶端程序利用此函數(shù)來(lái)向服務(wù)器方發(fā)送認(rèn)證的票據(jù)。krb5_recvauth()此函數(shù)與krb5_sendauth()搭配使用,服務(wù)器用來(lái)接收來(lái)自客戶的信息并向客戶提供認(rèn)證應(yīng)答信息。krb5_mk_safe()此函數(shù)用來(lái)生成一個(gè)kr
51、b_safe格式的消息。krb5_rd_safe()此函數(shù)用來(lái)分析輸入緩沖區(qū)里的krb_safe格式的消息。krb5_mk_priv()此函數(shù)用來(lái)生成一個(gè)krb_priv格式的消息。krb5_rd_priv()此函數(shù)用來(lái)分析輸入緩沖區(qū)里的krb_priv格式的消息。3.1.4、網(wǎng)絡(luò)應(yīng)用的kerberos化kerberos作為可信任的第三方認(rèn)證系統(tǒng),必須和其它應(yīng)用服務(wù)系統(tǒng)相結(jié)合才能發(fā)揮作用9。但由于原有的應(yīng)用系統(tǒng)并不能直接適用于kerberos環(huán)境,其客戶端和服務(wù)器端的軟件都要做一定的修改,使之可以在成功建立tcp連接后能夠交換加密的認(rèn)證信息。可以通過(guò)下述方法將網(wǎng)絡(luò)應(yīng)用加入到kerberos環(huán)境
52、中:(1)改網(wǎng)絡(luò)應(yīng)用的客戶端和服務(wù)器端程序,加入發(fā)送、接收和處理kerberos認(rèn)證信息及后續(xù)信息處理的代碼。(2)在kerberos服務(wù)器上定義應(yīng)用服務(wù)的主體標(biāo)識(shí),分配密鑰并加入到密鑰庫(kù)中。(3)在網(wǎng)絡(luò)應(yīng)用服務(wù)器運(yùn)行的主機(jī)上保留一份root只讀的密鑰文件。(4)將網(wǎng)絡(luò)應(yīng)用添加到超級(jí)服務(wù)器inetd里,取代原來(lái)不安全的應(yīng)用服務(wù)。然后重起inetd。本課程設(shè)計(jì)中,將kerberos化的ktelnet、ftp服務(wù)分別簡(jiǎn)稱為ktelnet、kftp,分析如下:l ktelnet應(yīng)用服務(wù)在ktelnet應(yīng)用服務(wù)系統(tǒng)中,其服務(wù)器端程序始終運(yùn)行在提供服務(wù)的機(jī)器上,等待來(lái)自客戶方的服務(wù)請(qǐng)求。當(dāng)用戶鍵入krb
53、5-telnet后,客戶端程序就開始在本地系統(tǒng)上運(yùn)行,執(zhí)行下述動(dòng)作:(1)根據(jù)提供給telnet命令的遠(yuǎn)程主機(jī)地址參數(shù)獲得相應(yīng)服務(wù)器主體信息;(2)獲得用戶的kerberos證書文件信息及訪問(wèn)ktelnet的票據(jù)信息;(3)創(chuàng)建一個(gè)與遠(yuǎn)程登錄服務(wù)器的tcp網(wǎng)絡(luò)連接;(4)將kerberos認(rèn)證信息傳送給服務(wù)方;(5)接收來(lái)自服務(wù)方的認(rèn)證應(yīng)答信息,認(rèn)證成功則繼續(xù)正常的會(huì)話。為接受服務(wù)請(qǐng)求,服務(wù)器端應(yīng)用程序?qū)?zhí)行下述動(dòng)作:(1)準(zhǔn)備好keytab文件,并生成自身主體信息;(2)等待來(lái)自客戶方的服務(wù)請(qǐng)求;(3)接受客戶端的連接請(qǐng)求,與客戶建立初始的tcp網(wǎng)絡(luò)連接;(4)接收并處理來(lái)自客戶方的kerb
54、eros認(rèn)證信息;(5)向客戶發(fā)送認(rèn)證響應(yīng)信息。若通過(guò)了對(duì)客戶的認(rèn)證,就發(fā)送認(rèn)證成功信息并繼續(xù)提供正常的遠(yuǎn)程登錄服務(wù),否則發(fā)送認(rèn)證失敗信息并切斷連接接收來(lái)自服務(wù)方的認(rèn)證應(yīng)答信息。l kftp應(yīng)用服務(wù)在kftp應(yīng)用服務(wù)系統(tǒng)中,其服務(wù)器端程序始終運(yùn)行在提供服務(wù)的機(jī)器上,等待來(lái)自客戶方的服務(wù)請(qǐng)求。當(dāng)用戶鍵入krb5-ftp命令后,其客戶端程序就開始在本地系統(tǒng)上運(yùn)行。進(jìn)入ftp處理程序后,它就要對(duì)用戶提供的ftp命令進(jìn)行分析,在完成一系列準(zhǔn)備之后,向服務(wù)器方發(fā)送認(rèn)證信息,得到認(rèn)證后完成用戶提交的遠(yuǎn)程文件傳輸任務(wù)。此過(guò)程即根據(jù)用戶調(diào)用的ftp命令去執(zhí)行kerberos認(rèn)證并繼續(xù)提供正常的文件傳輸服務(wù),其
55、工作過(guò)程與上述ktelnet應(yīng)用服務(wù)過(guò)程類似,不再贅述。將telnet和ftp等網(wǎng)絡(luò)應(yīng)用服務(wù)kerberos化后,用戶需要通過(guò)kinit命令來(lái)獲得kerberos初始票據(jù),利用kerberos作為可信任的第三方認(rèn)證系統(tǒng),為不安全的網(wǎng)絡(luò)環(huán)境提供了較為可靠的用戶認(rèn)證方式。3.2搭建openldap服務(wù)器3.2.1、組成模塊的安裝與配置由gun開發(fā)的openldap軟件包,其源代碼是公開的,可以支持ldap v3的絕大部分特性,包括一些擴(kuò)展功能。版本2之后的openldap使用了pthread庫(kù),pthread庫(kù)是支持搶先式調(diào)度的線程庫(kù)。openldap支持多種后臺(tái)數(shù)據(jù)庫(kù),缺省的數(shù)據(jù)庫(kù)是sleepc
56、at的ldbm,openldap服務(wù)器有兩個(gè)獨(dú)立的服務(wù)器進(jìn)程:slapd和slurpd。slapd提供目錄服務(wù),slurpd用于根據(jù)目錄服務(wù)器日志的變化將目錄更新信息復(fù)制到從屬目錄服務(wù)器上。openldap的體系結(jié)構(gòu)如下圖3-2所示:圖3-2 openldap的體系結(jié)構(gòu)3.2.2、數(shù)據(jù)庫(kù)的創(chuàng)建與管理首先,可以聯(lián)機(jī)使用ldap來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。通過(guò)這種方法,只需要簡(jiǎn)單的啟動(dòng)slapd,然后使用ldap客戶端向其中增加條目。該方法對(duì)于創(chuàng)建小規(guī)模的數(shù)據(jù)庫(kù)而言是比較適合的,適合于支持更新的數(shù)據(jù)庫(kù)。第二種創(chuàng)建數(shù)據(jù)庫(kù)的方法是使用slapd提供的特殊的應(yīng)用程序脫機(jī)執(zhí)行。本課題采用第一種方法創(chuàng)建數(shù)據(jù)庫(kù)。使用ldap客戶端增加條目之前,需要在slapd.conf文件中設(shè)置如下選項(xiàng):suffixdn該選項(xiàng)定義了該數(shù)據(jù)庫(kù)中保存的條目。應(yīng)該將它設(shè)置為將要?jiǎng)?chuàng)建的子樹的rootdn。本課題設(shè)置域名為“”,則為:suffix“dc=secoa,dc=cn”同時(shí),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 住房買賣協(xié)議
- 公園設(shè)施維護(hù)協(xié)議
- 2025山林地承包合同范本
- 2025房屋租賃合同電子版房屋租賃合同常用版
- 水暖工程安裝施工合同工裝
- 建筑地板時(shí)間合同
- 文具辦公壁掛爐施工安裝協(xié)議
- 學(xué)校體育設(shè)施網(wǎng)球場(chǎng)工程合同
- 深化產(chǎn)學(xué)研合作:創(chuàng)新辦學(xué)策略與執(zhí)行方案
- 地鐵供電系統(tǒng)外線施工合同
- DB51∕T 5012-2013 四川省白蟻防治技術(shù)規(guī)程
- 溫泉智能自動(dòng)控制系統(tǒng)解決方案
- 糠醛工藝操作規(guī)程
- 房建項(xiàng)目工程質(zhì)量標(biāo)準(zhǔn)化圖冊(cè)(179頁(yè))
- 天津人社局解除勞動(dòng)合同證明書
- 化工廠車間、班組日常安全檢查表
- 小學(xué)低年級(jí)體育游戲化教學(xué)研究課題研究報(bào)告
- 復(fù)式交分道岔的檢查方法資料講解
- 檢測(cè)和校準(zhǔn)實(shí)驗(yàn)室能力認(rèn)可準(zhǔn)則(ISOIEC 170252017)
- S775(八) 重力式無(wú)閥濾池
- T∕GEIA 14-2021 華式箱式變電站試驗(yàn)導(dǎo)則
評(píng)論
0/150
提交評(píng)論