bannerman
驱动牛犊
驱动牛犊
  • 注册日期2010-01-26
  • 最后登录2014-05-29
  • 粉丝2
  • 关注1
  • 积分41分
  • 威望341点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分22分
阅读:4047回复:5

[讨论]linux透明加解密

楼主#
更多 发布于:2012-03-21 23:31
这两年来坛子不是很活跃,就是那么几条供人下载的老帖挂在前面,看来透明加密这块厂家和技术基本上已经稳定。最近在弄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,用到了堆栈式文件系统,感觉不是很靠谱,但确实想不出其他更靠谱的办法了,希望有经验的同学不吝赐教。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2012-03-22 09:28
其实原理是一样的,我觉得fuse 是一个方案,但是要考虑具体问题,比如你提到的。

希望你继续发表你的心得。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
bannerman
驱动牛犊
驱动牛犊
  • 注册日期2010-01-26
  • 最后登录2014-05-29
  • 粉丝2
  • 关注1
  • 积分41分
  • 威望341点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分22分
板凳#
发布于:2012-03-22 14:17
纠正下,上述对FUSE理解和应用有误。用FUSE把根目录加载到某个临时目录下,即可实现透明加解密,实现方法跟上述内核实现方法类似,HOOK区分加密进程及重定向到FUSE是不可少的。
上网查了下FUSE的主要几方面应用,上面所说的实现虚拟磁盘基本上不可能。
实验性文件系统;
文件夹加解密;
特殊格式文件应用,比如把ZIP虚拟为一个文件系统;
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地板#
发布于:2012-03-23 10:53
是的。这个也是一种可行方案,不过性能。。。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
地下室#
发布于:2012-03-27 18:25
在2011年初就有公司推出linux文档加密了,当然不是你提到的那家。
 
我的blog里面有相关的技术层面讨论,不涉及细节。
 
使用fuse,可以做成文件加密。
 
和windows差不多,技术想起来简单,但是实际操作起来就不是那么容易了。
 
 
 
走走看看开源好 Solaris vs Linux
Z16300
驱动牛犊
驱动牛犊
  • 注册日期2002-06-04
  • 最后登录2018-01-17
  • 粉丝3
  • 关注0
  • 积分88分
  • 威望239点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2012-07-08 09:40

当前涉及windows平台加解密的企业有几百家,但是涉及linux平台加解密的公司却很少,为了帮助一部分安全产品厂商快速进入linux透明加解密市场,青岛健明科技发展有限公司特推出针对软件企业的linux内核级透明加解密模块.
1. 本模块对上层以系统调用的方式提供接口。
2. 软件开发企业可以定制加解密模块的功能。
3. 对外可以以集成软件开发商自主产品推出。.
欢迎希望进入linux加解密市场的软件公司与本公司联系.

公司网站http://www.jm8848.com
游客

返回顶部