著录项信息
专利名称 | 基于透明加解密的数字内容安全防护系统及加解密方法 |
申请号 | CN200910218880.9 | 申请日期 | 2009-11-09 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2010-06-09 | 公开/公告号 | CN101729550A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6;;;H;0;4;L;9;/;0;8;;;G;0;6;F;2;1;/;0;0查看分类表>
|
申请人 | 西北大学 | 申请人地址 | 陕西省西安市长安区学府大道1号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 西北大学 | 当前权利人 | 西北大学 |
发明人 | 房鼎益;张汉宁;高丽;汤战勇;陈晓江;杭继春;高沛;苏琳;章哲;安娜;李磊;赵玉洁;杨朕;何路;陈峰;王妮;胡伟;杨红 |
代理机构 | 西安恒泰知识产权代理事务所 | 代理人 | 李郑建 |
摘要
本发明属于信息安全领域,提供了一种基于透明加解密的数字内容安全防护系统,该系统包括客户端的透明加解密模块、访问控制模块、监控模块、认证授权模块和通信代理模块,服务端的管理中心和权限服务器模块,客户端和服务端由通信代理模块和权限服务器模块连接;针对该安全防护系统提供了对数字内容加密、访问控制以及对密文进行打开、读、写操作的动态加解密方法,通过在操作系统底层实现过滤驱动实现对数字内容的透明加解密,并对用户的所有操作记录完整的日志,不但提高了系统安全性,而且加解密速度有了很大的提升,与现有同类产品相比,具有加密方式安全高效、细粒度权限控制、日志审计功能完善、管理方式便捷高效的优点。
1.一种基于透明加解密的数字内容安全防护系统,由客户端和服务端组成,其特征在于:
所述的客户端包括:
透明加解密模块,与通信代理模块交互,用于接收应用程序通过通信代理模块发来的数字内容加密请求,并根据请求对数字内容加密;在打开、读、写操作过程中,通过通信代理模块从服务端动态获取所需的密钥、权限信息,并根据这些信息对被访问的数字内容进行动态加解密;
认证授权模块,与通信代理模块交互,向服务端权限服务器发送身份认证信息请求,根据权限服务器返回身份信息对登陆用户进行身份认证,同时从服务端权限服务器获得权限信息,根据身份信息和权限信息对用户进行控制;用户能够通过认证授权模块为其他用户进行密文授权分发;
监控模块,与通信代理模块交互,记录用户对系统的使用、对数字内容的操作;通过通信代理模块将记录的操作日志传入服务端的权限服务器并保存在数据库中,以便对数字内容的使用进行审计与追踪;
访问控制模块,与通信代理模块交互,用于在用户对数字内容进行访问过程中,截获应用程序对数字内容的打开操作,通过透明加解密模块构造的数据结构获取数字内容的全路径;根据数字内容的全路径从服务端的权限服务器获得数字内容的内容ID及相应权限信息,根据权限信息控制用户对密文的使用;
通信代理模块,用以客户端其他各模块与服务端各模块之间的通信连接,发送各种请求或接收请求返回信息,传递客户端与服务端所需数据,屏蔽服务器的异构,支持离线方式使用该系统;
所述的服务端包括:
管理中心,为系统管理员提供对系统用户管理的统一的接口界面,包括添加新用户、添加用户分组,用户注册时对用户身份进行验证,查看用户对数字内容的操作日志;
权限服务器,通过通信代理模块同客户端各模块交换信息,接收客户端各模块发出的身份认证请求、权限信息请求或密钥信息请求,根据相应请求从数据库中获得数据,返回给客户端各模块的所需信息;
数据库,用以保存客户的身份信息,数字内容的权限信息、密钥信息、用户操作日志;
服务端的管理中心和权限服务器分别与数据库连接,服务端和客户端通过通信代理模块和权限服务器连接。
2.权利要求1所述的基于透明加解密的数字内容安全防护系统对数字内容的加密保护方法,其特征在于,该方法包括以下步骤:
步骤201:用户通过应用程序选择需要加密保护的数字内容,包括选择一个文件,一次性选择多个文件或者选择整个文件夹;
步骤202:应用程序向通信代理模块发送加密请求;
步骤203:通信代理模块收到加密请求后,转发给透明加解密模块;
步骤204:透明加解密模块收到请求后,将请求保存在自身维护的请求链表中;
步骤205:当应用程序关闭时,透明加解密模块对用户选择的数字内容加密,并在数字内容的尾部添加加密标识,用来区分明文和密文,同时将加密密钥通过通信代理模块传送给权限服务器存储;
步骤206:加密结束后,透明加解密模块把密文写入磁盘保存。
3.如权利要求2所述的方法,其特征在于,所述的加密标识组成部分如下:
301:标志位,标志该内容是否是受保护内容,占用128个字节;
302:内容ID,唯一标识一个数字内容,由当前时间、MAC地址和16位随机字符序列三部分组成,占用256个字节,其中当前时间精确到秒;
303:内容类型,用来存储数字内容的原始类型信息,占用256个字节;
304:加密算法,用来存储该数字内容采用的加密算法类型,以便在后续的加解密操作时采用相同的算法,占用256个字节;
305:预留字节,为后续的扩展提供预留空间,占用128个字节。
4.权利要求1所述的基于透明加解密的数字内容安全防护系统的密文授权分发的方法,其特征在于,包括以下步骤:
步骤401:用户通过应用程序选择受保护内容;
步骤402:用户通过应用程序选择需授权的用户和权限信息,向认证授权模块发送授权请求;
步骤403:认证授权模块接收授权请求,通过通信代理模块向服务端权限服务器发出更新权限请求,包括将原权限取交集或并集;权限服务器更新用户的权限信息并返回结果;
步骤404:认证授权模块收到请求返回信息,将受保护数字内容通过U盘、email、网络共享分发给授权用户,用户收到数字内容后根据授予的权限进行使用。
5.权利要求1所述的基于透明加解密的数字内容安全防护系统的动态加解密方法,其特征在于,所述的动态加解密方法在数字内容打开、读、写操作中进行,其中:
所述的数字内容打开过程包括以下步骤:
步骤501:用户通过应用程序选择需要打开的受保护数字内容;
步骤502:应用程序向透明加解密模块发送IRP_MJ_CREATE请求;
步骤503:透明加解密模块截获IRP_MJ_CREATE请求后,构造IRP查询该数字内容的尾部是否有加密标志,如有,表明此数字内容是密文,则构造数据结构记录该文件相关信息,以便在对所有打开数字内容的后续操作中区分明文和密文,然后清空系统缓存,跳到步骤
504;如果没有加密标识,则表明不是密文,跳到步骤506;该透明加解密模块构造的数据结构包括以下部分:
1)ListEntry,为Windows内核链表结构;
2)FsContext,实际为数字内容控制块FCB的指针,唯一标志该数字内容;
3)Pid,为访问该数字内容的进程ID;
4)FilePath,存储数字内容全路径;
步骤504:透明加解密模块从密文的加密标识中获取内容ID,根据该内容ID,通过通信代理模块从权限服务器获取用户对该密文的权限信息和密钥信息,根据用户的权限信息判断用户是否有权限打开该内容,若有,则用相应的密钥解密该内容,然后执行步骤505;否则,不予解密,应用程序提示用户无权打开,流程结束;
步骤505:访问控制模块通过通信代理模块从权限服务器获得数字内容权限信息,根据权限信息执行细粒度的权限控制,包括菜单、按钮的可用性,剪贴板的复制和粘贴、程序之间的拖拽、OLE数据交换、截屏的控制;
步骤506:把数字内容显示给用户;
所述的对密文进行读操作包括以下步骤:
步骤601:应用程序向底层过滤驱动程序发送IRP_MJ_READ请求;
步骤602:透明加解密模块收到IRP_MJ_READ请求后,判断Irp->Flags是否为IRP_NOCACH或IRP_PAGING_IO,是则执行步骤603,否则,透明加解密模块不做处理,而是调用操作系统的默认处理函数PassThroughLowerDriver,流程结束;
步骤603:保存Read Irp所带Buffer指针,申请与Buffer同样大小的SwapBuffer;
步骤604:将原Buffer替换为SwapBuffer,设置完成例程ReadProcCompletion,然后等待过滤驱动程序处理的返回结果;
步骤605:完成例程被激活,透明加解密模块将SwapBuffer中的数据用密钥进行解密,并将解密后数据拷贝到原Buffer中;
步骤606:还原Irp Buffer指针Irp->MdlAddress和Irp->UserBuffer;
步骤607:把解密后的数字内容显示给用户;
所述的对密文进行写操作包括以下步骤:
步骤701:应用程序发送IRP_MJ_WRITE请求;
步骤702:透明加解密模块截获IRP_MJ_WRITE请求,判断Irp->Flags是否为IRP_NOCACHE或IRP_PAGING_IO,是则执行步骤703,否则PassThroughLowerDriver(Irp),透明加解密模块不做处理,直接返回到结束步骤;
步骤703:保存Write Irp所带Buffer指针,申请同样大小的SwapBuffer;
步骤704:将Buffer中数据进行加密并将加密后的数据拷贝到SwapBuffer中;
步骤705:将原Buffer替换为SwapBuffer,设置完成例程WriteProcCompletion,等待底层过滤驱动程序处理的返回结果;
步骤706:完成例程被激活,还原Irp Buffer指针Irp->MdlAddress和Irp->UserBuffer;
步骤707:系统将加密后的数字内容保存到计算机磁盘上。
6.如权利要求5所述的方法,其特征在于,当打开的多个数字内容中有密文时,步骤
503还包括以下步骤:透明加解密模块在密文打开时对其创建一个新的文件节点,数据结构中的内核链表结构ListEntry将所有打开的密文的文件节点串联为链表,以区分打开的数字内容中的明文和密文,当密文关闭时,其节点被删除。
7.如权利要求5所述的方法,其特征在于,在步骤505中,访问控制模块通过通信代理模块从权限服务器获得相应的权限信息,并根据权限信息执行细粒度的权限控制的过程包括以下步骤:
步骤801:用户通过应用程序打开受保护的数字内容,应用程序发送内容的打开操作请求;
步骤802:访问控制模块截获应用程序的打开操作请求,通过透明加解密模块构造的数据结构获取数字内容的全路径;
步骤803:访问控制模块根据数字内容的全路径,通过通信代理模块向权限服务器发送请求,权限服务器返回数字内容的内容ID及相应的权限信息;
步骤804:访问控制模块根据获得的权限信息执行细粒度的权限控制,包括菜单、按钮的可用性,剪贴板的复制和粘贴、程序之间的拖拽、OLE数据交换、截屏等方式的控制。
基于透明加解密的数字内容安全防护系统及加解密方法\n技术领域\n[0001] 本发明属于信息安全领域,具体涉及一种基于透明加解密的数字内容安全防护系统及加解密方法。\n背景技术\n[0002] 随着计算机的普遍应用和Internet的飞速发展,越来越多技术发明、创新等依赖计算机技术,因此,很多核心的机密文档以电子化形式存储在计算机上,甚至绝大多数的企业核心技术文档本身就是设计图纸、程序源代码等的电子文档。因此,技术进步给信息安全带来了新的挑战,网络技术的普及和移动办公设备、移动存储设备、笔记本电脑的广泛使用等,在给人们带来高效和方便的同时又增加了信息被侦听、截获及非法拷贝的危险。据调研机构调查结果显示,每年都会发生大量的企业敏感数据丢失事件,电子文件泄露对企业所造成的损失是极其惨重的。而当这种情况涉及国家机密方面,所造成的损失更是不可估量的。为了防止机密泄漏,企业采取了各种各样的文件加密措施,同时也出现了很多对文件进行加密的技术出现。\n[0003] 加解密技术分为静态加解密和动态加解密,静态加解密是指在加密期间,待加密的数据处于未使用状态,这些数据一旦加密,用户在使用前需首先通过静态解密得到明文,然后才能使用;动态加密即透明加解密技术,是指数据在使用过程中,系统自动对数据进行加解密操作,不改变用户对文件的访问(打开、读、写等)习惯,无需用户的干预,表面看来,访问加密的文件和访问未加密的文件基本相同,因此对合法用户来说这些加密文件是“透明的”,即好像没有加密一样,但对于没有访问权限的用户,即使通过其它非常规手段得到了加密文件也无法使用。由于透明加解密技术不改变用户的使用习惯,而且无需用户太多干预操作即可实现文件的安全,因而近年来得到了广泛的应用。\n[0004] 目前市场上已经有很多透明加解密的安全产品实现了对数字内容的保护,但存在着各种各样的不足和缺陷:\n[0005] 1、安全性低。大数产品采用在操作系统用户态完成加解密操作,这种方式安全性低,会造成数字内容在使用过程中“明文落地”,即明文内容存储在磁盘上的情况,易造成机密信息的失密和泄露;\n[0006] 2、速度低。由于在操作系统用户态完成的加解密操作,其速度比较低,导致处理文件效率不够高;例如上海索远Docsecurity系统,未采用过滤驱动程序且改变文档格式,使得加密文件必须用限定的应用程序操作,速度较低,并影响了用户的使用习惯;\n[0007] 3、权限控制细化不够。虽然大多安全产品能够允许或拒绝用户访问受保护的数字内容,但对不能提供更加细分化的权限控制,这种静态的提供“全部或零”权限的安全产品不能满足当今动态的业务需求。例如铁卷电子文档安全系统,虽然引入了过滤驱动技术,但不支持细粒度的权限控制,无法满足用户的动态需求;\n[0008] 4、监控机制欠缺。大多同类产品设计较简单,没有实现对数字内容使用行为进行完善的跟踪记录。\n发明内容\n[0009] 为了克服上述现有加解密技术同类产品的不足和缺陷,本发明的目的在于,提供一种基于透明加解密的数字内容安全防护系统以及加解密方法,本发明通过在操作系统底层实现过滤驱动,从而实现对数字内容的透明加解密,本发明结合透明加解密技术、访问控制技术和数字权限管理技术,不但提高了系统的安全性,而且加解密速度有了很大的提升。\n[0010] 为了实现上述任务,本发明采用的技术方案如下:\n[0011] 一种基于透明加解密的数字内容安全防护系统,由客户端和服务端组成,客户端包括:\n[0012] 透明加解密模块,与通信代理模块交互,用于接收应用程序通过通信代理模块发来的数字内容加密请求,并根据请求对数字内容加密;在打开、读、写操作过程中,通过通信代理模块从服务端动态获取所需的密钥、权限信息,并根据这些信息对被访问的数字内容进行动态加解密;\n[0013] 认证授权模块,与通信代理模块交互,向服务端权限服务器发送身份认证信息请求,根据权限服务器返回身份信息对登陆用户进行身份认证,同时从服务端权限服务器获得权限信息,根据身份信息和权限信息对用户进行控制;用户能够通过认证授权模块为其他用户进行密文授权分发;\n[0014] 监控模块,与通信代理模块交互,记录用户对系统的使用、对数字内容的操作;通过通信代理模块将记录的操作日志传入服务端的权限服务器并保存在数据库中,以便对数字内容的使用进行审计与追踪;\n[0015] 访问控制模块,与通信代理模块交互,用于在用户对数字内容进行访问过程中,截获应用程序对数字内容的打开操作,通过透明加解密模块构造的数据结构获取数字内容的全路径;根据数字内容的全路径从服务端的权限服务器获得数字内容的内容ID及相应权限信息,根据权限信息控制用户对密文的使用;\n[0016] 通信代理模块,用以客户端其他各模块与服务端各模块之间的通信连接,发送各种请求或接收请求返回信息,传递客户端与服务端所需数据,屏蔽服务器的异构;\n[0017] 服务端包括:\n[0018] 管理中心,为系统管理员提供对系统用户管理的统一的接口界面,包括添加新用户、添加用户分组,用户注册时对用户身份进行验证,查看用户对数字内容的操作日志;\n[0019] 权限服务器,通过通信代理模块同客户端各模块交换信息,接收客户端各模块发出的身份认证请求、权限信息请求或密钥信息请求,根据相应请求从数据库中获得数据,返回给客户端各模块的所需信息;\n[0020] 数据库,用以保存客户的身份信息,数字内容的权限信息、密钥信息、用户操作日志;\n[0021] 服务端的管理中心和权限服务器分别与数据库连接,服务端和客户端通过通信代理模块和权限服务器连接。\n[0022] 基于透明加解密的数字内容安全防护系统对数字内容的加密保护方法,包括以下步骤:\n[0023] 步骤201:用户通过应用程序选择需要加密保护的数字内容,包括选择一个文件,一次性选择多个文件或者选择整个文件夹;\n[0024] 步骤202:应用程序向通信代理模块发送加密请求;\n[0025] 步骤203:通信代理模块收到加密请求后,转发给透明加解密模块;\n[0026] 步骤204:透明加解密模块收到请求后,将请求保存在自身维护的请求链表中;\n[0027] 步骤205:当应用程序关闭时,透明加解密模块对用户选择的数字内容加密,并在数字内容的尾部添加加密标识,用来区分明文和密文,同时将加密密钥通过通信代理模块传送给权限服务器存储;\n[0028] 步骤206:加密结束后,透明加解密模块把密文写入磁盘保存。\n[0029] 上述加密标识组成部分如下:\n[0030] 301:标志位,标志该内容是否是受保护内容,占用128个字节;\n[0031] 302:内容ID,唯一标识一个数字内容,由当前时间、MAC地址和16位随机字符序列三部分组成,占用256个字节,其中当前时间精确到秒。\n[0032] 303:内容类型,用来存储数字内容的原始类型信息,占用256个字节。\n[0033] 304:加密算法,用来存储该数字内容采用的加密算法类型,以便在后续的加解密操作时采用相同的算法,占用256个字节。\n[0034] 305:预留字节,为后续的扩展提供预留空间,占用128个字节。\n[0035] 基于透明加解密的数字内容安全防护系统的密文授权分发的方法包括以下步骤:\n[0036] 步骤401:用户通过应用程序选择受保护内容;\n[0037] 步骤402:用户通过应用程序选择需授权的用户和权限信息,向认证授权模块发送授权请求;\n[0038] 步骤403:认证授权模块接收授权请求,通过通信代理模块向权限服务器发出更新权限请求,包括将原权限取交集或并集;权限服务器更新用户的权限信息并返回结果;\n[0039] 步骤404:认证授权模块收到请求返回信息,将受保护数字内容通过U盘、email、网络共享分发给授权用户,用户收到数字内容后根据授予的权限进行使用。\n[0040] 基于透明加解密的数字内容安全防护系统的动态加解密方法,动态加解密在数字内容打开、读、写操作中进行,其中:\n[0041] 数字内容打开过程包括以下步骤:\n[0042] 步骤501:用户通过应用程序选择需要打开的受保护数字内容;\n[0043] 步骤502:应用程序向透明加解密模块发送IRP_MJ_CREATE请求;\n[0044] 步骤503:透明加解密模块截获IRP_MJ_CREATE请求后,构造IRP查询该数字内容的尾部是否有加密标志,如有,表明此数字内容是密文,则构造数据结构记录该文件相关信息,以便在对所有打开数字内容的后续操作中区分明文和密文,然后清空系统缓存,跳到步骤504;如果没有加密标识,则表明不是密文,跳到步骤506;该透明加解密模块构造的数据结构包括以下部分:\n[0045] 1)ListEntry,为Windows内核链表结构;\n[0046] 2)FsContext,实际为数字内容控制块FCB的指针,唯一标志该数字内容;\n[0047] 3)Pid,为访问该数字内容的进程ID;\n[0048] 4)FilePath,存储数字内容全路径;\n[0049] 步骤504:透明加解密模块从密文的加密标识中获取内容ID,根据该内容ID,通过通信代理模块从权限服务器获取用户对该密文的权限信息和密钥信息,根据用户的权限信息判断用户是否有权限打开该内容,若有,则用相应的密钥解密该内容,然后执行步骤505;\n否则,不予解密,应用程序提示用户无权打开,流程结束;\n[0050] 步骤505:访问控制模块通过通信代理模块从权限服务器获得数字内容权限信息,根据权限信息执行细粒度的权限控制,包括菜单、按钮的可用性,剪贴板的复制和粘贴、程序之间的拖拽、OLE数据交换、截屏的控制;\n[0051] 步骤506:把数字内容显示给用户;\n[0052] 对密文进行读操作包括以下步骤:\n[0053] 步骤601:应用程序向底层过滤驱动程序发送IRP_MJ_READ请求;\n[0054] 步骤602:透明加解密模块收到IRP_MJ_READ请求后,判断Irp->Flags是否为IRP_NOCACH或IRP_PAGING_IO,是则执行步骤603,否则,透明加解密模块不做处理,而是调用操作系统的默认处理函数PassThroughLowerDriver,流程结束;\n[0055] 步骤603:保存Read Irp所带Buffer指针,申请与Buffer同样大小的SwapBuffer;\n[0056] 步骤604:将原Buffer替换为SwapBuffer,设置完成例程ReadProcCompletion,然后等待过滤驱动程序处理的返回结果;\n[0057] 步骤605:完成例程被激活,透明加解密模块将SwapBuffer中的数据用密钥进行解密,并将解密后数据拷贝到原Buffer中;\n[0058] 步骤606:还原Irp Buffer指针Irp->MdlAddress和Irp->UserBuffer;\n[0059] 步骤607:把解密后的数字内容显示给用户;\n[0060] 对密文进行写操作包括以下步骤:\n[0061] 步骤701:应用程序发送IRP_MJ_WRITE请求;\n[0062] 步骤702:透明加解密模块截获IRP_MJ_WRITE请求,判断Irp->Flags是否为IRP_NOCACHE或IRP_PAGING_IO,是则执行步骤703,否则PassThroughLowerDriver(Irp),透明加解密模块不做处理,直接返回到结束步骤;\n[0063] 步骤703:保存Write Irp所带Buffer指针,申请同样大小的SwapBuffer;\n[0064] 步骤704:将Buffer中数据进行加密并将加密后的数据拷贝到SwapBuffer中;\n[0065] 步骤705:将原Buffer替换为SwapBuffer,设置完成例程WriteProcCompletion,等待底层过滤驱动程序处理的返回结果;\n[0066] 步骤706:完成例程被激活,还原Irp Buffer指针Irp->MdlAddress和Irp->UserBuffer;\n[0067] 步骤707:系统将加密后的数字内容保存到计算机磁盘上。\n[0068] 当打开的多个数字内容中有密文时,步骤503还包括以下步骤:透明加解密模块在密文打开时对其创建一个新的文件节点,数据结构中的内核链表结构ListEntry将所有打开的密文的文件节点串联为链表,以区分打开的数字内容中的明文和密文,当密文关闭时,其节点被删除。\n[0069] 在步骤505中,访问控制模块通过通信代理模块从权限服务器获得相应的权限信息,并根据权限信息执行细粒度的权限控制的过程包括以下步骤:\n[0070] 步骤801:用户通过应用程序打开受保护的数字内容,应用程序发送内容的打开操作请求;\n[0071] 步骤802:访问控制模块截获应用程序的打开操作请求,通过透明加解密模块构造的数据结构获取数字内容的全路径。\n[0072] 步骤803:访问控制模块根据数字内容的全路径,通过通信代理模块向权限服务器发送请求,权限服务器返回数字内容的内容ID及相应的权限信息。\n[0073] 步骤804:访问控制模块根据获得的权限信息执行细粒度的权限控制,包括菜单、按钮的可用性,剪贴板的复制和粘贴、程序之间的拖拽、OLE数据交换、截屏等方式的控制。\n[0074] 与现有技术相比,本发明的有益效果如下:\n[0075] 1.加密方式安全高效。由于本发明采用基于底层过滤驱动实现的透明加解密,与传统的在应用层实现加解密方式相比,此方式提高了系统的安全性,同时加解密速度有了很大提升,经过测试:对于35M的文件,传统的应用层实现加解密需2分钟,而本发明基于底层过滤驱动实现加解密仅需6秒钟。\n[0076] 2.细粒度权限控制。本发明根据数字内容拥有者的不同需求,编写COM插件实现对重要应用软件(如Word、Excel、AutoCad)的控制,对其它不支持插件开发的软件采用Hook技术,灵活设置权限,从而满足了用户不断增长的需求。个人或组均可赋权,权限具体包括完全控制、只读几次,打印几次、可复制、可另存、可编辑、失效日期、有效时间等,这对于传统的静态提供“全部或零”权限的安全产品是一个很大的突破。\n[0077] 3.日志审计功能完善。本发明对用户对受保护内容的所有操作(如打开、保存、另存、打印等)都做详细的日志记录,提供全面的日志审计功能,对涉密数字内容外泄的事后追查取证提供有力支持。\n[0078] 4.管理方式便捷高效。本发明的数字安全防护系统的管理中心采用B/S结构,Web管理灵活方便,适合在使用环境内任何主机对管理中心的访问,为管理员提供统一的接口界面对系统进行配置管理;用户注册时对用户身份进行验证;查询用户详细的操作日志。\n附图说明\n[0079] 图1为本发明的数字内容安全防护系统结构图;\n[0080] 图2为对需要保护的数字内容的加密保护过程图;\n[0081] 图3为加密标识结构图;\n[0082] 图4为用户将密文进行授权分发过程图;\n[0083] 图5为数字内容的打开过程流程图;\n[0084] 图6为对密文进行读操作的流程图;\n[0085] 图7为对密文进行写操作的流程图;\n[0086] 图8为访问控制模块对密文进行访问控制的过程图;\n[0087] 以下结合附图对本发明作进一步详细说明。\n具体实施方式\n[0088] 本发明适用的操作系统有:Microsoft Windows XP,Microsoft Windows 2000,Microsoft Windows 2003,Microsoft Windows vista等;硬件环境:Pentium(R)3 CPU,\n256M内存以上;应用软件:Microsoft Office 2000/XP/2003/2007,Adobe Reader,AutoCAD等;适用的开发语言:C++,C,C#。\n[0089] 参见图1,一种基于透明加解密的数字内容安全防护系统,包括客户端和服务端,其中,\n[0090] 客户端包括以下各单元:\n[0091] 透明加解密模块,与通信代理模块交互,用于接收应用程序通过通信代理模块发来的数字内容加密请求,并根据请求对数字内容加密;在打开、读、写操作过程中,通过通信代理模块从服务端动态获取所需的密钥、权限信息,并根据这些信息对被访问的数字内容进行动态加解密;\n[0092] 认证授权模块,与通信代理模块交互,向服务端权限服务器发送身份认证信息请求,根据权限服务器返回身份信息对登陆用户进行身份认证,同时从服务端权限服务器获得权限信息,根据身份信息和权限信息对用户进行控制;用户能够通过认证授权模块为其他用户进行密文授权分发;\n[0093] 监控模块,与通信代理模块交互,记录用户对系统的使用、对数字内容的操作;通过通信代理模块将记录的操作日志传入服务端的权限服务器并保存在数据库中,以便对数字内容的使用进行审计与追踪;\n[0094] 访问控制模块,与通信代理模块交互,用于在用户对数字内容进行访问过程中,截获应用程序对数字内容的打开操作,通过透明加解密模块构造的数据结构获取数字内容的全路径;根据数字内容的全路径从服务端的权限服务器获得数字内容的内容ID及相应权限信息,根据权限信息控制用户对密文的使用;\n[0095] 通信代理模块,用以客户端其他各模块与服务端各模块之间的通信连接,发送各种请求或接收请求返回信息,传递客户端与服务端所需数据,屏蔽服务器的异构,即服务器如果有变动,不用修改其它模块,只需修改通信代理模块。\n[0096] 服务端为系统管理员提供一个方便快捷安全有效的管理控制中心,所有的客户端请求都通过服务端权限服务器得到响应,服务端包括以下各单元:\n[0097] 管理中心,为系统管理员提供对系统用户管理的统一的接口界面,包括添加新用户、添加用户分组,用户注册时对用户身份进行验证,查看用户对数字内容的操作日志;\n[0098] 权限服务器,通过通信代理同客户端各模块交换信息,接收客户端各模块发出的身份认证请求、权限信息请求或密钥信息请求,根据相应请求从数据库中获得数据,返回给客户端各模块的所需信息;\n[0099] 数据库,用以保存客户的身份信息,数字内容的权限信息、密钥信息、用户操作日志;\n[0100] 服务端的管理中心和权限服务器模块分别与数据库连接,服务端和客户端通过通信代理模块和权限服务器模块的连接交换信息。\n[0101] 以上各模块之间的主要接口如下:\n[0102] 透明加解密-通信代理接口:用于透明加解密模块向通信代理模块发送获取数字内容的权限和密钥等信息的请求。通过DeviceIoControl实现。\n[0103] 认证授权-通信代理接口:用于认证授权模块向通信代理模块发送身份认证消息,获取文件权限信息等。通过管道通信机制实现。\n[0104] 监控-通信代理接口:用于监控模块向通信代理模块发送用户操作日志操作信息,通过COM接口实现通信。\n[0105] 访问控制-通信代理接口:用于访问控制模块向通信代理模块发送请求,获得文件的权限、客户端认证等信息。通过Windows管道机制实现通信。\n[0106] 通信代理-权限服务器接口:用于通信代理模块转发来自客户端其他模块的请求,如获得文件的权限信息、加密密钥、用户操作日志等信息。通过SSL加密信道实现通信。\n[0107] 权限服务器和管理中心之间没有直接通信,各自与服务端数据库直接通信。\n[0108] 客户端与应用程序连接,底层过滤驱动程序与应用程序的通信通过DeviceIoControl实现。\n[0109] 在该系统中,数字内容的访问控制通过客户端的访问控制模块完成,通过编写COM插件实现对重要应用软件(如Word、Excel、AutoCad)的控制,对不支持插件开发的软件采用Hook技术拦截信息,并对剪贴板的复制和粘贴、程序之间的拖拽、OLE数据交换、截屏等方式均进行控制,实现两个目的:一是保证的应用程序与非涉密的应用程序之间的数据交换只进不出,例如,若Word文档被加密后,其内容就不能被粘贴到非涉密的OutLook中,或者粘贴出的内容是乱码;二是加密软件之间能够进行正常的数据交换,例如,过Word和Excel均为受保护进程,则数据可以从Word复制粘贴到Excel中。通过上述方式实现细粒度的访问控制,并且COM插件和系统Hook与底层过滤驱动程序有工作状态验证机制,一旦上层的访问控制与监控模块被恶意修改或破坏,透明加解密服务将自动停止。\n[0110] 参见图2,在每个数字内容被使用之前,需要根据其重要程度对其进行加密保护,不需要加密保护的数字内容是明文,需要加密保护并被透明加解密模块加密后的数字内容为密文,基于透明加解密的数字内容安全防护系统对数字内容的加密保护方法包括以下步骤:\n[0111] 步骤201:用户通过应用程序选择需要加密保护的数字内容,包括选择一个文件、一次性选择多个文件、选择整个文件夹,该选择的操作方式支持多种方式,如右键、拖拽、属性页等;\n[0112] 步骤202:应用程序向通信代理模块发送加密请求;\n[0113] 步骤203:通信代理模块收到加密请求后,转发给透明加解密模块;\n[0114] 步骤204:透明加解密模块收到请求后,将请求保存在自身维护的请求链表中;\n[0115] 步骤205:当应用程序关闭时,透明加解密模块对用户选择的数字内容加密,并在数字内容的尾部添加加密标识,用来区分明文和密文,同时将加密密钥通过通信代理模块传送给权限服务器模块存储;\n[0116] 步骤206:加密结束后,透明加解密模块把密文写入磁盘保存;\n[0117] 参见图3,透明加解密模块加密文件时,在文件尾部添加的加密标识包括以下部分:\n[0118] 301:标志位,标志该内容是否是受保护内容,占用128个字节;\n[0119] 302:内容ID,唯一标识一个数字内容,由当前时间(精确到秒)、MAC地址和16位随机字符序列三部分组成,占用256个字节;\n[0120] 303:内容类型,用来存储数字内容的原始类型信息,如定义Office文档中的Word文档为MS001,Excel文档类型为MS002等,占用256个字节;\n[0121] 304:加密算法,用来存储该数字内容采用的加密算法类型,以便在后续的加解密操作时采用相同的算法,占用256个字节;\n[0122] 305:预留字节,为后续的扩展提供预留空间,占用128个字节。\n[0123] 参见图4,一种基于透明加解密的数字内容安全防护系统的密文授权分发的方法,包括以下步骤:\n[0124] 步骤401:用户通过应用程序选择受保护内容;\n[0125] 步骤402:用户通过应用程序选择需授权的用户并选择权限信息,向认证授权模块发送授权请求;\n[0126] 步骤403:认证授权模块接收授权请求,通过通信代理模块向服务端权限服务器发出更新权限请求,包括将原权限取交集或并集;权限服务器更新用户的权限信息并返回结果;\n[0127] 步骤404:认证授权模块收到请求返回信息,将受保护文件通过U盘、email、网络共享等方式分发给授权用户,用户收到文件后根据授予的权限进行使用;\n[0128] Windows NT系统对数字内容和设备的访问过程首先对应驱动层为IRP_MJ_CREATE,最后操作对应驱动层为IRP_MJ_CLOSE,为避免系统缓存造成的数据泄露,在IRP_MJ_CREATE和IRP_MJ_CLOSE操作中均对缓存进行清空处理,IRP_MJ_READ和IRP_MJ_WRITE对应应用程序的读写请求,读写所操作的数据存于IRP(I/O Request Packet,是I/O管理器根据应用程序发出的请求构造的固定数据格式)。透明加解密是在系统对数据的打开、读、写操作中完成的,在上述操作中,上层应用程序向透明加解密模块发出相应的读写请求,透明加解密模块过滤掉应用程序对缓存的读写请求,只对非缓存读写请求进行相应操作,系统通过判断读写请求中标志是否为IRP_NOCACH和IRP_PAGING_IO来判断是否为非缓存读写。\n[0129] 基于透明加解密的数字内容安全防护系统的动态加解密方法,该方法在数字内容打开、读、写操作中进行,其中:\n[0130] 参见图5,数字内容打开过程包括以下步骤:\n[0131] 步骤501:用户通过应用程序选择需要打开的受保护数字内容;\n[0132] 步骤502:应用程序向透明加解密模块发送IRP_MJ_CREATE请求;\n[0133] 步骤503:透明加解密模块截获IRP_MJ_CREATE请求后,构造IRP查询该数字内容的尾部是否有加密标志,如有,表明此文件是密文,则构造数据结构记录该文件相关信息,以便在对所有打开数字内容的后续操作中区分明文和密文,然后清空系统缓存,跳到步骤\n504;如果没有加密标识,则表明不是密文,跳到步骤506;该透明加解密模块构造的数据结构包括以下部分:\n[0134] 1)ListEntry,为Windows内核链表结构;\n[0135] 2)FsContext,实际为数字内容控制块FCB的指针,唯一标志该数字内容;\n[0136] 3)Pid,为访问该数字内容的进程ID;\n[0137] 4)FilePath,存储数字内容全路径;\n[0138] 步骤504:透明加解密模块从密文的加密标识中获取内容ID,根据该内容ID通过通信代理从权限服务器获取用户对该密文的权限信息和密钥信息,根据用户的权限信息判断用户是否有权限打开该内容,如果有,则用相应的密钥解密该内容,然后执行步骤505;\n否则,不予解密,应用程序提示用户无权打开;\n[0139] 步骤505:访问控制模块通过通信代理从权限服务器获得数字内容权限信息,根据权限信息执行细粒度的权限控制,包括菜单、按钮的可用性,剪贴板的复制和粘贴、程序之间的拖拽、OLE数据交换、截屏的控制;\n[0140] 步骤506:把数字内容显示给用户。\n[0141] 参见图6,对密文进行读操作包括以下步骤:\n[0142] 步骤601:应用程序向底层过滤驱动程序发送IRP_MJ_READ请求;\n[0143] 步骤602:透明加解密模块收到IRP_mJ_READ请求后,判断Irp->Flags是否为IRP_NOCACH或IRP_PAGING_IO,是则执行步骤603,否则,透明加解密模块不做处理,而是调用操作系统的默认处理函数PassThroughLowerDriver;\n[0144] 步骤603:保存Read Irp所带Buffer指针,申请与Buffer同样大小的SwapBuffer;\n[0145] 步骤604:将原Buffer替换为SwapBuffer,设置完成例程ReadProcCompletion,然后等待底层过滤驱动程序处理的返回结果;\n[0146] 步骤605:完成例程被激活,透明加解密模块将SwapBuffer中的数据用密钥进行解密,并将解密后数据拷贝到原Buffer中;\n[0147] 步骤606:还原Irp Buffer指针Irp->MdlAddress和Irp->UserBuffer;\n[0148] 步骤607:把解密后的数字内容显示给用户。\n[0149] 参见图7,对密文进行写操作包括以下步骤:\n[0150] 步骤701:应用程序发送IRP_MJ_WRITE请求;\n[0151] 步骤702:透明加解密模块截获IRP_MJ_WRITE请求,判断Irp->Flags是否为IRP_NOCACHE或IRP_PAGING_IO,是则执行步骤703,否则PassThroughLowerDriver(Irp),透明加解密模块不做处理,直接返回;\n[0152] 步骤703:保存Write Irp所带Buffer指针,申请同样大小的SwapBuffer;\n[0153] 步骤704:将Buffer中数据进行加密并将加密后的数据拷贝到SwapBuffer中;\n[0154] 步 骤 705:将 原 Buffer 替 换 为 SwapBuffer,设 置 完 成 例 程(WriteProcCompletion),等待底层过滤驱动程序处理的返回结果,如写操作是否成功,写了多少字节;\n[0155] 步骤706:完成例程被激活,还原Irp Buffer指针Irp->MdlAddress和Irp->UserBuffer;\n[0156] 步骤707:系统将加密后的数字内容保存到计算机磁盘上。\n[0157] 在上述对数字内容的读写过程中,加解密操作均在SwapBuffer中进行,原始Irp所带的数据缓冲区为明文,而对磁盘的读写均为密文,这样既保证了明文数据不落地又避免了与应用程序的数据操作可能产生的冲突。\n[0158] 另外,当打开的多个数字内容中有密文时,步骤503还包括以下步骤:透明加解密模块在密文打开时对其创建一个新的文件节点,数据结构中的内核链表结构(ListEntry)将所有打开的密文的文件节点串联为链表,以区分打开的数字内容中的明文和密文,当密文关闭时,其节点被删除。\n[0159] 参见图8,步骤505中访问控制模块通过通信代理从权限服务器获得相应的权限信息,并根据权限信息执行细粒度的权限控制的过程包括以下步骤:\n[0160] 步骤801:用户通过应用程序打开受保护的数字内容,应用程序发送内容的打开操作请求;\n[0161] 步骤802:访问控制模块截获应用程序的打开操作请求,通过透明加解密模块构造的数据结构获取数字内容的全路径;\n[0162] 步骤803:访问控制模块根据数字内容的全路径,通过通信代理向权限服务器发送请求,权限服务器返回数字内容的内容ID及相应的权限信息;\n[0163] 步骤804:访问控制模块根据获得的权限信息执行细粒度的权限控制,包括菜单、按钮的可用性,剪贴板的复制和粘贴、程序之间的拖拽、OLE数据交换、截屏等方式的控制。\n[0164] 为了达到事前防御事后追踪的目的,客户端监控模块对用户进行的所有关键操作(如打开、保存、另存、打印等)记录了详细的操作日志,所有的日志操作信息都可以通过服务端的管理中心查询。
法律信息
- 2015-12-23
未缴年费专利权终止
IPC(主分类): H04L 29/06
专利号: ZL 200910218880.9
申请日: 2009.11.09
授权公告日: 2012.07.25
- 2012-07-25
- 2010-08-11
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 200910218880.9
申请日: 2009.11.09
- 2010-06-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-09-24
|
2008-04-30
| | |
2
| |
2006-08-23
|
2006-03-23
| | |
3
| |
2008-01-02
|
2006-06-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |