LinuxでShufflecakeを使って隠しファイルシステムを作成する方法

ラップトップのキーボードの上にある南京錠の写真。

Shufflecakeは、Linux用のシンプルでありながら非常に強力なファイルシステム暗号化ユーティリティです。従来のディスク暗号化スキームとは異なり、Shufflecakeはファイルシステム内のデータを暗号化するだけでなく、システム自体から隠すことによって機能します。この記事では、UbuntuにShufflecakeをインストールして、Linuxで隠し暗号化ファイルシステムを作成および維持する方法を示します。

目次

  • Shufflecakeのインストール
  • Shufflecake用のダミーボリュームの作成
  • 隠しShufflecakeボリュームの初期化
  • 隠しボリュームのアンマウントと切り替え
  • 隠しボリュームのパスワードの変更

Shufflecakeのインストール

Shufflecakeを取得する最初のステップは、システムにその依存関係をインストールすることです。そのためには、次のコマンドを実行します:

sudo apt install linux-headers-$(uname -r) libdevmapper-dev libgcrypt-dev makegcc

プロジェクトのCodebergページから最新のリリースtarballを取得します。

開発者のCodebergページでのShufflecakeのtarballダウンロードのスクリーンショット。

コンピュータのダウンロードディレクトリに移動し、次にTarを使用してリリースアーカイブを抽出します:

tar xzf ./Downloads/v0.4.4.tar.gz

FYI: グラフィカルおよびターミナルベースのツールを使用してLinuxでTarファイルを解凍する方法を学びます。

Shufflecakeのソースコードフォルダを開き、次のコマンドを実行してシステム上でそのバイナリをコンパイルします:

cd ./Downloads/shufflecake-c  
make

注意: Shufflecakeのコンパイルには、コンピュータのシステムリソースに応じて2〜5分かかる場合があります。

リリースフォルダからShufflecakeをコンピュータのバイナリパスにコピーします:

cp ./shufflecake /usr/bin/

Shufflecakeがシステムのパスから正しく実行できるかどうかを確認します:

shufflecake --help

Shufflecake用のダミーボリュームの作成

ほとんどの場合、Shufflecakeはあらゆる種類のブロックストレージデバイスで動作します。これには物理ディスクや論理パーティションが含まれます。これにより、暗号化されたファイルシステムを持つ外部ディスクを作成し、通常のデバイスとしてアクセスできるようになります。

ダミーボリュームを作成するには、アプリケーションランチャーからGnome Disksユーティリティを開き、フォーマットしたいディスクを選択します。

隠しShufflecakeボリュームを格納する外部ディスクを強調表示したスクリーンショット。

ウィンドウの右上隅にある点線ボタンをクリックし、次にディスクのフォーマット…を選択します。

外部ディスクのGnome Disksユーティリティでの「ディスクのフォーマット...」オプションを強調表示したスクリーンショット。

消去:ラベルの横にあるドロップダウンリストをクリックし、既存のデータをゼロで上書きする(遅い)を選択します。

フォーマット…を選択してフォーマットプロセスを開始します。

完了したら、+アイコンをクリックしてディスクに新しいパーティションを作成します。

ディスクに新しいパーティションを追加するための「+」記号を強調表示したスクリーンショット。

パーティションサイズをディスクスペースの4分の1に設定します。これがShufflecakeなしでアクセスできるディスクの暗号化されていないスペースとして機能します。

Gnome Disksユーティリティでの外部ディスクのパーティションサイズスライダーのスクリーンショット。

残りの空き領域ブロックを選択し、+をクリックして新しいパーティションを作成します。

外部ディスクの残りの空きディスクスペースを強調表示したスクリーンショット。

ダミーパーティションに全ての空きディスクスペースを割り当てます。これにより、Shufflecakeディスク内に複数の隠しボリュームを作成できます。

知っておくと良いこと: Linuxで独自のカスタムパーティションを作成する方法を学びます。

隠しShufflecakeボリュームの初期化

この時点で、Shufflecakeはシステムのバイナリフォルダにあり、ダミーディスクパーティションもあります。これを使用して暗号化されたファイルシステムを作成するには、Shufflecakeで初期化する必要があります。

リリースフォルダに移動し、コンピュータでShufflecakeカーネルモジュールをロードします:

cd ./Downloads/shufflecake-c  
sudo insmod dm-sflc.ko

