摘 要: 在社會(huì)信息化飛速發(fā)展的今天,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為人們工作和生活的一部分,人們習(xí)慣通過(guò)網(wǎng)絡(luò)進(jìn)行查詢、交流、購(gòu)物和辦公等;計(jì)算機(jī)已經(jīng)遍布各行各業(yè),作為我們生活中不可缺少的工具,已經(jīng)完全融入了工作和生活。因此計(jì)算機(jī)信息的保密問(wèn)題顯得尤為重要,數(shù)據(jù)保密是對(duì)計(jì)算機(jī)信息進(jìn)行保護(hù)的最實(shí)用和最可靠的方法,文件所有者可以通過(guò)自己擁有文件的權(quán)限,如修改文件的讀、寫(xiě)和執(zhí)行等權(quán)限,任意修改刪除系統(tǒng)中的文件。可見(jiàn),只要黑客通過(guò)漏洞獲得管理員的權(quán)限,計(jì)算機(jī)的信息就將被完全掌握。所以如何保護(hù)計(jì)算機(jī)應(yīng)用軟件不受破壞,防篡改技術(shù)成為當(dāng)前一個(gè)研究熱點(diǎn)。
關(guān)鍵詞: USB硬件裝置 計(jì)算機(jī)文件 防篡改系統(tǒng)
1.技術(shù)背景
隨著計(jì)算機(jī)和信息存儲(chǔ)技術(shù)的快速發(fā)展,越來(lái)越多的用戶將大量重要信息、數(shù)據(jù)以文件的形式保存在磁盤(pán)上,文件所有者通過(guò)自己擁有的權(quán)限可以修改文件的讀寫(xiě)和執(zhí)行等操作,甚至擁有操作系統(tǒng)的管理員賬戶可以任意修改、刪除系統(tǒng)中的文件,所以只要黑客通過(guò)漏洞得到管理員的權(quán)限,機(jī)器的信息將被完全掌握。另外,傳統(tǒng)的系統(tǒng)用戶管理也很難識(shí)別文件的健全性和安全性,沒(méi)有任何的防篡改能力。所以在一些安全性要求很高的應(yīng)用場(chǎng)合中,普通的用戶文件管理存在不安全性因素。
鑒于上述情況,當(dāng)今世界各國(guó)軟件研發(fā)工程師都致力于防篡改技術(shù),不管是軟件開(kāi)發(fā),還是硬件設(shè)計(jì)方面,都取得了長(zhǎng)足進(jìn)步,確保了數(shù)據(jù)信息存儲(chǔ)安全。我國(guó)在這些方面也取得了可喜的成績(jī)。軟件有加/解密技術(shù)、防篡改技術(shù)和磁盤(pán)陣列存儲(chǔ)服務(wù)器上劃分RAID級(jí)別等;硬件有研發(fā)USB加密鎖,尤其在一些行業(yè)軟件領(lǐng)域的應(yīng)用更為普遍,如工控組態(tài)軟件、監(jiān)控組態(tài)軟件和軟件保護(hù)等方面,這正是本文要闡述的內(nèi)容。下面結(jié)合微軟操作系統(tǒng)和網(wǎng)頁(yè)防篡改軟件來(lái)講解在軟件技術(shù)和基于USB硬件兩方面是如何實(shí)現(xiàn)的。
2.技術(shù)研究與實(shí)現(xiàn)
2.1技術(shù)研究
USB存儲(chǔ)設(shè)備,通過(guò)USB(Universal Serial Bus,通用串行總線)接口與計(jì)算機(jī)相連具有抗攻擊的物理特性,安全性很高,被廣泛應(yīng)用在身份識(shí)別、網(wǎng)上銀行和VPN(Virtual Private Network,虛擬專用網(wǎng)絡(luò))等領(lǐng)域,并且可以對(duì)其存儲(chǔ)的數(shù)據(jù)進(jìn)行加/解密處理,所以USB存儲(chǔ)設(shè)備還可以用于軟件版權(quán)保護(hù)領(lǐng)域。也可以將一些重要信息,比如密碼、電子證書(shū)、電子簽名和電子圖章等,存儲(chǔ)到USB存儲(chǔ)設(shè)備中,用以保證安全性或者防止遺忘。
PIN(Personal Identification Number,個(gè)人身份識(shí)別碼)驗(yàn)證用戶是否為該信息安全設(shè)備合法持有者。PIN碼一般分為User PIN和SO PIN兩種,User PIN是用戶使用的PIN碼,SO PIN是管理員使用的PIN碼,用于管理信息安全設(shè)備,擁有更高的權(quán)限,比如可以解鎖,可以初始化信息安全設(shè)備等。
2.2實(shí)現(xiàn)方法
步驟1:USB存儲(chǔ)設(shè)備與計(jì)算機(jī)建立連接,并在計(jì)算機(jī)識(shí)別出USB存儲(chǔ)設(shè)備后,USB存儲(chǔ)設(shè)備內(nèi)部的內(nèi)核驅(qū)動(dòng)及管理程序自動(dòng)安裝于計(jì)算機(jī)。其中,內(nèi)核驅(qū)動(dòng)程序及管理程序還可以在USB存儲(chǔ)設(shè)備插入計(jì)算機(jī)前直接安裝在計(jì)算機(jī)內(nèi)部。
由于計(jì)算機(jī)內(nèi)部所有驅(qū)動(dòng)程序——設(shè)備驅(qū)動(dòng)程序、文件系統(tǒng)驅(qū)動(dòng)程序,展示給操作系統(tǒng)的框架都是相同的,故USB存儲(chǔ)設(shè)備內(nèi)核驅(qū)動(dòng)無(wú)需改變已有的驅(qū)動(dòng)程序或I/O系統(tǒng)即可直接插入到計(jì)算機(jī)的文件系統(tǒng)驅(qū)動(dòng)層,具體如圖1所示。
管理程序安裝于計(jì)算機(jī)后,將其自身的全路徑寫(xiě)入計(jì)算機(jī)注冊(cè)表,內(nèi)核驅(qū)動(dòng)可以通過(guò)注冊(cè)表找到USB存儲(chǔ)設(shè)備管理程序。
步驟2:管理程序在磁盤(pán)上的文件中,選擇設(shè)定需要防篡改的文件,并將其文件信息存儲(chǔ)于USB存儲(chǔ)設(shè)備中。
文件信息包括:文件標(biāo)識(shí)、文件路徑、文件名、文件校驗(yàn)碼及文件備份信息,以文件數(shù)據(jù)表的形式存儲(chǔ)于USB存儲(chǔ)設(shè)備內(nèi)部。示例如下:
其中,文件標(biāo)識(shí)、文件路徑、文件名用于尋找文件;文件校驗(yàn)碼檢驗(yàn)文件完整性;文件備份信息,恢復(fù)隱藏在存儲(chǔ)器上備份區(qū)的信息。
步驟3:內(nèi)核驅(qū)動(dòng)檢測(cè)計(jì)算機(jī)訪問(wèn)的磁盤(pán)上的文件的完整性,以判斷文件是正常訪問(wèn),是恢復(fù)已被篡改的該文件,還是由該文件更新USB存儲(chǔ)設(shè)備存儲(chǔ)區(qū)文件數(shù)據(jù)表文件信息中的校驗(yàn)碼和備份信息。
參見(jiàn)圖2,結(jié)合圖1說(shuō)明計(jì)算機(jī)訪問(wèn)文件具體為計(jì)算機(jī)讀取文件時(shí)的實(shí)現(xiàn)步驟。
步驟1(對(duì)應(yīng)上圖201,其余依此類(lèi)推),內(nèi)核驅(qū)動(dòng)在USB存儲(chǔ)設(shè)備存儲(chǔ)區(qū)的文件數(shù)據(jù)表中搜索計(jì)算機(jī)正在訪問(wèn)的磁盤(pán)上的文件的文件標(biāo)識(shí)、文件路徑、文件名,如果搜索結(jié)果為0,則執(zhí)行步驟5,否則,執(zhí)行步驟2。
其中,磁盤(pán)可以是計(jì)算機(jī)中的磁盤(pán),也可以是連接于計(jì)算機(jī)的U盤(pán)等存儲(chǔ)介質(zhì)的磁盤(pán)。
步驟2,內(nèi)核驅(qū)動(dòng)計(jì)算計(jì)算機(jī)正在訪問(wèn)的磁盤(pán)上的文件的校驗(yàn)碼,并比較其是否與USB存儲(chǔ)設(shè)備文件數(shù)據(jù)表中相應(yīng)文件的校驗(yàn)碼相匹配,如果匹配,就執(zhí)行步驟5,否則,執(zhí)行步驟3。
其中,計(jì)算文件校驗(yàn)碼的算法可以具體為MD5、HASH、HMAC或CRC算法。
步驟3,內(nèi)核驅(qū)動(dòng)訪問(wèn)計(jì)算機(jī)中注冊(cè)表,讀取管理程序的全路徑,啟動(dòng)管理程序,并經(jīng)由全局內(nèi)存塊將文件已篡改消息發(fā)送給管理程序,管理程序提示文件已篡改,其中,全局內(nèi)存塊具體是由內(nèi)核驅(qū)動(dòng)申請(qǐng)的一塊全局內(nèi)存,構(gòu)建內(nèi)核驅(qū)動(dòng)和管理程序通信的通道。
步驟4,內(nèi)核驅(qū)動(dòng)使用USB存儲(chǔ)設(shè)備存儲(chǔ)區(qū)的文件數(shù)據(jù)表中的備份信息恢復(fù)磁盤(pán)上的文件。
步驟5,內(nèi)核驅(qū)動(dòng)將訪問(wèn)交由計(jì)算機(jī)I/O管理器。
參見(jiàn)圖3,結(jié)合圖1說(shuō)明計(jì)算機(jī)訪問(wèn)文件具體為計(jì)算機(jī)寫(xiě)入文件時(shí)的實(shí)現(xiàn)步驟:
步驟1(對(duì)應(yīng)上圖