版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025深圳市廠房出租合同范本
- 2025深圳要求公積金須寫入勞動合同如果沒有這樣做是否是違法
- 二零二五年度金融機構(gòu)員工勞務(wù)派遣服務(wù)合同3篇
- 二零二五年度四人虛擬現(xiàn)實四人合伙人協(xié)議3篇
- 二零二五年度教育培訓(xùn)兼職聘用服務(wù)協(xié)議3篇
- 二零二五年度個人與公司代收代付服務(wù)合同范本3篇
- 二零二五年度教育機構(gòu)兼職教師服務(wù)合同
- 二零二五年度裝飾材料采購及配送合同2篇
- 2025年度健康食品公司送餐服務(wù)協(xié)議3篇
- 二零二五年度食堂餐飲設(shè)備維護用工合同2篇
- 奔馳調(diào)研報告swot
- 中國教育史(第四版)全套教學(xué)課件
- 2024屆廣東省汕頭市高一數(shù)學(xué)第一學(xué)期期末達(dá)標(biāo)檢測試題含解析
- 采購設(shè)備檢驗驗收單
- 福建省泉州實驗中學(xué)2024屆物理高一第一學(xué)期期末質(zhì)量檢測試題含解析
- 公司領(lǐng)導(dǎo)班子設(shè)置方案
- 專業(yè)展覽展示設(shè)計搭建公司
- 為銅制劑正名-冠菌銅? 產(chǎn)品課件-9-7
- 具有磁場保鮮裝置的制冷設(shè)備的制作方法
- 2023年湖南省農(nóng)村信用社(農(nóng)村商業(yè)銀行)招聘員工筆試參考題庫附答案解析
- 七年級上英語知識梳理(牛津上海版)U1-U4
評論
0/150
提交評論