模块加解密方法

文档序号:6482855阅读:227来源:国知局
专利名称:模块加解密方法
技术领域
本发明涉及一种加解密方法,具体涉及一种模块加解密方法。
背景技术
目前,一种现有技术的共享密钥生成方法,包括生成随机种子组,任取其中两个为 边随机种子,表示三角形的两条边;取另一个为角随机种子,表示两条边的夹角;将由上述 随机种子构成三角形第三条边的长度作为共享密钥。该现有技术还包括加密方法,包括生 成边随机种子,表示三角形的两条边;生成角随机种子,表示两条边的夹角;将明文映射为 角度集合,集合中每个元素表示的角度代表两条边的夹角,计算出角度集合中每个角度与 边随机种子构成的加密三角形的第三条边的长度,加密三角形的第三条边的长度的集合构 成加密后的密文。另一种现有技术的数据加解密方法,尤其是在数据传输过程涉及的计算机处理总 线上,至少使一组输入/输出端口异位,并有如下步骤:A.数据经一种异位处理的总线传输 至一目标设备;B.按照相应异位处理的总线从目标读出该数据。该数据加解密装置包括插 入在计算机处理总线上的受控转接模块;转接模块上分别设有输入端和输出端;转接模块 还与控制模块相连。该现有技术的数据加解密方法只需在数据传输过程中进行简单变更, 即可使输出或存储的原始数据变得面目全非,达到加密的目的;而接收或使用方只须用简 单的方式获取解密方法,即能方便解密。还有一种现有技术的基于用户身份标识的加解密方法,其包括的步骤为步骤a 产生基于用户身份标识的加解密系统的系统参数,生成至少两个主密钥分量;步骤b 提供 多级密钥设备,密钥服务器向符合身份标识要求用户的各级密钥设备中设置种子密钥和参 数;步骤c 每级密钥设备根据上一级密钥设备的帮助密钥生成和更新本级密钥设备的帮 助密钥;步骤d 在最后一级密钥设备处生成用户私钥;这是根据最后一级密钥设备之前的 密钥设备生成的帮助密钥实现的;步骤e 根据用户的公钥加密明文产生密文;步骤f 通 过用户私钥解密密文变成明文。这种现有技术的基于用户身份标识的加解密方法的缺点是1、这种现有技术的基于用户身份标识的加解密方法由于是基于用户身份标识的, 使用范围窄,使用限制较多。2、这种现有技术的基于用户身份标识的加解密方法代码的可读性及可维护性低,
稳定性较差。3、这种现有技术的基于用户身份标识的加解密方法对新的应用格式的扩展性较 差,没有访问权限控制、统一排错等功能。

