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を取得します。

コンピュータのダウンロードディレクトリに移動し、次にTarを使用してリリースアーカイブを抽出します:
tar xzf ./Downloads/v0.4.4.tar.gzFYI: グラフィカルおよびターミナルベースのツールを使用してLinuxでTarファイルを解凍する方法を学びます。
Shufflecakeのソースコードフォルダを開き、次のコマンドを実行してシステム上でそのバイナリをコンパイルします:
cd ./Downloads/shufflecake-c
make注意: Shufflecakeのコンパイルには、コンピュータのシステムリソースに応じて2〜5分かかる場合があります。
リリースフォルダからShufflecakeをコンピュータのバイナリパスにコピーします:
cp ./shufflecake /usr/bin/Shufflecakeがシステムのパスから正しく実行できるかどうかを確認します:
shufflecake --helpShufflecake用のダミーボリュームの作成
ほとんどの場合、Shufflecakeはあらゆる種類のブロックストレージデバイスで動作します。これには物理ディスクや論理パーティションが含まれます。これにより、暗号化されたファイルシステムを持つ外部ディスクを作成し、通常のデバイスとしてアクセスできるようになります。
ダミーボリュームを作成するには、アプリケーションランチャーからGnome Disksユーティリティを開き、フォーマットしたいディスクを選択します。

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

消去:ラベルの横にあるドロップダウンリストをクリックし、既存のデータをゼロで上書きする(遅い)を選択します。
フォーマット…を選択してフォーマットプロセスを開始します。
完了したら、+アイコンをクリックしてディスクに新しいパーティションを作成します。

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

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

ダミーパーティションに全ての空きディスクスペースを割り当てます。これにより、Shufflecakeディスク内に複数の隠しボリュームを作成できます。
知っておくと良いこと: Linuxで独自のカスタムパーティションを作成する方法を学びます。
隠しShufflecakeボリュームの初期化
この時点で、Shufflecakeはシステムのバイナリフォルダにあり、ダミーディスクパーティションもあります。これを使用して暗号化されたファイルシステムを作成するには、Shufflecakeで初期化する必要があります。
リリースフォルダに移動し、コンピュータでShufflecakeカーネルモジュールをロードします:
cd ./Downloads/shufflecake-c
sudo insmod dm-sflc.kolsblkを実行して、Shufflecakeをインストールしたいディスクの名前を見つけます。私の場合、ダミーパーティション「/dev/sda2」の中に隠しボリュームを作成します。

次のコマンドを実行して、ダミーパーティションのShufflecakeを初期化します:
sudo shufflecake init /dev/sda2注意: Shufflecakeは非システムディスクでのみ機能します。プライマリディスクでShufflecakeを実行すると、OSが起動できなくなります。
これにより、Shufflecakeが隠しボリュームの詳細を尋ねるウィザードプロンプトが実行されます。「5」と入力し、Enterを押して5つの隠しボリュームを作成します。
各隠しボリュームのパスワードを入力し、Enterを押します。Shufflecakeウィザードは入力を隠さないため、入力する前にプライベートな場所にいることを確認してください。

注意: 初期化プロセスには、パーティションのサイズに応じて5〜10分かかる場合があります。
隠しボリューム用のファイルシステムの作成
完了したら、隠しボリューム用のファイルシステムを作成します。これを行うには、次のコマンドを使用してフォーマットしたい隠しボリュームを開きます:
sudo shufflecake open /dev/sda2これにより、開きたいボリュームのパスワードを求められます。

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

隠しボリュームにインストールするファイルシステムを作成します。たとえば、mkfs.fatを実行すると、「ボリューム2」の中にFATファイルシステムが作成されます:
sudo mkfs.fat -F32/dev/mapper/sflc_0_2注意: Shufflecakeボリュームはコンピュータ内の仮想デバイスとして機能します。そのため、通常の「/dev」ではなく、「/dev/mapper/sflc_0_n」の下に常に隠しボリュームが見つかります。
その後、Ubuntuは自動的に新しい隠しボリュームを現在のセッションにマウントするはずです。アクセスするには、デスクトップの左サイドバーにあるドライブアイコンをクリックします。

ファイルまたはフォルダーをその中に作成して、ファイルシステムが正常に機能しているかどうかをテストします。
隠しボリュームのアンマウントと切り替え
通常のディスクとは異なり、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によるものです。