测试设置

测试设置

在使用 openSUSE LEap 15.2 安装 LUKS(v1)设备后,发现迭代次数设置得太高,导致成功解密主密钥需要超过 10 秒(存在相关错误报告)。

因此我使用更小的迭代次数添加了第二个键槽。

不过我很疑惑:据我所知,输入密码后,luksOpen 会尝试按顺序解密密钥槽,而不是并行解密,这意味着第一个密钥槽决定了解密成功的最短等待时间。对吗?

注意:启动时,我无法指定参数来选择特定的键槽。所以最有可能的解决方案是交换键槽,对吗?

答案1

测试设置

  1. 在 ramdisk 中创建一个文件来保存 LUKS 容器:

    $ cd /dev/shm
    $ truncate -s 1G luksfile
    
  2. 准备相同大小的密钥文件进行测试:

    $ dd if=/dev/urandom of=key1 bs=1M count=1
    1+0 records in
    1+0 records out
    1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,00897814 s, 117 MB/s
    $ dd if=/dev/urandom of=key2 bs=1M count=1
    1+0 records in
    1+0 records out
    1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,00792946 s, 132 MB/s
    
  3. 格式化文件:

    $ cryptsetup luksFormat --key-file key1 luksfile
    
    WARNING!
    ========
    This will overwrite data on luksfile irrevocably.
    
    Are you sure? (Type uppercase yes): YES
    
  4. 添加第二个键:

    $ cryptsetup luksAddKey --key-file key1 luksfile key2
    

考试

for x in 1 2 3 4 5; do  
time sudo cryptsetup open --key-file key1 luksfile test
sudo cryptsetup close test
done

我正在丢弃每个键的前 5 次运行的结果以消除缓存差异。

结果key1

2,30s user 0,02s system 97% cpu 2,369 total
2,39s user 0,01s system 97% cpu 2,454 total
2,41s user 0,02s system 97% cpu 2,509 total
2,25s user 0,02s system 97% cpu 2,336 total
2,21s user 0,02s system 97% cpu 2,291 total

结果key2

4,08s user 0,02s system 98% cpu 4,146 total
4,20s user 0,02s system 98% cpu 4,267 total
4,19s user 0,01s system 98% cpu 4,255 total
4,15s user 0,01s system 98% cpu 4,209 total
4,43s user 0,02s system 98% cpu 4,520 total

是的,钥匙会逐一检查。第二个键将会受到第一个键的缓慢影响。

解决方案

启动时,我无法指定参数来选择特定的键槽。

其实可以。使用第 4 列keyslot中的选项。请参阅。/etc/crypttabman crypttab

相关内容