專利名稱:磁盤數(shù)據(jù)扇區(qū)級加密方法
技術領域:
本發(fā)明涉及磁盤數(shù)據(jù)加密技術領域,特別是一種磁盤數(shù)據(jù)扇區(qū)級加密方法。
技術背景對磁盤數(shù)據(jù)的加密,從加密的層次上來劃分,有磁盤級(扇區(qū)級)加密方法和文件級加 密方法兩大類。相較于文件級加密方法,磁盤級加密方法的優(yōu)點在于加密強度高,安全性好。由于這一級別的加密方式直接對磁盤物理扇區(qū)進行加密,不考 慮文件等存儲數(shù)據(jù)的邏輯概念,在這種加密方式下,任何存儲在磁盤上的數(shù)據(jù)均是加密的, 相反,采用文件級的加密算法一般只對用戶指定的某些文件進行加密,而這些文件在用戶日 常使用中,系統(tǒng)一般會在臨時目錄等地方臨時存儲這些文件的備份文件,雖然一般情況下, 這些臨時文件在使用后均會被刪除,但由于各種原因,系統(tǒng)在創(chuàng)建臨時文件后,有可能會遺 漏臨時文件而沒有及時刪除這些臨時文件。另外,從理論上來說,即使臨時文件被刪除,只 要這些臨時文件存儲的數(shù)據(jù)區(qū)沒有被覆蓋或做過加密處理等操作,就能容易地通過反刪除等 手段重新獲得,因此,磁盤級的加密方式較文件級的加密方式更加安全。而在扇區(qū)級加密方法中,又有1、 修改硬盤引導的信息表這種方法相對來說比較易破解,能夠用INT 13H的02H子功 能將0柱面0磁頭1扇區(qū)讀出,根據(jù)經(jīng)驗將相應位置數(shù)據(jù)進行修復,實現(xiàn)對硬盤解鎖,因為這些位置的數(shù)據(jù)通常是固定的或有限的幾種情形。就無法對硬盤解鎖和訪問硬盤了。2、 硬盤分區(qū)權限控制此方法的是利用硬盤分區(qū)表中各邏輯盤的分區(qū)鏈表結構,采用匯編編程來實現(xiàn),以破壞,不允許重裝系統(tǒng)。上述方法中容易破解,沒有對數(shù)據(jù)進行真正的加密處理,而且可能導致大量文件損壞, 致使重要資料丟失。發(fā)明內容本發(fā)明的目的在于克服現(xiàn)有技術的不足,提供一種磁盤數(shù)據(jù)扇區(qū)級加密方法,該加密方 法不易破解,加密效果好。為實現(xiàn)上述目的,本發(fā)明提供了一種磁盤數(shù)據(jù)扇區(qū)級加密方法,該加密方法在操作系統(tǒng)和磁盤之間設置數(shù)據(jù)加解密模塊;所述數(shù)據(jù)加解密模塊完全接管操作系統(tǒng)及應用軟件對磁盤的讀寫請求,當系統(tǒng)向磁盤寫 入數(shù)據(jù)時,所述數(shù)據(jù)加解密模塊首先取得控制權,根據(jù)用戶輸入的密碼對要寫入的數(shù)據(jù)進行 加密操作,然后將加密過的數(shù)據(jù)寫入磁盤指定位置;當系統(tǒng)讀向磁盤讀取數(shù)據(jù)時,所述數(shù)據(jù) 加解密模塊同樣優(yōu)先取得控制權,到磁盤指定位置讀取數(shù)據(jù)并根據(jù)用戶輸入的密碼進行解密 操作,然后將解密后的數(shù)據(jù)提交給相應的程序;所述數(shù)據(jù)加解密模塊在指定位置存儲用戶預設的驗證密碼的單向散列值,當一未知用戶 登陸系統(tǒng)并輸入密碼時,所述數(shù)據(jù)加解密模塊將所述未知用戶輸入的密碼作單向散列運算, 并將運算結果與所述驗證密碼的單向散列值進行比較,如相同,則判定所述未知用戶為合法 用戶,根據(jù)該用戶的要求對磁盤進行相應的讀寫操作,如不同,則判定所述未知用戶為非法 用戶,拒絕該用戶對磁盤的讀寫請求。本發(fā)明的有益效果是采用基于物理扇區(qū)級的加密方法,其可將保存在硬盤上的所有數(shù)據(jù) 進行加密,包括加密操作系統(tǒng),任何存儲在磁盤上的數(shù)據(jù)均是加密的,非授權用戶不僅看不 到硬盤上的文件內容,而且也看不到保存在磁盤上的任何文件的名稱。下面結合附圖及具體實施例對本發(fā)明作進一步的詳細說明。
圖l是本發(fā)明實施例的加密和解密原理圖。 圖2是本發(fā)明實施例的計算機啟動流程圖。
具體實施方式
本發(fā)明的磁盤數(shù)據(jù)扇區(qū)級加密方法,在操作系統(tǒng)和磁盤之間設置數(shù)據(jù)加解密模塊,如圖 l所示。所述數(shù)據(jù)加解密模塊完全接管操作系統(tǒng)及應用軟件對磁盤的讀寫請求,當系統(tǒng)向磁盤寫 入數(shù)據(jù)時,所述數(shù)據(jù)加解密模塊首先取得控制權,根據(jù)用戶輸入的密碼對要寫入的數(shù)據(jù)進行 加密操作,然后將加密過的數(shù)據(jù)寫入磁盤指定位置;當系統(tǒng)讀向磁盤讀取數(shù)據(jù)時,所述數(shù)據(jù) 加解密模塊同樣優(yōu)先取得控制權,到磁盤指定位置讀取數(shù)據(jù)并根據(jù)用戶輸入的密碼進行解密 操作,然后將解密后的數(shù)據(jù)提交給相應的程序。所述數(shù)據(jù)加解密模塊在指定位置存儲用戶預設的驗證密碼的單向散列值,當一未知用戶 登陸系統(tǒng)并輸入密碼時,所述數(shù)據(jù)加解密模塊將所述未知用戶輸入的密碼作單向散列運算, 并將運算結果與所述驗證密碼的單向散列值進行比較,如相同,則判定所述未知用戶為合法 用戶,根據(jù)該用戶的要求對磁盤進行相應的讀寫操作,如不同,則判定所述未知用戶為非法 用戶,拒絕該用戶對磁盤的讀寫請求。如圖2所示,采用該方法對磁盤數(shù)據(jù)進行加密的計算機的啟動過程有別于現(xiàn)有技術,其 包括如下步驟
(1) 啟動計算機;
(2) 請求用戶輸入密碼;
(3 )所述數(shù)據(jù)加解密模塊將該用戶輸入的密碼作單向散列運算;
(4) 將運算結果與預設的驗證密碼的單向散列值進行比較,如相同,則判定該用戶為 合法用戶,到磁盤指定位置讀取系統(tǒng)啟動數(shù)據(jù)并根據(jù)用戶輸入的密碼進行解密操作;
(5) 按常規(guī)方式加載操作系統(tǒng)。 本發(fā)明從數(shù)據(jù)寫入加密和讀出解密這兩個過程實現(xiàn)了對磁盤數(shù)據(jù)的加密操作。但由于數(shù)
據(jù)的寫入或讀出過程都需要正確的密碼來進行數(shù)據(jù)加密或解密操作,因此,為方便用戶且不 改變用戶的使用習慣,本發(fā)明采用的是動態(tài)加密和解密的方法,當合法用戶正確輸入密碼并 登陸系統(tǒng)后,所述數(shù)據(jù)加解密模塊自動保存用戶輸入的密碼,當用戶進行寫數(shù)據(jù)操作時,所 述數(shù)據(jù)加解密模塊自動加載保存的密碼,以對要寫入的數(shù)據(jù)進行加密操作;當用戶進行讀數(shù) 據(jù)操作時,所述數(shù)據(jù)加解密模塊到磁盤指定位置讀取數(shù)據(jù)并自動加載保存的密碼,以對數(shù)據(jù) 進行解密操作。從而使得數(shù)據(jù)的寫入和讀出過程對合法用戶來說都是透明的,其根本感覺不 到采用本發(fā)明的加密方法后數(shù)據(jù)的讀寫操作有什么不同,磁盤上存儲的數(shù)據(jù)和未加密時的數(shù) 據(jù)完全一樣,能夠以正常的方式直接使用磁盤數(shù)據(jù)。
各種磁盤加密其原理是相同的,都可抽象為鉤子(hook)理論。即在數(shù)據(jù)從用戶界面到 磁盤的這個通路上的某個地方,安裝自己的處理過程,即"鉤子"。當寫入請求到達的時候 先把數(shù)據(jù)經(jīng)過數(shù)學變換,然后再調用原來路徑上的處理過程,寫入到磁盤,當請求到達的時 候,先把數(shù)據(jù)經(jīng)過反向變換,然后再傳遞到上層應用程序。本發(fā)明的加密方法采用過濾層驅 動程序實現(xiàn)硬盤加密,即把鉤子放置在磁盤驅動程序的下一層,通過完全接管操作系統(tǒng)對磁 盤的讀寫請求,在扇區(qū)級別上進行加密解密,其作用范圍和硬件加密相同,都是整個磁盤。 這個鉤子的實現(xiàn)不是普通意義上的簡單函數(shù)地址替換,而是通過一個完整的過濾層設備驅動 程序來實現(xiàn)。它在硬件驅動層提供與硬盤無關的訪問接口,上層把硬盤視為連續(xù)的存儲介質 ;在I/0服務接口層提供與文件系統(tǒng)格式無關的文件系統(tǒng)訪問接口,上層把硬盤視為統(tǒng)一的 文件系統(tǒng)而不管該文件系格式是什么。這樣,由于采用比較底層的驅動程序來實現(xiàn),可以和 操作系統(tǒng)融為一體,速度更快,加密更徹底。這種硬盤加密方法具備速度較快,算法可變, 與文件系統(tǒng)無關,使用范圍廣等特點。雖然,由于使用了驅動程序,實現(xiàn)比較有難度,但是 相對于在用戶層應用程序中實現(xiàn)來說,它和操作系統(tǒng)融為一體,而且在不同的平臺上其實現(xiàn)機制完全相同,因此具有更好適應性。
本發(fā)明可采用目前國際流行的加密算法,且有多種加密算法供用戶選擇,根據(jù)現(xiàn)代密碼 學的原理我們可知,在沒有密鑰的情況下,即使破解者在知道加密算法等各種前提下,要想 解密加密后的數(shù)據(jù),也是非常困難的,當用戶設置的密鑰長度達到16個字符以上時,在現(xiàn)有 計算機運算速度的條件下,從理論上分析,要想解密加密后的數(shù)據(jù),所需的時間也是以百萬 年為計數(shù)單位的。
在用戶輸入密鑰,正常啟動計算機的情況下,存儲在磁盤上的數(shù)據(jù)對用戶是透明的(即 在用戶看來,存儲在磁盤上的數(shù)據(jù)是明文),因此,本發(fā)明的加密方法無法防止在計算機正 常使用的情況下,其他用戶從網(wǎng)絡等傳輸媒介拷貝用戶的資料,她只適用于在計算機關機、 休眠以及丟失的情況下(因為在這種情況下,計算機一般處于關機或休眠狀態(tài),從 Etim-DiskEnc的原理可知,磁盤上存儲的所有數(shù)據(jù)均是加密的,在計算機關機或休眠的狀態(tài) 下,要想解密磁盤上的數(shù)據(jù),必須輸入密鑰),能夠確保計算機中的數(shù)據(jù)不被泄密。
本發(fā)明加密磁盤的數(shù)據(jù)安全完全依賴于用戶預設的密碼。為了防止破解,本發(fā)明的加密 方法不在磁盤上存儲用戶的預設密碼,而是存儲用戶預設密碼的單向散列值,用于比較未知 用戶輸入密碼的正確性,而根據(jù)現(xiàn)有密碼學理論可知,通過散列值是無法逆推出原始輸入的 預設密碼的。事實上,本發(fā)明的加密方法完全可以不在磁盤上存儲任何和密碼相關的信息, 只要用戶輸入任何密鑰就繼續(xù)執(zhí)行,在這種執(zhí)行流程下,只有當用戶輸入的密碼是正確的情 況下,才能正確解密磁盤的數(shù)據(jù),否則,"解密"后的數(shù)據(jù)只會更亂,當然操作系統(tǒng)也會 無法啟動,用戶只有通過重新啟動計算機再輸入正確的密碼來使用計算機系統(tǒng)。
當然,由以上的分析可知,采用本發(fā)明的加密方法,在密碼丟失的情況下,磁盤上的數(shù) 據(jù)將無法回復。因此,用戶在預設密碼后, 一定要牢記自己預設的加密密碼。
以上是本發(fā)明的較佳實施例,凡依本發(fā)明技術方案所作的改變,所產(chǎn)生的功能作用未超 出本發(fā)明技術方案的范圍時,均屬于本發(fā)明的保護范圍。
權利要求
1.一種磁盤數(shù)據(jù)扇區(qū)級加密方法,其特征在于在操作系統(tǒng)和磁盤之間設置數(shù)據(jù)加解密模塊;所述數(shù)據(jù)加解密模塊完全接管操作系統(tǒng)及應用軟件對磁盤的讀寫請求,當系統(tǒng)向磁盤寫入數(shù)據(jù)時,所述數(shù)據(jù)加解密模塊首先取得控制權,根據(jù)用戶輸入的密碼對要寫入的數(shù)據(jù)進行加密操作,然后將加密過的數(shù)據(jù)寫入磁盤指定位置;當系統(tǒng)讀向磁盤讀取數(shù)據(jù)時,所述數(shù)據(jù)加解密模塊同樣優(yōu)先取得控制權,到磁盤指定位置讀取數(shù)據(jù)并根據(jù)用戶輸入的密碼進行解密操作,然后將解密后的數(shù)據(jù)提交給相應的程序;所述數(shù)據(jù)加解密模塊在指定位置存儲用戶預設的驗證密碼的單向散列值,當一未知用戶登陸系統(tǒng)并輸入密碼時,所述數(shù)據(jù)加解密模塊將所述未知用戶輸入的密碼作單向散列運算,并將運算結果與所述驗證密碼的單向散列值進行比較,如相同,則判定所述未知用戶為合法用戶,根據(jù)該用戶的要求對磁盤進行相應的讀寫操作,如不同,則判定所述未知用戶為非法用戶,拒絕該用戶對磁盤的讀寫請求。
2.根據(jù)權利要求l所述的磁盤數(shù)據(jù)扇區(qū)級加密方法,其特征在于采 用該方法對磁盤數(shù)據(jù)進行加密的計算機的啟動過程包括如下步驟(1) 啟動計算機;(2) 請求用戶輸入密碼;(3 )所述數(shù)據(jù)加解密模塊將該用戶輸入的密碼作單向散列運算;(4) 將運算結果與預設的驗證密碼的單向散列值進行比較,如相同,則判定該用戶為 合法用戶,到磁盤指定位置讀取系統(tǒng)啟動數(shù)據(jù)并根據(jù)用戶輸入的密碼進行解密操作;(5) 按常規(guī)方式加載操作系統(tǒng)。
3.根據(jù)權利要求1或2所述的磁盤數(shù)據(jù)扇區(qū)級加密方法,其特征在于 :當合法用戶正確輸入密碼并登陸系統(tǒng)后,所述數(shù)據(jù)加解密模塊自動保存用戶輸入的密碼, 當用戶進行寫數(shù)據(jù)操作時,所述數(shù)據(jù)加解密模塊自動加載保存的密碼,以對要寫入的數(shù)據(jù)進 行加密操作;當用戶進行讀數(shù)據(jù)操作時,所述數(shù)據(jù)加解密模塊到磁盤指定位置讀取數(shù)據(jù)并自動加載保存的密碼,以對數(shù)據(jù)進行解密操作。
全文摘要
本發(fā)明涉及磁盤數(shù)據(jù)加密技術領域,特別是一種磁盤數(shù)據(jù)扇區(qū)級加密方法,其在操作系統(tǒng)和磁盤之間設置數(shù)據(jù)加解密模塊,其完全接管操作系統(tǒng)及應用軟件對磁盤的讀寫請求,寫入磁盤數(shù)據(jù)時,該模塊首先取得控制權,根據(jù)用戶輸入的密碼進行加密操作,然后將加密過的數(shù)據(jù)寫入磁盤指定位置;讀取磁盤數(shù)據(jù)時,該模塊同樣優(yōu)先取得控制權,到磁盤指定位置讀取數(shù)據(jù)并根據(jù)用戶輸入的密碼進行解密操作,然后將解密后的數(shù)據(jù)提交給相應程序;所述數(shù)據(jù)加解密模塊在指定位置存儲用戶預設的驗證密碼的單向散列值,當一未知用戶登陸系統(tǒng)并輸入密碼時,將該用戶輸入的密碼的單向散列值與驗證密碼的單向散列值作比較,以驗證合法用戶。該加密方法不易破解,加密效果好。
文檔編號G06F9/445GK101604296SQ200910304960
公開日2009年12月16日 申請日期2009年7月29日 優(yōu)先權日2009年7月29日
發(fā)明者吳慧明, 吳濱華, 楊小焰, 林華斌, 洪躍強, 許元進 申請人:福建伊時代信息科技股份有限公司