阅读:4243回复:5
[讨论]linux透明加解密
这两年来坛子不是很活跃,就是那么几条供人下载的老帖挂在前面,看来透明加密这块厂家和技术基本上已经稳定。最近在弄linux网络设备,顺便了解下linux下的透明加解密实现,上网查了下资料基本上没有,而已经推出linux版本的厂家动静比较大的也就是亿塞通,搜索第一页半数是他的软文。总体上个人感觉如果想在IT行业中推广文档安全产品,不支持linux基本上就没戏。
网络搜索的结果比较多的一种观点是linux下透明加解密比较简单,可以通过fuse实现;但所谓fuse只不过是用于实现用户态文件系统,更确切的说是为了管理文件系统的磁盘结构,文件系统上层逻辑有fuse内核模块实现。用fuse是不可能实现目前我们公认的基于进程的透明加解密方式,不过倒可以实现基于文件的虚拟磁盘。当然也许是我比较愚笨,希望有经验的同学赐教。 下面是我个人认为一种可行的方法,linux下面基于进程的透明加密难点和windows一样,就是映像,这里的方法和windows类似采用堆栈式文件系统,实际上原理和layerfsd基本上一致,相对于windows来说,vfs帮我们做了很多事情,但也带来不透明性; 1、新建一个文件夹,用于加密进程重定向;比如\flyencrypt; 2、创建堆栈式文件系统,以ecryptfs为模版,挂根目录到\flyencrypt,这样\flyencrypt里处理的文件都将加密; 3、HOOK sys_open和sys_openat,如果是加密进程则重定向到\flyencrypt;同时保护\flyencrypt被非加密进程访问; 4、主要有三个问题需要解决, a、文件名的获取,通过父句柄组织全部路径; b、正确判断是常规文件还是其他文件,这只能在重定向到\flyencrypt后,在堆栈式文件系统中调用底层真实文件系统获取inode后才能知道,如果获取的文件不是常规文件,则返回特定的错误代码,在sys_open/sys_openat继续处理正常的流程; c、直接挂根目录对非正常文件的影响; 经过多天思考,用到了hook,用到了堆栈式文件系统,感觉不是很靠谱,但确实想不出其他更靠谱的办法了,希望有经验的同学不吝赐教。 |
|
沙发#
发布于:2012-03-22 09:28
其实原理是一样的,我觉得fuse 是一个方案,但是要考虑具体问题,比如你提到的。
希望你继续发表你的心得。 |
|
|
板凳#
发布于:2012-03-22 14:17
纠正下,上述对FUSE理解和应用有误。用FUSE把根目录加载到某个临时目录下,即可实现透明加解密,实现方法跟上述内核实现方法类似,HOOK区分加密进程及重定向到FUSE是不可少的。
上网查了下FUSE的主要几方面应用,上面所说的实现虚拟磁盘基本上不可能。 实验性文件系统; 文件夹加解密; 特殊格式文件应用,比如把ZIP虚拟为一个文件系统; |
|
地板#
发布于:2012-03-23 10:53
是的。这个也是一种可行方案,不过性能。。。
|
|
|
地下室#
发布于:2012-03-27 18:25
在2011年初就有公司推出linux文档加密了,当然不是你提到的那家。
我的blog里面有相关的技术层面讨论,不涉及细节。 使用fuse,可以做成文件加密。 和windows差不多,技术想起来简单,但是实际操作起来就不是那么容易了。 |
|
|
5楼#
发布于:2012-07-08 09:40
当前涉及windows平台加解密的企业有几百家,但是涉及linux平台加解密的公司却很少,为了帮助一部分安全产品厂商快速进入linux透明加解密市场,青岛健明科技发展有限公司特推出针对软件企业的linux内核级透明加解密模块. 1. 本模块对上层以系统调用的方式提供接口。 2. 软件开发企业可以定制加解密模块的功能。 3. 对外可以以集成软件开发商自主产品推出。. 欢迎希望进入linux加解密市场的软件公司与本公司联系. 公司网站http://www.jm8848.com |
|