web-dev-qa-db-ja.com

LUKSの推奨オプション(cryptsetup)

Cryptsetupが完全に暗号化されたSSD(_SanDisk SSD U100 128GB_)を作成するための推奨オプションを探しています。

_Timing O_DIRECT disk reads: 1476 MB in  3.00 seconds = 491.81 MB/sec
Timing buffered disk reads: 1420 MB in  3.00 seconds = 473.01 MB/sec
_

私のベンチマークは私に最高の暗号を示しています:

_# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       103696 iterations per second
PBKDF2-sha256      59904 iterations per second
PBKDF2-sha512      38235 iterations per second
PBKDF2-ripemd160   85111 iterations per second
PBKDF2-whirlpool   47216 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   133.2 MiB/s   432.0 MiB/s
 serpent-cbc   128b    18.1 MiB/s    67.3 MiB/s
 twofish-cbc   128b    39.3 MiB/s    73.0 MiB/s
     aes-cbc   256b    99.6 MiB/s   337.7 MiB/s
 serpent-cbc   256b    18.1 MiB/s    66.9 MiB/s
 twofish-cbc   256b    39.4 MiB/s    72.6 MiB/s
     aes-xts   256b   376.6 MiB/s   375.0 MiB/s
 serpent-xts   256b    69.0 MiB/s    66.5 MiB/s
 twofish-xts   256b    71.1 MiB/s    72.2 MiB/s
     aes-xts   512b   297.0 MiB/s   300.1 MiB/s
 serpent-xts   512b    69.6 MiB/s    66.6 MiB/s
 twofish-xts   512b    71.9 MiB/s    72.7 MiB/s
_

しかし、おそらく、私のパフォーマンスとセキュリティを向上させるいくつかのオプションを提案できます。私のCPUはIntel(R) Core(TM) i7-2677M CPU @ 1.80GHzで、AES-NI(aes cpuフラグ)をサポートしています。

ありがとうございました

27
Artur Szymczak

SHA-512でPBKDF2を使用したい場合があります。この手順では、passwordを暗号化キーに変換します(多かれ少なかれ直接)。これは本質的に オフライン辞書攻撃 に対して開かれており、 パスワードハッシュ に関連しています。そのためには、アルゴリズムと反復回数を選択することで攻撃者の労力を最大化し、攻撃者が耐えられるようにしながら、攻撃者にとってタスクを最も困難にします。ここで「許容できる」とは、起動時にパスワードを入力するときの忍耐力によって異なります。

攻撃者は [〜#〜] gpu [〜#〜][〜#〜] fpga [〜#〜] を使用して攻撃を高速化する必要があります、通常のPCを使用している間。今日では、通常のPCは64ビットの算術演算で簡単に操作でき、SHA-256とほぼ同じ速度でSHA-512を実行します。ただし、GPUは32ビット操作を優先し、FPGAへのマッピングは64ビット操作よりも簡単です。したがって、SHA-256の代わりにSHA-512を使用することで、攻撃者にとってのメリットが少なくなります。したがって、私の推奨:最新のハードウェアでは、パスワードのハッシュには、SHA-256よりもSHA-512を優先します。

パスワードの処理にかかる時間が耐えられるしきい値になるように、「反復回数」を調整することを忘れないでください。反復回数が多いほど処理時間が長くなりますが、セキュリティ上は比例して優れています。


実際の暗号化には、ディスク暗号化を効率的にサポートするように設計された [〜#〜] xts [〜#〜] が必要です。これは確かにベンチマークで示されています。これはSSD向けであり、暗号化が基盤となるハードウェアよりも遅くなることを望まない。 XTSは鍵を2つに分割し、そのうちの1つだけが実際の暗号化に使用されることに注意してください。言い換えると、256ビットのキーを持つ "aes-xts"は、実際にはAES部分に128ビットを使用します。そして、それは 十分良い です。 256ビットのキー、つまり「aes-xts」のコンテキストでは512ビットに移動する必要はありません。 AESの256ビットキーは、ある程度のCPUオーバーヘッドを意味します。これは、ベンチマークで十分に観察されます(300 MB /秒vs 375 MB /秒)。 SSDの内部では、高速な暗号化システムが本当に必要なので、それを実行してください。

30
Thomas Pornin

上記の動作モードの任意の組み合わせにより、ほとんどの脅威に対する十分なセキュリティが提供されます。とはいえ、特定の情報漏洩攻撃のため、CBCは推奨されなくなりました。そしてSHA1SHA2 家族。

いつものように、暗号化と同様に、広く使用され、証明されているものに固執します。したがって、私の全体的な推奨事項は次のようになります:PBKDF2-sha256 aes-xts

7
lynks