一种Windows平台下的通用数字版权保护方法_2

文档序号:8512687阅读:来源:国知局
员理解和实施本发明,下面结合附图及实施例对本发 明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不 用于限定本发明。
[0032] 本发明提供的一种Windows平台下的通用数字版权保护方法,其特征在于,包括 以下步骤:
[0033] 步骤1 :采用Web浏览器作为内容提供商、保护内容提供商和用户之间业务的交互 途径,其核心交互有内容提供商上传原始文件、保护内容提供商对原始文件加密和打包、 用户下载受保护文件;
[0034] 请见图1和图2,步骤1的具体实现包括以下子步骤:
[0035] 步骤I. I :内容提供商通过文件上传页面上传原始内容至内容服务器上;
[0036] 步骤1. 2 :保护内容提供商管理内容服务器,提取用户客户端设备的硬件指纹,然 后结合硬件指纹对原始内容进行加密,最后同主控制程序、加解密模块、隐藏驱动模块、文 件过滤驱动模块、API拦截模块、内存控制模块一起打包组织成PE格式的.exe文件提供给 用户下载;其具体实现包括以下子步骤:
[0037] 步骤1. 2. 1 :当用户通过登录页面登录时,通过运行于客户端的JavaScript脚本 提取用户所用客户端设备的硬件指纹(Mac地址&CPU id)并保存到数据库中;
[0038] 步骤1. 2. 2 :当用户浏览文件内容简介并点击购买时,跳入订单处理页面、填写用 户相关信息的同时,运行加密程序,具体加密过程为对客户端设备硬件指纹进行SHA-256 得到256位密钥,以512字节(正好一个扇区的大小)为单位对原始内容进行分组,然后利 用AES-256算法对原始内容进行分组加密,得到密文文件,密文文件与原始文件后缀名保 持一致;(采用分组加密的好处是,如果文件中某个位置的数据被修改,只需对数据所在页 面进行重新加密即可,而不需要对整个文件重新加密。)本发明中SHA-256算法采用的是网 上现有算法思路实现,AES-256算法是在现有算法思路的基础上进行自定义改编并结合按 固定大小为512字节分组实现分组数据加密。这俩种算法都是现今运用比较广泛的较安全 高效的加密算法。
[0039] 步骤1. 2. 3 :将密文同主控制程序、加解密模块(encryption, dll)、隐藏驱动模 块(drive_hide. sys)、文件过滤驱动模块(drive_file_filter. sys)、API 拦截模块(IAT_ API_Hook. dll)、内存控制模块(memory_control. dll)等一起打包组织生成· exe文件并提 供给用户下载至本地。主控制程序中含有加载驱动模块、创建远程线程、监控进程、调用其 他模块、卸载清除等程序。
[0040] 生成的.exe文件内部结构如下表所示:
[0041]
【主权项】
1. 一种Windows平台下的通用数字版权保护方法,其特征在于,包括以下步骤: 步骤1 :采用Web浏览器作为内容提供商、保护内容提供商和用户之间业务的交互途 径,其核心交互有内容提供商上传原始文件、保护内容提供商对原始文件加密和打包、用 户下载受保护文件; 步骤2 :用户无需下载任何客户端软件,直接双击下载的.exe文件即可打开受保护内 容进行观看;对受保护内容的保护措施主要有文件过滤驱动处理、IAT API Hook监控、内存 访问权限限制; 步骤3 :若受保护文件为可编辑文档,则用户直接对受保护文件内容进行编辑并能且 只能直接保存于当前文件上; 步骤4 :当打开受保护文件的第三方应用程序进程退出时,该.exe文件映射在内存中 的所有文件会被清除,其中包括内存中明文;此外,内存中其他用来保护受保护内容的相关 模块也会被卸载完全,其中相关模块包括卸载隐藏进程驱动、文件过滤驱动、API拦截模块。
2. 根据权利要求1所述的Windows平台下的通用数字版权保护方法,其特征在于,步骤 1的具体实现包括以下子步骤: 步骤1. 1 :内容提供商通过文件上传页面上传原始内容至内容服务器上; 步骤1. 2 :保护内容提供商管理内容服务器,提取用户客户端设备的硬件指纹,然后结 合硬件指纹对原始内容进行加密,最后同主控制程序、加解密模块、隐藏驱动模块、文件过 滤驱动模块、API拦截模块、内存控制模块一起打包组织成PE格式的.exe文件提供给用户 下载; 步骤1. 3 :用户通过内容购买页面购买并下载PE格式的.exe文件至本地。
3. 根据权利要求2所述的Windows平台下的通用数字版权保护方法,其特征在于:步 骤1. 2中所述的结合硬件指纹对原始内容进行加密,加密密钥是基于对用户客户端设备的 硬件指纹进行SHA-256得到的256位密钥;以512字节(正好一个扇区的大小)为单位对原 始内容进行分组,然后利用AES-256算法对原始内容进行分组加密,得到的密文文件与原 始文件后缀名保持一致。
4. 根据权利要求1所述的Windows平台下的通用数字版权保护方法,其特征在于,步骤 2的具体实现包括以下子步骤: 步骤2. 1 :点击运行.exe文件,首先执行主控制程序,创建主控制进程,用来调用和执 行其他模块函数; 步骤2. 2 :执行驱动加载程序,将隐藏驱动模块、文件过滤驱动模块加载到驱动层;通 过隐藏驱动模块隐藏相关进程;然后通过加载文件过滤驱动截获文件访问进程请求读取受 保护内容的IRP进行检查,若为MainDRM进程且读取内容为受保护内容,则运行解密程序; 否则阻止访问并返回错误代码; 步骤2. 3 :解密程序的执行过程:自动提取客户端设备的硬件指纹(Mac地址&CPU id), 跟之前记录的用户硬件指纹进行对比,若完全相同,则对该硬件指纹进行SHA-256处理得 到256位密钥然后对密文进行AES-256解密,在内存中生成脱密的原始内容文件;然后,自 动关联相对应的第三方应用程序打开原始内容文件;若不完全相同,则解密失败,返回错误 信息提示,并给出在线认证的方式给用户选择,直到服务器响应客户端并进行授权才能继 续完成解密工作; 步骤2.4 :获取打开原始内容文件的第三方应用程序的进程ID,并对该进程进行监控; 主控制进程启动一个远程线程将API拦截模块载入到第三方应用程序的进程内存空间,遍 历该进程的导入地址表(IAT),若发现需挂接模块,则修改IAT,挂接相应的API入口地址, 指向自己编写的伪API函数;以此方式屏蔽用户通过第三方应用程序对原始内容文件进行 的非法操作; 步骤2. 5 :执行内存控制模块中内存权限设置函数,将明文内容的内存区设置为私 有,非该选择的第三方应用程序的进程ID不得读取,防止内存中明文被泄露。
5. 根据权利要求1所述的Windows平台下的通用数字版权保护方法,其特征在于:步 骤3中,采用文件过滤驱动对文件写请求IRP进行拦截和相关处理,主要包括检查该IRP是 否为合法访问、检查该IRP中数据内容是否页面对齐、调用加解密函数对受保护内容进行 加解密。
6. 根据权利要求5所述的Windows平台下的通用数字版权保护方法,其特征在于: 若过滤驱动检查写请求IRP中的数据内容是页面对齐,直接对修改后的文件页表加密 后保存; 若未页面对齐,则进行如下处理:读取该数据在文件中的偏移,计算出IRP中的请求数 据分布在哪些页面并记录下来,接着暂时挂起原始IRP并按其数据分布页面将原始IRP分 解成相对应数量的大小为512字节的多个IRP,并针对每个页面重新构造数据区大小为512 字节的新的读请求IRP ;然后,调用解密函数将读请求IRP请求到的页面数据(密文)进行解 密,接着用原始请求分解出的IRP中对应的明文数据对解密后的页面进行数据刷新,再重 新加密;直到所有新的读请求IRP内容数据刷新且重新解密完成,最后将各加密后的数据 区内容合并后保存至磁盘设备卷。
【专利摘要】本发明公开了一种Windows平台下的通用数字版权保护方法,本发明通过硬件指纹验证能实现本地自动解密授权使用受保护文件,当硬件验证不通过时还提供在线认证方式,满足了用户部分自主性,如多台设备共享、硬件变更等。在文件I/O拦截的处理上,采用内核层文件过滤驱动和应用层IAT API Hook技术配合使用,内核层对文件读写内容进行拦截可以忽略应用层任何的文件读写细节,而且更准确和高效;而IAT API HOOK与特定的应用程序紧密联系,相对于通过应用层键鼠钩子实现监控而言,将更具有针对性地在应用层对复制粘贴、另存为等文件操作进行监控和限制。此外通过文件过滤驱动与明文内存区权限设定的方法对内存中明文进行了较好的保护,极大地降低了内存明文被泄露的可能。
【IPC分类】G06F21-10
【公开号】CN104834835
【申请号】CN201510243957
【发明人】王玉林, 王代银, 丁文佳, 沈越
【申请人】武汉大学
【公开日】2015年8月12日
【申请日】2015年5月13日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1