PinePhone向けLinuxディストリビューションの中には、インストーラーでディスク暗号化(Full Disk Encrpytion)機能を提供しているものがあります。これによりスマートフォン内のデータを他人に読み取られにくくできますが、同時にシステムの複雑さも増えます。
採用される技術は"LUKS"暗号化です。現在この機能があり、設定もしやすいスマートフォン向けLinuxディストリビューションはpostmarketOSとMobianです。Arch Linux ARMおよびManjaro ARMもインストール用のスクリプトを提供しています。
(画像はGitlabおよびPinePhone公式サイトより)

1. 背景#
PinePhoneはデフォルトでSDカードから起動します。Jumpdrive入りのSDカードを挿して起動すると、スマートフォン内部のパーティションデータは丸見えになります。Jumpdriveの本来の目的はシステムのインストールを簡単にすることですし、多くのディストリビューションもパーティションを暗号化しません。しかしそれでは、スマートフォン内データの安全性は確保できません。
そのため、スマートフォンをPCに接続して読める状態になっても、データ自体は暗号化されたままにする必要があります。そこまでやって初めて保護の意味があります。
2. LUKS暗号化の概要#
Red Hat社の説明によると:
Linux Unified Key Setup(LUKS)はブロックデバイス暗号化の仕様です。データ用のon-disk形式と、パスワード/鍵管理ポリシーを定義します。LUKSはdm-cryptモジュールを通じてkernelのデバイスマッパーサブシステムを使用します。これにより、デバイスデータの暗号化と復号を処理できる低レベルのマッピングが提供されます。ユーザー層の操作、たとえば暗号化済みデバイスの作成やアクセスは、cryptsetupというツールを使って行います。
ユーザーは現在のディスクを暗号化できます。ディスクへアクセスするときはパスワードを入力しないと、ディスク内のデータを平文として読み取れません。別のPCに差し替えても復号は可能です。
3. postmarketOSでディスク暗号化を有効にする#
postmarketOSのインストール方法は、pmbootstrapを使う方法と、公式ビルドのイメージファイルを使う方法の2種類があります。主に暗号化されるのはpmOS_rootパーティションです。ディスク暗号化後は、起動時に別途復号用パスワードの入力が必要になります。
- PinePhone以外のAndroidスマートフォンでは、ディスク暗号化に必ず対応しているとは限りません。Devices表で確認してください。
3.1. 1つ目の方法: pmbootstrapでシステムファイルを作成する#
- 先にこちらを参照してください:postmarketOS Install
書き込み時のコマンドに--fdeオプションを追加します。これでスマートフォンへ書き込むときにディスク暗号化が行われます:
pmbootstrap install --sdcard=/dev/sdb --fde3.2. 2つ目の方法: 公式のビルド済みインストーラー (Installer) を書き込む#
- 先にこちらを参照してください: PinePhone OS Install
- イメージファイルをダウンロードし、インストーラーのイメージファイルを選びます

書き込み後に起動し、`Enable Full disk encrpytion``を選択して、任意の8桁パスワードを入力し、システムをインストールします。

これでシステムに入る前に、ディスクのパスワードを一度入力する必要があります。

4. Mobianでディスク暗号化を有効にする#
Mobianのインストーラーは現在、ディスク暗号化オプションを提供しています。
- 先にこちらを参照してください: PinePhone OS Install
- システムイメージファイルをダウンロードし、インストーラー (Installer) を選びます

書き込み後に起動し、
Enable Full disk encrpytionをクリックして、8桁のパスワードを1つ設定します。
以後は起動後、まずディスク復号用パスワードを入力する必要があります。

5. LUKSディスク暗号化を解除する方法#
パーティションの暗号化を解除するには、ディスクをフォーマットする必要があります。
Tow-Bootは現時点では暗号化パーティションに対応していないため、PCから読むにはJumpdriveで起動する必要があります。PC側のシステムがUbuntuであれば、スマートフォンをPCに接続した後にパーティションのパスワードを聞いてくるはずです。その後、復号してマウントすれば、中のデータを閲覧できます。
暗号化されたパーティション(crypt)はlsblkコマンドで確認できます:
sdc 8:32 1 28.9G 0 disk
├─sdc1 8:33 1 243M 0 part /media/ivon/pmOS_boot
└─sdc2 8:34 1 28.7G 0 part
└─luks-55a4bb3f-165b-44ce-a771-fdc914c32b6e
253:0 0 28.7G 0 crypt重要なデータをバックアップした後、Gpartedを開きます。
PinePhoneのスマートフォン側パーティションを右クリックしてアンマウントし、すべてのパーティションを削除してからext4としてフォーマットします。暗号化されたパーティションは、アンマウント後に「暗号化を解除」をクリックできます。
詳細はこちらを参照してください: Linux Format SD Card
