词条 | eCryptfs |
释义 | 简介:eCryptfs - Enterprise Cryptographic Filesystem 可翻译为企业级文件加密系统 eCryptfs是Linux平台下的企业文件加密系统。它起源于Erez Zadok's Cryptfs,通过FiST框架实现层叠式文件系统的产生。 eCryptfs具有高级密匙管理和政策的特征。它将加密元数据存储在每一份被操作的文件头中,从而实现文件在不同主机之间的传输。 操作指南:1.使用环境:ubuntu系统或类似依赖DEB的linux系统 2.安装指令: sudo apt-get install ecryptfs-utils 3.软件最大特点是:用户对加密文件夹的操作是无缝的,就像操作正常的文件夹一样。 其它的,比如加密级别高——即使硬盘被盗,也不会泄密。和系统整合性高,基于内核级,整体安全性高于普通软件。 操作示例1,新建一个测试文件夹:ecryptfs_test 使用这个文件夹存放加密文件 命令: sudo mount -t ecryptfs ecryptfs_test ecryptfs_test mount 是挂载命令。-t 是指定文件类型。ecryptfs 就是我们使用的加密文件类型。 这里换一个命令说明一下sudo mount -t ecryptfs real_path ecryptfs_mounted_path real_path 是真实存放数据的地方;ecryptfs_mounted_path 是指你要把文件夹挂载于哪里(具体位置可以随意) IBM 推荐:ecryptfs_mounted_path 和 真实目录 real_path 一致,这样非授权用户不能通过原路径访问加密文件。 这里说一下挂载:很多人不理解 所谓挂载,可以理解为超级链接。比如说有两个文件夹 a,b。a中有文件isa,b中有文件isb。 现在我们要把a挂载于b上,命令:mount a b 此时b已经变成了a 的链接。所有对b的访问实际上都指向了a。 比如我们打开b文件夹,看到的文件只有isa。而打开a文件夹,文件还是isa 我们在b中存放一个新文件 isnew。 好了我们卸载这个挂载(取消这个超链接),命令:umount b 现在查看a文件夹,里面有文件isa isnew 查看b文件夹,里面只有isb 为使么说是超级链接呢,因为有个选项(其它选项我还不会) -t 它的意思是指定 文件夹类型(文件系统类型)。文件系统类型有很多,比如我们使用的ext4、ext3、fat32、ntfs……还有特殊的文件系统,比如 tmpfs(用内存 存文件)、ecryptfs(文件加密格式)…… 2,mount 需要root权限,我们使用 命令sudo ,来以root身份运行命令 结果如下: passphrase: (这是要你输入密码,自己编一个。一定要记住。另外密码是不会有任何显示的,输完回车就行) select cipher: (选择加密方式,不选默认是[aes]。最好记住自己的选择) select key bytes: (选择加密位数,不选默认是[16]。最好记住自己的选择) enable plaintext passthrough(y/n) [n]: (是否允许使用明文,默认是 n) enable filename encryption (y/n) [n]: (是否把文件名也进行加密,默认是 n。如果选择y,那么在没有解密 的情况下是无法看见文件夹内部的文件的) 如果设置的密码是第一次使用,它会提示你密码被标识为[799d2f922c0f1f26] 。当然,你的密码标识肯定不会是这个。并且告诉你挂载错误,因为/root/.ecryptfs/sig-cache.txt中没有相关记录。开始让你选择: Would you like to proceed with the mount (yes/no)? : (你是否希望继续进行挂载。我们输入yes,来完成加密) Would you like to append sig [799d2f922c0f1f26] to [/root/.ecryptfs/sig-cache.txt] in order to avoid this warning in the future (yes/no)?: (你是否把密码标识加到/root/.ecryptfs/sig-cache.txt中,免得下次再报警。我们输入yes) 3,好了,现在正常操作ecryptfs_test文件夹。 放一些文件来测试。 4,关闭解密 命令: sudo umount -t ecryptfs ecryptfs_test (如果使用的是sudo mount -t ecryptfs real_path ecryptfs_mounted_path 那么对应的命令是sudo umount -t ecryptfs ecryptfs_mounted_path) 这命令是把挂载取消了。这里的作用相当于把解密取消了,毕竟把重要文件长时间解密放着不好。 好了,再看看ecryptfs_test文件夹,里面的文件是不是都无法正确打开了? 需要解密文件夹时还是用命令: sudo mount -t ecryptfs ecryptfs_test ecryptfs_test (格式还是不变:sudo mount -t ecryptfs real_path ecryptfs_mounted_path) passphrase: select cipher: select key bytes: enable plaintext passthrough(y/n) [n]: enable filename encryption (y/n) [n]: 上面这几相当初怎么设置的就怎么填,之后文件夹就解密了。 不用了,还是用命令解除解密状态 sudo umount -t ecryptfs ecryptfs_test 这里说一点,mount命令重启就失效了。如果你要关机了,不必使用sudo umount -t ecryptfs ecryptfs_test 命令了。因为再次开机,解密是失效的。必须重新运行命令sudo mount -t ecryptfs ecryptfs_test ecryptfs_test 高级应用示例:我们知道 ecryptfs 是文件虚拟层,其功能就是 加密/解密。没有密码验证一说 也就是说,它根据密码进行加密/解密。即使密码不正确依旧进行 加密/解密,与数据无关。 那么: 1,可以重复加密。实验证明的确可以。因为 mount 是可以重复挂载的。更别说多次挂载在不同地方。 试验:假设有这么几个文件夹 test a b mount -t ecryptfs test test 密码设置为 1234 里面放文本文件 one。 好了再次挂载 mount -t ecryptfs test a 密码为4321 放文本 two 再次挂载 mount -t ecryptfs a b 密码0987 放文本 three 好了在文件夹 test a b中均可看见 one two three文件,可是 test中只有 one可以打开,a 中只有two可以打开,b中只有three可以打开。 因为one被密码1234加密,two被密码1234和密码4321加密两次,three呢1234、4321、0987加密三次。 test中文件被1234解密一次,a中文件被密码1234和密码4321解密两次,b中1234、4321、0987解密3次。 所以test中除了one被正确解密,其它的都还在加密状态。 a中,one被1234正确解密却又被4321再次解密,就成了乱码(相当于被加了密) 这样一来,假设test中的文件被加密了2次。 那么别人破解密码就很有一思了(假设他不知道文件被加密了几次)。 如果尝试一个密码,显示的文件夹内容是乱码。那么就有2个可能 要么是密码错了,要么是密码对了还要再解密。 当然,对于密码学而言(直接从密文还原为明文)。使用同一方法重复加密丝毫不能增加安全性,不管重复多少次其效果只等同于加密一次。但是不要忘记,ecryptfs有: 1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 2) blowfish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded) 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded) 种加密方式。如果正确使用,破解难度很大 由此可以得知 ecryptfs 有效重复加密次数只有6次,但是对于非情报人员而言,已经够用了。 2,把普通软件升级为 带有可加密数据的安全软件 这点应用原理很简单。软件在 home/~ 中 大多都有配置,软件数据、用户数据的保存文件夹。 比 如:某某通讯录软件 在 ~/xxx/date 中保存用户的数据。而这软件比较普通,使用的明文存储 通讯录。 这意味着,资料外泄。比如里面是 大量客户 ,被竞争对手拿到…… 别觉得不可能,触及钱的东西,被人顾黑客黑都是很有可能的。 此时,使用 ecryptfs 把 date 文件夹 mount 。保证了处于加密状态。正常使用软件就行了。使用完了,umount。 ok,软件有了一个数据库加密的功能。而且是不在影响 软件使用的基础上实现的。 想想,rar这类的压缩加密的软件能做到吗?win 下的各类文件夹加密软件可以吗(可是不能任意 mount的)? 微 软基于用户的(ntfs文件系统),更是不方便。只要用户登录,加密文件夹就自动解密 直到用户注销。虽然说微软的加密真的很强,可是对于在线入侵,或者软件搞鬼就没办法了。只要用户处于登录状态,加密文件夹就像分开双腿的处女,谁想都行。 对于 ecryptfs 可不行,就算你是root,也要输入密码、加密方法、密钥长度。就算你拿到用户的登录密码,也无能为力(比微软全部鸡蛋放一个笼子好的多)。 这里 明白我不喜欢 整体加密主文件夹了吧。 3,这里使用 ubuntu one或者类似工具的朋友,为了你的数据安全。 请先使用 ecryptfs mount 存入资料,再umount,之后再 同步文件夹。即使黑客 攻破了 ubuntu one 的服务器,也不会获得你的资料。而且使用上,没有太大差异。 再说一 点。大家也许都想到了:同一文件夹里的文件,可以是不同密码加密的。 推荐一本书《经典密码学与现代密码学》,网络上可以下载pdf 的版本。对于保守机密很有帮助 文件管理器的脚本输入命令比较麻烦,我们就把它集成到文件管理器 的使用右键直接调用加密。 创建一个脚本,我们放在/bin中。其实放在哪里都可以,只是考虑到安全性还是放在系统文件夹中,以root用户创建。(狗%日的度认为mountecryptfs后面加上后缀.sh是网站,不让通过我只好删除,大家自己添加吧。真j,b白&痴!) sudo touch /bin/mountecryptfs 编辑脚本 sudo kate /bin/mountecryptfs 拷贝以下内容: #!/bin/bash # 本脚本运行由cat650制作 # 脚本适用于kde环境,请提前安装ecryptfs-utils count=0 ##初始值 dir="/tmp/mnt/ecryptfs$count" ##初始挂载点 echo "已挂载加密目录有:" while df|grep -q $dir 2>/dev/null ##挂载点 是否使用了 do echo $dir let count=$count+1 ##一定要是/bin/bash如是/bin/sh这里就会出错 dir="/tmp/mnt/ecryptfs$count" ###新挂载点 done echo "新增挂载目录:"$dir echo "等待超级用授权" if [ ! -d $dir ];then ##判断目录是否存在 sudo mkdir -p $dir ###建立新挂载点目录,选项p,可以创建连续文件夹 fi echo "授权完成,开始加密……" echo "请输入加密密码,选择加密方式:" sudo mount -t ecryptfs "$1" $dir echo "显示加密文件夹" dolphin $dir echo $dir"已处于加密状态" read -p "是否自动卸载加密文件夹(yes?)" yn if [ "$yn" != "yes" ]; then echo "请记得手动解除加密" echo "命令为:sudo umount /tmp/mnt/ecryptfs*" read -p "回车退出" no exit 0 fi echo "去加密……" sudo umount $dir sudo rmdir $dir ## 下面删除缓存图片,这个大家自己设置。 ##我把整个文件夹链到了/tmp.普通用户位置是:~/.thumbnails/ rm -r /tmp/large/ rm -r /tmp/normal/ echo "处于加密状态的文件夹有:" df|grep "tmp/mnt" read -p "请验证是否已解除加密,回车退出" no 把这个脚本变为可执行 sudo dolphin /bin 找到脚本,属性改为可执行。 (root权限)用dolphin打开任意文件夹。文件夹右键,属性,类型旁有个小扳手。 添加。选择程序,找到/bin/mountecryptfs 选择并移动到最底。 选择,编辑。应用程序,高级选项:在终端中运行。这步必须有,要不无法进行加密操作。 现在选择任意文件夹,右键,打开方式:mountecryptfs 看到终端了吗,按提示操作,自动打开文件管理器,就可以存放要加密的文件了。 贡献者名单:Dustin Kirkland 1700 points Michael Rooney 213 points Frédéric Guihéry 45 points Tyler Hicks 35 points Bernhard Bliem 30 points …… |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。