LUKS暗号化を削除する方法は?

LUKS暗号化を削除する方法は?

次のコマンドを使用して、ホームディレクトリからLUKS暗号化を削除してみました。

cryptsetup luksRemoveKey /dev/mapper/luks-3fd5-235-26-2625-2456f-4353fgdgd

しかし、エラーが発生します。

デバイス /dev/mapper/luks-3fd5-235-26-2625-2456f-4353fgdgd は有効な LUKS デバイスではありません。

とても混乱して、次のことを試しました。

cryptsetup status luks-3fd5-235-26-2625-2456f-4353fgdgd

それは言う:

/dev/mapper/luks-3fd5-235-26-2625-2456f-4353fgdgd is active and is in use.
type: LUKS1
cipher: ...

暗号化デバイスが有効になっているように見えますが、無効です。ここで何が間違っている可能性がありますか?

答え1

2013年の回答 - 楽しい時間の他の回答を見る

  • サポート
  • 再フォーマット
  • また覆う

cryptsetup luksRemoveKey暗号化キーは、複数の暗号化キーがある場合にのみ削除されます。暗号化はまだ存在します。

Fedoraの帽子インストールマニュアルセクションC.5.3では、luksRemoveKeyこれがどのように機能するかを説明します。

コンテンツを保持しながら暗号化を削除することは「不可能」です。これは経験に基づく推測にすぎません。私はこれを2つに基づいています。

  • LUKSコンテナにはファイルシステム、LVM、どの最も重要なことは、単に暗号化層を削除するだけで理解が必要であるということです。重要性データが保存されているデータは単に使用できません。さらに、1つの要件は、残りのLUKSコンテンツを破壊することなく、LUKSボリュームの一部を復号化されたコピーで上書きすることです。これが可能かどうかはわかりません。
  • これを実装すると、LUKSの目的と大幅に相当する問題が解決し、より「意味のある」仕事の代わりにこれを行うのに時間を費やす人はほとんどいないでしょう。

答え2

キーホームを削除することはパスワードを忘れてしまうようなもので、ファイルシステムを移動してLUKSデバイスを交換することとは何の関係もありません。

バックアップ、再フォーマット、復元なしでデバイスからLUKS暗号化を非破壊的に削除できます。 cryptsetupこの機能は、2012年にリリースされたバージョン1.5.0からサポートされています。

LUKSデバイスのパスワードを正常に復号化した後、そのデバイス内のファイルシステムをオペレーティングシステムで使用でき、直接マウントできます。

警告する:危険です。まず、すべてのデータをバックアップしてください。

LUKS1の場合:

  1. USBフラッシュドライブから起動
  2. 使用
    cryptsetup-reencrypt --decrypt <device_path>
    

LUKS2の場合:

  1. USBフラッシュドライブから起動
  2. LUKS1互換パラメーターを使用するようにすべてのキーホームを変換します。
    cryptsetup luksChangeKey  --pbkdf pbkdf2 <device_path>
    
  3. LUKS2 デバイスを LUKS1 デバイスに変換するには、次のコマンドを使用します。
    cryptsetup convert --type luks1 <device_path>
    
  4. 以下を使用して復号化を実行します。
    cryptsetup-reencrypt --decrypt <device_path>
    

私はこれらの両方をテストして動作しました。


現在のバージョンはcryptsetupLUKS2デバイスの直接復号化をサポートすると主張しています。コマンドは

cryptsetup --reencrypt --decrypt --header HEADER_FILE <device_path>

--headerこのコマンドは、デバイスが別々のヘッダーを使用していると仮定するため、このパラメーターが必要です。これはうまくいき、オンラインでも復号化されます。別々のヘッダー(非常に一般的なもの)を使用せずにヘッダーダンプを提供したり、ブロックデバイス自体を値として渡そうとすると、自動的に続行され、--header完了cryptsetupするとキーウェイデバイスなしでLUKS2で終了します。データが消えます。

これはバージョン2.3.3(2020)ベースで、将来のバージョンで変更される可能性があります。

私の提案は、より安全なパスLUKS2->LUKS1->Decryptを使用することです。このパスがアクションを実行していることを確認できます。

答え3

まず、LUKSパーティションからパスワードを削除するときにパスワードを含むディスクパーティションを指定する必要があります。たとえば、次のようになります。

cryptsetup luksRemoveKey /dev/sda2

LUKS暗号化装置の状態が必要な場合は、LUKS名をそのまま引用する必要があります。

ただし、luksRemoveKeyはパスワードの1つだけを削除します(最後のパスワードではありません)。永続的な復号化が必要な場合は、cryptsetup-reencryptを使用する必要があります。

cryptsetup-reencrypt --decrypt /dev/sda2

答え4

に追加する陳彼女の答え、Ubuntu18.04のデフォルトcryptsetupパッケージは2.0.2です。バグがあります。 Luks フォーマットデバイスの最初のアクティブキースロットが 0 でない場合、復号化コマンドは終了し、コード 1 が返されます。(こちらを参照)しかし、添付のフォーラムリンクの次のコメントで述べたようにパッチされました。

したがって、次のように開始する必要があります。gitlabのソース暗号化システムと連携します。バージョン2.6.0以降、デバイスの復号化コマンドは次のように変更されました。cryptsetup reencrypt <device-name> --decrypt

関連情報