新四季網

一種windows平臺上的通用數字版權保護方法

2023-04-29 09:59:26

專利名稱:一種windows平臺上的通用數字版權保護方法
技術領域:
本發明設計信息安全領域,特別涉及WINDOWS平臺上的通用數字版權保護方法。
背景技術:
數字版權管理(digital rights management,以下簡稱DRM)是指內容出版商或版
權持有者為管理文件使用權和保護文件數字版權而採取的綜合性解決方案。隨著信息數字
化和網際網路技術不斷發展,通過網際網路等媒介進行信息拷貝和傳播隨意性很大,嚴重侵害
了內容出版商的權益,因此控制和管理信息數據化後的使用權顯得尤為重要。DRM技術的主
要目的就在於保護信息版權和內容提供商或版權持有者的合法商業利益。 目前所有DRM解決方案在具體設計和實現上略有不同,但是其基本原理和架構是
一致的。
基本工作流程如下 1.內容提供商將原始內容文件交由保護提供商進行出售和管理; 2.保護提供商提供伺服器,負責對原始內容文件進行加密、打包形成特定類型的
文件供用戶購買和下載; 3.同時,保護提供商建立授權中心。生成授權許可證與該文件關聯(通常使用密 鑰,如APPLE的FairPlay),將授權證書(包含權限證書和密鑰信息等)存放在授權中心服 務器; 4.用戶在網絡上購買並下載打包文件及相關閱讀或定製播放軟體到自己的客戶 端設備( 一般為PC機或筆記本電腦),使用定製播放軟體來打開打包文件;
5.存放於打包文件頭部的URL連結等信息自動與授權中心伺服器建立連接,驗證 授權信息; 6.用戶授權驗證成功,授權中心伺服器將解密密鑰和權限證書發送給用戶;當 然,如果是未經授權的用戶嘗試打開打包文件時,驗證就會失敗,授權中心伺服器就不會將 授權證書和密鑰發送給用戶,從而文件被拒絕訪問;
7.軟體利用密鑰解密文件,並在規定的權限下使用文件。 以上DRM框架,要求用戶聯網訪問授權中心進行驗證,並且使用指定的打開或者 播放軟體(定製軟體)查看文件內容,用戶需要根據不同的文件類型下載相應的軟體。給 普通用戶的使用帶來了許多不便。

發明內容
為了克服現有技術缺陷,本發明提供一種支持本地驗證查看的WINDOWS平臺上的
通用數字版權保護方法。 本發明的技術方案如下 當用戶購買保密內容文件時,由保護提供商所提供伺服器對內容提供商的原始內 容文件進行加密保護,包括以下步驟,
3
步驟1. l,提取用戶所用客戶端設備的硬體指紋,採用該硬體指紋對原始內容文件 進行加密得到保密內容文件; 步驟1. 2,將解包程序、保密內容文件、解密程序、動態連結庫和驅動文件打包成一 個打包文件並提供給用戶,所述驅動文件包括隱藏文件夾驅動、隱藏進程驅動以及API攔 截驅動; 當用戶需要瀏覽保護內容文件,在客戶端設備運行所獲得的打包文件時,由客戶 端設備實現本地解密觀看,包括以下步驟, 步驟2. 1 ,打包文件中的解包程序自動運行,開始進行解包操作; 步驟2. 2,解包程序解包釋放出文件中的驅動文件並加載到驅動層,通過加載隱
藏文件夾驅動將驗證相關的所有文件夾隱藏,通過加載隱藏進程驅動將驗證相關的進程隱
藏; 步驟2. 3,解包程序解包釋放出保密內容文件、解密程序和動態連結庫; 步驟2. 4,解包完成,自動運行解密程序,解密程序的進程操作包括自動提取客戶
端設備的硬體指紋,採用該硬體指紋對保密內容文件進行解密,在內存中生成脫密的原始
內容文件,自動關聯用於打開觀看原始內容文件的第三方應用程式;並向驅動層的API攔
截驅動發送消息,通過該消息告知其攔截第三方應用程式打開原始內容文件的絕對路徑,
然後等待API攔截驅動返回消息; 步驟2. 5, API攔截驅動攔截到第三方應用程式打開該原始內容文件的絕對路徑 後,與之前生成得到原始內容文件的絕對路徑進行比較,若路徑吻合則記錄第三方應用程 序的進程ID ; 步驟2. 6, API攔截驅動屏蔽對原始內容文件的寫操作,並且將所記錄第三方應用 程序的進程ID返回給解密程序的進程; 步驟2.7,解密程序的進程從API攔截驅動的返回消息中獲得第三方應用程式的 進程ID,該進程ID即為打開原始內容文件的進程ID ;根據第三方應用程式的進程ID,將動 態連結庫掛接到第三方應用程式,屏蔽用戶通過第三方應用程式對原始內容文件進行的非 法操作; 步驟2.8,解密程序的進程等待第三方應用程式的進程退出,並在退出後卸載鉤動 態連結庫以及隱藏文件夾驅動、隱藏進程驅動、API攔截驅動,刪除解包程序解包釋放的所 有文件。 本發明採用硬體指紋加密方法實現本地驗證,方便用戶在沒聯網的情況下瀏覽文 件;採用內存虛擬文件技術,使用戶無法直接接觸到保護文件明文;採用技術驅動屏蔽進 行自我保護和對第三方程序監控,保密內容文件格式不限,實現了與文件類型無關的保護。 本發明所提供的本地驗證以及通用保護,極大地提升了用戶的體驗。用戶瀏覽內容時既不 再需要聯網,也不需下載專門的瀏覽工具。


