LUKSで利用可能な暗号化の方法をリストする


10

ハードディスクを暗号化する有効かつ最新の方法を探していました。いくつかの調査の後、LUKSに遭遇し、それに挑戦することにしました。そこで、次のように、HDDを適切に暗号化する方法の例をいくつか調べました。

cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda3

--cipher--hash私はLUKSのために特に使用可能な異なる暗号とハッシュに関する自分自身を通知しようとしたので、その一部は、私にとって最も興味深いものでした。現在使用されているLinuxで使用できる暗号化フォームをマシンフレンドリな形式で示すファイルを開く以外に、役立つ情報は見つかりませんでした。しかし、私が言われたように、このファイルでさえ、とにかく日常的にそれを扱っていない誰かのために読むのが非常に難しいことを除いて、すべての暗号化方法の完全な範囲が不足しているでしょう。

私の質問:LUKS暗号化の暗号/ハッシュの完全なリストはありますか?

単に私が何を選択できるかを示しています...そしておそらく、これらの異なる方法の違いが正確に何であるかについての短い説明を与えるでしょう。


1
これらのツールが使用する暗号化についてではなく、LUKSおよびLinuxカーネルの使用と構成に関するものであるため、私はこの質問をトピック外として閉じることに投票します。UnixとLinuxのトピックです。この質問には移行のフラグを付けました。移行せずに終了しない限り、再投稿しないでください。
Gilles「SO-邪悪なことをやめる」

私の質問は暗号とハッシュに向けられているため、私は特に暗号化領域を選択しました。私はこのエリアの「ツアー」を取りましたが、文字通り「質問すべき質問」スロットにあります。必要に応じて調べてください。
Akito

それがそこから話題外になるので、私がUnixとLinuxに質問を入れなかった理由です...
Akito

これらのさまざまな方法の違いは何であるかについて簡単に説明しますこれはトピックについての質問の唯一の部分です。AESとTwofishの主な違いは何ですか?AESは置換順列ネットワークを使用し、TwofishはFeistelネットワークを使用します。原則としてFeistelネットワークには何の問題もないため、この情報に基づいて、AESを明確に選択する必要があります。
DepressedDaniel 2017年

回答:


7

基本的にはカーネル次第なので、「See / proc / crypto」が「答え」になるはずです。cryptsetup manページには次のように書かれています:

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蛇や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、ワールプール)。暗号はAlgorithmヘッダーの下にあります。

デフォルトが何であるかを見ると、「かなり良い」と考えられているものもよくわかります。

$ 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
それがまさに私が不平を言ったものです... / proc / cryptoは非常に読めないので役に立たない 一部の暗号はリストに2倍さえあり、その理由はわかりません。
Akito

ああ、私にはわかりませんでした。質問には含まれていませんが、それは間違いなく懸念事項です。/proc/cryptoに関するWeb検索でさえ、明確なガイドは明らかになりません。私はいくつかの違いに気付いています。cryptsetupはブロック暗号のみを使用して、ディスクブロックを暗号化していると思います。そのため、「type:blkcipher」の暗号は論理的に見えるようです。しかし、私が蛇やxts-aesについて言及していないことにも気づいています...しかし、もっと良いかもしれない別のアイデアがあります。それを回答に編集します
Xen2050

2

ユーザーnotdavidcronenbergの作業に関して:私が見つけた唯一の答えは、LUKS On-Disk Format Specification(PDF)のドキュメントにあります。

有効な暗号名

有効な暗号モード

  • ecb 暗号出力は直接使用されます。
  • cbc-plain暗号はCBCモードで操作されます。CBCチェーンはすべてのセクターをカットし、セクター番号を初期ベクトルとして再初期化します(32ビットおよびリトルエンディアンに変換)。このモードは、[Fru05b]の第4章で指定されています。
  • cbc-essiv:{hash}暗号は、元の鍵のIV鍵を生成するためにハッシュを使用するESSIVモードで操作されます。たとえば、sha256をハッシュとして使用する場合、暗号モードの仕様は「cbcessiv:sha256」です。ESSIVは、[Fru05b]の第4章で指定されています。
  • xts-plain64 plain64は64ビットバージョンのプレーンな初期ベクトルです

有効なハッシュ仕様


リストは完全ではありませんsuperuser.com/a/1450671/446140
intika
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.