当前时区为 UTC + 8 小时


发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
 文章标题 : 本人对应用层加密和驱动层加密的一点思考
帖子发表于 : 2010-07-29 16:23 
离线
初级用户

注册: 2009-08-04 16:38
最近: 2010-08-18 17:17
拥有: 73.00 安全币

奖励: 0 安全币
在线: 53 点
帖子: 25
透明加解密技术是与操作系统紧密结合的一种技术,它工作于操作系统底层,从技术角度看,分为驱动层加密和应用层加密两类。驱动层加密通常采用文件过滤驱动技术,应用层加密通常采用 API HOOK(俗称钩子)技术,其基本原理都是要接管文件 IO(读写)操作,通过监视涉密进程(受保护程序)的磁盘读写,对保密文档进行动态的加密和解密。

应用层透明加密技术俗称钩子透明加密技术。这种技术就是将上述两种技术组合而成的。通过windows的钩子技术,监控应用程序对文件的打开和保存,当打开文件时,先将密文转换后再让程序读入内存,保证程序读到的是明文,而在保存时,又将内存中的明文加密后再写入到磁盘中。
驱动加密技术是基于windows的文件系统(过滤)驱动(IFS)技术,工作在windows的内核层。我们在安装计算机硬件时,经常要安装其驱动,如打印机、U盘的驱动。文件系统驱动就是把文件作为一种设备来处理的一种虚拟驱动。当应用程序对某种后缀文件进行操作时,文件驱动会监控到程序的操作,并改变其操作方式,从而达到透明加密的效果。

驱动层加密在操作系统层级进行加密操作,兼容性好,但由于涉及到操作系统最底层,很难处理跟底层驱动的关系,稳定性差。应用层加密在操作系统之上进行加密操作,虽然可能跟其他产品发生冲突,但稳定性高。因此,现有产品中采用驱动层加密的较少,因为稳定性差对安全产品来说是致命的缺点。多数产品都采用应用层加密辅以驱动级技术来兼得系统稳定性和兼容性。另外,认为驱动级加密能支持所有程序,对其进行加密的想法也不正确,驱动级加密和应用层加密都是需要对指定的程序进行开发才能支持。因此,驱动层加密和应用层加密不能说谁取代谁,两者各有优劣,关键看哪一种方式能更好满足客户的需求。


--------本帖迄今已累计获得5安全币用户奖励--------
lovess+22010-08-17 14:50
snowbird+32010-08-10 11:10


页首
  用户资料  
 
 文章标题 : Re: 本人对应用层加密和驱动层加密的一点思考
帖子发表于 : 2010-07-29 16:54 
离线
版主

注册: 2006-09-10 00:35
最近: 2010-09-08 14:28
拥有: 3,242.60 安全币

奖励: 1634 安全币
在线: 3461 点
帖子: 303
使用应用层API HOOK实现所谓的“透明”加解密,最大的缺点是在处理内存映射方式读写文件的时候,不能做到“用到哪里才解密哪里”,而只能在一开始就把整个文件全部解密,低效且更耗资源。
对于特别大的文件,如一些工程图纸、游戏场景、音频视频等,以及同时打开虽然不大但数量众多的文件,如xx装配件文件,用API HOOK来处理简直是噩梦。
而以文件系统过滤驱动为代表的透明加解密技术,则避免了以上重大问题。至于给人稳定性不佳的印象,那是有些公司“没有金刚钻,偏要揽瓷器活”造成的。


--------本帖迄今已累计获得35安全币用户奖励--------
phrack+282010-07-30 02:21
icekyle+42010-07-29 21:15
snowbird+32010-08-10 11:10


页首
  用户资料  
 
 文章标题 : Re: 本人对应用层加密和驱动层加密的一点思考
帖子发表于 : 2010-07-29 17:00 
离线
版主

注册: 2006-09-10 00:35
最近: 2010-09-08 14:28
拥有: 3,242.60 安全币

奖励: 1634 安全币
在线: 3461 点
帖子: 303
恕我直言,楼主在驱动方面完全是外行。

“文件系统驱动就是把文件作为一种设备来处理的一种虚拟驱动。”
研究了这么多年Windows内核,楼主这话我还是头一次听说,而且完全不知道在说什么。

1,文件系统“处理”的是磁盘和扇区,而文件是文件系统提供给操作系统和应用程序用的,是文件系统之上的概念。
2,文件系统没有“把文件作为一种设备”。Linux倒是经常把设备作为文件来访问。
3,只听过虚拟设备,楼主发明的“虚拟驱动”是什么东西?


--------本帖迄今已累计获得35安全币用户奖励--------
phrack+282010-07-30 02:20
icekyle+42010-07-29 21:16
snowbird+32010-08-10 11:11


页首
  用户资料  
 
 文章标题 : Re: 本人对应用层加密和驱动层加密的一点思考
帖子发表于 : 2010-07-30 15:35 
离线
初级用户

注册: 2009-08-04 16:38
最近: 2010-08-18 17:17
拥有: 73.00 安全币

