【正文】
稱由一個或多個屬性組成,稱為相對識別名,此為條目在根節(jié)點下的唯一名稱標識,用來區(qū)別與它同級別的條目。在此協(xié)議模型中,LDAP客戶端通過TCP/IP的系統(tǒng)平臺和LDAP服務(wù)器保持連接,這樣任何支持TCP/IP的系統(tǒng)平臺都能安裝LDAP客戶端。1990年推出Version 5進一步對Version 4中的某些安全缺陷做了改進,不僅完善了Version 4所采用的基于DES的加密算法,而且還采用獨立的加密模塊,允許用戶根據(jù)自己的實際需要選擇其它的加密算法,使得安全性得到了進一步的提高。但這種方法硬件投入較大,不管是客戶端的智能卡,還是服務(wù)器端的讀卡設(shè)備,造價都較高,因而限制了它的普遍性。但這種方案造價較高,適用于保密程度很高的場合。主要有下面三種認證方式:l 口令認證方式口令認證是一種最簡單的用戶身份認證方式。認證機制可以分為兩類:一類是通過雙方之間的交互式來證明對方身份的認證機制。 PAM層次結(jié)構(gòu) 工作原理:應(yīng)用程序?qū)优cPAM服務(wù)模塊通過PAM API建立聯(lián)系,按照需要調(diào)用相關(guān)的服務(wù)模塊,完成對某種應(yīng)用程序的認證。從而可以在應(yīng)用程序中根據(jù)需要靈活地插入所需要的認證模塊或替換原先的認證組件,而不必對應(yīng)用程序做任何修改。客戶端⑴作為Kerberos系統(tǒng)的客戶端用戶在此登錄,完成用戶認證、服務(wù)請求,經(jīng)由認證服務(wù)器認證后,調(diào)用某種Kerberos化的網(wǎng)絡(luò)應(yīng)用服務(wù),完成與應(yīng)用服務(wù)器的相互認證。本課題編寫了客戶端程序,作為認證接口,提供給應(yīng)用程序調(diào)用,實現(xiàn)用戶的登錄認證與應(yīng)用的授權(quán)。Kerberos是目前應(yīng)用最廣泛的認證協(xié)議,本課程設(shè)計將其作為認證模塊擴展到PAM中,基于PAM的程序就可以調(diào)用該認證模塊用于用戶認證等驗證機制,可以增強系統(tǒng)及各種應(yīng)用的安全性。其基于訪問控制策略語句的訪問控制列表(Access Control List,ACL)來實現(xiàn)訪問控制與應(yīng)用授權(quán),不同于現(xiàn)有的關(guān)系型數(shù)據(jù)庫和應(yīng)用系統(tǒng),訪問控制異常靈活和豐富[5]。PAM體系結(jié)構(gòu)的模塊化設(shè)計及其定義的良好接口,使得無需改變或者干擾任何現(xiàn)有的登錄服務(wù)就可以集成范圍廣泛的認證和授權(quán)機制,因此,近年來,對PAM的底層鑒別模塊的擴展廣泛應(yīng)用于增強Linux操作系統(tǒng)的安全性。近幾年來,Linux操作系統(tǒng)以其高效性、靈活性以及開放性得到了蓬勃發(fā)展,不僅被廣泛應(yīng)用于PC、服務(wù)器,還廣泛的應(yīng)用于手機、PDA等高端嵌入設(shè)備。在此基礎(chǔ)上,利用OpenLDAP的訪問控制機制實現(xiàn)了對各種網(wǎng)絡(luò)應(yīng)用服務(wù)的授權(quán)訪問。(3)通過課程設(shè)計培養(yǎng)學(xué)生嚴謹?shù)目茖W(xué)態(tài)度,認真的工作作風(fēng)和團隊協(xié)作精神。重點分析了Kerberos認證系統(tǒng)與LDAP目錄服務(wù)系統(tǒng)的消息格式、數(shù)據(jù)庫管理、安裝配置、配置文件、接口函數(shù)等。(2)課程設(shè)計附件(源程序、各類圖紙、實驗數(shù)據(jù)、運行截圖等)。關(guā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提供的安全機制主要有:身份標識與鑒別、文件訪問控制、特權(quán)管理、安全審計、IPC資源的訪問控制。Kerberos認證協(xié)議最初是麻省理工學(xué)院(MIT)為其Athena項目開發(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)的用戶管理部分,以及北京、上海、天津、福建等省級認證中心等。這樣既可以實現(xiàn)基于用戶的網(wǎng)絡(luò)應(yīng)用管理,也可以實現(xiàn)對用戶的訪問控制。Linux內(nèi)部的可插入式認證模塊(PAM)的運行原理、組成部分及其應(yīng)用實例,特別是其內(nèi)部的用戶登錄認證與應(yīng)用授權(quán)模塊。2用戶認證與授權(quán)方案概述 Linux的安全機制PAM機制通常在認證時,實現(xiàn)認證功能的代碼通常作為應(yīng)用程序的一部分而一起編譯,如果發(fā)現(xiàn)所用算法存在某些缺陷或想采用另外一種認證方法時,用戶不得不重寫(修改或替換)、重新編譯原程序。[6]。認證服務(wù)是實現(xiàn)網(wǎng)絡(luò)安全最重要的服務(wù)之一,其他的安全服務(wù)在某種程度上都依賴于認證服務(wù)。另一類采用可信第三方的認證機制??诹钫J證的安全性僅僅基于用戶口令的保密性,而用戶口令為方便記憶,一般較短而容易猜測,因此該方式不能抵御口令猜測攻擊;其次,口令的明文傳輸使得系統(tǒng)攻擊者很容易遭到竊聽;再者,由于系統(tǒng)以明文形式保存口令,一旦攻擊者獲得口令表,整個系統(tǒng)的安全性就會受到威脅。智能卡可存儲用戶的個人參數(shù)和秘密信息(如IDX、PWX和密鑰)。認證協(xié)議是認證機制的基礎(chǔ),認證協(xié)議的安全性決定了某種認證機制的優(yōu)劣。首先是認證服務(wù)交換,客戶端從認證服務(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ù)器雙向認證,客戶端在向應(yīng)用服務(wù)器證實自己身份的同時,證實應(yīng)用服務(wù)器的身份,6。: LDAP協(xié)議模型在LDAPV1與LDAPV2中,服務(wù)器需要追蹤全部參考節(jié)點和執(zhí)行協(xié)議操作,將最終結(jié)果返回給客戶端。 LDAP目錄信息樹結(jié)構(gòu)3. LDAP的實現(xiàn)OpenLDAP ,最新的版本()可以支持LDAPV3協(xié)議的絕大部分特性,包括一些擴展功能。3用戶認證與授權(quán)方案的研究與實現(xiàn)本課題基于Linux的PAM機制、Kerberos認證系統(tǒng)、LDAP目錄服務(wù)系統(tǒng)設(shè)計了域內(nèi)用戶認證與應(yīng)用授權(quán)的架構(gòu),該架構(gòu)運行在操作系統(tǒng)為Linux的主機上,提供基本的Kerberos登錄認證服務(wù),以及Kerberos化的遠程登錄服務(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認證并繼續(xù)提供正常的文件傳輸服務(wù),其工作過程與上述ktelnet應(yīng)用服務(wù)過程類似,不再贅述。該方法對于創(chuàng)建小規(guī)模的數(shù)據(jù)庫而言是比較適合的,適合于支持更新的數(shù)據(jù)庫。通過在數(shù)據(jù)庫定義中使用下面的兩個選項實現(xiàn):rootdn“=secoa,dc=”rootpw secret上述選項制定了一個DN和口令,該DN可以被作為超級用戶的數(shù)據(jù)庫條目進行認證(該條目允許執(zhí)行任何操作)。l 執(zhí)行其它LDAP操作并獲得其值發(fā)送LDAP請求,并返回結(jié)果信息。同步調(diào)用的函數(shù)以_s結(jié)尾。利用命令saslpasswd可以添加SASL root用戶并在添加時設(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ù)可以實現(xiàn)用戶信息的存儲以及相應(yīng)權(quán)限的設(shè)置等功能,本文利用輕量級目錄訪問協(xié)議(LDAP)實現(xiàn)上述功