发明内容
本发明的目的是提供一种模块加解密方法,它能根据访问权限支持对密文的透明 解密,从协同服务获取各种控制参数,决定工作方式为手动加密或者自动加密,能进行内容
4访问控制、统一排错等,对新的应用格式具有较高的扩展性。本发明模块加解密方法的目的是通过以下技术方案实现的一种模块加解密方 法,包括多通道接口模块、应用进程识别模块、统一报错处理模块、临时目录,文件管理模 块、微软ApiHook库、AES加解密库、数据校验模块、权限控制模块、复制拷贝权限控制模块、 文件拖拽控制模块、多文档控制分派模块、多文档模块及安全防护模块;该方法至少包括以 下步骤步骤1,用户通过系统注册表项,以动态链接程序库(DLL)方式试图加载所有新启 动的应用程序步骤1. 1,Attach处理判断是否需要进行控制,并进行初始化。步骤2,应用进程识别模块对当前应用程序进行识别,确定应用程序的类型步骤2. 1,对所有进程都加载安全防护模块;步骤2. 2,对于保密进程,则会调用AppDispatch加载多文档模块,然后创建对应 的密文访问处理器,并用创建的处理器去初始化密文访问处理框架,访问处理框架中主要 是拦截Windows File Access API,使Application对文件的访问经过该框架处理,该框架 添加自己的处理逻辑后还会调用实际的WindowsApi进行处理;步骤2. 3,对于非保密进程,则会加载数据源判定模块即剪切板数据传输模块以 及文件拖拽控制模块,用于识别剪切板的数据源和目标,以及拖拽的源和目标。步骤3,通过多通道接口模块与协同服务进行通信,确定当前应用程序是否为保密 应用步骤3. 1,确定当前应用程序是否为保密应用,若是保密应用,判断是否有明文映 射文件;步骤3. 2,若不是保密应用,则AES加解密库自动加密后判断是否有明文映射文 件。步骤4,如果是保密应用,则判断是否有映射明文文件步骤4. 1,判断是否有映射明文文件,如果有映射明文文件,数据校验模块验证映 射明文文件的长度及最后修改时间;步骤4. 2,如果没有映射明文文件,或者映射明文文件需要更新,则对源文件同时 创建映射明文文件,并记录;步骤4. 3,调用映射明文文件,对明文文件进行隐藏和保护;步骤4. 4,返回明文Handle。步骤5,使用密文步骤5. 1,用明文Handle进行读写;步骤5. 2,对于获取文件长度信息的API要进行处理,扣除密文文件头长度,再返 回。步骤6,关闭明文Handle时检查是否是列表中的密文步骤6. 1,关闭明文Handle时检查是否是列表中的密文,如果是列表中的密文,则 检查是否已经被修改,若没有被修改,则修改密文,若已经被修改,则退出程序;步骤6. 2,如果不是列表中的密文,则退出程序。步骤7,退出程序
步骤7. 1,调用Fi IeAccessFramework恢复被拦截API的原始状态;步骤7. 2,释放分配的系统资源。上述的模块加解密方法,其中,所述的修改密文包括三种方式直接WriteFlie、 通过CopyFile及通过MoveFile ;拦截WriteFile处理时仅需要在检查该操作是否为记录 在列表中的密文,如果是则对修改标志置位;对于CopyFile和MoveFile则仅需要对文件路 径映射中路径进行检查,如果目标文件为密文,则在保持文件头的条件下对文件进行加密处理。本发明模块加解密方法由于采用了上述方案,使之与现有技术相比,具有以下的 优点和积极效果1、本发明模块加解密方法具有较高扩展性的体系架构,易于扩展新的应用格式。2、本发明模块加解密方法能够根据访问权限支持对密文的透明解密,所有数据即 用即解密。3、本发明模块加解密方法由于从协同服务获取各种控制参数,决定工作方式为手 动加密或者自动加密。4、本发明模块加解密方法能够协同多文档模块、打印水印、新版截屏控制等模块 进行内容访问控制,实现对具有正当访问权限用户的透明加解密,同时确保了在这些文件 被使用过程中不会造成内容的二次传播。5、本发明模块加解密方法由于采用了 ErrorNotify. lib统一报错处理模块,能提 供统一的排错功能。6、本发明模块加解密方法能够降低目前代码定制数量,将项目定制项尽量转移到 其它外围模块,通过配置文件方式或其它方式的接口进行控制。7、本发明模块加解密方法的系统可维护性高。


