我最近在Linux桌面上经历了这个小小的noob冒险:
为什么我会为此而堕落?因为我曾经是一个Mac用户,在那里我将创建一个加密的稀疏磁盘映像,将我的文件放入其中,然后卸载。我可以将这个文件移动到任何地方,将其放到任何mac,mount,输入密码和ta-da!只要我记得密码,一切都很好。
任何人都知道如何用Linux做这样的事情?
(我希望这与SOF的编程有关......这对我的编程工作来说很重要!)
答案 0 :(得分:9)
摘要:如果要执行此操作,请在加密时使用--symmetric
选项。
让我们来看看这里真正发生的事情的细节;在尝试做正确的事情时,一点理解通常会有所帮助。
使用GnuPG加密文件时,它使用“对称”加密。也就是说,它使用单个密钥来加密明文并解密密文。为什么这样做?因为对称算法比公钥/私钥算法快得多(其中单独的密钥用于加密和解密),并且由于其他原因我们稍后会看到。
它用于加密文件的密钥在哪里?它组成一个随机的。不,我不是在这里开玩笑。
现在,您可能认为我们有一点问题。该文件使用随机密钥加密,并且没有人(除了特定的GnuPG进程)知道它是什么。接下来会发生什么?
这就是诀窍:然后随机密钥用其他密钥加密,并存储在文件中。这是我们允许多个用户能够解密文件的方式。例如,我公司的备份是加密的,因此我和我的业务合作伙伴都可以解密它们:GnuPG使用我的公钥加密文件加密密钥,并使用我的合作伙伴的公钥单独加密,并将这两者与加密数据一起存储。现在,我使用我的私钥,可以解密用我的公钥加密的副本(或者我的合作伙伴可以对他的副本执行相同操作),检索用于加密数据的对称密钥,并对其进行解密。
那么--symmetric
做了什么?它只使用对称算法本身加密该随机加密密钥,这次使用基于提供的密码短语的密钥。现在任何知道密码的人都可以解密文件。
对于一个文件来说这很好,但是当你有很多文件,用不同的密码加密以便不同的人群可以访问它们时,这很快就会变得不方便,这也是我们通常使用公钥的原因之一而不是系统。
但是现在你已经学会了,不幸的是,这是一个非常宝贵的教训:你的私钥非常重要!如果丢失了,您将无法访问使用您的公钥加密的任何人。生成一次,保持安全,并在几个地方备份。
您要做的是添加--symmetric
选项,以便只使用密码来解密文件。
问题是您使用公钥加密了文件,当您这样做时,您需要使用密钥(存储在~/.gnupg
中)来解密它。
答案 1 :(得分:3)
Curt Sampson在解释这些概念方面表现出色。我要提供一些细节。
可悲的是,Seahorse&朋友们还没有选择进行对称加密,尽管它可以处理对称加密文件的解密。与此同时,如上所述,您可以从命令行进行加密,例如gpg --symmetric --force-mdc --cipher-algo aes256 -o outfile infile
如果你对gpg感到满意,但真的想要一个gui,你可以使用我的gpg-frontend Pyrite。它没有像海马插件那样与Nautilus集成,但如果我可以这样说,它仍然很可爱。 :)
正如其他人提到的,eCryptfs是一个很好的选择,sorta属于同一个领域,提供每个文件加密,虽然它以更方便的方式完成,基本上为您提供了一个透明地加密/解密所有写入的文件夹&安培;读取/读取它。起初它看起来像一个加密的容器解决方案,但实际上它是单独加密文件 - 一旦你卸载文件夹,你最终会得到一堆单独加密的文件。这个article at LJ提供了一个很好的比较&对比eCryptfs与其他一些选项的概述。这是让eCryptfs继续下去的简单方法:
$ mkdir ~/vault
$ sudo mount -t ecryptfs ~/vault ~/vault
Select key type to use for newly created files:
1) openssl
2) passphrase
3) pkcs11-helper
4) tspi
Selection: 2
....... (truncated)
$ echo hello > ~/vault/encfile
$ sudo umount ~/vault
$ ls -a ~/vault
. .. encfile
$ cat ~/vault/encfile
稖��)!x�"3DUfw`��ȿ_���E�����_CONSOLE�W�v0�+�'�hV���Q��VZ��eP�����l⟮j%����?O��V
....... (truncated)
如果您对此感兴趣,请查看 ecryptfs-setup-private
命令,该命令不需要sudo,并允许自动化所有内容。继续前进。
最好的其他选项是pts提到的选项:TrueCrypt(跨平台)和dm-crypt,它允许您加密任何< / em>块设备(例如分区,逻辑卷,单个文件),然后你当然会抛出一个fs。不要使用Cryptoloop(dm-crypt的前身)。
我大多只有Red Hat,Fedora和&amp;朋友,但在那些你可以使用可爱的磁盘管理gui palimpset
来创建和修改加密的磁盘/分区,而无需安装任何额外的东西。当然这里有一个命令行工具: cryptsetup
...这里有一个简单的例子,可以让你了解dm-crypt的可能性,使用cryptsetup制作加密文件系统超出可扩展的逻辑卷:
lvcreate -L 2G -n mybox volgroup
cryptsetup luksFormat /dev/volgroup/mybox
cryptsetup luksOpen /dev/volgroup/mybox mybox
mkfs.ext4 /dev/mapper/mybox
cryptsetup luksClose mybox
一旦你完成了这个,Nautilus应该没有问题自动检测它,然后你可以解锁它并从那里做一个安全的用户安装。
编辑: 我觉得很傻。当我遇到这个问题时,我正在浏览gpg标签。在我输入完所有内容之前,我没有注意到它有多久了,而且是提交它。那好吧。也许它会为后代派上用场。
答案 2 :(得分:2)
TrueCrypt是一个用户友好的磁盘加密解决方案,适用于Linux(以及其他系统)。
仅限Linux的低层解决方案是dm-crypt和crpytoloop。
答案 3 :(得分:2)
我使用的是ccrypt,它也可以在Cygwin中使用。
ccrypt is a utility for encrypting and decrypting files and streams. It was designed to replace the standard unix crypt utility, which is noto‐ rious for using a very weak encryption algorithm. ccrypt is based on the Rijndael block cipher, which was also chosen by the U.S. government as the Advanced Encryption Standard (AES, see http://www.nist.gov/aes/). This cipher is believed to provide very strong cryptographic security.
答案 4 :(得分:1)
我使用了mcrypt。它支持几种现代加密算法,并且在Linux机器上非常简单(或者至少在大多数情况下很容易获得预编译的包)。
答案 5 :(得分:1)
ecryptfs易于设置和使用。
上行:您不提前预留空间;它作为文件系统顶层的一层
下行:文件名未加密。显然你可以通过压缩或整理你的整个树并让ecryptfs加密zip或tar文件来解决这个问题,但这很麻烦。
更新截至2012年3月,此问题已解决(并已解决了一段时间):ecryptfs加密文件名。我无法轻易找到引入此功能的版本号或日期。
答案 6 :(得分:0)
您还可以使用openssl加密文件。