dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
阅读:2772回复:19

文件头加密是否是存在着技术上无法克服的缺陷的?

楼主#
更多 发布于:2008-08-02 22:20
不知不觉间,开发文件透明加密已经8个月了,
常用的软件在本地、网络、光盘、U盘上都不存在必出的BUG了。
现在几乎无法测试出问题了。即便是测试出,也是很偶然很偶然出一下,也无法重现的。
出现的BUG都是一些偶然出的,需要长时间测试、大数据量读写测试,才可以测试出来的。
常规的人工测试,已经无法满足我的需要。
我编写了自动化测试工具使用各种合法和不合法的参数来测试问题,
但每次长时间测出来的情况都是不一样的。
有时候是蓝屏,有时候文件读写后,内容不一致。。。
等等。
我有点怀疑是否我已经做到我的极限了,
是否采用文件头加密的方式,本身就是有技术缺陷的?
我怀疑是文件头加密的方式,破坏了文件系统本身的一些运行机制导致的。
我打算下一步重新阅读WINDOW的CACHE管理器和内存管理器的代码和文件系统的代码,如果这次阅读依然无法彻底解决所有问题。。。。。。
一切都是时间问题!
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2008-08-02 22:29
顺便说一下,现在的市面上做的比较好的几家公司的软件,都存在一定程度上的文件损坏和蓝屏的问题。我知道现在公司的竞争对手,好像都在为这些问题头痛,现在许多文档加密公司的人都在招人,可能也都是因为无法彻底解决这些问题。
一切都是时间问题!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2008-08-03 07:50
你发现的这些问题,是很严重的问题。其实主要原因是对文件系统不了解。

文件系统除了几个api之外,还有深层次的原因,8个月的路不短,其实也不长。还需要努力。

真要把加密做好,说实话,现在国内的技术水平还真不能解决这些问题。如果要解决所有问题,基本上需要把文件系统的结构重写一遍。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地板#
发布于:2008-08-03 07:53
文件系统加密的关键是缓存管理,但是这块, ms没有为加密作任何准备,实际上你需要处理所有可能的缓存管理方案。最好的办法就是重写文件系统...比如一些知名的开发包(国外的)基本上就是重写了文件系统结构来实现这些功能。这样才可以实现完全的EFS支持(windows加密文件系统之上再加密),压缩磁盘支持。这些是实质上的内容
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2008-08-03 09:32
恩。非常谢谢。
现在常常想自己要写个文件系统才能真正的搞清楚这里面的所有的运行机制。
不过开发时间不容许,这些基础研究太费时间的。等哪天自己没有生存压力了,一定慢慢折腾这些东西。
微软为什么不可以提供一个简单的文件系统的例子呐?郁闷。
fat32和ntfs还是太复杂了!fat32编译后,一旦挂进去,总有进程在自动访问文件系统,打印出的调试信息量太大了,垃圾信息太多了。如果一定要调试文件系统,必须弄一个没有界面的window执行环境来,剔除所有不必要的window组件,禁止运行所有非必要的进程。
一切都是时间问题!
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2008-08-03 09:41
我猜测,如果一定要解决所有问题,可能必须自己接管fcb结构的管理,或者说是在文件系统上面再用过滤驱动构造一层文件系统。感觉问题出在fcb的字段上面,由于fcb可以被内存管理器和CACHE管理器以及文件系统都看到。文件头加密的情况,文件系统、内存管理、CACHE管理器看到的内容本来就是不一样的(至少文件的有效长度是不一样的)。这样一来,一些边界问题的管理机制就失效了,或者说三个模块出现了不一致的情况。新加的这一层文件系统,就是为了保持文件系统、内存管理、CACHE管理器的一致性。这个可能就是分层文件系统的一个构想吧。这个工作量太大了,不是我一个人可以搞定的东西。
一切都是时间问题!
looksail
荣誉会员
荣誉会员
  • 注册日期2005-05-22
  • 最后登录2014-03-15
  • 粉丝2
  • 关注0
  • 积分1016分
  • 威望991点
  • 贡献值0点
  • 好评度239点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-08-03 11:04
不知道那个OSR的开发包到底能否解决国内的这些实际问题,看上去很美好...

所以分层的文件驱动到底能否彻底解决问题,好像也不是很明了,如果冒险去折腾,说不定又是一条不归路

任何东西,越简单越不会出问题,考虑的越复杂实现的功能越多,越容易出问题


