阅读:2488回复:16
如何让WORD或其他应用透明地读取一个加密文档?
我有一种想法,就是想让WORD或其他WINDOWS应用透明地读取一个经过加密的文档, 当然解密密钥是知道的. 能否有一种办法在系统中加入一个加密/解密模块, 能够在密文文件与应用程序之间架设一座自动转换的桥梁, 使得应用在读密文文档时就好象读明文文件一样?
另外写入磁盘时也可以自动加密. 哪位大虾对此有经验? 能否给我指个方向? 多谢了. |
|
最新喜欢:![]()
|
沙发#
发布于:2005-01-02 17:42
写一个 filter file system driver
过滤irp_mj_read ,irp_mj_write |
|
|
板凳#
发布于:2005-01-03 11:09
我的初步想法也是用文件系统过滤驱动解决,能否给出详细一点的介绍,如一些参考资料或样板代码什么的。
十分感谢! |
|
|
地板#
发布于:2005-01-03 13:15
我也在搞,就是没有搞好
|
|
|
地下室#
发布于:2005-01-03 13:24
楼上的朋友可以谈谈你的体会?
问题的难点在哪里? |
|
|
5楼#
发布于:2005-01-04 09:49
楼上的朋友可以谈谈你的体会? |
|
|
6楼#
发布于:2005-01-04 11:33
文件加密可以分为内核级加密和应用级加密,内核级加密也就是通过文件过滤驱动在IRP层来动态实现,应用级加密则是对整个文件的静态加密。
现在常见的加密产品应该多是应用级的加密,支持密码和密钥文件,以及多种加密算法。我认为内核层的透明加密做的最好的应该是windows中自带的EFS了。基于文件过滤驱动实现的透明加密有很多的缺陷,无法识别文件是否加密,很难应用好的加密算法,office文件的加密问题,等等。 |
|
|
7楼#
发布于:2005-01-04 12:03
加密难,难加密。
有谁做好了,说一下体会呀! |
|
|
8楼#
发布于:2005-02-01 14:06
是的,有同感。
|
|
|
9楼#
发布于:2005-02-02 05:47
I agree Encryption/Decryption FSFD is hard to develop. Microsoft's EFS is good but not good enough. You can try to copy an encrypted file to floppy disk.
The reason why it's hard to develop FSFD is because the whole windows kernel is a black box to us. Also encryption/decryption algorighm itself has some requirements which make FSFD even harder, such as block size and padding for block cypher. My suggestion is don't touch it unless your boss will fire you if you don't do it. :) [编辑 - 2/2/05 by michaelgz] |
|
10楼#
发布于:2005-02-02 08:45
谁能给出office文件加密解密的解决办法,我愿意给100分。
|
|
|
11楼#
发布于:2005-02-02 16:15
顶,有人尝试过,还好,本地加密我试过,可以,但是网络没有试过。
|
|
12楼#
发布于:2005-02-03 10:03
对于office文件的加密方法,我最近也在作,研究了一下以前的帖子,一般采用的方法都是先加密临时文件,然后在IRP_MJ_SET_INFOMATION改名时判断是否更名为我们监控的doc文档,然后执行静态加密。
不过我个人认为这样比较复杂,我目前利用filemon原型实现了基于目录的加密,也就是将某个目录中的所有文件进行加密,这样无论doc文档还是临时文档都加密,最终可以很好的加密doc文档。 不过需要做多一点的处理,例如需要额外判断目录中的文档类型,否则加密了某些系统文件就比较麻烦了 :) |
|
13楼#
发布于:2005-02-03 10:16
内核文件加密应首先考虑性能问题,我们知道,对称加密算法都有一个初始化向量,除非是简单的块加密,否则,在同一加密过程中,每块加密的数据都和上一块相关,于是问题就出现了。许多应用在读取文件时,并不是都从开始位置读起,有可能直接从某个偏移位置直接读取数据,例如从一个30兆加密文件的第29兆位置开始读取最后1兆,我们也不得不解密前29兆数据才可能解密最后一兆数据,我想,大多数用户都不希望以如此低下的性能为代价换取加密安全性。
|
|
14楼#
发布于:2005-02-03 10:19
我感兴趣的也是网络环境里的应用, 否则WIN2000/XP的EFS能够应付了.
还有一个问题是, 能否在驱动程序中知道当前想读这个加密文件的那个应用程序是什么应用? 因为阅读器可能有很多种. |
|
|
15楼#
发布于:2005-02-03 10:29
我觉得楼上关于性能考虑的说法有一定的道理,但是首先我们如果希望得到的是文件安全性,那么必须牺牲一定的系统性能,而且一个系统当中也不一定有很多需要加密的文档资料,由于数量的限制,对性能的影响可以忽略不计。
另外,对于你举的例子,30M大小的文档并不一定同时加密,你可以根据需要将用户的数据分成一定大小(例如1K)进行分块加密,这样就不用解密的时候读取那么大的文件了; 还有完全可以采用流加密方式,我测试过,采用流加密可以随机读取文件的内容,不过即便不能随机读取,总还是可以按照上面的方法处理的。关于这个问题,欢迎大家参与讨论! |
|
16楼#
发布于:2005-02-06 15:09
这个贴子不错。aasa2搞好了没有?可以把代码贴出来吗?大家一起研究。
|
|
|