Linux中用戶登錄認(rèn)證機制的研究_第1頁
Linux中用戶登錄認(rèn)證機制的研究_第2頁
Linux中用戶登錄認(rèn)證機制的研究_第3頁
Linux中用戶登錄認(rèn)證機制的研究_第4頁
Linux中用戶登錄認(rèn)證機制的研究_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Linux用戶認(rèn)證過程分析組員:李濤王智剛孔令軍

姚登波汪小琳專業(yè):計算機科學(xué)與技術(shù)完成時間:2012年6月5日目錄啟動到登錄界面的流程1LOGIN程序2Login中的加密算法crypt3嵌入式認(rèn)證模塊——PAM4啟動到登錄界面的流程LOGIN進(jìn)程getty進(jìn)程/etc/inittabstart_kernel

initstart_kernel介紹這個函數(shù)從開始到cpu_idle().這個階段主要是對系統(tǒng)的”經(jīng)濟根底”,即各種資源的初始化,僅由主cpu進(jìn)行,到最后執(zhí)行init函數(shù),再創(chuàng)立init進(jìn)程。start_kernel中局部代碼:asmlinkagevoid__initstart_kernel(void){

…… kernel_thread(init,NULL,CLONE_FS|CLONE_FILES|CLONE_SIGNAL);//執(zhí)行init函數(shù),再創(chuàng)立init進(jìn)程?!瓆

init介紹Init()的執(zhí)行,這是對系統(tǒng)的“上層建筑”的初始化。此段還是由主cpu執(zhí)行。函數(shù)init〔〕的代碼在init/main.c中,這個函數(shù)本身并不長,但實際作用很大。我們現(xiàn)在關(guān)心的重點是init函數(shù)最后執(zhí)行的execve()函數(shù)局部,此局部的執(zhí)行就是系統(tǒng)的第一個進(jìn)程init真正執(zhí)行。staticintinit(void*unused){…….execve("/sbin/init",argv_init,envp_init);//redhat9.0中有此程序。此程序執(zhí)行/etc/inittab。 execve("/etc/init",argv_init,envp_init); execve("/bin/init",argv_init,envp_init);……..}/etc/inittab文件[運行g(shù)etty進(jìn)程]由注釋可知道,該文件是init進(jìn)程的要執(zhí)行的文件。其中有系統(tǒng)的運行級別的配置,和getty進(jìn)程的啟動,在此我們關(guān)心的是getty進(jìn)程。現(xiàn)在getty進(jìn)程就啟動了。#inittab

ThisfiledescribeshowtheINITprocessshouldsetup

#

thesysteminacertainrun-level.…….#Rungettysinstandardrunlevels

1:2345:respawn:/sbin/mingettytty1

6:2345:respawn:/sbin/mingettytty6…….//respwan:表示如果本行的命令進(jìn)程終止后,init進(jìn)程應(yīng)該馬上重新啟動相應(yīng)的進(jìn)程;getty進(jìn)程.翻開終端命令行。.輸出login提示符/*do_prompt-showloginprompt,optionallyprecededby/etc/issuecontents*/Voiddo_prompt(op,tp)//(顯示提示){……(void)write(1,LOGIN,sizeof(LOGIN)-1); /*alwaysshowloginprompt*///把login:提示符寫到終端上,1代表標(biāo)準(zhǔn)輸出,即終端?!瓆.執(zhí)行l(wèi)ogin程序。Getty程序中調(diào)用(void)execl(options.login,options.login,"--",logname,NULL);execl()再調(diào)用__execve(path,(char*const*)argv,__environ);執(zhí)行進(jìn)程調(diào)度,就啟動了,login進(jìn)程。LOGIN程序流程第一第二第三獲得用戶名。讀取/etc/passwd,與/etc/shadow文件。比較兩個密文顯示password:,獲得密碼。檢測該用戶的登錄shell是否為/etc/nologin成功:啟動用戶shell不成功:重新再登錄讀取/etc/passwd,與/etc/shadow文件讀取/etc/passwd,與/etc/shadow文件。 if((pwd=getpwnam(username))){//從/etc/passwd中獲得與登錄用戶相關(guān)信息。#ifdefSHADOW_PWD structspwd*sp; if((sp=getspnam(username)))//讀取/etc/shadow中數(shù)據(jù)。存放到sp中。

pwd->pw_passwd=sp->sp_pwdp;#endif顯示password:獲得密碼pp=getpass(_(“Password:”));//char*getpass(prompt):輸出提示符,并讀口令。檢測該用戶的登錄shell是否為/etc/nologinif(pwd==NULL||pwd->pw_uid)checknologin();//檢查有無/etc/nologin文件,如果有那么表示禁止該用戶登錄,輸出///etc/nologin中的內(nèi)容檢測密碼if(pwd&&!strcmp(p,pwd->pw_passwd))//比較兩個密文是否相同break;//相同那么break出L694行的循環(huán),即認(rèn)證通過,到L829行運行

printf(_("Loginincorrect\n"));//輸出“Loginincorrect”,表示密碼不對badlogin(username);/*logALLbadlogins*///在syslog中記錄登錄失敗記錄Login中的加密算法crypt接下來我們把目光放在Login中的char*crypt(constchar*key,constchar*salt)函數(shù)以及具體的密碼比對方法上。我們都知道,在信息平安領(lǐng)域中,系統(tǒng)平安性是非常非常重要的。如果輕易讓別人獲得了root權(quán)限,那我們的系統(tǒng)將完全落入別人的掌控之中。所以,為了提高平安性,Linux在用戶登錄驗證的過程中,采用了一些特別的方法。比方加密存放用戶密碼,或者使用嵌入式認(rèn)證模塊——PAM。這里,我們首先討論一下密碼加密的問題。

Crypt加密原理

加密函數(shù)char*crypt(constchar*key,constchar*salt)crypt為支持不同的方式,將salt進(jìn)行格式化,格式為: $id$salt$encoded〔這也是保存在密碼文件中的格式〕IdMethod1MD5(12個salt字符)2aBlowfish5SHA-256(12個salt字符)6SHA-512(12個salt字符)

/etc/shadow文件密碼分析

系統(tǒng)/etc/shadow: litao:$1$XkUtEjE/$8ZUyvb98gKuGRc3aSUQ1t0:15496:0:99999:7:::第一、二個$之間的為使用的加密算法類型標(biāo)示,第二、三個$之間的局部為salt,第三個$后面的局部為加密后的密碼。 由$1$可以知道,crypt使用MD5算法。嵌入式認(rèn)證模塊——PAM

為平安起見,計算機系統(tǒng)只有經(jīng)過授權(quán)的合法用戶才能訪問,在這里,如何正確的鑒別用戶的真實身份是一個關(guān)鍵問題。其中無論是比較知名的Kerberos或者基于智能卡的鑒別系統(tǒng),都有一個通

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論