一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

Linux認證的概念

時(shí)間:2024-09-09 22:23:59 Linux認證 我要投稿

Linux認證的概念

  RHCA(Red Hat Certified Architect),是RedHat公司在2004年推出的頂級認證,也是Linux界公認的操作系統最高級認證。下面是小編整理的關(guān)于Linux認證的概念,歡迎大家參考!

  Linux用戶(hù)認證方法簡(jiǎn)介

  當今IT環(huán)境中,任何計算機系統都要充分考慮設計、使用和運行過(guò)程中的安全性。所以在目前主流操作系統的各個(gè)環(huán)節當中都增加了很多安全方面的功能和特性,而在眾多的安全特性和功能中有相當多的技術(shù)是確保用戶(hù)鑒別和身份認證方面的安全性的。

  所謂用戶(hù)鑒別,就是用戶(hù)向系統以一種安全的方式提交自己的身份證明,然后由系統確認用戶(hù)的身份是否屬實(shí)的過(guò)程。換句話(huà)說(shuō),用戶(hù)鑒別是系統的門(mén)戶(hù),每個(gè)用戶(hù)進(jìn)入到系統之前都必須經(jīng)過(guò)鑒別這一道關(guān)。 而所謂認證安全,簡(jiǎn)而言之就是計算機系統確認了用戶(hù)是經(jīng)過(guò)授權的合法用戶(hù)之后才能允許訪(fǎng)問(wèn)。安全認證最常用的方式是比對用戶(hù)輸入和預存于數據庫中的密碼。

  不過(guò)在用戶(hù)進(jìn)行身份鑒別和安全認證的過(guò)程中,肯定會(huì )涉及幾個(gè)核心問(wèn)題。例如:

  如何真正實(shí)現正確鑒別用戶(hù)的真實(shí)身份?

  在鑒別用戶(hù)合法身份之后,如何確定用戶(hù)可以對哪些資源進(jìn)行訪(fǎng)問(wèn)?

  如何控制用戶(hù)以何種方式來(lái)訪(fǎng)問(wèn)計算機資源?

  如何對用戶(hù)的安全訪(fǎng)問(wèn)隨時(shí)隨地按需調整?

  上述這些問(wèn)題都是在設計鑒別和認證程序過(guò)程中需要充分考慮和精心設計的。而在Linux類(lèi)的操作系統中,這些問(wèn)題的處理實(shí)際上有一套完整的流程和機制。

  在Linux類(lèi)的操作系統中,最初用戶(hù)鑒別過(guò)程就像各種Unix操作系統一樣:系統管理員為用戶(hù)建立一個(gè)帳號并為其指定一個(gè)口令,用戶(hù)用此指定的口令登錄之后重新設置自己的口令,這樣用戶(hù)就具有了一個(gè)只有它自己知道的口令或者密碼。一般情況下,用戶(hù)的身份信息在Linux系統中存放在/etc/passwd文件當中,這實(shí)際上是一個(gè)擁有簡(jiǎn)單格式的數據庫表,通過(guò)":"作為分隔符分隔出多個(gè)字段,其中包括用戶(hù)的名稱(chēng)、用戶(hù)ID、組ID、用戶(hù)說(shuō)明、主目錄和登錄使用的shell等相關(guān)信息。而用戶(hù)口令經(jīng)過(guò)加密處理后存放于/etc/shadow 文件中。也是一個(gè)格式類(lèi)似的數據庫表,除了用戶(hù)名和經(jīng)過(guò)加密之后的密碼之外,還包括多個(gè)對密碼有效期進(jìn)行定義的字段,包括密碼有效時(shí)間、密碼報警時(shí)間等。

  用戶(hù)登錄的時(shí)候,登錄服務(wù)程序提示用戶(hù)輸入其用戶(hù)名和口令,然后將口令加密并與/etc/shadow 文件中對應帳號的加密口令進(jìn)行比較,如果口令相匹配,說(shuō)明用戶(hù)的身份屬實(shí)并允許此用戶(hù)訪(fǎng)問(wèn)系統。這種思想基于只有用戶(hù)自己知道它的口令,所以輸入的口令是正確的話(huà),那么系統就認定它是所聲稱(chēng)的那個(gè)人。

  在Linux類(lèi)操作系統中,定義用戶(hù)信息和密碼信息的字段和格式都需要符合標準的Linux Naming Service Switch定義,即NSS定義。因此用戶(hù)信息只要保證滿(mǎn)足NSS規范,就可以來(lái)源于本地passwd和shadow之外的其它信息數據庫和認證源。所以在此基礎上還派生出一些其它認證解決方案。例如NIS、LDAP等,都可作為存放用戶(hù)信息的數據庫,而存放用戶(hù)口令或者鑒別用戶(hù)身份的數據庫,可以采用專(zhuān)用于網(wǎng)絡(luò )環(huán)境的Kerberos以及智能卡鑒別系統等方式。

  這一整套的鑒別和認證方案貌似無(wú)懈可擊,但是將這種解決方案真正應用到操作系統中的話(huà)就會(huì )發(fā)現一些問(wèn)題:

  第一,在操作系統上所包含的認證不僅僅只涉及到系統登錄和訪(fǎng)問(wèn),在系統外圍往往提供了眾多的應用程序,相當多的應用程序在訪(fǎng)問(wèn)過(guò)程中是有認證需求的。那么是否需要針對每一個(gè)應用程序都得加入認證和鑒別的功能?如果要,那么無(wú)論從程序的開(kāi)發(fā)和使用管理角度來(lái)講,工作量都將成倍增加;如果不要,則系統級的用戶(hù)鑒別和安全認證與應用程序沒(méi)有任何關(guān)系,意味著(zhù)不管用戶(hù)是否需要登錄系統,但是對應用程序的訪(fǎng)問(wèn)都將缺乏最基本的安全性。

  第二,如果針對每一個(gè)應用程序都開(kāi)發(fā)用戶(hù)鑒別和認證的功能,那么一旦發(fā)現所用的算法存在某些缺陷或想采用另一種鑒別和認證方法時(shí),開(kāi)發(fā)者或者用戶(hù)都將不得不重寫(xiě)(修改或替換)應用程序,然后重新編譯原程序。

  所以,尤其是當實(shí)現鑒別功能的代碼以通常方法作為應用程序一部分一起編譯的時(shí)候,上述問(wèn)題將十分突出。很明顯,傳統的身份鑒別和用戶(hù)認證方式一旦整合到實(shí)際的操作系統中,在實(shí)用當中缺乏靈活性。

  鑒于以上原因,Linux操作系統的開(kāi)發(fā)者和設計人員開(kāi)始尋找一種更佳的替代方案:一方面,將鑒別功能從應用中獨立出來(lái),單獨進(jìn)行模塊化的設計,實(shí)現和維護;另一方面,為這些鑒別模塊建立標準的應用程序接口即API,以便眾多的應用程序能方便地使用它們提供的各種功能;同時(shí),鑒別機制對上層用戶(hù)(包括應用程序和最終用戶(hù))要求一定要是透明的,這樣可以對使用者隱藏其中比較復雜的實(shí)現細節。

  可插拔認證模塊PAM的基本概念

  事實(shí)上直到1995年的時(shí)候,SUN的研究人員才提出了一種滿(mǎn)足以上需求的方案,這就是可插拔認證模塊(Pluggable Authentication Module--PAM)機制,并首次在其操作系統 Solaris 2.3上部分實(shí)現。

  可插拔認證模塊(PAM)機制采用模塊化設計和插件功能,使用戶(hù)可以輕易地在應用程序中插入新的認證模塊或替換原先的組件,同時(shí)不必對應用程序做任何修改,從而使軟件的定制、維持和升級更加輕松。因為認證和鑒別機制與應用程序之間相對獨立。所以應用程序可以通PAM API來(lái)方便地使用PAM提供的各種鑒別功能而不必了解太多的底層細節。此外PAM的易用性也較強,主要表現在它對上層屏蔽了鑒別和認證的具體細節,所以用戶(hù)不必被迫學(xué)習各種各樣的鑒別方式,也不必記住多個(gè)口令;又由于它實(shí)現了多鑒別認證機制的集成問(wèn)題,所以單個(gè)程序可以輕易集成多種鑒別機制,如Kerberos和Diffie - Hellman等認證機制,但用戶(hù)仍可以用同一個(gè)口令登錄而且感覺(jué)不到采取了各種不同的鑒別方法。

  在廣大開(kāi)發(fā)人員的努力下,各版本的UNIX系統陸續增加和提供了對PAM應用的支持。其中Linux-PAM是專(zhuān)門(mén)為L(cháng)inux操作系統實(shí)現的,眾多的Linux操作系統包括Caldera、Debian、Turbo、Red Hat、SuSE 及它們的后續版本都提供對PAM的支持。而FreeBSD從3.1版本也開(kāi)始支持PAM。而且除了具體實(shí)現方法上多少有些不同外,各種版本Unix系統上PAM的框架是相同的。所以我們在這里介紹的Linux的PAM框架知識具有相當的普遍性,而且在下文介紹其框架過(guò)程中可以看到,我們并沒(méi)有刻意區分Unix PAM與Linux PAM這兩個(gè)技術(shù)術(shù)語(yǔ)。

  PAM的分層體系結構

  PAM 為了實(shí)現其插件功能和易用性,采取了分層設計思想。就是讓各鑒別模塊從應用程序中獨立出來(lái),然后通過(guò)PAM API作為兩者聯(lián)系的紐帶,這樣應用程序就可以根據需要靈活地在其中"插入"所需要的鑒別功能模塊,從而真正實(shí)現了在認證和鑒別基礎上的隨需應變。實(shí)際上,這一思路也非常符合軟件設計中的"高內聚,低耦合"這一重要思想。

  PAM 的體系如下簡(jiǎn)圖所示:

  從上面的結構圖可以看出,PAM 的API起著(zhù)承上啟下的作用,它是應用程序和認證鑒別模塊之間聯(lián)系的紐帶和橋梁:當應用程序調用PAM API 時(shí),應用接口層按照PAM配置文件的定義來(lái)加載相應的認證鑒別模塊。然后把請求(即從應用程序那里得到的參數)傳遞給底層的認證鑒別模塊,這時(shí)認證鑒別模塊就可以根據要求執行具體的認證鑒別操作了。當認證鑒別模塊執行完相應的操作后,再將結果返回給應用接口層,然后由接口層根據配置的具體情況將來(lái)自認證鑒別模塊的應答返回給應用程序。

  上面描述了PAM的各個(gè)組成部分以及整體的運作機理。下面將對PAM中的每一層分別加以介紹。

  第一層:模塊層。模塊層處于整個(gè)PAM體系結構中的最底層,它向上為接口層提供用戶(hù)認證鑒別等服務(wù)。也就是說(shuō)所有具體的認證鑒別工作都是由該層的模塊來(lái)完成的。對于應用程序,有些不但需要驗證用戶(hù)的口令,還可能要求驗證用戶(hù)的帳戶(hù)是否已經(jīng)過(guò)期。此外有些應用程序也許還會(huì )要求記錄和更改當前所產(chǎn)生的會(huì )話(huà)類(lèi)的相關(guān)信息或改變用戶(hù)口令等。所以PAM在模塊層除了提供鑒別模塊外,同時(shí)也提供了支持帳戶(hù)管理、會(huì )話(huà)管理以及口令管理功能的模塊。當然,這四種模塊并不是所有應用程序都必需的,而是根據需要靈活取舍。比如雖然login可能要求訪(fǎng)問(wèn)上述所有的四種模塊,但是su可能僅僅需要使用到鑒別模塊的功能即可。至于如何取舍則涉及到接口層的PAM API和配置文件,這部分內容將在后文中加以介紹。

  第二層:應用接口層。應用接口層位于PAM結構的中間部分,它向上為應用程序屏蔽了用戶(hù)鑒別等過(guò)程的具體細節,向下則調用模塊層中的具體模塊所提供的特定服務(wù)。由上圖可以看出,它主要由PAM API和配置文件兩部分組成,下面將逐一介紹。

  PAM API可以分為兩類(lèi):一類(lèi)是用于調用下層特定模塊的接口,這類(lèi)接口與底層的模塊相對應,包括:

  鑒別類(lèi)接口:pam_authenticate()用于鑒別用戶(hù)身份,pam_setcred()用于修改用戶(hù)的私密信息。

  帳號類(lèi)接口:pam_acct_mgmt()用于檢查受鑒別的用戶(hù)所持帳戶(hù)是否有登錄系統許可,以及該帳戶(hù)是否已過(guò)期等。

  會(huì )話(huà)類(lèi)接口:包括用于會(huì )話(huà)管理和記帳的 pam_open_session()和 pam_close_session()函數。

  口令類(lèi)接口:包括用于修改用戶(hù)口令的 pam_chauthtok()。

  第二類(lèi)接口通常并不與底層模塊一一對應,它們的作用是對底層模塊提供支持以及實(shí)現應用程序與模塊之間的通信等。具體如下:

  管理性接口: 每組 PAM 事務(wù)從 pam_start()開(kāi)始,結束于 pam_end()函數。接口 pam_get_item()和 pam_set_item()用來(lái)讀寫(xiě)與 PAM 事務(wù)有關(guān)的狀態(tài)信息。同時(shí),能夠用 pam_str()輸出 PAM 接口的出錯信息。

  應用程序與模塊間的通訊接口:在應用程序初始化期間,某些諸如用戶(hù)名之類(lèi)的數據可以通過(guò) pam_start()將其存放在PAM接口層中,以備將來(lái)底層模塊使用。另外底層模塊還可以使用 pam_putenv()向應用程序傳遞特定的環(huán)境變量,然后應用程序利用pam_getenv()和pam_getenvlist()讀取這些變量。

  用戶(hù)與模塊間的通訊接口:pam_start()函數可以通過(guò)會(huì )話(huà)式的回調函數,讓底層模塊通過(guò)它們讀寫(xiě)模塊相關(guān)的鑒別信息,比如以應用程序所規定的方式提示用戶(hù)輸入口令。

  模塊間通訊接口:盡管各模塊是獨立的,但是它們仍然能夠通過(guò)pam_get_item()和pam_set_item()接口共享某些與鑒別會(huì )話(huà)有關(guān)的公用信息,諸如用戶(hù)名、服務(wù)名、口令等。此外,這些API還可以用于在調用pam_start()之后,讓?xiě)贸绦蛐薷臓顟B(tài)信息。

  讀寫(xiě)模塊狀態(tài)信息的接口:接口pam_get_data()和pam_set_data()用以按照PAM句柄要求訪(fǎng)問(wèn)和更新特定模塊的信息。此外,還可以在這些模塊后附加一個(gè)清除數據函數,以便當調用 pam_end()時(shí)清除現場(chǎng)。

  由于 PAM 模塊隨需加載,所以各模塊始化任務(wù)在第一次調用時(shí)完成。如果某些模塊的清除任務(wù)必須在鑒別會(huì )話(huà)結束時(shí)完成,則它們應該使用 pam_set_data()規定清除函數,這些執行清除任務(wù)的函數將在應用程序調用 pam_end()接口時(shí)被調用。

【Linux認證的概念】相關(guān)文章:

Linux認證概念03-19

Linux認證考點(diǎn)03-19

Linux認證優(yōu)勢03-19

Linux認證基本介紹03-12

Linux認證賬戶(hù)映射01-23

Linux認證國際現狀03-19

Linux認證國內現狀03-19

Linux認證操作技巧03-19

Linux認證考試科目設置01-18

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看