znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
阅读:21426回复:47

第四代文件加密驱动技术讨论 filter +layerFSD ,源于OSR

楼主#
更多 发布于:2008-05-27 15:40
第四代新的加密驱动技术 layerfsd,具体相关信息,参看 osr tony的发言.因为太贵,基本上国内没有人拿到过实际的开发包,大家讨论一下原理及实现

最新喜欢:

ljl260435988ljl260... tc891122tc8911... lixianhuilixian...
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2008-05-27 15:45
xxxx  admin 说:
准备换个方向


 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
作啥?


 xxxx admin 说:
做Layered FSD

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
仿osr?
 xxxx admin 说:


 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
有没有osr的包?
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
你觉得osr的方案有啥好处?
 xxxx admin 说:
越来越觉得大方向不对

 xxxx admin 说:
多个FCB

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
为什么?
 xxxx admin 说:
至少是目前国内最需要的
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
什么是国内最需要的?
 xxxx admin 说:
多个FCB 就是多个缓存啊

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
fcb跟缓冲无关
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
 不是必须的
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
一个fcb也可能有多个缓冲
 xxxx admin 说:
Hook和刷不是正道

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
en
 xxxx admin 说:
维护多个FCB才是正道

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
但是多个fcb有数据同步问题存在
 xxxx admin 说:
LayeredFSD类似Filter的概念
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
我知道.它是挂在fsd之下
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
分区驱动之上
 xxxx admin 说:
多挂几个LayerdFSD可以实现很多东西
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
得找一些资料
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
osr好象就是这样实现的
 xxxx admin 说:
恩,OSR的DMK是这样弄得
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
有没有dmk包?
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
 如果有bin话,可以学习一下
 xxxx admin 说:
100w呢,

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
hehe
 xxxx admin 说:
bin?哈哈
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
有没有demo
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
?
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
现在都是看它的资料推测
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
没实际的东东
 xxxx admin 说:
看OSR Tony 的一些发言,估计是这样的

 xxxx admin 说:
Filter+LayeredFSD 实现了我们现在类似的功能

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
你觉得它各有啥用?
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
filter跟fsd各完成啥?
 xxxx admin 说:
完全可以实现你现在的功能啊
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
lyaerfsd应该跟imd  类似
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
承认启下
 xxxx admin 说:
比如说按进程加密
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
插在fsd中间
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
fsd中可能不好得到进程吧?
 xxxx admin 说:
不是这种,


 xxxx admin 说:
FSD直接处理Useer的IRP,当然能得到Process

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
en
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
你觉得它filter用来作啥?
 xxxx admin 说:
定向啊
 xxxx admin 说:
比如说不同的进程指向不同的FCB 不久实现你现在的功能了
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
但是,别忘了数据同步
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
不同的fsb实际上指向同样的数据区,需要同步
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
这就是为什么windows下同一个文件只有一个fcb
 xxxx admin 说:
内容是不同的,同步是选择性一些内容

 xxxx admin 说:
比如Size。
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
只有在基于网络路径时不同的路径才出现不同的fcb
 xxxx admin 说:
只有不同的FCB才会存在两份不同的缓存内容(对同一文件来说)。

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
其实同一个fcb也可以不同的缓冲
 xxxx admin 说:
不然只有Hook或者通过刷 来切换的吧

 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
可以管理的
 znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
不同的fcb,涉及同步问题
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
phila
驱动牛犊
驱动牛犊
  • 注册日期2004-07-13
  • 最后登录2012-06-19
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望67点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-05-27 16:01
先不说第几代的问题,几年前osr就坐了这个了,现在回头想想,这么做应该是才是一个大的方向,大家都透明加解密做了这么久了,目前的解决方案究竟怎么样,应该冷暖自知的
looksail
荣誉会员
荣誉会员
  • 注册日期2005-05-22
  • 最后登录2014-03-15
  • 粉丝2
  • 关注0
  • 积分1016分
  • 威望991点
  • 贡献值0点
  • 好评度239点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-05-27 18:35
