劉意先 吳限 羅康健 張巍耀
【摘要】 為解決計(jì)算機(jī)主機(jī)系統(tǒng)存在的安全漏洞,增強(qiáng)全性,開發(fā)出一款基于移動(dòng)存儲(chǔ)設(shè)備的主機(jī)安全保護(hù)系統(tǒng)(以下簡稱系統(tǒng))。系統(tǒng)針對(duì)當(dāng)前個(gè)人主機(jī)的安全性問題,通過修改主機(jī)MBR引導(dǎo),以及主機(jī)喚醒后的Hook函數(shù)的訪問控制,提出了一種新式的、操作簡單,同時(shí)具有拓展性的主機(jī)安全保護(hù)措施,保證非專業(yè)行的普通用戶的主機(jī)不受威脅。系統(tǒng)具有唯一性和不可否認(rèn)性,防止偽造驗(yàn)證信息.同時(shí)驗(yàn)證設(shè)備與方式具有可更改和可拓展性,由移動(dòng)存儲(chǔ)設(shè)備進(jìn)行動(dòng)態(tài)加密,使以后每次解密的密鑰都是不一樣的,即使丟失移動(dòng)存儲(chǔ)設(shè)備,MBR很難被破解。經(jīng)過測試,系統(tǒng)可以有效的解決主機(jī)的安全問題,實(shí)現(xiàn)主機(jī)安全保護(hù)。
【關(guān)鍵詞】 訪問控制 附加硬件 隨機(jī)密鑰
隨著科技的不斷發(fā)展,計(jì)算機(jī)已經(jīng)成為人們的必需品,但是計(jì)算機(jī)的安全問題一直困擾著廣大用戶。近年來,計(jì)算機(jī)丟失后資料被輕松竊取的情況頻頻發(fā)生。反映出目前的計(jì)算機(jī)應(yīng)用中存在著以下不足[1]:易于泄漏[2]、易于猜測、易于攻擊,無法提供足夠的訪問安全性。針對(duì)以上問題開發(fā)出一款基于移動(dòng)存儲(chǔ)設(shè)備的主機(jī)安全保護(hù)系統(tǒng)。系統(tǒng)提出了一種新式的、操作簡單,同時(shí)具有拓展性的主機(jī)安全保護(hù)措施[3]。以此來保證非專業(yè)行的普通用戶也能確保自己的主機(jī)不受威脅。系統(tǒng)包含上位機(jī)程序模塊以實(shí)現(xiàn)基于windows操作系統(tǒng)的主機(jī)鎖定和對(duì)訪問權(quán)限的控制。底層匯編程序模塊以實(shí)現(xiàn)對(duì)主機(jī)喚醒之前的引導(dǎo)區(qū)域程序的控制,使主機(jī)操作系統(tǒng)的跳轉(zhuǎn)在移動(dòng)存儲(chǔ)設(shè)備模塊實(shí)現(xiàn)。移動(dòng)存儲(chǔ)設(shè)備模塊實(shí)現(xiàn)計(jì)算機(jī)使用過程中如果拔出移動(dòng)存儲(chǔ)設(shè)備,實(shí)現(xiàn)整個(gè)系統(tǒng)輸入鎖死。操作者需要再次刷入驗(yàn)證信息,驗(yàn)證正確后,操作者方可對(duì)主機(jī)進(jìn)行操作。系統(tǒng)的主要特點(diǎn)是移動(dòng)存儲(chǔ)設(shè)備在經(jīng)過軟件安裝后具有唯一性與不可否認(rèn)性,防止偽造驗(yàn)證信息。驗(yàn)證設(shè)備與方式具有可更改和可拓展性,移動(dòng)存儲(chǔ)設(shè)備模塊可由智能手機(jī)替換,通過手機(jī)的屏幕滑動(dòng)解鎖方式,操作方便快捷。同時(shí)由移動(dòng)存儲(chǔ)設(shè)備進(jìn)行動(dòng)態(tài)加密,使以后每次解密的密鑰都是不一樣的,即使丟失移動(dòng)存儲(chǔ)設(shè)備,我們的MBR很難被破解。
在測試中,針對(duì)BIOS讀取引導(dǎo)扇區(qū)將匯編信息顯示在屏幕上和Hook API自動(dòng)鎖死鍵鼠等功能進(jìn)行了測試,還針對(duì)客戶機(jī)掉電或強(qiáng)行關(guān)機(jī)后重啟機(jī)器,不丟失數(shù)據(jù)等可靠性,安全性,兼容性進(jìn)行了測試。測試的結(jié)果表明,本系統(tǒng)可以有效的解決主機(jī)的安全問題,實(shí)現(xiàn)基于移動(dòng)存儲(chǔ)設(shè)備的主機(jī)安全保護(hù)。
一、系統(tǒng)結(jié)構(gòu)
系統(tǒng)針對(duì)當(dāng)前個(gè)人主機(jī)的安全性問題,通過修改主機(jī)MBR引導(dǎo),以及主機(jī)喚醒后的Hook函數(shù)的訪問控制,提出了一種新式的、操作簡單,同時(shí)具有拓展性的主機(jī)安全保護(hù)措施。以此來保證非專業(yè)行的普通用戶也能確保自己的主機(jī)不受威脅。
系統(tǒng)如圖1包括兩部分:1.基于主機(jī)的軟件程序中包含了上位機(jī)程序:基于windows操作系統(tǒng),利用Hook API對(duì)喚醒后的主機(jī)進(jìn)行鎖定,直到接受到移動(dòng)存儲(chǔ)設(shè)備板傳遞來的操作指令。并根據(jù)操作指令對(duì)訪問權(quán)限進(jìn)行控制。底層匯編程序:軟件面向cpu編程。主機(jī)喚醒之前的引導(dǎo)區(qū)域程序,通過修改硬盤1磁道0扇區(qū)的整個(gè)64字節(jié)匯編代碼,使主機(jī)操作系統(tǒng)的跳轉(zhuǎn)在移動(dòng)存儲(chǔ)設(shè)備模塊實(shí)現(xiàn)。 2.安全終端載體移動(dòng)存儲(chǔ)設(shè)備。
二、核心技術(shù)
2.1 移動(dòng)存儲(chǔ)設(shè)備驗(yàn)證模塊
移動(dòng)存儲(chǔ)設(shè)備模塊實(shí)現(xiàn)動(dòng)態(tài)加密和問題。首先將MBR放到ARM的扇區(qū)中,然后進(jìn)行每一位的按位加密,寫好簡單加密算法對(duì)MBR進(jìn)行加密。然后調(diào)用隨機(jī)函數(shù)生成一個(gè)512B的字符串,與原來字符串進(jìn)行按位加密運(yùn)算,解密的時(shí)候用原來的字符串與加密MBR進(jìn)行按位解密運(yùn)算,然后再與原來第一步實(shí)現(xiàn)的加密算法進(jìn)行解密,得到真正的MBR。在進(jìn)入計(jì)算機(jī)之前,只有BIOS,而BIOS有著非常簡單的計(jì)算和處理能力,那么移動(dòng)存儲(chǔ)設(shè)備和計(jì)算機(jī)BIOS的通信只能通過字符串傳遞,而不能通過文件的形式傳遞,那么用512個(gè)字符當(dāng)成文件,將512個(gè)字符傳送到MBR指定的位置上,然后由固化在硬盤扇區(qū)中的程序?qū)⒄嬲腗BR加載到指定扇區(qū),就能夠開機(jī)啟動(dòng)。
2.2 計(jì)算機(jī)引導(dǎo)匯編部分
(1)分析計(jì)算機(jī)啟動(dòng)的引導(dǎo)過程:按下開機(jī)電源→固化在計(jì)算機(jī)主板上的BIOS進(jìn)行開機(jī)自檢→如果自檢成功→檢測第一存儲(chǔ)外設(shè)的第一塊扇區(qū)標(biāo)志位是否是55AA→是則BIOS將第一外設(shè)存儲(chǔ)的第一個(gè)扇區(qū)(也就是MBR)加載到計(jì)算機(jī)內(nèi)存0000:7C00H處,不是則檢測第二存儲(chǔ)外設(shè)…… →然后將計(jì)算機(jī)的控制權(quán)力給了第一外設(shè)的第一快硬盤分區(qū)→計(jì)算機(jī)開始執(zhí)行該扇區(qū)上的代碼 →代碼將執(zhí)行一系列代碼引導(dǎo)計(jì)算機(jī)啟動(dòng)。
(2)由于系統(tǒng)主要在重寫MBR,所以下面來分析下MBR:MBR一共512B,是446B+64B+2B的結(jié)構(gòu):446B是功能性引導(dǎo)代碼部分,這一部分是寫功能代碼的區(qū)域,代碼的長度不能超過446B,如果超過就要跨扇區(qū)寫代碼,對(duì)于程序的穩(wěn)定性和可移植性都有一定的影響,所以將代碼控制在446B;64B是計(jì)算機(jī)分區(qū)表,分區(qū)表的功能是為電腦的磁盤劃分多個(gè)分區(qū)便于用戶管理,最多四個(gè)表項(xiàng)每個(gè)表項(xiàng)16B,如果這一部分丟失,那么計(jì)算機(jī)識(shí)別的硬盤就是一整硬盤,毫無意義,如果加密該64B的內(nèi)容,那么對(duì)于磁盤的信息保護(hù)有了極大的保障。
2B是MBR標(biāo)識(shí)符,常為55AA,如果不是這個(gè)數(shù)值,那么則該扇區(qū)不會(huì)當(dāng)做MBR。
(3)匯編程序大體思路
第一步將計(jì)算機(jī)真正的MBR備份,以防丟失,把MBR存儲(chǔ)到移動(dòng)存儲(chǔ)設(shè)備的存儲(chǔ)器中,然后將MBR進(jìn)行按位加密,這樣即使以后有人得到移動(dòng)存儲(chǔ)設(shè)備外設(shè),也很難能夠分析出來MBR在什么地方;
第二步向計(jì)算機(jī)磁盤的第一扇區(qū)寫上代碼,代碼功能是在屏幕上顯示如圖2。
第三步是將移動(dòng)存儲(chǔ)設(shè)備的代碼寫入到移動(dòng)存儲(chǔ)設(shè)備指定扇區(qū),代碼功能是在屏幕上顯示,如圖3。
ENTER THE SYSTEM然后等待驗(yàn)證識(shí)別,如果成功將MBR解密寫入扇區(qū),如果失敗將虛擬MBR寫入扇區(qū),最后都會(huì)把計(jì)算機(jī)的引導(dǎo)權(quán)給計(jì)算機(jī)。
2.3 上位機(jī)程序模塊
模塊如圖4所示。
2.3.1 開機(jī)自啟原理
在上位機(jī)程序代碼中使用RegCreateKey等注冊(cè)表函數(shù)在注冊(cè)表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run下新建一個(gè)字符串,值為所要自動(dòng)執(zhí)行的程序名,將數(shù)據(jù)設(shè)置為程序所在的目錄,即可將該程序設(shè)置自動(dòng)執(zhí)行。當(dāng)程序第一次執(zhí)行時(shí),寫入注冊(cè)表行為同時(shí)得到執(zhí)行,由此實(shí)現(xiàn)了上位機(jī)程序的開機(jī)自啟動(dòng)。主機(jī)喚醒后,由于Hook程序的自啟動(dòng),因此,主機(jī)屏蔽所有鍵盤鼠標(biāo)消息。
2.3.2 程序相關(guān)源代碼
Hook模塊定義文件
1 LIBRATY Hook
2 EXPORTS
3 SetHook @2
4 SEGMENTS
5 MySec READ WRITE SHARED
由于單一程序調(diào)用的HOOK API是僅在當(dāng)前程序下的線程消息,所以需要設(shè)置動(dòng)態(tài)鏈接庫(DLL)實(shí)現(xiàn)Hook對(duì)系統(tǒng)全局消息的屏蔽。由于DLL由模塊定義文件及Hook函數(shù)設(shè)置編譯得到,所以此處無法附上DLL代碼
加載全局定義
5 #pragma data_seg(“MySec”)
6 HWND g_hWnd=NULL;
7 #pragma data_seg()
8 //#pragma comment (lib,”Hook.lib”)
9 #pragma comment(linker,”/section:MySec,RWS”)
Hook函數(shù)定義
調(diào)用聲明
_declspec(dllimport) void SetHook(HWND hwnd);
DLL及客戶端程序聯(lián)調(diào)
int cxScreen,cyScreen;
cxScreen=GetSystemMetrics(SM_CXSCREEN);
cyScreen=GetSystemMetrics(SM_CXSCREEN);
SetwindowPos(&wndTopMost,0,0,cxScreen,cy
Screen,SWP_SHOWWINDOW);
SetHook(m_hWnd);
直到接收到ARM嵌入式板傳遞來的指紋特征信息碼。
三、創(chuàng)新性、可拓展性
(1)獨(dú)立于主機(jī)的移動(dòng)存儲(chǔ)設(shè)備:通過外置的移動(dòng)存儲(chǔ)設(shè)備,將個(gè)人安全信息識(shí)別提取傳遞的實(shí)現(xiàn)在主機(jī)系統(tǒng)之外,避免由于主機(jī)系統(tǒng)可能存在的漏洞或者其他可以繞過系統(tǒng)安全設(shè)置的工具,突破針對(duì)個(gè)人主機(jī)設(shè)置的安全環(huán)境。(2)對(duì)系統(tǒng)引導(dǎo)扇區(qū)的轉(zhuǎn)移與重寫:仍然通過外置移動(dòng)存儲(chǔ)設(shè)備,將系統(tǒng)1磁道0扇區(qū)的系統(tǒng)引導(dǎo)轉(zhuǎn)移至移動(dòng)存儲(chǔ)設(shè)備閃存,在主機(jī)喚醒之前就已經(jīng)設(shè)置了安全屏障。將提示信息寫入0扇區(qū),為用戶提供操作指南。(3)啟動(dòng)后的主機(jī)訪問控制:以HOOK API對(duì)系統(tǒng)全局消息進(jìn)行屏蔽,同時(shí)寫入注冊(cè)表運(yùn)行,避免非法用戶對(duì)喚醒后主機(jī)進(jìn)行重啟、注銷等操作的以此突破訪問控制。(4)驗(yàn)證方式的可拓展性與多樣性:智能手機(jī)的使用已經(jīng)普遍化、大眾化,手機(jī)用戶的滑屏、手勢解鎖可用以對(duì)系統(tǒng)個(gè)人信息驗(yàn)證進(jìn)行替代,再根據(jù)鍵鼠無線輸入輸出的原理,手機(jī)用戶即可方便快捷地對(duì)主機(jī)進(jìn)行喚醒前后的安全控制。省去了外置生物模塊設(shè)備對(duì)大眾的陌生感與操作困難。
四、結(jié)論
針對(duì)當(dāng)前主機(jī)訪問控制所面臨的嚴(yán)重安全問題,系統(tǒng)從移動(dòng)存儲(chǔ)設(shè)備與密碼體制結(jié)合的角度實(shí)現(xiàn)了對(duì)主機(jī)系統(tǒng)的安全訪問,實(shí)現(xiàn)了對(duì)計(jì)算機(jī)加解密,訪問唯一性,開關(guān)機(jī)驗(yàn)證等安全認(rèn)證功能。與現(xiàn)有的主機(jī)身份認(rèn)證方式相比,系統(tǒng)實(shí)現(xiàn)了主機(jī)安全的自主防護(hù),以移動(dòng)存儲(chǔ)設(shè)備為硬件載體,結(jié)合上層軟件形成了多層次、立體化的安全防御體系,賦予了多層權(quán)限訪問控制策略,極大地保證了主機(jī)訪問控制安全?;谝苿?dòng)存儲(chǔ)設(shè)備的主機(jī)安全保護(hù)系統(tǒng)應(yīng)用前景極其廣闊,根據(jù)生物特征識(shí)別技術(shù)的拓展性與多樣性,可廣泛應(yīng)用于個(gè)人、企事業(yè)單位、政府、軍隊(duì)等用戶存儲(chǔ)隱私或機(jī)密數(shù)據(jù),也可以擴(kuò)展應(yīng)用到銀行業(yè)務(wù)、電子商務(wù)、數(shù)字版權(quán)、專利等更廣泛的領(lǐng)域。
參 考 文 獻(xiàn)
[1] 尤一名. 主機(jī)安全檢測系統(tǒng)的研究和實(shí)現(xiàn)[D]. 北京:北京交通大學(xué),2010
[2] 單國棟. 計(jì)算機(jī)電磁信息泄露與防護(hù)研究[J]. 電子技術(shù)應(yīng)用,2002,(04):3-6
[3] 侯興超. 基于移動(dòng)存儲(chǔ)設(shè)備管理的主機(jī)防信息泄露系統(tǒng)研究[D]. 北京:解放軍信息工程大學(xué),2007