一种基于设备绑定的数字版权保护方法与流程

文档序号:13254184阅读:157来源:国知局
技术领域本发明涉及信息安全领域,特别涉及WINDOWS平台上的通用数字版权保护方法。

背景技术:
数字版权管理(digitalrightsmanagement,以下简称DRM)是指内容出版商或版权持有者为管理文件使用权和保护文件数字版权而采取的综合性解决方案。随着信息数字化和互联网技术不断发展,通过互联网等媒介进行信息拷贝和传播随意性很大,严重侵害了内容出版商或版权持有者的权益,因此控制和管理信息数据化后的使用权显得尤为重要。DRM技术的主要目的就在于保护信息版权和内容提供商或版权持有者的合法商业利益。目前所有DRM解决方案在具体设计和实现上略有不同,但是其基本原理和架构是一致的,其基本工作流程如下:1.内容提供商将原始内容文件交由保护提供商进行出售和管理;2.保护提供商提供服务器,负责对原始内容文件进行加密、打包形成特定类型的文件供用户购买和下载;3.同时,保护提供商建立授权中心。生成授权许可证与该文件关联(通常使用密钥,如APPLE的FairPlay),将授权证书(包含权限证书和密钥信息等)存放在授权中心服务器;4.用户在网络上购买并下载打包文件及相关阅读或定制播放软件到自己的客户端设备(一般为PC机或笔记本电脑),使用定制播放软件来打开打包文件;5.存放于打包文件头部的URL链接等信息自动与授权中心服务器建立连接,验证授权信息;6.用户授权验证成功,授权中心服务器将解密密钥和权限证书发送给用户;当然,如果是未经授权的用户尝试打开打包文件时,验证就会失败,授权中心服务器就不会将授权证书和密钥发送给用户,从而文件被拒绝访问;7.软件利用密钥解密文件,并在规定的权限下使用文件。以上DRM框架,要求用户联网访问授权中心进行验证,并且使用指定的打开或者播放软件(定制软件)查看文件内容,用户需要根据不同的文件类型下载相应的软件。给普通用户的使用带来了许多不便。

