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

    文章

    714

    浏览量

    45825
  • 加密系统
    +关注

    关注

    0

    文章

    17

    浏览量

    10970

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

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

收藏 人收藏

    评论

    相关推荐

    文件系统

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

    FAT32+文件系统详解

    FAT32+文件系统详解
    发表于 08-20 19:03

    嵌入式Linux的文件系统及其存储机制分析

    的基于FLASH的文件系统类型。   1.嵌入式系统存储设备及其管理机制分析  构建适用于嵌入式系统的Linux
    发表于 09-22 15:58

    视频监控业务方案解析

    摘要: 阿里针对安防监控服务传统IT架构下面临的上述问题,基于阿里存储服务,提供视频监控解决方案。从2015年推出视频监控
    发表于 01-03 11:24

    嵌入式文件系统概述

    嵌入式Linux系统移植-(Linux文件系统)嵌入式文件系统概述·文件是有组织、有次序地存储
    发表于 11-05 06:29

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

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

    OpenHarmony littlefs文件系统存储结构与IO性能优化分析

    OpenHarmony littlefs文件系统存储结构与IO性能优化分析引言随着科技的发展和网络技术的进步,计算机存储空间愈加紧张,存储
    发表于 07-18 12:18

    stm32如何使用aes对文件系统文件加密

    请问有没我好的库可以调用对文件系统文件加密解密
    发表于 09-20 07:56

    嵌入式Linux文件系统存储机制

    本文分析了嵌入式系统中常用的存储设备及其管理机制,介绍了常用的基于FLASH的文件系统类型
    发表于 05-14 10:22 1468次阅读
    嵌入式Linux<b class='flag-5'>文件系统</b>及<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>

    EFI和双核处理器的加密文件系统研究

    EFI和双核处理器的加密文件系统研究
    发表于 10-31 08:36 6次下载
    EFI和双核处理器的<b class='flag-5'>加密</b><b class='flag-5'>文件系统</b>研究

    linux文件系统中的虚拟文件系统设计详解

    Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等。通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体
    发表于 04-02 14:37 1579次阅读
    linux<b class='flag-5'>文件系统</b>中的虚拟<b class='flag-5'>文件系统</b>设计<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>

    FATFS文件系统详解

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