确实,越往下做发现越多问题,越往下做发现这玩意根本不该我们来做,而是微软自己做!

但是为了吃饭咱们继续前进!
提问归提问,还是只能靠自己
phila
驱动牛犊
驱动牛犊
  • 注册日期2004-07-13
  • 最后登录2012-06-19
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望67点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-05-27 21:09
目前的技术来说,就像zn他们说的,存在较高服务壁垒的领域,需要提供商有力的支持和维护,说的很有道理,但是这样做对于产品的大规模推广存在很大的瓶颈,你的人员各方面的投入就会比较大,跟本上来说,可能真的是我们的技术方向错了,这也是这段我们一直在反思的问题
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2008-05-30 18:21
我没有找到“osr tony的发言”,可以提供layerFSD的相关链接吗?
一切都是时间问题!
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-05-30 19:09
引用第3楼looksail于2008-05-27 18:35发表的  :
确实,越往下做发现越多问题,越往下做发现这玩意根本不该我们来做,而是微软自己做!

但是为了吃饭咱们继续前进!

顶!
另外问一句,前面三代是什么?
qianjunhua
驱动小牛
驱动小牛
  • 注册日期2003-12-08
  • 最后登录2013-02-27
  • 粉丝11
  • 关注0
  • 积分712分
  • 威望1052点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-07-16 11:12
layerFSD 才是做透明文件加密的王道!从上面的msn的聊天可以看出xxx的研究要比zsoft 多一点。不过想做layerFSD ,就得好好研究fsd了。
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
8楼#
发布于:2008-07-20 01:17
第四代了~~~
世界发展越来越快~~
没有战争就没有进步 X3工作组 为您提供最好的军火
stpaladin
驱动牛犊
驱动牛犊
  • 注册日期2008-06-19
  • 最后登录2010-12-29
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望39点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-07-21 14:34
我刚开始MiniFilter的研究,是不是正在研究过时的东西
download
驱动牛犊
驱动牛犊
  • 注册日期2002-04-06
  • 最后登录2021-06-15
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望115点
  • 贡献值0点
  • 好评度45点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2008-07-22 21:45
有起头就不会晚....
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
11楼#
发布于:2008-08-23 16:31
========================================
xxxx admin 说:
LayeredFSD类似Filter的概念
znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
我知道.它是挂在fsd之下
znsoft(马勇) -- 态度决定一切,性格决定命运! 说:
分区驱动之上
========================================
http://bbs.driverdevelop.com/htm_data/39/0806/111569.html图中来看应该不是位于FSD之下,分区驱动之上,^-^
人总在矛盾中徘徊。。。
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
12楼#
发布于:2008-08-28 11:13
仔细想想,分层文件系统的问题也挺多的!
(1)对不同文件系统的透明支持!
(2)不同层之间的同步问题!
(3)内存映射的双缓冲支持问题?(这个当前是没有人做出来的,不知道这个结构是否支持)
(4)对于CACHE IO和非CAHCEIO的读写的处理问题?
(5)加文件头和加文件尾的问题。
(6)访问边界阀值的问题。
。。。。
一切都是时间问题!
bluacat
驱动小牛
驱动小牛
  • 注册日期2004-09-13
  • 最后登录2016-09-25
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望277点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2008-08-28 13:35
>> (3)内存映射的双缓冲支持问题?(这个当前是没有人做出来的,不知道这个结构是否支持)
dmk对同一个文件能产生两个不同的FCB,显然是可以的。(一个dmk维护的,一个是系统原来的)
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
14楼#
发布于:2008-08-28 14:22
这段时间一直在研究WINDOW的内存管理器和CACHE管理器。
耗费了许多时间,发现,只要是对一个文件创建的两个内存影射,不管FCB怎么变化,最后的SECTION都是只有一个的。否则,就会有严重的同步问题。
这个是WINDOW在设计内存管理器和CHACHE管理器的时候就决定好的,内存中只有磁盘数据的一份拷贝。
感觉如果需要支持物理磁盘上的一份数据可以在内存中有两个拷贝,又不出现同步问题,必须对WINDOW做大手术。
不过,也可能是我研究的不够透彻。学习中.....
一切都是时间问题!
AlexSho
驱动牛犊
驱动牛犊
  • 注册日期2008-01-10
  • 最后登录2017-12-01
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望164点
  • 贡献值0点
  • 好评度45点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2008-09-03 16:16
