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


8

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

私のThinkPadセットアップ:

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

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

1a。暗号

cryptsetupFAQ からの引用があるため、私は2/512の代わりにSHA1を使用する予定でした(一部推奨されています)。

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

いいえそうではありません。SHA-1は、衝突を見つけるために(急激に)壊れますが、キー派生関数で使用するためではありません。そして、その衝突の脆弱性は非反復的な使用のみを目的としています。そして、あなたは逐語的にハッシュ値を必要とします。

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

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

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

1b。

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

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

2.アルゴリズム

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

$ 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は最速であるだけでなく、最も複雑なキーで最速であるように見えます。

それは逆にしてはいけませんか?私はそれを間違って読んでいますか、それとも何かですか?


それで、SHA512を1秒のリアルタイムにハッシュする場合は、なぜより高いセキュリティのために使用しないのか。
user284148

回答:


5

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

1b-キーの導出方法はパフォーマンスに影響を与えません。暗号自体が行います。cryptsetup benchmark同じくらいあなたを示しています。

2-AESは、CPUがAES-NI命令(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

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


1
1.明確にしていただきありがとうございます。そのため、ディスクパフォ​​ーマンスに悪影響を与えることなく、SHA512を使用できます。2.インテルのWebサイト(ark.intel.com/search/advanced/?s=t&AESTech=true)によると、古いPentiumにはこの最適化がありましたが、C2Dにはないというのは奇妙です。「今、蛇を使っていると、次のラップトップのAES-NIを利用できない場合があります。」そのことで、ディスクをAESに再暗号化する必要があることを意味すると理解しました。正しい?ベンチマークから、CPUパフォーマンスがわかります。私のSSDはSataII 3.0 Gbps(200-280MB / s)上にあるので、serpent-xts 512bを超えることはできないと思います
ロッキード2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.