图1是本发明模块加解密方法的流程图。图2是本发明模块加解密方法修改更新密文的三种方式的流程图。图3是本发明模块加解密方法的退出程序的流程图。图4是本发明模块加解密方法的外部模块图。
具体实施例方式请参见附图4所示,本发明模块加解密方法包括多通道接口模块1、应用进程识别 模块2、统一报错处理模块3、临时目录,文件管理模块4、微软ApiHook库5、AES加解密库 6、数据校验模块7、权限控制模块8、复制拷贝权限控制模块9、文件拖拽控制模块10、多文 档控制分派模块11、多文档模块12及安全防护模块13。请参见附图1所示,本发明模块加解密方法的步骤如下步骤1,用户通过系统注册表项,以动态链接程序库(DLL)方式试图加载所有新启 动的应用程序步骤1. 1,Attach处理判断是否需要进行控制,并进行初始化。步骤2,应用进程识别模块对当前应用程序进行识别,确定应用程序的类型
步骤2. 1,对所有进程都加载安全防护模块;步骤2. 2,对于保密进程,则会调用AppDispatch加载多文档模块,然后创建对应 的密文访问处理器,并用创建的处理器去初始化密文访问处理框架,访问处理框架中主要 是拦截Windows File Access API,使Application对文件的访问经过该框架处理,该框架 添加自己的处理逻辑后还会调用实际的WindowsApi进行处理;步骤2. 3,对于非保密进程,则会加载数据源判定模块即剪切板数据传输模块以 及文件拖拽控制模块,用于识别剪切板的数据源和目标,以及拖拽的源和目标。步骤3,通过多通道接口模块与协同服务进行通信,确定当前应用程序是否为保密 应用步骤3. 1,确定当前应用程序是否为保密应用,若是保密应用,判断是否有明文映 射文件;步骤3. 2,若不是保密应用,则AES加解密库自动加密后判断是否有明文映射文 件。步骤4,如果是保密应用,则判断是否有映射明文文件步骤4. 1,判断是否有映射明文文件,如果有映射明文文件,数据校验模块验证映 射明文文件的长度及最后修改时间;步骤4. 2,如果没有映射明文文件,或者映射明文文件需要更新,则对源文件同时 创建映射明文文件,并记录;步骤4. 3,调用映射明文文件,对明文文件进行隐藏和保护;步骤4. 4,返回明文Handle。步骤5,使用密文步骤5. 1,用明文Handle进行读写;步骤5. 2,对于获取文件长度信息的API要进行处理,扣除密文文件头长度,再返 回。步骤6,关闭明文Handle时检查是否是列表中的密文步骤6. 1,关闭明文Handle时检查是否是列表中的密文,如果是列表中的密文,则 检查是否已经被修改,若没有被修改,则修改密文,若已经被修改,则退出程序;步骤6. 2,如果不是列表中的密文,则退出程序。请参见附图3所示,步骤7,退出程序步骤7. 1,调用FileAccessFramework恢复被拦截API的原始状态;步骤7. 2,释放分配的系统资源。请参见附图2所示,本发明模块加解密方法的更新修改密文包括三种方式直接 WriteFlie、通过CopyFile及通过MoveFile ;拦截WriteFile处理时仅需要在检查该操作 是否为记录在列表中的密文,如果是则对修改标志置位;对于CopyFile和MoveFile则仅需 要对文件路径映射中路径进行检查,如果目标文件为密文,则在保持文件头的条件下对文 件进行加密处理。本发明模块加解密方法根据信息的重要程度,对涉密电子文档进行选择性加密并 设定文件的密级,管理员集中统一设置电子文档的授权策略,根据岗位和人员的不同设置 不同的访问权限;在工作环境中,每个用户通过保密信道从服务器下载各自的访问授权以
7及密钥,安全控制终端实现对密文的透明解密,并应用内容访问权限控制阻止用户对正在 使用的涉密文件打印、复制拷贝内容、编辑甚至屏幕拷贝来泄密其内容。安全控制终端是整个系统中的核心部分,通过接管各种应用程序(例如=Word/ Excel等)对文件系统的访问操作以及打印、内容拷贝、编辑修改甚至屏幕拷贝等操作,从 而实现对具有正当访问权限用户的透明加解密,同时保证在这些文件被使用过程中不会造 成内容的二次传播。尽量保持文档内容以密文的形式存在,仅仅当内容被展示时才会对其 内容进行解密,做到即用即解密;并且通过与内容保护控制联动,保护其内容不被合法用户 二次传播。透明加解密,内容访问控制以及它们之间的有机整合将是该系统的技术关键点。 这些访问操作的接管将通过API拦截技术实现,对相关API组进行相关联的处理得到期望 的效果。与此同时,还要既考虑与现有安全产品之间的兼容性,又采取恰当的防护措施防止 恶意软件通过黑客手段窃取文件内容。安全策略集中管理,使得分发出去的文件使用权限 可以随时召回。贴近应用端的用户数据安全,所有数据即用即解密,提高总体安全性。透明 加解密与内容访问控制的有机结合,使得可以同时使用明文、不同内容访问权限的密文可 以同时使用,并且这些文件之间可以在不引起泄密的条件下互相引用数据,达到了安全性 与易用性的最恰当的折中点。本发明模块加解密方法与基于驱动加解密的对比最大限度 的减少了明文路径,提高安全性。与内容访问控制有效结合,提高易用性。本发明模块加解密方法随客户端软件分发,开发环境是VS2005/2008,依赖 Kernel32, User32, GDI32 等模块。通过注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ffindowsNT\CurrentVersion\ffindows中的AppInit_DLLs来加载,这种加载方式在特定操 作系统下,如果DLL中依赖特定的DLL时有时会加载失效;另外很多木马和反木马软件也对 该位置的访问进行限制,因此请并行考虑使用更加可靠的注入方式。本发明模块加解密方法还包括系统数据结构下表为密文文件结构
偏移量(字节)数据项类型0随机密钥BYTE[16]16加密文件特征码BYTE[16]32文件UUIDBYTE[16]48计算机UUIDBYTE[16]64部门IDDWORD68密级IDBYTE
8
权利要求
一种模块加解密方法,包括多通道接口模块、应用进程识别模块、统一报错处理模块、临时目录,文件管理模块、微软ApiHook库、AES加解密库、数据校验模块、权限控制模块、复制拷贝权限控制模块、文件拖拽控制模块、多文档控制分派模块、多文档模块及安全防护模块;其特征在于该方法至少包括以下步骤步骤1,用户通过系统注册表项,以动态链接程序库(DLL)方式试图加载所有新启动的应用程序;步骤2,应用进程识别模块对当前应用程序进行识别,确定应用程序的类型;步骤3,通过多通道接口模块与协同服务进行通信,确定当前应用程序是否为保密应用;步骤4,如果是保密应用,则判断是否有映射明文文件;步骤5,使用密文;步骤6,关闭明文Handle时检查是否是列表中的密文;步骤7,退出程序。
2.根据权利要求1所述的模块加解密方法,其特征在于所述的步骤1中还包括 步骤1. 1,Attach处理判断是否需要进行控制,并进行初始化。
3.根据权利要求1所述的模块加解密方法,其特征在于所述的步骤2中还包括 步骤2. 1,对所有进程都加载安全防护模块;步骤2. 2,对于保密进程,则会调用AppDispatch加载多文档模块,然后创建对应的密 文访问处理器,并用创建的处理器去初始化密文访问处理框架,访问处理框架中主要是拦 截Windows File Access API,使Application对文件的访问经过该框架处理,该框架添加 自己的处理逻辑后还会调用实际的WindowsApi进行处理;步骤2. 3,对于非保密进程,则会加载数据源判定模块即剪切板数据传输模块以及文 件拖拽控制模块,用于识别剪切板的数据源和目标,以及拖拽的源和目标。
4.根据权利要求1所述的模块加解密方法,其特征在于所述的步骤3中还包括 步骤3. 1,确定当前应用程序是否为保密应用,若是保密应用,判断是否有明文映射文件;步骤3. 2,若不是保密应用,则AES加解密库自动加密后判断是否有明文映射文件。
5.根据权利要求1所述的模块加解密方法,其特征在于所述的步骤4中还包括 步骤4. 1,判断是否有映射明文文件,如果有映射明文文件,数据校验模块验证映射明文文件的长度及最后修改时间;步骤4. 2,如果没有映射明文文件,或者映射明文文件需要更新,则对源文件同时创建 映射明文文件,并记录;步骤4. 3,调用映射明文文件,对明文文件进行隐藏和保护; 步骤4. 4,返回明文Handle。
6.根据权利要求1所述的模块加解密方法,其特征在于所述的步骤5中还包括 步骤5. 1,用明文Handle进行读写;步骤5. 2,对于获取文件长度信息的API要进行处理,扣除密文文件头长度,再返回。
7.根据权利要求1所述的模块加解密方法,其特征在于所述的步骤6中还包括 步骤6. 1,关闭明文Handle时检查是否是列表中的密文,如果是列表中的密文,则检查是否已经被修改,若没有被修改,则修改密文,若已经被修改,则退出程序; 步骤6. 2,如果不是列表中的密文,则退出程序。
8.根据权利要求7所述的模块加解密方法,其特征在于所述的修改密文包括三种方 式直接WriteFlie、通过CopyFile及通过MoveFile ;拦截WriteFile处理时仅需要在检查 该操作是否为记录在列表中的密文,如果是则对修改标志置位;对于CopyFile和MoveFile 则仅需要对文件路径映射中路径进行检查,如果目标文件为密文,则在保持文件头的条件 下对文件进行加密处理。
9.根据权利要求1所述的模块加解密方法,其特征在于所述的步骤7中还包括 步骤7. 1,调用FileAccessFramework恢复被拦截API的原始状态;步骤7. 2,释放分配的系统资源。
全文摘要
一种模块加解密方法,该方法包括以下步骤1,用户通过系统注册表项,以动态链接程序库(DLL)方式试图加载所有新启动的应用程序;2,对当前应用程序进行识别,确定应用程序的类型;3,与协同服务进行通信,确定当前应用程序是否为保密应用;4,如果是保密应用,则判断是否有映射明文文件;5,使用密文;6,关闭明文Handle时检查是否是列表中的密文;7,退出程序。本发明模块加解密方法对新的应用格式有较高扩展性,能支持对密文的透明解密,决定工作方式为手动或自动加密,能协同多文档模块等模块进行内容访问控制,能统一排错,能降低目前代码定制数量,将项目定制项尽量转移到其它外围模块,可维护性高。
文档编号G06F17/30GK101958791SQ200910054889
公开日2011年1月26日 申请日期2009年7月16日 优先权日2009年7月16日
发明者张延昌, 张承祚 申请人:上海前沿计算机科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1