私は動作し、最新のハードドライブ暗号化方法を探しています。ちょっとした調査の終わりに、私は偶然発見しました。ルクスそして一度試してみることにしました。それで、これを使ってハードドライブを正しく暗号化する方法のいくつかの例を見つけました。
cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda3
これ--パスワードそして--ハッシュ値その一部が私にとって最も興味深かったので、LUKSで特別に使用されているさまざまなパスワードとハッシュについて自分で教育しようとしました。現在使用されているLinuxで利用可能な暗号化形式をマシンフレンドリーな形式で表示するファイルを開く以外に、役に立つ情報が見つかりません。しかし、私が知っているのは、このファイルでさえ、すべての暗号化方法の完全な範囲を欠いている可能性があり、毎日このファイルを扱っていない人にとっては読みにくいかもしれません。
私の質問:そこにいますか?いっぱいLUKS暗号化されたパスワード/ハッシュリスト?
ちょうど私が選ぶことができるオプションが何であるかを見てください。
答え1
これは基本的にカーネルによって異なりますので、/proc/cryptoをご覧ください。「と答える必要があります。」cryptsetupのマニュアルページには次のように記載されています。
NOTES ON SUPPORTED CIPHERS, MODES, HASHES AND KEY SIZES
The available combinations of ciphers, modes, hashes and key sizes depend
on kernel support. See /proc/crypto for a list of available options. You
might need to load additional kernel crypto modules in order to get more
options.
For the --hash option, if the crypto backend is libgcrypt, then all algo‐
rithms supported by the gcrypt library are available. For other crypto
backends some algorithms may be missing.
しかし、私は/proc/crypto
snakeまたはxts(aes)について何も言及していないので、そのレポートをチェックすることをお勧めしますcryptsetup benchmark
((ram)速度も表示されます)。たとえば、
$ cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 292752 iterations per second
PBKDF2-sha256 221362 iterations per second
PBKDF2-sha512 142010 iterations per second
PBKDF2-ripemd160 277124 iterations per second
PBKDF2-whirlpool 155727 iterations per second
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 164.7 MiB/s 164.5 MiB/s
serpent-cbc 128b 119.5 MiB/s 205.0 MiB/s
twofish-cbc 128b 163.5 MiB/s 208.6 MiB/s
aes-cbc 256b 148.4 MiB/s 147.9 MiB/s
serpent-cbc 256b 128.1 MiB/s 205.3 MiB/s
twofish-cbc 256b 202.3 MiB/s 213.1 MiB/s
aes-xts 256b 165.4 MiB/s 145.3 MiB/s
serpent-xts 256b 150.0 MiB/s 194.5 MiB/s
twofish-xts 256b 206.4 MiB/s 206.9 MiB/s
aes-xts 512b 149.4 MiB/s 147.5 MiB/s
serpent-xts 512b 181.7 MiB/s 195.0 MiB/s
twofish-xts 512b 207.1 MiB/s 208.6 MiB/s
ハッシュは最初の数行(sha1、sha256、sha512、ripemd160、whirlpool)です。パスワードはアルゴリズムのタイトルの下にあります。
デフォルト値を見ると、何が「非常に良い」と見なされるかについての良いアイデアを得ることができます。
$ cryptsetup --help|tail -n 8
Default compiled-in key and passphrase parameters:
Maximum keyfile size: 8192kB, Maximum interactive passphrase length 512 (characters)
Default PBKDF2 iteration time for LUKS: 1000 (ms)
Default compiled-in device cipher parameters:
loop-AES: aes, Key 256 bits
plain: aes-cbc-essiv:sha256, Key: 256 bits, Password hashing: ripemd160
LUKS1: aes-xts-plain64, Key: 256 bits, LUKS header hashing: sha1, RNG: /dev/urandom
より大きいキーサイズを使用すると(使用--key-size
)、わずかに遅くなる場合にのみ強くなります。
--key-size, -s <bits>
Sets key size in bits. The argument has to be a multiple of 8.
The possible key-sizes are limited by the cipher and mode used.
See /proc/crypto for more information. Note that key-size in
/proc/crypto is stated in bytes.
答え2
notdavidcronenbergユーザーの仕事を見て、私が見つけた唯一の答えはドキュメントにあります。LUKSディスクフォーマット仕様(PDF).
有効なパスワード名
aes
高度な暗号化標準 - FIPS PUB 197twofish
Twofish:128ビットブロックパスワード -https://www.schneier.com/paper-twofish-paper.htmlserpent
https://www.cl.cam.ac.uk/~rja14/serpent.htmlcast5
RFC 2144cast6
RFC 2612有効なパスワードパターン
ecb
パスワード出力を直接使用してください。cbc-plain
パスワードは CBC モードで動作します。 CBCリンクは各セクタにカットされ、セクタ番号を初期ベクトルとして再初期化されます(32ビットおよびリトルエンディアンに変換)。このモードは[Fru05b]の4章で指定されています。cbc-essiv:{hash}
パスワードは、ハッシュを使用して元のキーのIVキーを生成するESSIVモードで動作します。たとえば、sha256をハッシュとして使用する場合、暗号化モードの仕様は「cbcessiv:sha256」です。 ESSIVは[Fru05b]の4章に指定されています。xts-plain64
plain64は、一般的な初期化ベクトルの64ビットバージョンです。有効なハッシュ仕様
sha1
RFC 3174 - 米国セキュリティハッシュアルゴリズム1(SHA1)sha256
FIPS 180-2準拠のSHAバリアントsha512
FIPS 180-2準拠のSHAバリアントripemd160
http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html