web-dev-qa-db-ja.com

LUKS暗号化を理解しようとしています

ルートパーティションをLUKS + LVMで暗号化することにしました。

私のThinkPadセットアップ:

  • サムスン830128GB SSD
  • 750GB HDD
  • Core 2 Duo 2,5 GHz P9500
  • 8GBのRAM

しかし、読むほど、次の2つの主題について理解しにくくなります。

1a。暗号

cryptsetup FAQからの引用のため、2/512の代わりにSHA1を使用する予定でした(一部の提案があります)。

5.20 LUKSが壊れています!SHA-1を使用しています!

いいえそうではありません。 SHA-1は、衝突を見つけるために(アカデミックに)壊れていますが、鍵導出関数で使用するためには壊れていません。そして、その衝突の脆弱性は、反復されない使用のみを目的としています。そして、あなたは逐語的にハッシュ値を必要とします。

これは基本的に、すでにスロットキーがあり、PBKDF2の反復回数を1に設定している場合(通常は> 10'000)、同じスロットを提供する別のパスフレーズを導出できることを意味します-キー。ただし、スロットキーがある場合は、すでにキースロットのロックを解除してマスターキーを取得し、すべてを壊すことができます。したがって、基本的に、このSHA-1の脆弱性により、LUKSコンテナーを既に開いている場合でも、手間をかけて開くことができます。

ここでの本当の問題は、暗号を理解せず、特定の異なる用途のために壊れたメカニズムが使用されているという理由だけで物事が壊れていると主張する人々です。メカニズムの使用方法は非常に重要です。ある用途で壊れたハッシュは、他の用途でも完全に安全である可能性があります。

「SHA-1以外は使っても意味がない」と読みました。しかし、それから何人かの人々はそれが正確にそのようではないと私に言います。だから私はもう何を考えるべきかわからない。

1b。

また、ディスクのロックが解除されてシステムにログインすると、暗号がディスクの読み取り/書き込み/シークのパフォーマンスに影響を与えるかどうかについての情報は見つかりませんでした。

では、暗号の複雑さは、パスワード入力段階の「パフォーマンス」にのみ影響しますか、それともシステムの通常の使用中にも影響しますか?

2.アルゴリズム

私はこれを数日から読んでいますが、読むほど混乱します。私が読んだすべてのことは、AESが最も速く、Serpentが最も遅いと言っています。しかし、私のラップトップによるとではありません:

$ cryptsetup benchmark
Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       344926 iterations per second
PBKDF2-sha256     198593 iterations per second
PBKDF2-sha512     129007 iterations per second
PBKDF2-ripemd160  271933 iterations per second
PBKDF2-whirlpool  134295 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   149.8 MiB/s   147.9 MiB/s
 serpent-cbc   128b    51.0 MiB/s   196.4 MiB/s
 twofish-cbc   128b   127.6 MiB/s   152.5 MiB/s
     aes-cbc   256b   114.3 MiB/s   113.8 MiB/s
 serpent-cbc   256b    51.2 MiB/s   198.9 MiB/s
 twofish-cbc   256b   129.8 MiB/s   167.5 MiB/s
     aes-xts   256b   153.3 MiB/s   150.6 MiB/s
 serpent-xts   256b   176.4 MiB/s   184.1 MiB/s
 twofish-xts   256b   160.8 MiB/s   159.8 MiB/s
     aes-xts   512b   115.4 MiB/s   112.1 MiB/s
 serpent-xts   512b   178.6 MiB/s   184.2 MiB/s
 twofish-xts   512b   160.7 MiB/s   158.9 MiB/s

したがって、Serpentは最速であるだけでなく、その上、最も複雑なキーで最速であるように見えます。

それは逆ではないでしょうか?私はそれを間違って読んでいますか、それとも何か?

8
lockheed

1a-それは本当にそれほど重要ではありません。鍵導出関数にどのハッシュを使用する場合でも、LUKSは計算コストが高くなることを確認します。 1秒のリアルタイムが経過するまでループします。

1b-鍵導出方法はパフォーマンスに影響を与えません。暗号自体はそうします。 cryptsetup benchmarkあなたに多くを示します。

2-CPUがAES-NI命令(AESのハードウェアアクセラレーション)をサポートするのに十分最新である場合、AESは最速です。あなたが今蛇と一緒に行くならば、あなたはあなたの次のラップトップのAES-NIを利用することができないかもしれません。

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1      1165084 iterations per second
PBKDF2-sha256     781353 iterations per second
PBKDF2-sha512     588426 iterations per second
PBKDF2-ripemd160  726160 iterations per second
PBKDF2-whirlpool  261882 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   692.9 MiB/s  3091.3 MiB/s
 serpent-cbc   128b    94.6 MiB/s   308.6 MiB/s
 twofish-cbc   128b   195.2 MiB/s   378.7 MiB/s
     aes-cbc   256b   519.5 MiB/s  2374.0 MiB/s
 serpent-cbc   256b    96.5 MiB/s   311.3 MiB/s
 twofish-cbc   256b   197.9 MiB/s   378.0 MiB/s
     aes-xts   256b  2630.6 MiB/s  2714.8 MiB/s
 serpent-xts   256b   310.4 MiB/s   303.8 MiB/s
 twofish-xts   256b   367.4 MiB/s   376.6 MiB/s
     aes-xts   512b  2048.6 MiB/s  2076.1 MiB/s
 serpent-xts   512b   317.0 MiB/s   304.2 MiB/s
 twofish-xts   512b   368.7 MiB/s   377.0 MiB/s

このベンチマークはストレージを使用しないため、実際に使用するストレージとファイルシステムでこれらの結果を確認する必要があることに注意してください。

5
frostschutz