システム暗号化の解除

提供: ArchWiki
ナビゲーションに移動 検索に移動
この記事あるいはセクションで使われている用語や表現には問題が存在します。
議論: written in first person, other style issues. (議論: トーク:システム暗号化の解除#)

dm-crypt と LUKSを使用してシステム暗号化を解除します。

LUKS暗号化のインプレース解除

概要

データをバックアップして、再フォーマットされたデバイスに復元するほど安全ではありませんが、cryptsetup はデバイスから LUKS 暗号化をインプレースで永久に解除することを可能にします。例えば、LUKS 暗号化されたパーティションの中に ext4 ファイルシステムが存在する場合、インプレース復号化を行うと LUKS シグネチャが削除され、パーティション上に直接 ext4 ファイルシステムが配置され、直接マウントできるようになります。何も問題が発生しなければ、ファイルシステム内のファイルはそのまま維持されます。cryptsetup のドキュメントで使用されている用語は「復号化」とされています。

cryptsetup-reencrypt(8) マニュアルを参照して、--decrypt オプションについて確認してください。

LUKS1 デバイスの非破壊オフライン復号化は、2012年にリリースされた cryptsetup バージョン 1.5.0 から利用可能になりました。LUKS1の復号化はオフラインモードでのみサポートされています。

LUKS2 デバイスの場合、オフラインおよびオンライン(アンマウント不要)の復号化がサポートされています。

警告: 以下の手順は本質的にリスキーであり、大規模なデータ損失を引き起こす可能性があります。復号化中の事故からデータを保護するために、常にドライブと LUKS ヘッダのバックアップを行ってください。

LUKS1 デバイスのインプレース復号化

LUKS1 デバイスの復号化はオフラインモードで行われます。つまり、開いてマウントしてはいけません。システムドライブを復号化したい場合は、USB ライブ環境で再起動してください。それ以外の場合は、unmount に続いて cryptsetup close dm-name を使用してください。

まず、blkid または lsblk を使用して device_path を特定します。

次に、以下のコマンドで復号化を実行します:

# cryptsetup reencrypt --decrypt device_path
Enter any existing passphrase: 
Finished, time 02m05s, 19 GiB written, speed 162.6 MiB/s

自動的に LUKS1 ヘッダーバージョンを識別し、開いているデバイスの場合は進行しません。プロセスには時間がかかることがありますが、進行状況のメーターが表示されます。問題が発生しなければ、デバイス上のファイルシステムを直接マウントできます。

LUKS2 デバイスのインプレース復号化

復号化は、cryptsetup コマンドを使用して、オフラインまたはオンラインモードのいずれかで行うことができます。cryptsetup バージョン 2.5.0 (2022) から、LUKS2 は LUKS2 ヘッダーを別のファイルに移行することによって復号化をサポートしています。

復号化の初期段階で、LUKS2 ヘッダーが移行される new_file は存在してはいけません。

# cryptsetup reencrypt --decrypt --header new_file device_path
警告: エクスポートされたヘッダーは、インプレース復号化されるデバイスがホストするファイルシステムの外に配置する必要があります。そうでないとデッドロックが発生するか、復号化プロセスが中断された場合に再開することができません。

LUKS2 のインプレース復号化が中断された場合は、次のコマンドを発行するだけです:

# cryptsetup reencrypt --decrypt --resume-only --header migrated_header_file device_path

オンライン復号化が成功し、アクティブデバイス上で完了した場合、マップされたデバイスは遅延で非アクティブ化され、使用しなくなったときに自動的に線形マッピングが解除されます。その後、元の device_path をデバイスマッパーマッピングなしで使用できます。

ノート: 移行されたヘッダーを使用して中断された LUKS2 復号化デバイスは、cryptsetup バージョン < 2.5.0 では再開できません

システムファイルのクリーニング

復号化によりデバイス名や UUID が変更される可能性があり、関連する設定ファイルを更新する必要があります。更新が必要なファイルとしては、/etc/crypttab, /etc/fstab, および、最近復号化されたデバイスがカーネルコマンドライン上に表示された場合は、ブートローダーの設定(例:/etc/default/grub)があります。後者を編集する場合は、GRUBに記載されている通りに grub 設定を再生成することを忘れないでください。

バックアップ-フォーマット-復元による LUKS の削除

必要条件

  • 復号化したい暗号化されたルートファイルシステム。
  • バックアップを保存するための十分なドライブスペース。
  • Arch Linux(またはその他の)ライブCD/USB。
  • 数時間。

ライブ環境にブート

最新の Arch ISO を CD または USB にダウンロードして焼き、システムを再起動し、cd からブートします。

パーティションのアクティブ化

異なるセットアップに関する注記

ここに示される例のセットアップは以下のとおりです:

Disk
NTFS myvg(lvm) NTFS
Other OS cryptswap(lv) cryptroot(lv) Shared
luks luks
swap root(xfs)

グレーのパーティションは参照枠として無視できます。 黄色のパーティションはストレージスペースとして使用され、必要に応じて変更可能です。 緑のパーティションは変更されます。太字のテキストはシステムの設定に合わせてください。

例のシステムでは: myvg には cryptrootcryptswap と呼ばれる lvs が含まれています。これらは /dev/myvg/cryptroot/dev/myvg/cryptswap に位置しています。起動時に、LUKS といくつかの crypttab エントリを使用して /dev/mapper/root/dev/mapper/swap を作成します。

このガイドの一環として、スワップの暗号化は解除されません。スワップの暗号化を解除するには複雑なバックアップや復元は必要ありません。

例のシステムはすべてのシステムを示すものではありません。異なるファイルシステムはデータを効果的にバックアップおよび復元するために異なるツールを必要とします。LVM は使用されていない場合は無視できます。

ノート: XFS は効果的なバックアップと復元を確保するために xfs_copy を必要とします。dd は不十分です。ext2、3、および 4 では dd を使用することができます。

パーティションが特定されたら

必要なモジュールをロードします。デバイスマッパー/LVM の場合:

# modprobe dm-mod 

LUKS の場合:

# modprobe dm-crypt

物理ボリューム、ボリュームグループ、および論理ボリュームをスキャンします:

# pvscan; vgscan; lvscan

LVM ボリュームグループをアクティブにします:

# lvchange -ay myvg/cryptroot

暗号化されたファイルシステムを LUKS で開き、読み取り可能にします:

# cryptsetup luksOpen /dev/myvg/cryptroot root

パスワードを入力します。

ノート: この時点で操作されるべきパーティションはバックアップパーティションのみです。バックアップパーティション以外のパーティションがすでにマウントされている場合、それを安全にアンマウントできます。
バックアップスペースのマウント

バックアップに NTFS を使用する場合のみ、ntfs-3g をインストールします。

バックアップストレージの次のステップが重要です。

# mount -t ntfs-3g -o rw /dev/sdXY /mount/point/

または、バックアップをリモートシステムに保存するために netcat を使用します。

データのバックアップ

xfs_copy を使用して:

# xfs_copy -db /dev/mapper/root /mount/point/backup_root.img
ノート: -d フラグは UUID を保持し、-b はターゲットファイルに直接 IO を試みないことを保証します。

dd を使用して:

# dd if=/dev/mapper/root of=/mount/point/backup_root.img

暗号化の解除

これは戻ることのできないポイントです。このステップに進む準備ができていることを確認してください。後でこれを元に戻す計画がある場合、ほぼ一から始めなければなりません。

# cryptsetup luksClose root
# lvm lvremove myvg/cryptroot

データの復元

新しい論理ボリュームを作成してルートファイルシステムを収容し、その後ファイルシステムを復元します。

# lvm lvcreate -l 100%FREE -n root myvg
# xfs_copy -db /mount/point/backup_root.img /dev/myvg/root

第二のドライブ名が変更されます。

設定の調整

システムにブートして、/etc/crypttab, /etc/mkinitcpio.conf, /etc/fstab, および場合によっては /boot/grub/menu.lst を編集する必要があります。

翻訳ステータス: このページは en:Removing system encryption の翻訳バージョンです。最後の翻訳日は 2024-06-27 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。