圖1為實施例的伺服器端文件打包流程圖。
圖2為實施例的DRM文件解包流程圖。
圖3為實施例的客戶端工作流程圖。
具體實施例方式
本發明技術方案分為伺服器和客戶端兩個部分實現。在伺服器端,實現原始內容文件加密、打包分發給用戶。在客戶端,一方面要支持各種文件格式的正常瀏覽,一方面要阻止被保護內容的非法擴散。以下結合附圖和實施例說明本發明技術方案。
參見圖l,在保護提供商的伺服器上進行以下操作 首先,提取用戶所用客戶端設備的硬體指紋,採用該硬體指紋對原始內容文件進行加密得到保密內容文件。 實施例運行加密程序(記為Encryption, exe),輸入原始內容文件在伺服器上的路徑,對原始內容文件進行加密,得到的保密內容文件記為CIPHER. CT,即為密文。具體實施時,Encryption, exe可採用現有技術實現,例如美國的des算法。原始內容文件就是內容提供商所提供的源文件,保護提供商需要對其內容進行保護,防止合法用戶進行非法擴散。
然後,將解包程序、保密內容文件、解密程序、動態連結庫和驅動文件打包成一個打包文件並提供給用戶,所述驅動文件包括隱藏文件夾驅動、隱藏進程驅動以及API攔截驅動。 實施例的DRM文件結構如下表所示
解包程序(UNBIND. EXE)
密文(CIPHER. CT)
解密程序(DECIPHER. EXE)
動態連結庫(Mousehook. dll)
Driver(driver—hook—file, sys)
Driver(driver_hook_proc. sys)
Driver (driver_hook_ssdt. sys) 實施例運行打包程序BIND. EXE,將解包程序UNBIND. EXE,解密程序DECIPHER.EXE,保密內容文件CIPHER. CT,動態連結庫MouseHook. DLL以及各種驅動文件打包成一個打包文件,命名為DRM. EXE。其中BIND. EXE、 UNBIND. EXE、 DECIPHER. EXE和MouseHook. DLL在現有C++技術中已經提供,例如BIND. EXE就是C++的現有讀寫文件的庫函數。驅動文件包括隱藏文件夾驅動driver_hook_file. sys、隱藏進程驅動driver_hook_proc. sys以及API攔截驅動driVer_h00k_SSdt. sys,具體實施時根據功能採用基於C語言實現這些驅動即可。 保護提供商可通過光碟、U盤等移動數據存儲設備或者網絡將DRM. EXE交付給用戶,用戶需要打開觀看時將DRM. EXE裝載到自己的客戶端設備。在用戶的客戶端設備上進行以下操作 步驟2. 1 ,打包文件中的解包程序自動運行,開始進行解包操作。 客戶只需通過滑鼠點擊運行從保護提供商得到的DRM. EXE, DRM. EXE程序頭部的
UNBIND. EXE自動運行,開始進行解包操作,參見圖4。 步驟2. 2,解包程序解包釋放出文件中的驅動文件並加載到驅動層,通過加載隱藏文件夾驅動將驗證相關的所有文件夾隱藏,通過加載隱藏進程驅動將驗證相關的進程隱藏。 實施例中,解包程序UNBIND. EXE對DRM. EXE解包時,首先在客戶端設備的當前目錄釋放驅動文件,並加載驅動,即隱藏文件夾驅動driverjiook—file. sys、隱藏進程驅雲力driver_hook_proc. sys以及API攔截驅雲力driver_hook_ssdt. sys。其中隱藏文件夾驅動通過替換SystemQueryZwQueryDirectoryFile函數(Windows查文件路徑的函數)將本系統生成的所有文件夾隱藏,即圖2中所示文件夾DRMDIRD和文件夾DRIVERDIR,其中文件夾DRMDIRD用於放置解密程序DECIPHER. EXE、密文CIPHER. CT和Mousehook. dll,文件夾RIVERDIR用於放置隱藏文件夾驅動driver_hook_file. sys、隱藏進程驅動driver_hook_proc. sys以及API攔截驅動driver_hook_ssdt. sys。隱藏進程驅動通過替換ZwQuerySystemlnformation函數(Windows查進程信息的函數)將本系統的進程信息隱藏起來,包括DRM進程和DECIPHER進程。 步驟2. 3,解包程序解包釋放出保密內容文件、解密程序和動態連結庫。 實施例中,解包程序UNBIND. EXE釋放保密內容文件CIPHER. CT,解密程序
DECIPHER. EXE以及動態連結庫MouseHook. DLL。 步驟2.4,解包完成,自動運行解密程序。在此步驟中,解密程序的進程操作包括自動提取客戶端設備的硬體指紋,採用該硬體指紋對保密內容文件進行解密,在內存中生成脫密的原始內容文件,自動關聯用於打開觀看原始內容文件的第三方應用程式;並向驅動層的API攔截驅動發送消息,通過該消息告知其攔截打開原始內容文件的絕對路徑,然後等待API攔截驅動返回消息。 實施例在解包完成後,自動運行解密程序DECiraER.EXE,對保密內容文件CIPHER. CT進行解密,在內存中生成和內容提供商所提供源文件相應的原始內容文件,並自動從客戶端設備中選擇作業系統已關聯的第三方應用程式來打開原始內容文件。同時向驅動層的API攔截驅動發送消息,告知API攔截驅動脫密文件的絕對路徑。解密程序的進程DECIPHER等待驅動層的返回消息。 步驟2. 5, API攔截驅動攔截到第三方應用程式打開該原始內容文件的絕對路徑後,與之前生成得到原始內容文件的絕對路徑進行比較,若路徑吻合則記錄第三方應用程式的進程ID。 實施例中,API攔截驅動通過對計算機系統中SSDT表的修改,替換了系統原本的ZwFileCreate函數(Windows創建打開文件函數)。通過替換函數NewZwFileCreate,每打開一個文件,都獲取該文件的絕對路徑,與之前得到的原始內容文件的絕對路徑進行比較,記錄下路徑吻合的第三方應用程式的進程ID,路徑不吻合則不做處理。具體實施時,第三方應用程式每打開一個原始內容文件,API攔截驅動都響應解密程序的進程告知進行攔截,然後與之前得到的原始內容文件的絕對路徑進行比較。在步驟2. 4中解密程序的進程操作採
6用硬體指紋對保密內容文件進行解密,在內存中生成脫密的原始內容文件,即形成了之前的原始內容文件的絕對路徑。 步驟2. 6, API攔截驅動屏蔽對原始內容文件的寫操作,並且將所記錄第三方應用程式的進程ID返回給解密程序的進程。 實施例中,API攔截驅動一方面替換ZwFileWrite函數(Windows向文件寫內容的操作函數),將所用執行寫操作的進程的進程ID與我們記錄下的進程ID進行比較。如果相等,則設置IoStatusBlock- > Information = 0, IoStatusBlock- > Status = STATUS—INVALIDJiANDLE(Windows API內容, 說明沒有找到句柄通知第三方自動處理),並且直接返回STATUS_INVALID_VARIANT (C++定義的操作),從而在驅動層屏蔽了該進程的寫操作。如果不相等則繼續調用系統原本的ZwFileWrite函數,進行正常的系統寫操作。另一方面,將記錄下的進程ID發送給應用層進程DECIPHER。 步驟2.7,解密程序的進程從API攔截驅動的返回消息中獲得第三方應用程式的進程ID,該進程ID即為打開原始內容文件的進程ID。 實施例中,進程DECIPHER獲得從驅動層送回的進程ID,該ID即為打開脫密文件的進程ID。有了該ID,就可以對該進程掛接MouseHook.DLL,從而在應用層實現屏蔽用戶通過第三方應用程式對原始內容文件進行的非法操作,例如屏蔽剪切、複製等功能。具體實施時,MouseHook. DLL可以採用鉤子函數技術實現,提供鍵鼠鉤子功能。 步驟2.8,解密程序的進程等待第三方應用程式的進程退出,並在退出後卸載動態連結庫以及隱藏文件夾驅動、隱藏進程驅動、API攔截驅動,刪除解包程序解包釋放的所有又件。 實施例中,進程DECIPHER等待第三方應用程式的進程退出。退出後,卸載鍵鼠鉤子MouseHook. DIX以及驅動driver—hook—file. sys、driver_hook_proc. sys以及driver—hook_SSdt. sys,刪除所釋放的所有文件,包括有解密程序DECIPHER. EXE、密文CIPHER.CT、 Mousehook. dll、隱藏文件夾驅動driver—hook—file, sys、隱藏進程驅動driver—hook—proc. sys以及API攔截驅動driver_hook_ssdt. sys。 為便於理解本發明技術方案起見,本發明提供了附圖3,說明客戶端設備實現本地解密觀看時應用層和用戶層分別的情況 在用戶層中,用戶查看要求查看進程以及文件信息,而應用層則通過進程隱藏驅動和文件隱藏驅動,返回過濾後的進程文件信息到用戶層。用戶層中,用戶輸入的鍵鼠消息由動態連結庫MouseHook. dll過濾部分消息,屏蔽程序進行寫操作並返回寫文件失敗;解密程序DECIPHER. EXE的進程DECIPHER根據源文件類型選擇第三方應用程式,例如OFFICE,ADOBEREADER等,將解密生成原始內容文件時所得"消息原始內容文件的絕對路徑"發送到應用層中的API攔截驅動。應用層中的API攔截驅動還攔截得到第三方應用程式的打開文件操作,獲得第三方應用程式打開原始內容文件的絕對路徑,然後在路徑吻合時將"消息第三方應用程式的進程ID"返回到用戶層的進程DECIPHER。進程DECIPHER負責等待第三方應用程式退出,並在退出時刪除所有生成文件。
權利要求
一種WINDOWS平臺上的通用數字版權保護方法,其特徵在於當用戶購買保密內容文件時,由保護提供商所提供伺服器對內容提供商的原始內容文件進行加密保護,包括以下步驟,步驟1.1,提取用戶所用客戶端設備的硬體指紋,採用該硬體指紋對原始內容文件進行加密得到保密內容文件;步驟1.2,將解包程序、保密內容文件、解密程序、動態連結庫和驅動文件打包成一個打包文件並提供給用戶,所述驅動文件包括隱藏文件夾驅動、隱藏進程驅動以及API攔截驅動;當用戶需要瀏覽保護內容文件,在客戶端設備運行所獲得的打包文件時,由客戶端設備實現本地解密觀看,包括以下步驟,步驟2.1,打包文件中的解包程序自動運行,開始進行解包操作;步驟2.2,解包程序解包釋放出文件中的驅動文件並加載到驅動層,通過加載隱藏文件夾驅動將驗證相關的所有文件夾隱藏,通過加載隱藏進程驅動將驗證相關的進程隱藏;步驟2.3,解包程序解包釋放出保密內容文件、解密程序和動態連結庫;步驟2.4,解包完成,自動運行解密程序,解密程序的進程操作包括自動提取客戶端設備的硬體指紋,採用該硬體指紋對保密內容文件進行解密,在內存中生成脫密的原始內容文件,自動關聯用於打開觀看原始內容文件的第三方應用程式;並向驅動層的API攔截驅動發送消息,通過該消息告知其攔截第三方應用程式打開原始內容文件的絕對路徑,然後等待API攔截驅動返回消息;步驟2.5,API攔截驅動攔截到第三方應用程式打開該原始內容文件的絕對路徑後,與之前生成得到原始內容文件的絕對路徑進行比較,若路徑吻合則記錄第三方應用程式的進程ID;步驟2.6,API攔截驅動屏蔽的是第三方應用程式的寫操作,並且將所記錄第三方應用程式的進程ID返回給解密程序的進程;步驟2.7,解密程序的進程從API攔截驅動的返回消息中獲得第三方應用程式的進程ID,該進程ID即為打開原始內容文件的進程ID;根據第三方應用程式的進程ID,將動態連結庫掛接到第三方應用程式,屏蔽用戶通過第三方應用程式對原始內容文件進行的非法操作;步驟2.8,解密程序的進程等待第三方應用程式的進程退出,並在退出後卸載動態連結庫以及隱藏文件夾驅動、隱藏進程驅動、API攔截驅動,刪除解包程序解包釋放的所有文件。
全文摘要
本發明提供一種WIND OWS平臺上的通用數字版權保護方法,採用硬體指紋加密方法實現本地驗證,方便用戶在沒聯網的情況下瀏覽文件;採用內存虛擬文件技術,使用戶無法直接接觸到保護文件明文;採用技術驅動屏蔽進行自我保護和對第三方應用程式監控,實現與文件類型無關的保護。本發明所提供的本地驗證以及通用保護,極大地提升了用戶的體驗。用戶瀏覽內容時既不再需要聯網,也不需下載專門的瀏覽工具。
文檔編號G06F9/445GK101719209SQ20091027340
公開日2010年6月2日 申請日期2009年12月25日 優先權日2009年12月25日
發明者瀋陽, 潘健, 王玉林 申請人:武漢大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