stu*_*ent 5 performance security hardware encryption ssd
我考虑为我的笔记本电脑(例如三星 830 或 840)购买一个 ssd,以使系统响应更快。我希望我的系统(至少是我的主分区)被加密。然而,我知道有传言说 ssd 上的加密可能存在问题,尽管有关这种情况的陈述随着时间的推移变化非常快。尤其是我不希望性能大幅下降(如上所述,我希望 ssd 使系统响应更快)并且我不想缩短 ssd 的使用寿命。
考虑到这一点,在 ssd 上加密系统的最佳方法是什么?
如果这很重要,您可以假设 ssd 将是三星 830、840 或 840 pro。
编辑
我的 CPU 是一个很旧的 Core2 Duo P8700,频率为 2.53 GHz,没有 AES-NI,我只有 SATA II。所以我想补充一个问题:升级 say 到三星 830 并使用 dm-crypt/luks 或 ecryptfs 是否有意义?或者 CPU 和 SATA 端口是否会降低 SSD 的速度?我不想赢得任何基准测试,只想让我的系统响应能力有明显的提升。
我不确定以下是否能很好地说明系统的速度,所以如果有人可以评论它会很棒:
目前我正在使用 ecryptfs 来加密我的主分区。
一个
LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
在我的加密主分区上给出:
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 56.4674 s, 19.0 MB/s
Run Code Online (Sandbox Code Playgroud)
并且 CPU 在 40% 到 60% 之间工作。
同样在未加密的分区上给出
LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 29.6554 s, 36.2 MB/s
Run Code Online (Sandbox Code Playgroud)
并且 CPU 在 0 到 20% 之间工作。
我的/tmp
文件夹是通过tempfs
ie安装在 RAM 中的。做同样的/tmp
事情:
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.941708 s, 1.1 GB/s
Run Code Online (Sandbox Code Playgroud)
然后我在ecryptfs
下面创建了一个新目录/tmp
并在那里再次执行。
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 10.1884 s, 105 MB/s
Run Code Online (Sandbox Code Playgroud)
一个核心以 100% 工作,另一个以 20% 工作。
ecryptfs 目录的创建如下:
sudo mount -t ecryptfs /tmp/encrypted/ /tmp/decrypted
作为选项,我选择了默认的(ubuntu 系统):AES,16 位,无明文直通,无文件名加密。
考虑到这个结果,我预计在用三星 830 SSD 替换我的旧 WD-scorpion black 7200 并使用 ecryptfs 时,写入速率将从 19.0 MB/s 增加到 105 MB/s。这似乎是一个明显的性能改进。我猜 dm-crypt 甚至会快一点。
任何建议进行更可靠的测试,以预测 SSD 是否会带来明显的性能提升。
编辑 2 这是使用 dm-crypt 在德国 debian wiki 中进行的类似测试:http : //wiki.debianforum.de/Benchmark_f%C3%BCr_Festplattenverschl%C3%BCsselung
我这样做了,得到了大约 95 MB/s。
你提到的固态硬盘,三星 830、840 或 840 Pro,都有加密硬件。我相信您应该使用它以获得最佳性能。请注意,有许多文章批评大多数基于消费者的加密驱动器固件的早期版本。Security Boulevard 有另一篇文章,标题为:“来自 Crucial 和三星的 SSD 加密不安全暴露数据”。有一些方法可以避免其中一些问题,请参阅我在 Crypto.SE 上的其他答案。
硬件是你花钱买的东西,因为与使用它或购买价格较低的 SSD 的软件加密相比,启用加密不会带来任何损失。
您可以使用带有必要软件的可启动 USB 驱动器启用加密并设置新密码。Puget Systems 网页上提供了一个示例:“自加密驱动器 (SED) 简介”,它提供了一个包含hdparm的可引导 DVD 映像,您可以使用的另一个程序是sedutil,它可用于 Linux 和 Windows。另请参阅 VxLabs 文章:“使用msed对 TCG Opal SSD 进行基于硬件的全盘加密以及文章底部链接的更新。本文特别提到了三星 840 Pro和 hdparm。
除了驱动器上的硬件加密之外,您还可以通过使用软件加密来提高安全性,这很有用,因为硬件加密驱动器只有在断电时才是安全的。供电系统(例如处于睡眠模式的笔记本电脑)中未锁定的硬件加密驱动器是不安全的。
由于您使用的是“非常老的 Core2 Duo P8700,频率为 2.53 GHz,没有 AES-NI”,您应该考虑使用 AES 256 以外的软件。
Google 的最新算法是Adiantum正在添加到Linux 内核 v5.0和Android 通用内核 v4.9 及以上。在存在对 AES 的硬件支持的情况下,AES 比 Adiantum 更快。对于低端处理器,ARM Cortex-A7 处理器上的 Adiantum(快速哈希(NH + Poly1305)和快速流密码(XChaCha12))比 AES-256-XTS 快五倍以上。GitHub 上有一个参考实现和论文,标题为:“ Adiantum:入门级处理器的长度保留加密”。注:铁线蕨是不一样安全的AES,AES却是低端处理器相当缓慢; 无法使用。
查看有关 Caesar(身份验证加密竞赛:安全性、适用性和稳健性)条目的各种网页,其中一些比 AES 更快,并声称提供了比 AES 的安全性改进:
加密竞赛:Caesar和Submissions(提示:COLM 因稳健性而获胜,Morus 因速度而获胜)。
您可能对 GitHub 网页感兴趣:“ MORUS-1280-256 Authenticated Cipher ”。
在 Linux 上,使用dm-crypt,它是 Linux 的本机块设备加密机制。许多发行版的安装程序都支持 Dm-crypt(您可能必须使用 \xe2\x80\x9cadvanced\xe2\x80\x9d 或 \xe2\x80\x9cserver\xe2\x80\x9d 安装介质)。该cryptsetup
实用程序管理加密卷。您确实需要最新版本来支持 TRIM:kernel \xe2\x89\xa53.1 和 cryptsetup \xe2\x89\xa51.4。