【正文】
稱由一個或多個屬性組成,稱為相對識別名,此為條目在根節(jié)點(diǎn)下的唯一名稱標(biāo)識,用來區(qū)別與它同級別的條目。在此協(xié)議模型中,LDAP客戶端通過TCP/IP的系統(tǒng)平臺和LDAP服務(wù)器保持連接,這樣任何支持TCP/IP的系統(tǒng)平臺都能安裝LDAP客戶端。1990年推出Version 5進(jìn)一步對Version 4中的某些安全缺陷做了改進(jìn),不僅完善了Version 4所采用的基于DES的加密算法,而且還采用獨(dú)立的加密模塊,允許用戶根據(jù)自己的實(shí)際需要選擇其它的加密算法,使得安全性得到了進(jìn)一步的提高。但這種方法硬件投入較大,不管是客戶端的智能卡,還是服務(wù)器端的讀卡設(shè)備,造價都較高,因而限制了它的普遍性。但這種方案造價較高,適用于保密程度很高的場合。主要有下面三種認(rèn)證方式:l 口令認(rèn)證方式口令認(rèn)證是一種最簡單的用戶身份認(rèn)證方式。認(rèn)證機(jī)制可以分為兩類:一類是通過雙方之間的交互式來證明對方身份的認(rèn)證機(jī)制。 PAM層次結(jié)構(gòu) 工作原理:應(yīng)用程序?qū)优cPAM服務(wù)模塊通過PAM API建立聯(lián)系,按照需要調(diào)用相關(guān)的服務(wù)模塊,完成對某種應(yīng)用程序的認(rèn)證。從而可以在應(yīng)用程序中根據(jù)需要靈活地插入所需要的認(rèn)證模塊或替換原先的認(rèn)證組件,而不必對應(yīng)用程序做任何修改??蛻舳刷抛鳛镵erberos系統(tǒng)的客戶端用戶在此登錄,完成用戶認(rèn)證、服務(wù)請求,經(jīng)由認(rèn)證服務(wù)器認(rèn)證后,調(diào)用某種Kerberos化的網(wǎng)絡(luò)應(yīng)用服務(wù),完成與應(yīng)用服務(wù)器的相互認(rèn)證。本課題編寫了客戶端程序,作為認(rèn)證接口,提供給應(yīng)用程序調(diào)用,實(shí)現(xiàn)用戶的登錄認(rèn)證與應(yīng)用的授權(quán)。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)用的安全性。其基于訪問控制策略語句的訪問控制列表(Access Control List,ACL)來實(shí)現(xiàn)訪問控制與應(yīng)用授權(quán),不同于現(xiàn)有的關(guān)系型數(shù)據(jù)庫和應(yīng)用系統(tǒng),訪問控制異常靈活和豐富[5]。PAM體系結(jié)構(gòu)的模塊化設(shè)計(jì)及其定義的良好接口,使得無需改變或者干擾任何現(xiàn)有的登錄服務(wù)就可以集成范圍廣泛的認(rèn)證和授權(quán)機(jī)制,因此,近年來,對PAM的底層鑒別模塊的擴(kuò)展廣泛應(yīng)用于增強(qiáng)Linux操作系統(tǒng)的安全性。近幾年來,Linux操作系統(tǒng)以其高效性、靈活性以及開放性得到了蓬勃發(fā)展,不僅被廣泛應(yīng)用于PC、服務(wù)器,還廣泛的應(yīng)用于手機(jī)、PDA等高端嵌入設(shè)備。在此基礎(chǔ)上,利用OpenLDAP的訪問控制機(jī)制實(shí)現(xiàn)了對各種網(wǎng)絡(luò)應(yīng)用服務(wù)的授權(quán)訪問。(3)通過課程設(shè)計(jì)培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,認(rèn)真的工作作風(fēng)和團(tuán)隊(duì)協(xié)作精神。重點(diǎn)分析了Kerberos認(rèn)證系統(tǒng)與LDAP目錄服務(wù)系統(tǒng)的消息格式、數(shù)據(jù)庫管理、安裝配置、配置文件、接口函數(shù)等。(2)課程設(shè)計(jì)附件(源程序、各類圖紙、實(shí)驗(yàn)數(shù)據(jù)、運(yùn)行截圖等)。關(guān)鍵詞 身份認(rèn)證;目錄服務(wù);應(yīng)用授權(quán)Linuxbased user authentication and authorizationStudent name: LIAO Zhenglei Advisor:WANG YanhuaAbstract The curriculum design in the architecture of Trusted Computing, Linux security mechanisms, the existing authentication protocol, such as indepth study, based on the Linux operating system based on user authentication and authorization framework for applications, and ultimately the pletion of the entire system structures. This paper analyzes the Kerberos authentication system and 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 NeedhamSchroeder protocol based on improvements to enhance their security. And to set up Kerberos authentication system, the Kerberos user login authentication, the Kerberos network applications of。出于系統(tǒng)安全考慮,Linux提供的安全機(jī)制主要有:身份標(biāo)識與鑒別、文件訪問控制、特權(quán)管理、安全審計(jì)、IPC資源的訪問控制。Kerberos認(rèn)證協(xié)議最初是麻省理工學(xué)院(MIT)為其Athena項(xiàng)目開發(fā)的,其從提出到現(xiàn)在,共經(jīng)歷了五個版本的發(fā)展[4]。在我國,LDAP技術(shù)已應(yīng)用在北京大學(xué)校園網(wǎng)絡(luò)用戶管理系統(tǒng)、上海政務(wù)網(wǎng)統(tǒng)一用戶管理、中國數(shù)字圖書館系統(tǒng)的用戶管理部分,以及北京、上海、天津、福建等省級認(rèn)證中心等。這樣既可以實(shí)現(xiàn)基于用戶的網(wǎng)絡(luò)應(yīng)用管理,也可以實(shí)現(xiàn)對用戶的訪問控制。Linux內(nèi)部的可插入式認(rèn)證模塊(PAM)的運(yùn)行原理、組成部分及其應(yīng)用實(shí)例,特別是其內(nèi)部的用戶登錄認(rèn)證與應(yīng)用授權(quán)模塊。2用戶認(rèn)證與授權(quán)方案概述 Linux的安全機(jī)制PAM機(jī)制通常在認(rèn)證時,實(shí)現(xiàn)認(rèn)證功能的代碼通常作為應(yīng)用程序的一部分而一起編譯,如果發(fā)現(xiàn)所用算法存在某些缺陷或想采用另外一種認(rèn)證方法時,用戶不得不重寫(修改或替換)、重新編譯原程序。[6]。認(rèn)證服務(wù)是實(shí)現(xiàn)網(wǎng)絡(luò)安全最重要的服務(wù)之一,其他的安全服務(wù)在某種程度上都依賴于認(rèn)證服務(wù)。另一類采用可信第三方的認(rèn)證機(jī)制??诹钫J(rèn)證的安全性僅僅基于用戶口令的保密性,而用戶口令為方便記憶,一般較短而容易猜測,因此該方式不能抵御口令猜測攻擊;其次,口令的明文傳輸使得系統(tǒng)攻擊者很容易遭到竊聽;再者,由于系統(tǒng)以明文形式保存口令,一旦攻擊者獲得口令表,整個系統(tǒng)的安全性就會受到威脅。智能卡可存儲用戶的個人參數(shù)和秘密信息(如IDX、PWX和密鑰)。認(rèn)證協(xié)議是認(rèn)證機(jī)制的基礎(chǔ),認(rèn)證協(xié)議的安全性決定了某種認(rèn)證機(jī)制的優(yōu)劣。首先是認(rèn)證服務(wù)交換,客戶端從認(rèn)證服務(wù)器(AS)請求一張票據(jù)許可票據(jù)(Ticket Granting Ticket,TGT),作為票據(jù)許可服務(wù)(TicketGranting Server,TGS),2;接著是票據(jù)授權(quán)服務(wù)交換,客戶端向TGS請求與服務(wù)方通信所需要的票據(jù)及會話密鑰,4;最后是客戶端/應(yīng)用服務(wù)器雙向認(rèn)證,客戶端在向應(yīng)用服務(wù)器證實(shí)自己身份的同時,證實(shí)應(yīng)用服務(wù)器的身份,6。: LDAP協(xié)議模型在LDAPV1與LDAPV2中,服務(wù)器需要追蹤全部參考節(jié)點(diǎn)和執(zhí)行協(xié)議操作,將最終結(jié)果返回給客戶端。 LDAP目錄信息樹結(jié)構(gòu)3. LDAP的實(shí)現(xiàn)OpenLDAP ,最新的版本()可以支持LDAPV3協(xié)議的絕大部分特性,包括一些擴(kuò)展功能。3用戶認(rèn)證與授權(quán)方案的研究與實(shí)現(xiàn)本課題基于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ù)。同時。為了給所有具有*/admin,只需在文件中加入如下語句:*/admin。krb5_ini_context(/*IN/OUT*/krb5_context*context)此函數(shù)用來初始化Kerberos基本context信息:加密類型、缺省域和指向特定數(shù)據(jù)的指針。krb5_unparse_name()此函數(shù)用來將多個組成部分構(gòu)成的主體名稱轉(zhuǎn)化為單字符串表示的主體名稱格式。krb5_mk_req()此函數(shù)用來格式化一個KRB_AP_REQ信息到輸出緩沖區(qū)里。krb5_mk_priv()此函數(shù)用來生成一個KRB_PRIV格式的消息。然后重起INETD。此過程即根據(jù)用戶調(diào)用的ftp命令去執(zhí)行Kerberos認(rèn)證并繼續(xù)提供正常的文件傳輸服務(wù),其工作過程與上述ktelnet應(yīng)用服務(wù)過程類似,不再贅述。該方法對于創(chuàng)建小規(guī)模的數(shù)據(jù)庫而言是比較適合的,適合于支持更新的數(shù)據(jù)庫。通過在數(shù)據(jù)庫定義中使用下面的兩個選項(xiàng)實(shí)現(xiàn):rootdn“=secoa,dc=”rootpw secret上述選項(xiàng)制定了一個DN和口令,該DN可以被作為超級用戶的數(shù)據(jù)庫條目進(jìn)行認(rèn)證(該條目允許執(zhí)行任何操作)。l 執(zhí)行其它LDAP操作并獲得其值發(fā)送LDAP請求,并返回結(jié)果信息。同步調(diào)用的函數(shù)以_s結(jié)尾。利用命令saslpasswd可以添加SASL root用戶并在添加時設(shè)置密碼,可以使某個用戶實(shí)效等。OpenLDAP自己定義了一套訪問控制語法,并將訪問控制列表以文件形式存放,在LDAP服務(wù)器每次啟動時加載該文件。:代碼編寫過程中,涉及到的相關(guān)的OpenLDAP的API函數(shù)如下所示:ldap_init;ldap_kerberos_bind_s;ldap_search_ext_s;ldap_first_entry;ldap_first_attribute;ldap_get_values;ldap_value_free;ldap_msgfree;ldap_unbind。目錄服務(wù)技術(shù)可以實(shí)現(xiàn)用戶信息的存儲以及相應(yīng)權(quán)限的設(shè)置等功能,本文利用輕量級目錄訪問協(xié)議(LDAP)實(shí)現(xiàn)上述功