AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 626311
Accepted
Quantumboredom
Quantumboredom
Asked: 2014-09-05 09:48:28 +0800 CST2014-09-05 09:48:28 +0800 CST 2014-09-05 09:48:28 +0800 CST

ecryptfs(可能是隐式)校验和数据吗?

  • 772

我打算设置一个带有用于加密的 ecryptfs 的 NAS。我想知道 ecryptfs 是否会告诉我文件是否已被静默损坏(例如,有故障的硬盘驱动器),或者我是否仍然依赖底层文件系统为我进行数据校验和?

无论如何,我可能会使用 btrfs 作为底层文件系统来获得快照功能,但我仍然想知道例如 ext4 + ecryptfs 是否会像普通 btrfs(或 btrfs + ecrypts)那样提供相同的保证来防止隐藏文件损坏,因为btrfs 的校验和功能。

ecryptfs
  • 2 2 个回答
  • 278 Views

2 个回答

  • Voted
  1. Best Answer
    Grumbel
    2015-01-03T11:13:10+08:002015-01-03T11:13:10+08:00

    上面的答案是不正确的。eCryptFS 的实际实现默认或根本不校验数据。简单演示:

    $ mkdir /tmp/front /tmp/back
    $ sudo mount -o key=passphrase:passwd=Test,ecryptfs_hmac,ecryptfs_enable_filename_crypto=no,ecryptfs_passthrough=no,ecryptfs_unlink_sigs,ecryptfs_key_bytes=16,ecryptfs_cipher=aes -t ecryptfs /tmp/back/ /tmp/front/
    $ echo HelloWorld > /tmp/front/HelloWorld.txt
    $ cat /tmp/front/HelloWorld.txt
    HelloWorld
    $ sudo umount /tmp/front
    $ printf "deadbeaf" | dd  of=/tmp/back/HelloWorld.txt  bs=1 seek=8192 count=8 conv=notrunc
    $ sudo mount -o key=passphrase:passwd=Test,ecryptfs_hmac,ecryptfs_enable_filename_crypto=no,ecryptfs_passthrough=no,ecryptfs_unlink_sigs,ecryptfs_key_bytes=16,ecryptfs_cipher=aes -t ecryptfs /tmp/back/ /tmp/front/
    $ cat /tmp/front/HelloWorld.txt
    <garbage>
    

    还:

    $ ecryptfs-stat /tmp/back/HelloWorld.txt 
    File version: [3]
    Decrypted file size: [11]
    Number of header bytes at front of file: [8192]
    Metadata in the header region
    Encrypted
    HMAC disabled
    

    eCryptfs 不会给出读取错误或任何错误指示。请注意,即使使用该ecryptfs_hmac选项也可以启用校验和,但显然没有。ecryptfs 的实际源代码确实包含 HMAC 代码,所以我不确定为什么它不起作用。快速 Google 搜索表明 HMAC 代码可能不完整。还没有深入研究它。

    • 2
  2. Kevin Li
    2014-11-09T01:45:31+08:002014-11-09T01:45:31+08:00

    eCryptFS执行校验和数据。有一篇论文描述了 eCryptFS 的工作原理。eCryptFS 所做的其中一件事是防止对手篡改文件,为此它会计算 HMAC 并将其与加密文件一起存储。作为奖励,这显然还可以防止意外“篡改”,例如宇宙射线、电子噪声或简单的磨损(统称为比特腐烂)。

    但是,btrfs还做了一件我确信eCryptFS不会做的事情:镜像/复制和奇偶校验。通过镜像 (RAID1) 或奇偶校验(RAID5 或 RAID6),如果 btrfs 检测到当前正在读取的文件损坏,它能够自动找到文件的良好副本。Ars Technica 有一篇关于损坏以及如何最好地利用 btrfs 或 ZFS 的功能来保证数据安全的非常好的文章。

    如果您使用ext4 和 eCryptFS,充其量您只会知道某些内容已损坏或被篡改,但您必须手动干预才能解决问题。我建议坚持使用btrfs 和 eCryptFS,它们既提供校验和(只要您不禁用写时复制),还可以维护数据的冗余副本(使用 RAID1、RAID5、RAID6 或 RAID10)。

    • 1

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve