999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux可信路徑安全機制研究及改進

2007-01-01 00:00:00賀也平朱繼峰
計算機應用研究 2007年3期

摘 要:在分析Linux操作系統現有的可信路徑機制的基礎上,采用阻止不可信進程對虛擬終端訪問并且根據不同情況掛起、殺掉小部分進程的方法,提出了一種利用安全注意鍵實現的可信路徑改進方案,提高了Linux可信路徑機制的友好性、可擴充性,并且對用戶登錄的整個過程進行了保護。

關鍵詞:可信路徑; 安全注意鍵; Linux

中圖分類號:TP309文獻標志碼:A

文章編號:1001—3695(2007)03—0109—03

隨著計算機與網絡技術的應用,信息安全問題受到廣泛關注。操作系統作為系統軟件最基礎的部分,其安全問題的解決自然成為關鍵中的關鍵。在現有的構建安全操作系統的各種方法[1]中,基于Linux系統的改進/增強法因其在開發代價及系統效率等方面具有明顯的優勢而被廣泛采用。因此可信路徑(Trusted Path)安全機制在Linux系統上的設計及實現方案是構建基于Linux安全操作系統一個十分重要的方面。

美國國防部制定的《可信計算機系統評價標準》(TCSEC)[2]對可信路徑機制及相關概念作了詳細準確的界定??尚怕窂綑C制指的是一種可以使終端用戶直接與計算機信息系統可信計算基(TCB)[2]進行通信的機制。可信路徑機制只允許由用戶或者TCB激活,并且不能被不可信軟件所偽造。

標志和鑒別機制[3]用于保證只有合法用戶才能進入系統并且以系統允許的方式訪問資源。目前比較通用的做法是采用口令驗證方式,但現實中存在通過模仿登錄過程來竊取用戶口令的特洛伊木馬軟件,這些特洛伊木馬軟件往往擁有與正常登錄界面完全相同的界面。因此TCB必須通過可信路徑機制來防止特洛伊木馬偽造登錄過程,竊取用戶的敏感信息。標志和鑒別機制也只有通過可信路徑才能更好地發揮作用。

同時,TCSEC在B2及以上級別對可信路徑安全機制都作了相應的要求。由此可見,可信路徑安全機制在保護用戶敏感信息、維護系統整體安全性上起著舉足輕重的作用。

1 SAK機制

現有的主流操作系統都在一定程度上提供了可信路徑機制,這些操作系統中的可信路徑一般都是通過安全注意鍵(Secure Attention Key, SAK)的方式實現的。雖然不同系統所使用的SAK并不一致,對SAK的稱呼和處理也有所不同,但其原理基本上是一致的。

1.1 SAK原理及可信性

可信路徑必須能夠保證用戶通過它可以與TCB進行直接通信,并且這種通信不可以被攻擊者截獲或修改。SAK作為實現可信路徑機制的一種方法,主要通過操作系統中斷機制來保證其符合上述要求。

操作系統內核通過中斷機制來對外設的請求進行響應。在外設中斷信號到來之后系統陷入內核態對中斷進行處理;鍵盤中斷也是這樣,用戶按下相應的鍵后,操作系統調用內核中的鍵盤驅動程序對按鍵進行解釋和處理。SAK機制就是規定了某一鍵盤序列,當用戶在終端鍵盤上使用這一鍵盤序列時,操作系統便直接陷入內核,由隸屬于TCB的操作系統內核提供可信路徑的功能。由于應用程序無法截獲鍵盤中斷,這樣就可以保證攻擊者無法截獲或修改可信路徑上的通信。

1.2 Windows系統中的SAK[4]

運行著Windows NT內核的Windows系列操作系統(NT/2000/XP)所默認的SAK序列是“Ctrl+Alt+Del”,微軟的官方文檔稱其為Secure Attention Sequence。以Windows NT Server version 4.0為例,當系統內核檢測到上述三鍵被同時按下時,由Winlogon進程將系統設置為已注銷、已登錄或已鎖定三種不同狀態,然后將當前桌面切換到Winlogon桌面。雖然Winlo ̄gon進程在桌面初始化過程共創建了三個桌面,即應用程序桌面、Winlogon桌面和屏幕保護桌面,但系統采用了“只有Winlogon進程才能夠訪問Winlogon桌面”的安全策略,即用戶及其所屬進程并不能訪問Winlogon桌面以竊取用戶口令。這樣就保證了攻擊者無法截獲或者修改用戶在Winlogon桌面上輸入的口令。

1.3 Linux系統中的SAK[5,6]

本文所討論的Linux系統指的是x86體系結構、字符方式、運行2.4版本內核的Linux系統。此系統默認的SAK序列是“Alt+SysRq+K”,這組鍵是Linux系統中稱為Magic SysRq Key系列的一組。