奖励: 0 安全币
在线: 53 点
帖子: 25
一时笔误,我的意思是:"文件系统驱动就是把文件作为一种对象来处理的一种驱动",版主不要这么激动!

对于版主的话,我不是很认同:
“使用应用层API HOOK实现所谓的“透明”加解密,最大的缺点是在处理内存映射方式读写文件的时候,不能做到“用到哪里才解密哪里”,而只能在一开始就把整个文件全部解密,低效且更耗资源,”
“用到哪里才解密哪里”确实是避免性能的一种方法,但绝不是唯一方法,适当的增加内部文件的缓冲,也是解决性能的一个很好方法,合理应用,是可以解决版主所谓的APIHOOK的致命缺点的,关键是你用得如何。
以文件系统过滤驱动为核心的产品,不稳定性太多了,对于用户来说,稳定是压倒一切的。


--------本帖迄今已累计获得2安全币用户奖励--------
lovess+22010-08-17 14:50


页首
  用户资料  
 
 文章标题 : Re: 本人对应用层加密和驱动层加密的一点思考
帖子发表于 : 2010-07-31 14:41 
离线
版主

注册: 2006-09-10 00:35
最近: 2010-09-08 14:28
拥有: 3,242.60 安全币

奖励: 1634 安全币
在线: 3461 点
帖子: 303
zero17 写道:
一时笔误,我的意思是:"文件系统驱动就是把文件作为一种对象来处理的一种驱动",版主不要这么激动!

对于版主的话,我不是很认同:
“使用应用层API HOOK实现所谓的“透明”加解密,最大的缺点是在处理内存映射方式读写文件的时候,不能做到“用到哪里才解密哪里”,而只能在一开始就把整个文件全部解密,低效且更耗资源,”
“用到哪里才解密哪里”确实是避免性能的一种方法,但绝不是唯一方法,适当的增加内部文件的缓冲,也是解决性能的一个很好方法,合理应用,是可以解决版主所谓的APIHOOK的致命缺点的,关键是你用得如何。
以文件系统过滤驱动为核心的产品,不稳定性太多了,对于用户来说,稳定是压倒一切的。


对内存映射的数据,不借助驱动就无法知道应用程序“用到哪里”,所以必须在一开始就全部解密到临时文件或者内存中。所以,根本就没有“适当的增加内部文件的缓冲”的问题。不管适当不适当,都只能全部缓存,别无选择。

对于某些频繁使用内存映射方式读写特大文件的应用来说,即使应用程序其实只写一个字节,API Hook还是得在每次读写前都把被映射的部分解密一遍,解除映射的时候再加密写入文件,效率极其低下。
企图一次性缓存整个文件是行不通的。因为所谓的特大文件可能超过4GB大小。

即使是非映射方式的普通读写,驱动可以充分利用文件系统的Cache和延迟写入机制提高效率,而API Hook却有可能反复加密即将被覆盖的临时数据。所谓的“适当的增加内部文件的缓冲”,不可能比系统的Cache更高效。而且,我敢断定不会有公司吃饱了撑得去这么做。因为有这样追求的公司,一开始就会选择驱动的方式解决问题。选择API Hook的,即使想模仿系统的Cache也做不好。

稳定压倒一切,那是技术水平差的公司的借口。技术落后就要承认落后,不能与时俱进就只有被淘汰。


--------本帖迄今已累计获得36安全币用户奖励--------
phrack+282010-08-01 08:25
danby+52010-07-31 23:35
snowbird+32010-08-10 11:11


页首
  用户资料  
 
 文章标题 : Re: 本人对应用层加密和驱动层加密的一点思考
帖子发表于 : 2010-07-31 23:37 
离线
高级用户

注册: 2009-10-09 17:39
最近: 2010-09-06 19:40
拥有: 812.00 安全币

奖励: 1300 安全币
在线: 1167 点
帖子: 230
膜拜版主!!!剖析得很透彻,学习了,真的是专家! :)


页首
  用户资料  
 
 文章标题 : Re: 本人对应用层加密和驱动层加密的一点思考
帖子发表于 : 2010-08-10 10:57 
离线
初级用户

注册: 2010-06-29 16:12
最近: 2010-09-08 11:30
拥有: 3.00 安全币

奖励: 0 安全币
在线: 0 点
帖子: 31
还能更加通俗易懂点吗 作为一个完全不懂技术的客户 悲伤的飘过


--------本帖迄今已累计获得2安全币用户奖励--------
lovess+22010-08-17 14:50


页首
  用户资料  
 
 文章标题 : Re: 本人对应用层加密和驱动层加密的一点思考
帖子发表于 : 2010-08-17 14:49 
离线
中级用户

注册: 2010-04-29 17:15
最近: 2010-09-08 14:14
拥有: 16.00 安全币

奖励: 117 安全币
在线: 0 点
帖子: 68
地址: 保定市
很精彩,楼主和版主,都很有自己的见解,大家都这样的话,咱们的论坛肯定会越来越专业。


页首
  用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:wuqs 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
华安信达(CISPS.org) ©2003 - 2010