0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在云存储上叠加加密文件系统的4种方案分析详解

存储界 2018-01-05 14:36 次阅读

目标很简单。云存储上很多文件都挺私人的,直接放着很吓人。虽说云存储采用各种方法来保证你的安全,但是世界上没有绝对的安全。万一密码泄漏,或者更糟糕,云存储泄漏。此时你的各种文件就在网络上裸奔了。

最简单的解决方法是什么?在底层存储上套一层加密呗。不过由于是云存储,所以基于块设备的加密方案不能用,例如LUKS。否则你同步到云上的就是一个超级巨大的块文件,然后每次修改,云存储客户端都要找到差别上传。这太蛋疼了。正解是每个文件分别加密上传。但即便如此,对于超大文件进行加密后依然会影响上传效率,请提前考虑一下这个问题。

同时又要注意,云存储用的加密文件系统和普通的加密文件系统还有点差别。很多加密文件系统的daemon会认为自己是唯一一个会访问加密内容的进程,而云存储可能随时接收来自远程的修改。所以这会造成一些问题。

备选方案

我对比了四种方案,EncFS,CryFS,GoCryptFS,eCryptFS。对比的方法是用这四种分别建立一个加密目录,然后用不同的方法做写入测试,看他的各种参数。顺便说一句,如果你要看的话,其实看这份表格就好。我只是在自己的机器上复现了一下,顺便了解一下各家特点。

测试语句:

timeddif=/dev/zeroof=testbs=1048576count=1024

timeddif=/dev/zeroof=testbs=1024count=1048576

timetarxflinux-4.13.12.tar.xz

其中,在裸盘上直接解压内核源码耗时7.568s,空间使用870M。

数据对比

+---------+-------+-----+-------+-----+-------+-----+--------------+

||time1|size1|time2|size2|time3|size3|comment|

+---------+-------+-----+-------+-----+-------+-----+--------------+

|EncFS|13.210s|1.1G|39.039s|1.1G|26.496s|894M||

+---------+-------+-----+-------+-----+-------+-----+--------------+

|CryFS|9.327s|1.1G|21.230s|1.1G|42.918s|2.5G|删除耗时2.804s|

+---------+-------+-----+-------+-----+-------+-----+--------------+

|GoCryptFS|3.515s|1.1G|28.180s|1.1G|19.874s|918M||

+---------+-------+-----+-------+-----+-------+-----+--------------+

|eCryptFS|3.132s|1.1G|10.218s|1.1G|9.448s|1.4G||

+---------+-------+-----+-------+-----+-------+-----+--------------+

解读

首先说怎么解读。time1是连续写入性能,time2是离散写入性能,time3是小文件写入性能,size3是大量小文件膨胀系统。size1和size2没啥用。

下面先看性能。从性能上看,最优秀的是eCryptFS。这是理所当然,因为这是唯一一个内核态而且和内核整合的系统。GoCryptFS次之。EncFS要慢上好多。至于CryFS,一开始写小文件就原型毕露了。何况这是唯一一个删除大文件时间超过1s的,达到2.8s。你看我其他系统测试里都没写。

然后是膨胀率。EncFS膨胀2.75%,CryFS膨胀近三倍,GoCryptFS膨胀5.52%,eCryptFS膨胀65%。相比起来,EncFS膨胀率最小,GoCryptFS次之,CryFS最糟糕。

安全性

下面是同一个人出的三份审计报告:

encfs的审计报告

gocryptfs的审计报告

ecryptfs的审计报告

根据报告可以得到这么几个意见:

EncFS有安全性隐患,目前未解决。主要隐患来自于文件块加密模式上。如果攻击者有机会获得多份密文副本,那么就是不安全的。

GoCryptFS有一定安全问题,目前未解决。下面细说。

eCryptFS需要进一步审计,目前可视为安全。

综叙

可能出乎大家意料,我首先排除了encfs和ecryptfs。encfs是因为有安全性隐患。ecryptfs是因为不便于使用和不兼容云存储模式。ecryptfs在每次挂载时都需要独立输入所有参数,这样使用起来比较不方便。更糟糕的是,ecryptfs并不支持同时有人访问加密数据本身。这样会造成竞争问题。对于一个内核级的东西来说,这有极大的危险性。同时,这货的膨胀率有点高。

然后在CryFS和GoCryptFS里,我选择GoCryptFS。虽然CryFS是唯一一个明确声明自己兼容云存储的,但是其膨胀率实在太高了。虽然是云存储,但是毕竟要考虑性价比的。

那么GoCryptFS的安全问题是什么呢?主要隐患来自和云存储混用时,攻击者虽然对文件内容一无所知,但是可以修改文件内容。例如将其他加密文件复制过来,或者将部分内容嫁接过来。审计报告里提供了一系列的POC来说明这一风险。这一风险对于特定情况的用户来说是非常危险的,例如在加密区域存储多个可信身份/帐号身份文件的人。

很幸运,我对这方面没要求。GoCryptFS的膨胀率不大,仅高于EncFS,完全可以接受。性能也不错,仅次于eCryptFS。使用非常方便,同时还能提供过得去的安全特性。因此综合上面所有情况,我选择GoCryptFS作为云存储上叠加的加密文件系统。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云存储
    +关注

    关注

    7

    文章

    736

    浏览量

    46042
  • 加密系统
    +关注

    关注

    0

    文章

    18

    浏览量

    11031

原文标题:在云存储上叠加加密文件系统

