
LUKS暗号化USBフラッシュドライブを紛失したとしましょう。ファイルシステムタイプ(ext4 / fat32 / ...)が機能していないようです。外国人が発見しました。もちろん、その人はパスワードがないので、私のデータにアクセスすることはできません。しかし、彼は「生」データの途中でシングルバイトを変更することでデータを破壊する可能性があります。
ペンドライブを取り戻した後、データが破損していないことを確認できますか?
マッパーデバイス全体を読み取るとI / Oエラーが発生すると思いましたが、残念ながらそうではありません。私も確認したdmesg
。
# create an all zero 100MiB file
dd if=/dev/zero of=moh bs=100M count=1
# format it as LUKS device
/usr/sbin/cryptsetup luksFormat moh
# map it to /dev/mapper/moh
sudo cryptsetup luksOpen moh moh
# initialize mapper file to zero
sudo dd if=/dev/zero of=/dev/mapper/moh
# close LUKS device
sudo cryptsetup luksClose moh
# overwrite 1MiB with zeroes at offset 10MiB. After this the LUKS device is damaged.
sudo dd if=/dev/zero of=moh conv=notrunc bs=1M seek=10 count=1
# open LUKS device and see if it complains
sudo cryptsetup luksOpen moh moh
# read all data to see if it complains
sudo dd if=/dev/mapper/moh of=/dev/null
上記のコマンドは、破損したLUKSデバイスを開いて読み込んでもエラーが発生しないことを示しています。
ファイルシステムチェックを実行したくありません。代わりに、LUKSデバイスの暗号化レベルが影響を受けないことを確認したいと思います。
luksデバイスをチェックするコマンドを探しているので、これがSOに適したプログラミング質問ではないことを理解してください。
答え1
これは可能ですが、「一般」LUKSではそうではないため、認証された暗号化を設定する必要があります。これはLUKS v2で--integrity
可能で、使用する必要がありますluksFormat
。これは基本的に完全性を保証するために暗号化されたデータにチェックサムを追加します。これを使用しないと、LUKS / dm-cryptはディスク上の内容をまったく気にしません。 0 がある場合、その 0 を「復号」します。より認証されたディスク暗号化部分的にcryptsetup のマニュアルページ詳細については。