Linux在系統初始化期間,通過Init進程為每個虛擬終端(tty)[6]創建一個Mingetty進程(默認為六個)。Mingetty進程負責初始化虛擬終端并且提示用戶輸入用戶名。此進程在獲得用戶名之后便會以該用戶名為參數調用Login程序,從而將Mingetty進程替換成Login進程;用戶通過Login進程完成登錄過程。

當用戶在某一虛擬終端使用SAK時,所產生的中斷首先由內核中的鍵盤中斷處理程序截獲,該處理程序最終調用__do_SAK()[5]函數對此進行處理。__do_SAK()函數通過向至少滿足以下三個條件之一的進程發送SIGKILL信號來終止這些進程:

(1)進程的控制終端等于當前虛擬終端。

(2)進程屬于當前會話。

(3)進程將當前虛擬終端作為文件打開。

在殺掉這些進程之后,系統復位當前虛擬終端。由于當前虛擬終端上包括Mingetty或Login在內的所有進程都被殺死,Init進程發現這一情況后便會在當前虛擬終端上重新啟動Mingetty進程來對當前虛擬終端進行初始化,并進一步完成登錄過程。通過上述途徑,當前虛擬終端上已經存在的模擬用戶登錄界面的特洛伊木馬進程就會被殺死。

此方式實現的可信路徑是建立在以下兩點基礎上的:①鍵盤等外設發生中斷時系統直接陷入內核執行相應的處理程序;②假設作為TCB組成部分的系統內核一定是可信的,而用戶進程則不一定可信。

2 Linux可信路徑機制的缺陷

Linux現有的可信路徑機制通過殺掉不可信進程可以在一定程度上達到保護用戶敏感信息的目的,但該機制存在下述缺陷:

(1)實現過于粗暴,對用戶不友好。很顯然,簡單地殺掉滿足上述條件的三種進程固然可以殺掉有害進程,但也不可避免地會殺掉當前虛擬終端上的大多數無辜的用戶進程。

(2)沒有完全消除潛在的威脅。Linux本身提供了在進程間傳遞文件標志符的方法[7]。如果一個進程首先將某一虛擬終端作為文件打開,然后將其文件描述符通過網絡發送給其他進程或者它本身,最后將該文件關閉,那么在文件描述符傳遞過程中所進行的SAK操作將無法殺掉這樣的進程。而且用戶進程可以在用戶登錄的過程中操作終端,這樣就無法對登錄過程進行后續保護。

(3)沒有向其他需要輸入口令的操作提供保護。文獻[8]指出,可信路徑安全機制應該向所有需要輸入用戶身份信息的操作提供保護。所以,為passwd、su等命令提供保護是實現高等級安全操作系統的必然要求。

3 基于SAK機制的改進方案

針對Linux系統現有可信路徑機制存在的上述缺陷,對該可信路徑機制進行了改進,改進后的可信路徑機制稱為TP_IMP。TP_IMP仍采用SAK機制來保證直接與TCB進行通信,但在對SAK的處理上采用了更為合理的方法。

3.1 關鍵措施

一旦可信路徑機制被觸發,可信路徑上的輸入和輸出必須與所有其他不可信進程隔離。文獻[9]中歸納了三種滿足上述需求的方法:①終止所有不可信進程;②掛起所有不可信進程;③阻止不可信進程對終端進行訪問。針對問題①和問題②,TP_IMP對SAK的主要處理是采用阻止不可信進程對終端訪問并且根據不同情況掛起、殺掉小部分進程的方法;

針對問題③,TP_IMP將修改密碼功能集成在可信路徑機制中,并且TP_IMP具有良好的可擴充性,只要稍作修改就可以將su等其他操作集成進來。

TP_IMP 主要由位于應用層的可信路徑服務進程及內核中的SAK驅動模塊、進程控制模塊、內核接口模塊組成。其相互關系如圖1所示。其中應用層虛線框所示的Init進程指的是對原Init進程稍加修改的新Init進程,核心層虛線框所示的鍵盤驅動模塊指的是Linux原有的鍵盤驅動程序。

3.2 功能描述

在功能和表現形式上,TP_IMP具有八種不同的狀態。在系統初始化完畢之后,TP_IMP依據不同條件在不同狀態之間轉換。

(1)等待狀態。系統完成初始化之后正常運行的狀態,這時TP_IMP正等待被激活。

(2)登錄狀態。提示并等待用戶輸入用戶名。

(3)輸入密碼狀態。提示并等待用戶輸入密碼。

(4)菜單狀態。提供可供用戶選擇所需操作的菜單,該菜單上主要有殺掉進程、恢復運行及修改密碼三個可選操作。

