我希望对整个驱动器或卷进行加密,并在 Linux 系统重新启动时启用写入功能;是否存在提供该功能的方法?
我想要做的是让安全系统或行车记录仪之类的东西使用公钥写入加密卷,这样该卷就不需要在启动时手动打开,但如果没有私钥则无法读取。另一种选择是按照写入单个文件的方式对其进行加密。
当然,我在网上搜索过,包括这个网站,但没有找到明显的解决方案。
答案1
文件系统根本不支持只写;它是只读或读写的。在文件系统中的cd
某个地方ls
,所有这些都是读取操作。如果您只能加密(写入)而不能解密(读取),那么您根本就一事无成(在块层上使用文件系统)。
因此,对于您来说,它是文件或管道,或者可能使用像磁带驱动器这样的块设备(没有文件系统,没有任意查找/读取),或者像 tar 这样以完全线性方式创建的档案,永远不需要重新读取一些旧数据。
如果您的应用程序支持管道输出,您可以使用gpg
或openssl
或其他支持公钥/私钥加密/解密的程序。
为此生成一个密钥:
gpg --quick-generate-key myproject
(当然,如果您愿意,您也可以使用现有的密钥)。
加密(使用echo Hello World.
而不是yourprogram
):
echo Hello World | gpg --batch --encrypt --recipient myproject > file.encrypted
解密:
gpg --batch --decrypt < file.encrypted > file.decrypted
进行加密的机器只需要公钥。解密时,如果您的私钥有额外的密码,系统会要求您提供它(如果gpg
您没有记住)。
GnuPG 提供了无数的选项,这里应该有更详细的解释http://www.gnupg.org/以及各种 Linux wiki 中。
无论这是否实用......加密的计算成本很高,行车记录仪可能无法胜任这项任务(除了它已经必须完成的视频工作负载之外),......
据说有一些数码相机以这种方式工作(拍摄只能在家里查看的加密照片)。不知道为什么这个想法没有更受欢迎,也不知道他们使用的任何方法到底有多安全。