Chienomi

Windows TrueCrypt * Linux LUKS

windows

先に述べたように、警察は証拠捏造の上、データを全消去していたため、自衛手段としては甚だ不足ではあるものの、一応オフラインアタックに耐えるラップトップの暗号化を施すことにした。なお、デスクトップはUEFI+GPT+Windows7 Prefessionalなので、有料ソフトを使わないとできない。

構成は次のようになっていた

  1. Windows 7 Windows Reserved
  2. MS Data(NTFS, Windows C:)
  3. openSUSE /boot(Ext3)
  4. Extended
  5. openSUSE /(btrfs)
  6. openSUSE swap

ブートローダーはMBRにインストールされたGrub2だ。

Windowsの暗号化はTrueCryptを、Linuxの暗号化はLUKSを使う。なお、Linux*LUKSは/bootを暗号化できないことを理解しておく必要がある。

TrueCryptはWindows System全域の暗号化が可能でデュアルブートにも対応する。ただし、MBRにbootmgrが導入されていることを前提とするため、現在のシステムでは対応できない。どのみちLinuxはLUKSに移行するため消去されることを踏まえ、今回はデータを退避した上でopenSUSEには消えてもらう。

だが、まずbootmgrを復元するというところで苦戦した。まず、systemrescueCDのsys-msで復元を試みたが、相変わらずGrubが起動する。次にWinPE-tch DirectによるWindows PEでbootrecを試みたがコマンドがないと言われる。修復ディスクはファイルがないのでインストールディスクを入れろというがプリインストール版。結局デスクトップ用を使って作ってみたが、修復するOSのリストは空だった。調べた結果、OSを選択しないままコマンドプロンプトを起動し、次のようにすることでできた。

> diskpart diskpart> list disk diskpart> select disk 0 diskpart> list partition diskpart> select partition 1 diskpart> active diskpart> exit > bootrec /fixboot > bootrec /fixmbr > bcdedit

これでbootmgrがWindowsを起動するようになった。

Linuxは安定してうまく動いているManjaroを使いたかったのだが、Mnajaroは手動インストールだとディスクの暗号化が設定できない。構成が簡単ではないので、ローリング・リリースが望ましいとして、Sabayon Linuxを選択。Sabayon Linuxは手動パーティショニングで暗号化オプションがあり、容易に設定可能だ。また、Grubは/dev/sda3にインストールする。この設定もわかりやすく、よくできたインストーラだった。細かい設定は難しいが。

この状態ではLinuxはブートされないが、気にせずTrueCryptに進む。Encrypt system drive/partitionから、ウィザードに従って進むのだが、英語だ。別に英語ができないわけではない私でも、システムの消滅をかけた作業になるため、かなり神経を使った。手順を撮っておくべきだったかもしれない。ただし、ウィザードに従って進めれば良い。20文字以上のパスワードを要求したり、wipeは4回以上を要求したりと、暗号化ソフトとしてはものすごく本気だ。

途中一度再起動する。この際、作ったばかりのレスキューディスクはejectしておく。また、ディスクのverifyはWindows image burnerのverifyとは別に行うので、その時はディスクを入れてnextする必要がある。メソッドはAESを使用した。最も速かったからだ。

TrueCryptは自動でLinuxパーティションを見つけ、ブートを設定する、と説明しているサイトがあるが、実際はTrue Crypt BootLoaderがbootmgrを呼び出す。そのため、bootmgrでLinuxをブートさせなくてはいけなかった。

まず、LiveLinuxで(systemrescueCDを使用した)ブートし、/bootのあるデバイスの512Bをリムーバブルディスク(普通はUSBメモリーだろう)にコピーする。

# mount /dev/sdb1 /mnt # dd if=/dev/sda3 of=/mnt/linux.pbr count=1 bs=512

再起動してWindowsに。ディスクからpbrファイルをCドライブ直下に配置する。

あとは次のようにする。

> bcdedit /create /d "Ubuntu" /application bootsector エントリ {GUID} は正常に作成されました。 > bcdedit /set {GUID} device partition=C: 操作は正常に終了しました。 > bcdedit /set {GUID} path \ubuntu.pbr 操作は正常に終了しました。 > bcdedit /displayorder {GUID} /addlast 操作は正常に終了しました。

一瞬でブートされてしまうので、コントロールパネル→システム→システム詳細→起動と回復から規定のシステムの選択とデフォルトブート時間の設定。

以上でうまくいった。

Sabayonは非常に美しく、優れたエクスペリエンスを持っている。Gentooベースだが、かなりがんばっているようだ。英語だが、rigoの選択肢が凝っていて、普通の二択よりもはっきりと判断できるのも良い。

なお、Linuxブート時はパスフレーズは2回入力することになる。Grubパスワードも設定していると3回だ。20文字以上を設定していると結構大変なので、それなりに覚悟はしておいてほしい。また、当然ながらパフォーマンスは低下する。DTM専用のデスクトップでは、多分厳しい。