技术实现要素:
本发明的目的在于为克服现有技术的缺陷,而提供一种支持本地验证查看的WINDOWS平台上的通用数字版权保护方法。为实现上述目的,本发明采用以下技术方案:一种基于设备绑定的数字版权保护方法,包括以下打包步骤:提取用户所用客户端设备的硬件指纹,采用该硬件指纹对原始内容文件进行加密得到保密内容文件;将解包程序、保密内容文件、解密程序、动态链接库和驱动文件打包成一个打包文件并提供给用户;所述驱动文件包括隐藏文件夹驱动、隐藏进程驱动以及API拦截驱动。进一步,还包括以下解包步骤:打包文件中的解包程序自动运行,开始进行解包操作;解包程序解包释放出文件中的驱动文件并加载到驱动层,通过加载隐藏文件夹驱动将验证相关的所有文件夹隐藏,通过加载隐藏进程驱动将验证相关的进程隐藏;解包程序解包释放出保密内容文件、解密程序和动态链接库。进一步,还包括以下解密步骤:解包完成,自动运行解密程序,解密程序的进程操作包括自动提取客户端设备的硬件指纹,采用该硬件指纹对保密内容文件进行解密,在内存中生成脱密的原始内容文件,自动关联用于打开观看原始内容文件的第三方应用程序;并向驱动层的API拦截驱动发送消息,通过该消息告知其拦截第三方应用程序打开原始内容文件的绝对路径,然后等待API拦截驱动返回消息;API拦截驱动拦截到第三方应用程序打开该原始内容文件的绝对路径后,与之前生成得到原始内容文件的绝对路径进行比较,若路径吻合则记录第三方应用程序的进程ID;API拦截驱动屏蔽的是第三方应用程序的写操作,并且将所记录第三方应用程序的进程ID返回给解密程序的进程;解密程序的进程从API拦截驱动的返回消息中获得第三方应用程序的进程ID,该进程ID即为打开原始内容文件的进程ID;根据第三方应用程序的进程ID,将动态链接库挂接到第三方应用程序,屏蔽用户通过第三方应用程序对原始内容文件进行的非法操作;解密程序的进程等待第三方应用程序的进程退出,并在退出后卸载动态链接库以及隐藏文件夹驱动、隐藏进程驱动、API拦截驱动,删除解包程序解包释放的所有文件。本发明与现有技术相比的有益效果是:1)本发明采用硬件指纹加密方法实现本地验证,方便用户在没联网的情况下浏览文件;2)采用内存虚拟文件技术,使用户无法直接接触到保护文件明文;3)采用技术驱动屏蔽进行自我保护和对第三方程序监控,保密内容文件格式不限,实现了与文件类型无关的保护;4)本发明所提供的本地验证以及通用保护,极大地提升了用户的体验。用户浏览内容时既不再需要联网,也不需下载专门的浏览工具。下面结合附图和具体实施例对本发明作进一步描述。附图说明图1为本发明服务器端文件打包流程图;图2为本发明的DRM文件解包及解密流程图;图3为本发明的客户端工作流程图。具体实施方式为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明。本发明技术方案分为服务器和客户端两个部分实现。在服务器端,实现原始内容文件加密、打包分发给用户。在客户端,一方面要支持各种文件格式的正常浏览,一方面要阻止被保护内容的非法扩散。以下结合附图和实施例说明本发明技术方案。参见图1,在保护提供商的服务器上进行以下操作:首先,在步骤1.1中,提取用户所用客户端设备的硬件指纹,采用该硬件指纹对原始内容文件进行加密得到保密内容文件。实施例运行加密程序(记为Encryption.exe),输入原始内容文件在服务器上的路径,对原始内容文件进行加密,得到的保密内容文件记为CIPHER.CT,即为密文。具体实施时,Encryption.exe可采用现有技术实现,例如美国的des算法。原始内容文件就是内容提供商所提供的源文件,保护提供商需要对其内容进行保护,防止合法用户进行非法扩散。然后,在步骤1.2中,将解包程序、保密内容文件、解密程序、动态链接库和驱动文件打包成一个打包文件并提供给用户,所述驱动文件包括隐藏文件夹驱动、隐藏进程驱动以及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_hook_ssdt.sys,具体实施时根据功能采用基于C语言实现这些驱动即可。保护提供商可通过光盘、U盘等移动数据存储设备或者网络将DRM.EXE交付给用户,用户需要打开观看时将DRM.EXE装载到自己的客户端设备。在用户的客户端设备上进行以下操作:在步骤2.1中,打包文件中的解包程序自动运行,开始进行解包操作。客户只需通过鼠标点击运行从保护提供商得到的DRM.EXE,DRM.EXE程序头部的UNBIND.EXE自动运行,开始进行解包操作,参见图2。在步骤2.2中,解包程序解包释放出文件中的驱动文件并加载到驱动层,通过加载隐藏文件夹驱动将验证相关的所有文件夹隐藏,通过加载隐藏进程驱动将验证相关的进程隐藏。实施例中,解包程序UNBIND.EXE对DRM.EXE解包时,首先在客户端设备的当前目录释放驱动文件,并加载驱动,即隐藏文件夹驱动driver_hook_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。隐藏进程驱动通过替换ZwQuerySystemInformation函数(Windows查进程信息的函数)将本系统的进程信息隐藏起来,包括DRM进程和DECIPHER进程。在步骤2.3中,解包程序解包释放出保密内容文件、解密程序和动态链接库。实施例中,解包程序UNBIND.EXE释放保密内容文件CIPHER.CT,解密程序DECIPHER.EXE以及动态链接库MouseHook.DLL。在步骤3.1中,解包完成,自动运行解密程序。在此步骤中,解密程序的进程操作包括自动提取客户端设备的硬件指纹,采用该硬件指纹对保密内容文件进行解密,在内存中生成脱密的原始内容文件,自动关联用于打开观看原始内容文件的第三方应用程序;并向驱动层的API拦截驱动发送消息,通过该消息告知其拦截打开原始内容文件的绝对路径,然后等待API拦截驱动返回消息。实施例在解包完成后,自动运行解密程序DECIPHER.EXE,对保密内容文件CIPHER.CT进行解密,在内存中生成和内容提供商所提供源文件相应的原始内容文件,并自动从客户端设备中选择操作系统已关联的第三方应用程序来打开原始内容文件。同时向驱动层的API拦截驱动发送消息,告知API拦截驱动脱密文件的绝对路径。解密程序的进程DECIPHER等待驱动层的返回消息。在步骤3.2中,API拦截驱动拦截到第三方应用程序打开该原始内容文件的绝对路径后,与之前生成得到原始内容文件的绝对路径进行比较,若路径吻合则记录第三方应用程序的进程ID。实施例中,API拦截驱动通过对计算机系统中SSDT表的修改,替换了系统原本的ZwFileCreate函数(Windows创建打开文件函数)。通过替换函数NewZwFileCreate,每打开一个文件,都获取该文件的绝对路径,与之前得到的原始内容文件的绝对路径进行比较,记录下路径吻合的第三方应用程序的进程ID,路径不吻合则不做处理。具体实施时,第三方应用程序每打开一个原始内容文件,API拦截驱动都响应解密程序的进程告知进行拦截,然后与之前得到的原始内容文件的绝对路径进行比较。在步骤3.1中解密程序的进程操作采用硬件指纹对保密内容文件进行解密,在内存中生成脱密的原始内容文件,即形成了之前的原始内容文件的绝对路径。在步骤3.3中,API拦截驱动屏蔽对原始内容文件的写操作,并且将所记录第三方应用程序的进程ID返回给解密程序的进程。实施例中,API拦截驱动一方面替换ZwFileWrite函数(Windows向文件写内容的操作函数),将所用执行写操作的进程的进程ID与我们记录下的进程ID进行比较。如果相等,则设置IoStatusBlock->Information=0,IoStatusBlock->Status=STATUS_INVALID_HANDLE(WindowsAPI内容,说明没有找到句柄通知第三方自动处理),并且直接返回STATUS_INVALID_VARIANT(C++定义的操作),从而在驱动层屏蔽了该进程的写操作。如果不相等则继续调用系统原本的ZwFileWrite函数,进行正常的系统写操作。另一方面,将记录下的进程ID发送给应用层进程DECIPHER。在步骤3.4中,解密程序的进程从API拦截驱动的返回消息中获得第三方应用程序的进程ID,该进程ID即为打开原始内容文件的进程ID;根据第三方应用程序的进程ID,将动态链接库挂接到第三方应用程序,屏蔽用户通过第三方应用程序对原始内容文件进行的非法操作;实施例中,进程DECIPHER获得从驱动层送回的进程ID,该ID即为打开脱密文件的进程ID。有了该ID,就可以对该进程挂接MouseHook.DLL,从而在应用层实现屏蔽用户通过第三方应用程序对原始内容文件进行的非法操作,例如屏蔽剪切、复制等功能。具体实施时,MouseHook.DLL可以采用钩子函数技术实现,提供键鼠钩子功能。在步骤3.5中,解密程序的进程等待第三方应用程序的进程退出,并在退出后卸载动态链接库以及隐藏文件夹驱动、隐藏进程驱动、API拦截驱动,删除解包程序解包释放的所有文件。实施例中,进程DECIPHER等待第三方应用程序的进程退出。退出后,卸载键鼠钩子MouseHook.DLL以及驱动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负责等待第三方应用程序退出,并在退出时删除所有生成文件。以上所述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1