(5)確認殺掉狀態。提供“確認殺掉”和“取消”兩個選項。

(6)重新輸入密碼狀態。提示并等待用戶重新輸入密碼。

(7)輸入新密碼狀態。提示并等待用戶輸入新密碼。

(8)確認新密碼狀態。提示并等待用戶重新輸入新設置的密碼以便確認。

其中狀態(2)、(3)基本類似于用戶正常登錄系統所做的操作;狀態(6)—(8)類似于用戶使用passwd命令修改當前口令的步驟。由于一旦殺掉進程,則被殺掉的進程不可能被恢復,所以需要有狀態(5)來獲得用戶的確認。上述各狀態的狀態轉換如圖2所示。圖2中狀態轉換條件如表1所示。

圖1 TP_IMP整體構架圖圖2 TP_IMP狀態轉換圖

3.3 SAK驅動模塊

SAK驅動模塊的主要功能是根據TP_IMP的狀態對SAK進行不同的處理。從圖2可以看出,用戶在八個狀態中的任意狀態都可能并且可以使用SAK,但是在不同的狀態對SAK的處理卻有所不同。在除“等待狀態”以外的其他七個狀態使用SAK,其結果僅僅是導致TP_IMP狀態的改變,所以在這里重點介紹SAK驅動模塊對在“等待狀態”觸發的SAK所作的處理。

在“等待狀態”觸發SAK后,由鍵盤驅動程序調用SAK驅動模塊進行處理。SAK驅動模塊為了保證可信路徑上的輸入和輸出與不可信進程相隔離,①阻止進程對當前虛擬終端的打開和讀寫等操作,使除當前虛擬終端上的可信服務進程以外的進程均無法成功執行針對當前終端的打開和讀寫等系統調用。②檢測是否有進程正在等待進入當前虛擬終端的讀(寫)臨界區,如果有這樣的進程則調用進程處理模塊將這些進程轉移到當前虛擬終端的可信路徑讀(寫)等待隊列上睡眠,并且對用于實現該臨界區的信號量的值進行相應修改。此外,考慮到在觸發SAK時可能會有進程已經調用對當前虛擬終端的讀(寫)系統調用但還未執行到臨界區的情況,如果有這樣的進程,則在其即將申請進入臨界區時將其掛入當前虛擬終端的可信路徑讀(寫)等待隊列中。③如果存在已經進入讀(寫)臨界區的進程,則殺掉這樣的進程。這是因為在“等待狀態”下,如果已經有進程進入當前虛擬終端的讀(寫)臨界區,正在讀(寫)或等待讀(寫)當前虛擬終端,那么該進程很可能是一個用于騙取用戶口令的偽造登錄進程,當然也很有可能是系統的其他進程,但為了安全起見,本文還是將該進程殺掉。進行完上述處理之后,SAK驅動模塊喚醒當前虛擬終端的可信路徑服務進程,TP_IMP轉換到“登錄狀態”。

對于在其他狀態所觸發的SAK操作,SAK驅動模塊僅僅根據圖1的規律改變TP_IMP的狀態。

3.4 進程控制模塊

進程控制模塊主要功能表現為以下三個方面:①將等待進入當前虛擬終端讀(寫)臨界區的進程轉移到該虛擬終端的可信路徑讀(寫)等待隊列上;②殺掉至少符合第1.3節中三個條件之一的所有進程,當然可信路徑服務進程除外;③將當前虛擬終端可信路徑讀(寫)等待隊列上的進程轉移到用于實現讀(寫)臨界區的信號量的等待隊列中,對該信號量的值作相應修改,然后對該信號量執行up()操作,并且通知SAK驅動模塊停止對當前虛擬終端的所有阻塞。最后為用戶創建一個新Shell,TP_IMP進入“等待狀態”。其中功能①的應用已經在上一節中體現;功能②所對應的操作是在“確認殺掉狀態”選擇“確認殺掉”;功能③所對應的操作是在“可信路徑菜單狀態”選擇“恢復運行”。

3.5 內核接口模塊

內核接口模塊主要是通過添加一個新的系統調用Sys_tp來向可信路徑服務進程提供內核部分所提供的服務。Sys_tp主要提供三種服務:①向內核注冊可信服務進程,該服務只能由Init進程調用;②執行進程控制模塊的功能②;③執行進程控制模塊的功能③。后兩種服務只能由可信路徑服務進程調用。

3.6 可信路徑服務進程

可信路徑服務進程集成了原系統中Mingetty、Login及Passwd程序的大部分功能,并且提供符合功能描述的用戶界面。在用戶作出相應選擇后,必要時調用Sys_tp來完成相應操作。