文章出处:【微信号:cunchujie,微信公众号:存储界】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FatFS文件系统STM32F4的移植和应用

    实现如U盘文件读写,SD卡的文件读写等工作时,我们往往需要一个文件系统来支持我们的工作。特别在一些MCU应用中,文件系统的加入能明显改善
    的头像 发表于 12-13 17:26 2627次阅读
    FatFS<b class='flag-5'>文件系统</b><b class='flag-5'>在</b>STM32F<b class='flag-5'>4</b><b class='flag-5'>上</b>的移植和应用

    Linux proc文件系统详解

    一篇:《文件系统有很多,但这几个最为重要》介绍了procfs(进程文件系统的缩写),包含一个伪文件系统(启动时动态生成的文件系统),用于通
    发表于 06-15 11:42 1085次阅读

    文件系统

    文件系统uClinux中的文件系统可以有多种选择。通常情况下,ROMfs是使用最多的文件系统,它是一简单、紧凑和只读的文件系统。ROMf
    发表于 06-02 09:29

    求一rtthread系统添加并使用文件系统的设计方案

    1、ART-PI中使用文件系统本次ART-PI实战的文件系统有三,分别是:RomFS
    发表于 05-06 14:42

    分析YAFFS文件系统Linux系统中的构建

    Flash File System)文件系统是专门针对NandFlash的特殊构造设计的,是一日志结构的文件系统,性能超越了原有的JFFS系列文件系统。但随着嵌入式威廉希尔官方网站 的发展,
    发表于 10-21 10:56 0次下载
    <b class='flag-5'>分析</b>YAFFS<b class='flag-5'>文件系统</b><b class='flag-5'>在</b>Linux<b class='flag-5'>系统</b>中的构建

    《Linux设备驱动开发详解》第5章、Linux文件系统与设备文件系统

    《Linux设备驱动开发详解》第5章、Linux文件系统与设备文件系统
    发表于 10-27 14:13 0次下载
    《Linux设备驱动开发<b class='flag-5'>详解</b>》第5章、Linux<b class='flag-5'>文件系统</b>与设备<b class='flag-5'>文件系统</b>

    文件系统隔离性度量模型

    文件系统多租户环境下的性能隔离性。由于环境1/0负载的动态性和异构性,所以准确评估文件系统
    发表于 11-20 15:15 9次下载
    <b class='flag-5'>云</b><b class='flag-5'>文件系统</b>隔离性度量模型

    Linux文件系统与持久性内存

    1、Linux 虚拟文件系统介绍 Linux 系统中一切皆文件,除了通常所说的狭义的文件以外,目录、设备、套接字和管道等都是
    的头像 发表于 11-26 14:34 2529次阅读
    Linux<b class='flag-5'>文件系统</b>与持久性内存

    Nand Flash文件系统解决方案

    Nand Flash文件系统解决方案(嵌入式开发一般考什么证书)-ST提供适用于SLC的NFTL(NAND Flash Translation Layer)和FAT类文件系统来解决NAND Flash
    发表于 07-30 10:41 9次下载
    Nand Flash<b class='flag-5'>文件系统</b>解决<b class='flag-5'>方案</b>

    嵌入式Linux系统移植-(Linux文件系统

    嵌入式Linux系统移植-(Linux文件系统)嵌入式文件系统概述·文件是有组织、有次序地存储
    发表于 11-02 12:51 16次下载
    嵌入式Linux<b class='flag-5'>系统</b>移植-(Linux<b class='flag-5'>文件系统</b>)

    FATFS文件系统详解

    一、文件系统负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在磁盘上组织
    发表于 11-29 09:51 29次下载
    FATFS<b class='flag-5'>文件系统</b><b class='flag-5'>详解</b>

    文件系统】FatFs文件系统嵌入式芯片LPC18XX的移植

    文件系统】FatFs文件系统嵌入式芯片LPC18XX的移植
    发表于 12-04 10:51 12次下载
    【<b class='flag-5'>文件系统</b>】FatFs<b class='flag-5'>文件系统</b><b class='flag-5'>在</b>嵌入式芯片LPC18XX<b class='flag-5'>上</b>的移植

    使用ZYMKEY加密Raspberry Pi的根文件系统

    电子发烧友网站提供《使用ZYMKEY加密Raspberry Pi的根文件系统.zip》资料免费下载
    发表于 06-16 10:43 0次下载
    使用ZYMKEY<b class='flag-5'>加密</b>Raspberry Pi<b class='flag-5'>上</b>的根<b class='flag-5'>文件系统</b>

    FATFS文件系统详解:关于SD卡、SD nand、spi nor flash等众多存储设备

    文章目录FATFS文件系统详解1.简介2.基础概念3.FAT文件系统组成介绍4.FAT文件系统分析4.1采用FAT格式格式化SDnand/s
    的头像 发表于 09-07 17:58 2269次阅读
    FATFS<b class='flag-5'>文件系统</b><b class='flag-5'>详解</b>:关于SD卡、SD nand、spi nor flash等众多<b class='flag-5'>存储</b>设备

    服务器数据恢复—ocfs2文件系统被误格式化为Ext4文件系统的数据恢复案例

    由于工作人员的误操作,将Ext4文件系统误装入到存储中Ocfs2文件系统数据卷,导致原Ocfs2文件系
    的头像 发表于 12-04 10:49 445次阅读
    服务器数据恢复—ocfs2<b class='flag-5'>文件系统</b>被误格式化为Ext<b class='flag-5'>4</b><b class='flag-5'>文件系统</b>的数据恢复案例