パスワード分析の観点から、dm-crypt通常モードでパスワードを使用して別のボリュームに同じキーを再使用するとセキュリティ上の欠陥はありますかaes-xts-plain64
?
# Example: Encrypt two volumes with the same key
cryptsetup --type plain --cipher=aes-xts-plain64 --key-size=256 --key-file mykey open /dev/sda myvol1
cryptsetup --type plain --cipher=aes-xts-plain64 --key-size=256 --key-file mykey open /dev/sdb myvol2
同じキーで暗号化されたボリュームが100未満の場合など、実際のケースのみを考慮してください。
答え1
さて、これはSecurity Stack Exchangeではなく、私は暗号化の専門家でもありませんが、額面のまま次のようになります。
暗号化されていないアリス:
00000000 48 65 6c 6c 6f 20 6d 79 20 6e 61 6d 65 20 69 73 |Hello my name is|
00000010 20 41 6c 69 63 65 0a 00 00 00 00 00 00 00 00 00 | Alice..........|
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
バービー暗号化されていません:
00000000 48 65 6c 6c 6f 20 6d 79 20 6e 61 6d 65 20 69 73 |Hello my name is|
00000010 20 42 6f 62 62 79 0a 00 00 00 00 00 00 00 00 00 | Bobby..........|
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
どちらも同じ(マスター)キーaes-xts-plain64を使用して暗号化されます。
Alice000 8f 04 35 fc 9f cb 5d c8 af da ae 78 cd e5 64 3d |..5...]....x..d=|
Bobby000 8f 04 35 fc 9f cb 5d c8 af da ae 78 cd e5 64 3d |..5...]....x..d=|
Alice010 4f d3 99 77 7b c1 2c 8d ff 9b 4d 55 da a3 9b e2 |O..w{.,...MU....|
Bobby010 12 d6 ad 17 74 50 4d 08 8c 38 22 40 98 a7 14 99 |....tPM..8"@....|
Alice020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Bobby020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
したがって、表面上の問題は、同じオフセットとプレーンテキスト(各16バイトブロックごとに)が同じ暗号文を生成することです。平文が異なる場合、暗号文も異なります。場合によっては、これは空き領域を表示するよりも意味があるかもしれません。
もう1つの問題は、暗号文をあるドライブから別のドライブにコピーし、それを意味のあるデータに復号化できますが、間違ったドライブにあることです。一般的に暗号文をめちゃくちゃにすれば暗号文を復号する時に得られるのはランダムなゴミだけですが、マスターキーを再利用すればより効果的な暗号文を得ることができます。
したがって、完全に人工的な例を見てみましょう。キーがわからないが、そのシステムに保存されているファイルにアクセスできるユーザーがいて、あるドライブから別のドライブにパスワードステートメントをコピーできるユーザーがある場合、これは通常不可能です。しかし、我々はそうだと仮定します。ゴミでいっぱいの大きなファイルを作成し、ファイルが割り当てられているディスクの場所を見つけて、別のドライブからデータをコピーできます。その後、ファイルを再読み込みすると、他のドライブのプレーンテキストデータが表示されます。
通常、各ディスクに固有のキーを使用するのは簡単すぎるため、不必要な面倒があります。共有マスターキーからキーを派生させるためにハッシュ関数や他の手段を使用する場合も同様です。これに対する理由はないが。複数のキーファイルを使用するか、オプションを使用して単一のファイル--keyfile-offset
から--keyfile-size
複数のキーを読み取ることができます。
LUKSは、さまざまな落とし穴を避けるのに役立ちます。意図的にヘッダーを複製しない限り、同じパスワードを使用しても、各コンテナに対して常に異なるランダムマスターキーを使用します。
選択したパスワードについてもう1つ参考にしてくださいaes-xts-plain64
。これを以前はと呼びましたaes-xts-plain
。 2TiBより大きいデバイスが出るまで、すべてが大丈夫です...これにより、aes-xts-plain
暗号文は2TiBごとに繰り返されます。これは基本的に同じマスターキーを再利用するのと同じ問題です。
この問題は今後解決されていますが、aes-xts-plain64
一部のブログ/ wikiはまだ古いコンテナを維持し、新しいハードドライブと一緒に拡張することをお勧めします。