面向Windows的文件透明加解密解决方案(2)——概要设计

系统整体框架如图:

采用三层架构,即服务器-客户端-驱动三层协调工作,驱动作为整个系统的核心,提供加密/解密功能,客户端作为辅助,在ring3层上对驱动进行管理,同时也是连接驱动与服务器的桥梁,服务器作为整个系统的指挥中心,对驱动,客户端,用户身份进行验证,并提供相应的管理方法,三者协调有机的组合在一起。


2.1本系统角色说明

主机(若干):指预装本系统驱动与客户端的计算机,在经由管理员指定的机密进程和机密后缀名之后,员工在被授权主机上编辑如doc,ppttxt等格式的文档时,保存之后会被加密存放,在指定的进程如Office打开之后会被自动解密成明文供用户编辑,整个过程对于使用者透明。如果确实有业务需要带出编辑文件,员工可以上传文件到服务端,服务端经过相应高权限用户认证(web登陆),能够返回经过解密后的文件,以适应不同场合的需求。

 

用户(若干):指被管理员创建好的适应于各个不同组别的用户集合,被管理员分配给不同的员工。他们能够通过这个用户登陆到web服务器上对自己权限内的文档进行解密(如普通员工上传的加密文件可以被其相应的部门经理进行授权解密),用户的作用一方面是分担管理员进行的任务,另一方面是使整个系统在有需要的时候进行高效的运转。

 

管理员:管理员作为整个系统的管理者,对于当前局域网内连接的主机,实际运行着的驱动程序进行管理与监控,同时对于能够授权进行解密操作的用户进行删改与添加,在整个系统内拥有最高权限。

 

对于部署在局域网内的文件加解密系统,我们提供一整套的解决方案。

 

2.2本系统使用的认证机制

服务器使用OpenSSL产生一个RSA私钥/公钥产生主密钥,私钥用作签名

服务器端对于用户的认证:

自动授权:通过用户连接的ip地址判断是否是在内网中,发放凭据

  手动授权:满足自动授权条件下,将提出请求的主机呈现在一个表中,需要管理员手动添 加,发放凭据

发放的签名:服务器用自己的私钥对用户的MD5MachineCode+时间+用户)加密,传送给客户端作为凭据

 

客户端对于服务器端验证:对于收到的签名,用服务器端产生RSA的私钥进行加密回传给客户端,服务器公钥内置于客户端中,客户端进行解密,验证服务器的签名。

 

域信息:可以直接用明文传递,如”zxc coporation”,附在每个加密文档的后面,标识当前软件属于哪一个系统

 

其它防范:

       当用户直接通过浏览器登陆时提供的是https安全通信模式,防范中途窃听

 

说明:当时间超过30分钟后,下一次用户请求时,发送自己经由服务器公钥加密的信息,服务器用RSA私钥解密后查询数据库中有无匹配的数值客户端机器码,若存在,继续发放凭据 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
现在很多做透明加解密的初学者都比较困惑,不知从何下手,我也是如此,从什么都不会开始,慢慢肯文件系统内幕,到OSR上面请教,四个月的时间还是收获颇丰。其实真正研究以后会发现,很多都是体力活,要不断的去跟踪文件的操作流程。在这里发一个基于minifilter的透明加解密驱动源码仅供大家参考,其中也实现了对文件标识的处理,文件标识放在文件尾部。算是抛砖引玉吧。坦白的说,这个代码并不稳定(偶尔与norton杀毒软件会有冲突),但是我觉得整个流程是正确的,可能有些细节还没有考虑清楚,我觉得对初学者还是有一定帮助吧,当然大虾们可以跳过,呵呵。另外,有关加解密算法的代码由于不是我写的,也不好公开,所以我把相关代码用“\\\”给注释掉了(但没有去掉),请大家见谅,不过不会对整个流程产生影响。大家可以重点看一下各个派遣函数的实现。 欢迎大家拍砖,觉得有点意思就顶一下啊,在看代码的过程中如果有什么好的建议,也希望能告诉我。 最后非常感谢XiangXiangRen,zzbwang,neak47等网友在这段时间内对我的帮助。XiangXiangRen的书以及zzbwang的帖子对我完成这项工作有很大的帮助和参考价值,在此谨与大家分享。 编译环境:WDK6001.18002 XP x86 PS: 您可以将附件中的代码进行修改和转发,但转发时请注明出处。 http://bbs.driverdevelop.com/htm_data/39/1001/119736.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值