lsblkを実行して、Shufflecakeをインストールしたいディスクの名前を見つけます。私の場合、ダミーパーティション「/dev/sda2」の中に隠しボリュームを作成します。

lsblkでのsda2ダミーパーティションを示すスクリーンショット。

次のコマンドを実行して、ダミーパーティションのShufflecakeを初期化します:

sudo shufflecake init /dev/sda2

注意: Shufflecakeは非システムディスクでのみ機能します。プライマリディスクでShufflecakeを実行すると、OSが起動できなくなります。

これにより、Shufflecakeが隠しボリュームの詳細を尋ねるウィザードプロンプトが実行されます。「5」と入力し、Enterを押して5つの隠しボリュームを作成します。

各隠しボリュームのパスワードを入力し、Enterを押します。Shufflecakeウィザードは入力を隠さないため、入力する前にプライベートな場所にいることを確認してください。

Shufflecakeで初期化された各隠しボリュームの異なる秘密のパスワードを示すスクリーンショット。

注意: 初期化プロセスには、パーティションのサイズに応じて5〜10分かかる場合があります。

隠しボリューム用のファイルシステムの作成

完了したら、隠しボリューム用のファイルシステムを作成します。これを行うには、次のコマンドを使用してフォーマットしたい隠しボリュームを開きます:

sudo shufflecake open /dev/sda2

これにより、開きたいボリュームのパスワードを求められます。

隠し「ボリューム2」の秘密のパスワードと、システムにマウントされていることを確認するメッセージを強調表示したスクリーンショット。

lsblkを実行して、Shufflecakeが隠しボリュームを正しく読み込んだことを確認します。

システム内の隠し「ボリューム2」のデバイスパスを強調表示したスクリーンショット。

隠しボリュームにインストールするファイルシステムを作成します。たとえば、mkfs.fatを実行すると、「ボリューム2」の中にFATファイルシステムが作成されます:

sudo mkfs.fat -F32/dev/mapper/sflc_0_2

注意: Shufflecakeボリュームはコンピュータ内の仮想デバイスとして機能します。そのため、通常の「/dev」ではなく、「/dev/mapper/sflc_0_n」の下に常に隠しボリュームが見つかります。

その後、Ubuntuは自動的に新しい隠しボリュームを現在のセッションにマウントするはずです。アクセスするには、デスクトップの左サイドバーにあるドライブアイコンをクリックします。

新しくフォーマットされた隠し「ボリューム2」を強調表示したスクリーンショット。

ファイルまたはフォルダーをその中に作成して、ファイルシステムが正常に機能しているかどうかをテストします。

隠しボリュームのアンマウントと切り替え

通常のディスクとは異なり、Shufflecakeボリュームを取り出すには、仮想ドライブをアンマウントし、Shufflecake接続を閉じる必要があります。これを行うには、Ubuntuタスクバーのドライブアイコンを右クリックし、アンマウントを選択します。

新しいターミナルセッションを開き、次のコマンドを実行します:

sudo shufflecake close /dev/sda2

また、sudo shufflecake open /dev/sda2を再実行し、隠しボリュームの適切なパスワードを提供することで、Shufflecakeディスクの別のセクションに切り替えることもできます。

隠しボリュームのパスワードの変更

隠しボリュームを作成および読み込むことに加えて、Shufflecakeユーティリティは既存のボリュームのパスワードを変更することもできます。これを行うには、新しいターミナルセッションを開き、次のコマンドを実行します:

sudo shufflecake changepwd /dev/sda2

これにより、変更したい隠しボリュームのパスワードを尋ねるウィザードが開始されます。パスワードを入力し、Enterを押します。

ウィザードは、隠しボリュームの新しいパスワードを求めます。新しいパスワードを書き込み、Enterを押して新しい変更を適用します。

最後に、ボリュームの新しいパスワードが正常に機能するかどうかを確認するために、testpwdサブコマンドを実行します:

sudo shufflecake testpwd /dev/sda2

外部ドライブに隠しファイルシステムを作成および維持することは、データセキュリティとプライバシーの世界を探求するための第一歩に過ぎません。Tombを使用してファイルシステム内に暗号化されたファイルを作成する方法を学びます。

画像クレジット: FlyD via Unsplash、Shufflecake Developers、およびWikimedia Commons。すべての変更とスクリーンショットはRamces Redによるものです。