不知道楼主那里具体是些什么问题
提问归提问,还是只能靠自己
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2008-08-03 14:20
你写个自动化测试工具就可以测试出来的。
问题主要是两个“文件损坏”“系统蓝屏”
测试到最后,等解决了自己的代码上的所有BUG,
你会发现蓝屏之类的问题都不会出在自己的模块里。
总之一句话,编写“随机参数 长时间测试”的测试工具,这样做压力测试,做完你就可以知道我的问题了。
在开发后期,使用人工测试已经没有太大的价值了。一方面是很不容易测不出来,一方面是测试出来问题无法反复复现。必须使用自动化测试,而且就是我现在使用自动化测试,出了问题后,使用一样的操作序列,执行的结果还是有很大的随机性的。
一切都是时间问题!
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
8楼#
发布于:2008-08-03 14:28
这个是我对测试工具的功能定义,
有些已经在使用中,有些限于开发时间和技术能力没有实现,
但就实现的那部分而言,现在已经有了一些效果。
一切都是时间问题!
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
9楼#
发布于:2008-08-03 14:49
XXXX我等用磁盘加密的路过~~
没有战争就没有进步 X3工作组 为您提供最好的军火
bluacat
驱动小牛
驱动小牛
  • 注册日期2004-09-13
  • 最后登录2016-09-25
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望277点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2008-08-03 21:28
xxx 陷在泥塘的爬过
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
11楼#
发布于:2008-08-04 00:40
这个有关测试工具的描述倒是不错,基本上能概括大部分情况
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
12楼#
发布于:2008-08-04 08:55
磁盘加密才是正道,FSD层的话,只有在其上面完全自己实现一掏虚拟FSD,控制所有的操作,然后通过自己的精心管理,才有可能实现,不过估计把我们这里所有的人都加起来不吃不喝的做,都搞不定。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2008-08-04 09:35
这些加密方式各有各自的应用领域的,不存在哪种加密方式好的情况。
磁盘加密分为虚拟磁盘加密和物理磁盘加密,
虚拟磁盘加密一般是使用filedisk修改的,成熟的开源项目为pgp。
物理磁盘加密一般是使用磁盘过滤驱动修改的,成熟的开源项目为truecrypt。
这两种加密方式的代码实现都是比较简单的,核心的内核部分的代码大概有10K左右(全盘加密可能多一个BOOT模块,这个具体的工作量我不是很清楚,但可以参考TRUECRYPT),其他的所有的代码都是可以在AP上编译调试好,然后在驱动中直接使用的。就开发难度来说,都是比较简单的,开发是可以做到并行开发的,可以通过人力来堆时间的。
磁盘只适合个人用户,无法支持一台机器多用户的情况,无法支持根据不同的用户和不同的进程来判断加解密条件。而且,只要别人可以登陆机器,就可以将明文数据直接拷贝出去。这样一来,也就无法在企业级别的权限管理系统中有什么太大的用途。
磁盘加密适合商用的笔记本个人用户,适合处理“艳照门”类似的问题,但不适合处理“企业内鬼”的问题。
一切都是时间问题!
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
14楼#
发布于:2008-08-04 09:41
我的感觉就是,
个人用户用磁盘加密,(虚拟磁盘的安全性和稳定性是比全盘加密要好一些的)
小型企业用户用文件透明加密,
中大型企业使用门禁系统配合物理移动存储设备禁用、物理端口禁用和安全日志管理。
一切都是时间问题!
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
15楼#
发布于:2008-08-04 12:58
国家保密条例里明确说:所有涉密计算机不得以任何物理介质形式与WEB相连接.不说涉密计算机里有IE cooking,就是安装过QQ等软件都要把硬盘砸了再烧!~~~~呵呵.涉密内网的房间内不得有裸漏金属构件,包括暖气.内门不得为金属,外门必须为高品质防道门,每一台机器封闭USB 串口 并口 .......一堆机子用一台内网文件服务器,一台打印机........使用机器落实到人,都有记录.从外面倒来的数据必须用USB的也只能使用红,黄,蓝三个U盘来到,还要加一台中继机器,红盘只能在涉密机器用,黄盘只能在中继和涉密的用,蓝盘只能在WEB和中继的用.中继机器都是不能上网的,只能用于倒文件,而且还有使用特殊系统,特殊软件控制其各个接口.再利用特殊的保密管理软件对内网的每一台机器进行控制.出了就绝对是从主管校长开始一路撤职查办倒使用人..哈哈,大家到5处喝茶.......
没有战争就没有进步 X3工作组 为您提供最好的军火
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
16楼#
发布于:2008-08-04 14:51
呵呵。国家保密条例,太强悍了。
搜了一下
http://www.itsec.gov.cn/webportal/portal.po
安全证书太不好拿了。
一切都是时间问题!
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
17楼#
发布于:2008-08-06 18:14
现在仔细想了一下,以前的考虑考虑的多余了。
ntfs是支持压缩文件和散列文件的,现在的文件头加密也是一种类似的特殊的文件。
CACHE管理器和内存管理采用统一的接口可以支持那两类文件,不出现任何问题。
同理,文件头加密也应该是没有任何问题的。如果有问题,应该是对CACHE管理器和内存管理器理解的不够透彻。
不过如果需要支持文件头加密,必须想办法理解NTFS对压缩文件的支持方法。
一切都是时间问题!
shawhe
驱动牛犊
驱动牛犊
  • 注册日期2010-01-25
  • 最后登录2010-12-11
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望171点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2010-01-27 12:13
taiji78
驱动牛犊
驱动牛犊
  • 注册日期2009-12-08
  • 最后登录2012-08-16
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2010-01-27 16:00
透明加密,加密标识放在文件尾是比文件头更优秀的解决方案

我这才想明白,哈哈,是这样的。

说加密标识放在文件尾断电了怎么办,那就不会把它先存一下么?

而且最关键的是稳定性,对windows未来版本的兼容性,和“对系统的最小修改",从这些方面来看,文件尾是远远优秀于文件头的解决方案。

愿聆听各位大牛高见。
游客

返回顶部