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