实现文件系统的透明加密,目前有哪些常用的方法和技术手段
这里说说"过滤驱动"文件系统透明加密技术。它可以快速高效地实现对文件数据的加密存储,而且可以方便地实现对文件名的加密,其实现效果是:当驱动程序加载成功后,用户新建的任何文件,其文件名都将被加密,而一旦用户将驱动程序卸载后,用户看到的文件名都将成为乱码,只有重新加载驱动后,才能显示正确的文件名。
对文件名加密的具体实现过程如下:1. 当用户新建或复制一个新文件的时候,驱动程序将接收一个类型为IRP_CREATE 的IRP 请求包。在该请求包中,将存放文件名的缓存进行加密。需要注意的是:由于对文件名加密后,文件名中可能存在一些非法字符,如?、*等等,因此必须对加密后的文件名进行DBASE64 编码,才能在操作系统下正常使用加密后的文件。
当系统需要显示用户目录的时候(包括从命令行方式),驱动程序将接收一个类型为IRP_MJ_DIRECTORY_CONTROL 的IRP 请求包,在该请求包中,将存放文件名的缓存进行解密。
有三种吧,一种是基于硬件的,一种是系统ring3级的,一种是系统ring0级的.基于硬件级的话就是速度相对快一些,不用计算机的cpu参与运算,只需将数据发往硬件加解密引擎。优点是速度快,难于破解,缺点是成本高。
基于系统ring3级的话一般是通过hook api来实现的,但是这种的缺点也很明显,基本对于会计算机的来说是没有什么用的。而且工作在ring3,很容易受到攻击。
最后一种是系统ring0级的,就是文件过滤驱动。这种为大多数透明加密所采用的方法,微软有现成的框架与例子代码,同时网上也有很多公开的资料与源码。
透明加密一般分两种方式:驱动层加密、应用层加密;驱动层加密通常采用文件过滤驱动技术,应用层加密通常采用 API HOOK(俗称钩子)技术,其基本原理都是要接管文件 IO(读写)操作,通过监视涉密进程(受保护程序)的磁盘读写,对保密文档进行动态的加密和解密。无论哪种方式,都会使用常用的加密算法,如DES、3DES、AES、RSA、 DSA、ECC等。参考资料:细谈透明加密软件的两次浪潮
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我之所以活到现在的全部意义,是为了此刻能对你说,我爱你,我会在你身后永远守护你。
文章 0 评论 0
接受
发布评论
评论(3)
这里说说"过滤驱动"文件系统透明加密技术。它可以快速高效地实现对文件数据的加密存储,而且可以方便地实现对文件名的加密,其实现效果是:当驱动程序加载成功后,用户新建的任何文件,其文件名都将被加密,而一旦用户将驱动程序卸载后,用户看到的文件名都将成为乱码,只
有重新加载驱动后,才能显示正确的文件名。
对文件名加密的具体实现过程如下:
1. 当用户新建或复制一个新文件的时候,驱动程序将接收一个类型为IRP_CREATE 的
IRP 请求包。在该请求包中,将存放文件名的缓存进行加密。需要注意的是:由于对文件
名加密后,文件名中可能存在一些非法字符,如?、*等等,因此必须对加密后的文件名进
行DBASE64 编码,才能在操作系统下正常使用加密后的文件。
当系统需要显示用户目录的时候(包括从命令行方式),驱动程序将接收一个类型为
IRP_MJ_DIRECTORY_CONTROL 的IRP 请求包,在该请求包中,将存放文件名的缓存进
行解密。
有三种吧,一种是基于硬件的,一种是系统ring3级的,一种是系统ring0级的.
基于硬件级的话就是速度相对快一些,不用计算机的cpu参与运算,只需将数据发往硬件加解密引擎。优点是速度快,难于破解,缺点是成本高。
基于系统ring3级的话一般是通过hook api来实现的,但是这种的缺点也很明显,基本对于会计算机的来说是没有什么用的。而且工作在ring3,很容易受到攻击。
最后一种是系统ring0级的,就是文件过滤驱动。这种为大多数透明加密所采用的方法,微软有现成的框架与例子代码,同时网上也有很多公开的资料与源码。
透明加密一般分两种方式:驱动层加密、应用层加密;驱动层加密通常采用文件过滤驱动技术,应用层加密通常采用 API HOOK(俗称钩子)技术,其基本原理都是要接管文件 IO(读写)操作,通过监视涉密进程(受保护程序)的磁盘读写,对保密文档进行动态的加密和解密。无论哪种方式,都会使用常用的加密算法,如DES、3DES、AES、RSA、 DSA、ECC等。
参考资料:细谈透明加密软件的两次浪潮