引用第14楼dreamsity于2008-08-28 14:22发表的  :
这段时间一直在研究WINDOW的内存管理器和CACHE管理器。
耗费了许多时间,发现,只要是对一个文件创建的两个内存影射,不管FCB怎么变化,最后的SECTION都是只有一个的。否则,就会有严重的同步问题。
这个是WINDOW在设计内存管理器和CHACHE管理器的时候就决定好的,内存中只有磁盘数据的一份拷贝。
感觉如果需要支持物理磁盘上的一份数据可以在内存中有两个拷贝,又不出现同步问题,必须对WINDOW做大手术。
不过,也可能是我研究的不够透彻。学习中.....


Layered FSD不存在同步问题。任何时候一个FCB只有一份缓存。
Layered FSD虚拟出一个Fake FCB(并自己管理),任何对该Fake FCB的操作,都会被LFSD截获,然后LFSD将其转化为对真正的FCB的操作(加密/解密)。
对系统以及应用程序来说,这两个FCB是不同的,也就是说,对明文App和密文App来说,可以简单的认为它们操作的是两个不同的文件,只不过这两个文件最后存储在磁盘上的位置是一样的。
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
16楼#
发布于:2008-09-03 18:01
1.操作
如果出现下面的访问序列:
(1)进程A打开fileShare,创建文件影射MapA,在文件影射上创建ViewA
(2)进程B打开fileShare,创建文件影射MapB,在文件影射上创建ViewB
(3)进程A使用memcpy修改ViewA
(4)进程B使用memcpy修改ViewB
2.问题:
ViewA 和ViewB的数据怎么同步?
3.分析
由于window是使用同一个SectionObject来处理的,也就不存在数据同步更新的问题。
但如果是使用Layered FSD弄出两个FCB出来,那么这两个FCB是指向同一个SectionObject还是两个不同的SectionObject。如果是同一个SectionObject,那么内存中数据只有一份,是无法实现双缓冲的;但如果是两个SectionObject,那么这两个SectionObject之间的同步怎么处理?需要一些额外的处理代码?这个工作量有多大?是否可以做到和原有的机制机制兼容?
一切都是时间问题!
qianjunhua
驱动小牛
驱动小牛
  • 注册日期2003-12-08
  • 最后登录2013-02-27
  • 粉丝11
  • 关注0
  • 积分712分
  • 威望1052点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2008-09-03 18:21
引用第15楼AlexSho于2008-09-03 16:16发表的  :


Layered FSD不存在同步问题。任何时候一个FCB只有一份缓存。
Layered FSD虚拟出一个Fake FCB(并自己管理),任何对该Fake FCB的操作,都会被LFSD截获,然后LFSD将其转化为对真正的FCB的操作(加密/解密)。
对系统以及应用程序来说,这两个FCB是不同的,也就是说,对明文App和密文App来说,可以简单的认为它们操作的是两个不同的文件,只不过这两个文件最后存储在磁盘上的位置是一样的。

理解的不错啊。现在有实现的代码了吗?
bitsoldier2007
驱动牛犊
驱动牛犊
  • 注册日期2008-06-03
  • 最后登录2009-04-27
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望18点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2008-09-03 21:17
Windows不象Linux,源码并不开放,也不能对其作修改,想要做一个Microsoft设计时完全没有考虑过的问题,我觉得不大现实,最多也就能做个实验室级的产品出来演示一下。
bitsoldier2007.spaces.live.com
qianjunhua
驱动小牛
驱动小牛
  • 注册日期2003-12-08
  • 最后登录2013-02-27
  • 粉丝11
  • 关注0
  • 积分712分
  • 威望1052点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2008-09-03 21:35
呵呵 过几个月我给大家放一个测试版本,让大家玩玩。
上一页
游客

返回顶部