為了防止非法進程注冊成可信路徑服務進程并且請求相應服務,系統調用Sys_tp最初僅僅可以由負責系統初始化的Init進程(進程號為1)調用。在TP_IMP中,Init進程在系統初始化時為每一個虛擬終端都創建一個可信路徑服務進程,也就是用可信路徑服務進程來取代Mingetty進程,并且通過Sys_tp注冊這些進程。這樣各個虛擬終端上的可信路徑服務進程才有權限去調用Sys_tp。

3.7 分析與對比

TP_IMP通過利用SAK機制提供了一個相對安全的用戶與TCB直接通信的環境。但也必須意識到,僅僅憑借可信路徑無法提供足夠的安全性,可信路徑機制需要協同系統中的其他安全機制一同工作才能更好地發揮作用。例如,需要系統的訪問控制機制來保證其他應用進程無權向可信路徑服務進程發送干擾信號,同時也需要完整性保護機制來保證Init進程和可信路徑服務進程不被竄改。

與Linux系統本身提供的可信路徑機制比較,不難分析出TP_IMP具有以下優點:

(1)實現方式對用戶更為友好。通過阻止不可信進程對終端訪問并且根據不同情況掛起、殺掉小部分進程的方法,避免了“濫殺無辜”;為用戶提供菜單選項,由用戶決定是否殺掉相關進程。

(2)通過在整個操作過程中對當前虛擬終端的打開和讀寫等系統調用進行有選擇的阻塞,對登錄及修改密碼等過程進行完整的保護。

(3)具有可擴充性。TP_IMP不僅集成了修改密碼的操作,而且可以看出,只要對TP_IMP稍加修改,就可以將su等其他需要輸入口令的操作集成進來。

4 結束語

本文提出了一種利用SAK機制的Linux可信路徑機制的改進方案,對其工作原理及關鍵技術進行了詳細論述,并對其優點進行了分析。此改進方案提高了Linux現有可信路徑機制的友好性、可擴充性,并且對登錄及修改密碼過程進行了完整的保護。對Linux系統上原有的可信路徑機制的改進可以被實現基于Linux更高等級的安全操作系統所借鑒,可信路徑機制本身也會因為其他安全機制的完善而變得更加可信。

本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 亚洲精品无码高潮喷水A| 国产美女91呻吟求| 国产精品观看视频免费完整版| 久久综合干| 青青青视频蜜桃一区二区| 中文无码精品a∨在线观看| 亚洲91精品视频| 亚洲中文无码av永久伊人| 亚洲精品va| 91色在线观看| 国产成人高清在线精品| 夜夜拍夜夜爽| 久久人午夜亚洲精品无码区| 亚洲无线国产观看| 最新日韩AV网址在线观看| jizz在线免费播放| 成·人免费午夜无码视频在线观看| 亚洲天堂网站在线| 欧美日本一区二区三区免费| 国产一区免费在线观看| 亚洲无码熟妇人妻AV在线| 国产女同自拍视频| 国产精品一线天| 最新痴汉在线无码AV| 国产女人喷水视频| 2020精品极品国产色在线观看| 国产女同自拍视频| 日韩精品高清自在线| 国产特级毛片aaaaaaa高清| 国产精品hd在线播放| 久久黄色免费电影| 欧美在线视频a| 69精品在线观看| a级毛片一区二区免费视频| 欧美激情视频二区三区| 国产国产人成免费视频77777| 亚洲日本精品一区二区| 欧美中文字幕无线码视频| 激情影院内射美女| 四虎在线观看视频高清无码| 亚洲成a人片| 中国毛片网| 最新国产你懂的在线网址| 国产精品30p| 午夜国产精品视频| 99资源在线| 丁香婷婷在线视频| 日韩精品毛片| 91亚洲影院| 亚洲国产精品日韩av专区| 天天做天天爱夜夜爽毛片毛片| 久久综合九九亚洲一区| 国产91九色在线播放| 国产在线自揄拍揄视频网站| 萌白酱国产一区二区| 54pao国产成人免费视频| 国产国语一级毛片| 国产粉嫩粉嫩的18在线播放91 | 欧美日韩第三页| 国产成年女人特黄特色大片免费| 亚洲一区二区约美女探花| 三上悠亚精品二区在线观看| 精品伊人久久大香线蕉网站| 亚洲精品无码成人片在线观看| 国内熟女少妇一线天| 国产区免费| 91在线中文| 中文国产成人精品久久一| 国产网站免费| 久久这里只有精品2| 狠狠亚洲婷婷综合色香| 国产日韩欧美在线视频免费观看| 国产亚洲男人的天堂在线观看| 黄色网站不卡无码| 国产免费网址| 欧美伦理一区| 重口调教一区二区视频| 呦女亚洲一区精品| 日本国产精品| 国产福利免费在线观看| 国产系列在线| 精品国产成人高清在线|