隠す、ロックする、暗号化する——3つの言葉が1つとして売られている
ほとんどの人には、誰かに写真を見せようとスマホを渡すときに出てきてほしくないファイルが何枚かあるものです。それを解決すると謳うアプリは、南京錠の絵が描かれたフォルダーから、鍵がなければ本当に読めないものまで幅広く、外から見ればどれも同じに見えます。その違いが表面化するのは、それが本当に重要になる日だけです。
- 0個 よくできたボールトが、あなたのデバイス以外に鍵のコピーを持つ数
- 2通り 記憶しているパスコードと、別の場所に保管したリカバリーコード
- 1つの原則 両方失えば、あなたにも作った側にも二度と読めなくなる
「隠す」が実際に意味していること
写真アプリの非表示アルバムは、多くの人がすでに使っているバージョンなので、正確に説明しておく価値があります。項目をメイングリッドの外へ移動させ、iOS 16以降ではそのアルバム自体にFace IDを要求するようにします。しかしファイルそのものは何も変わりません。写真は元のまま保存され、iCloud写真と同期し続け、写真ライブラリへのアクセスを許可したどのアプリにも変わらず表示され、デバイスのパスコードを知っている人なら誰でも開けます。デバイスのパスコードがFace IDのフォールバックだからです。これは整理であって保護ではありません——友人が1枚多くスクロールしてしまうという日常的なケースには、整理で十分実用的です。
次の段階はパスコードの向こうにあるフォルダーで、自らを「ボールト」と名乗るアプリの多くは実際にはこれです。PIN画面があり、その先には普通の方法でディスク上に存在するファイルの一覧があります。これはロック解除済みのあなたのスマホを誰かが手にするという、現実的でよくある脅威を防ぎます。しかし、完全バックアップ、フォレンジック抽出、あるいはアプリではなくストレージそのものを読み取る他の手段に対しては、まったく無力です。
最上位は独自の鍵による暗号化です。ファイルは書き込まれる過程で変換され、ディスクに残るのは鍵がなければ意味を持たないもの——プレビューも、ファイル名も、中身をうかがわせる長さの情報すらありません。ストレージをコピーした人が手にするのはノイズです。「他の誰も開けない」という言葉が文字どおり真実になる唯一のバージョンであり、同時に自分の鍵を失えばファイルも失うという、誰も宣伝しない代償を伴う唯一のバージョンでもあります。
実際に心配していることに照らした3つのアプローチ
宣伝文句ではなく脅威で選んでください。ほとんどの人には真ん中で十分なのに3番目を買い、本当に3番目が必要な少数の人が1番目で妥協しています。
機能一覧に出てくる言葉を訳すと
これらの用語は、作る側は正確に使い、売る側はあいまいに使いがちです。知っておくこと自体が最大の防御になります。
- 保存時の暗号化(Encryption at rest)
- 転送中だけでなく、ディスクに置かれている間もファイルが読めないことを指します。ボールトにとって重要なのはこの主張であり、明言されないまま暗に匂わされることが最も多い部分でもあります。
- AEAD(認証付き暗号)
- 改ざんの検知も行う暗号方式のことで、一般に使われるのはAES-GCMとChaCha20-Poly1305の2つです。これがなければ、復号したときに気づかれない形でファイルが改変されている可能性があります。
- 鍵導出(KDF)
- 短いパスコードを、あえて時間のかかる処理を通して本物の鍵に変換する仕組みで、何百万通りものPINを総当たりするコストを実際に高くします。これを省くボールトは、事実上4桁の鍵しか持たないボールトです。
- エンベロープ / 鍵のラッピング
- ファイルは1つのランダムなマスター鍵で暗号化され、その鍵自体がパスコードとリカバリーコードでそれぞれ別々に暗号化されます。だからこそパスコードの変更は全体を再暗号化するのではなく一瞬で終わり、2つの異なる秘密のどちらでも同じボールトを開けるのです。
- リカバリーコード
- セットアップ時に一度だけ生成される長い文字列で、マスター鍵の2つ目のコピーをラップしています。もう一つの入口はこれだけです。リセットするためのアカウントが存在しないからこそ必要とされ、それを保護しているデバイスの中にしか保管していなければ何の価値もありません。
- Data Protection
- ファイルの利用可否をデバイスのロック解除状態に結びつけるiOSの機能層です。本当に強力ですが、アプリ独自の鍵の代わりにはなりません。デバイスそのものが持ち去られることからは守りますが、持ち主が開けるよう求められる状況からは守ってくれません。
- 偽装ボールト / もっともらしい否認
- あなた自身がボールトを開くかどうかを決められない状況のために、別のパスコードで開く、もっともらしい2つ目のコンテンツ一式のことです。実際に機能し、実際に限界もある機能で、ディスク上のバイトを数え上げる分析者ではなく、目の前にいる人物に対して効果を発揮します。
2年後も開けられるボールトの設定の仕方
暗号化されたストレージが破綻するのは、たいてい攻撃者のせいではありません。18か月後、一度だけ設定してそれきり打ち込んでいなかったパスコードを持つ、持ち主自身のせいです。
-
本当に覚えていられるパスコードを選ぶ
他の場所で使っているものの変形でも、2回打ち込むだけのランダムな数字でもありません。毎日使うわけではないので、1年後でも記憶から再構築できるものにしてください。
-
リカバリーコードはスマホ以外の場所に保管する
パスワードマネージャー、金庫の中のメモ、引き出しの中の印刷物など。それを守っているデバイスの中では何の役にも立ちません。自分宛てにメールで送るなら、そのメールアカウント自体の安全性に依存します——それを承知の上で選んだのであれば問題ありません。
-
バックアップの扱いをここで決める
ボールトをiCloudやパソコンのバックアップに含めれば、スマホをなくしても暗号化されたファイルは残ります。除外すればバックアップは小さくなりますが、端末を失ったときに復元できるものは何もありません。どちらも理にかなった選択であり、気づかないままどちらかに流れ着くことだけが問題です。
-
元のファイルを移してから、元の場所で削除する
必ずこの順番で、しかもボールトが各項目の到着を確認してから行ってください。先に削除するインポート方式は、転送が一度中断しただけでファイルを完全に失う可能性があります。削除はシステム自体の確認を経るべきで、静かに実行されるべきではありません。
-
ロックして、一度は完全に冷えた状態から開く
アプリを閉じて開き直し、Face IDではなくパスコードを入力してみてください。生体認証で入り続けていたせいで、設定したはずのパスコードが実は記憶に定着していなかったというケースをここで見つけられます。
-
どこかに痕跡が残っていないか確認する
メインのライブラリでそのファイル名を検索してみてください。最近再生した項目、ウィジェット、ボールト内の何かを再生している間のロック画面も確認します。「再生中」の表示から中身が漏れるボールトは、内側に窓が空いているようなものです。
この一連の作業は5分程度で終わりますが、それが単なるフォルダーとボールトを分ける違いです。
実際に起こりうる状況
この中の2つはあとから修正できないため、設定の後ではなく前に読んでおく価値があります。
| 状況 | よくできたボールトで起こること |
|---|---|
| 新しいスマホにバックアップから復元した | 暗号化されたファイルとラップされた鍵はそのまま移りますが、パスコード自体は移動できない形で保存されているため引き継がれません。古いパスコードかリカバリーコードで一度だけ開き、新しいパスコードを設定します。 |
| パスコードを忘れたが、リカバリーコードはある | リカバリーコードがマスター鍵のラップを解いてボールトを開き、その場で新しいパスコードを設定できます。何も再暗号化しないため、1時間ではなく一瞬で終わります。 |
| 両方とも失った | ファイルはディスク上で暗号文のまま残り、読めなくなります。これは設計が保証する結果であり、この保証を提供しながら回避策も持つアプリは存在しません。 |
| アプリを削除した | 他のあらゆるアプリの専用ストレージと同じく、中身もすべて一緒に消えます。アンインストールの前にエクスポートしてください——使う価値のあるボールトなら、すべてを普通のフォルダーへ戻す操作がワンアクションで用意されています。 |
| 誰かがあなたのデバイスのパスコードを知っている | その人が到達するのはデバイスであってボールトではありません。ボールトの鍵は、それ自体の別のパスコードから導かれています。これはまさに、隣に人がいる状況のために偽装ボールトが設計されている場面です。 |
| バックアップを除外していて、スマホを紛失した | 暗号化されたファイルはどこにもコピーされていなかったため、復元できるものは何もありません。それを意図的に選ぶ人もいれば、不愉快な驚きとして受け取る人もいます。 |
スクリーンショットと画面収録は、どのiOSアプリも塞げない唯一の抜け道です。何かを見ている間、システムはそれをキャプチャできます。iPhoneやiPadでそうでないと主張するアプリがあれば、できないことをできると言っています。
かけがえのないものを入れる前に、ボールトアプリを見極める方法
- 暗号化方式を具体的に名指ししているか、それとも「軍事レベル」とだけ言っているか
AES-256-GCMやChaCha20-Poly1305なら答えになっています。「銀行レベルのセキュリティ」は飾り言葉で、たいてい名指しすべきものが何もないところに現れます。
- リカバリー手段を正直に説明しているか
リセットリンクをメールで送ると謳うアプリは、鍵を保持していると自ら告げています。それが受け入れられる取引の場合もありますが、開発元があなたのボールトを開けるということでもあり、はっきり書かれているべきです。
- すべてを一度の操作で取り出せるか
ボールトは、いつでも出て行ける部屋であるべきです。エクスポートが1件ずつファイルを開く作業を意味するなら、あなたのデータはそのアプリが存在し続けることを人質に取られています。
- 既存のコンテンツをサブスクリプションの人質にしていないか
新規追加分に制限をかけるのは理にかなっていますが、サブスクリプションが切れた途端にすでに入っているものへアクセスできなくなるのは別問題です。契約が切れた後ではなく前に確認する価値があります。
- どこから何が漏れているか
検索結果、Spotlight、共有キャッシュ内のサムネイル、最近再生した項目、ウィジェット、音声再生中のロック画面、アプリが動かすファイル共有サーバー。これらはどれも、少なくとも一度はボールトの中身を漏らした実績があります。
- サムネイルはどこに置かれているか
プレビュー画像はファイルそのものです。システム全体で共有されるキャッシュディレクトリにサムネイルを書き込んでしまえば、実際に見せたくないものの暗号化は無意味になります。
- サーバーへ何かを送信しているか
ボールトが外部と通信する理由はどこにもありません。もしアップロードするなら、誰が鍵を持っているかという問いだけが重要になります。
プラットフォームによる違い
他人の手に渡る可能性が最も高いデバイスなので、日常的な脅威モデルがここでは支配的です。Face IDと専用のボールトパスコードでそれをカバーします。デバイスのパスコードそのものがボールトを開ける鍵になってはいけません。
家庭や複数人で共有されるデバイスであることが多く、テーブルに置きっぱなしにされることも多いデバイスです。第二のロックはここでこそ意味を持ち、画面が大きい分、偽装コンテンツの説得力もむしろ増します。
FileVaultはMacの電源が切れている間にディスク全体を暗号化する、これとは別の補完的なレイヤーです。持ち去られた本体を守る一方、アプリ内のボールトはすでにログイン済みの誰かから守ります。
よくある質問
写真アプリの非表示アルバムは非公開ですか?
非公開ではなく、隠されているだけです。iOS 16以降そのアルバム自体はFace IDを要求しますが、写真自体は変わりません。同期は続き、アクセス権を許可したアプリの写真ライブラリにも残り続け、デバイスのパスコードでも開けます。パスコードがFace IDのフォールバックだからです。好奇心旺盛な友人程度にはそれで十分ですが、それ以上の用途には見た目どおりのものではありません。
アプリを作った人は私のボールトを開けますか?
きちんと作られたボールトであれば開けません——鍵はあなたのデバイス上でパスコードから導かれ、他のどこにも存在しません。確認する方法はリカバリーの仕組みです。リセットリンクをメールで送れるアプリは、必然的にあなたのボールトを開ける何かを保持しています。それが自動的に不誠実というわけではありませんが、「あなただけが開ける」という意味とは正反対です。
誰かに開けるよう強要されたらどうなりますか?
これがまさに偽装ボールトの目的です。別のパスコードでもっともらしい無害なコンテンツ一式を開くことで、要求に従うことと本物のコンテンツを守ることが同じ1つの行動になります。これは目の前の人物に対して設計されたものであり、ストレージのフォレンジック分析に対するものではありません。偽装側が空っぽではなくそれらしい中身を持っているときに最も効果を発揮します。
ロック解除された状態で盗まれたスマホをボールトは守れますか?
ボールト自体が再びロックされていれば守れます。それを決めるのが自動ロックの設定です。セッション中ずっと開いたままになる設定のボールトは、盗まれたロック解除済みのスマホの上でも開いたままです。この1つの設定は、暗号方式の選択よりもはるかに大きな仕事をしています。
ファイル全体を先に復号せずに、暗号化された動画を再生できますか?
ファイルが1つのブロックではなくチャンク単位で暗号化されていれば可能です。プレーヤーは必要な部分だけを要求し、そのチャンクだけがメモリ上で復号され、シークも機能します。復号したコピーを一時ファイルへ書き出して再生するという代替手段は、再生している間ずっと暗号化を無効化しているのと同じであり、確認しておく価値があります。
FoxDLのボールトの作り
細部まで具体的に書きます。ここまでの内容の要点は、あいまいな主張は主張にならないということだからです。
- ファイルはデバイス上で一度だけ生成されるランダムなマスター鍵で、チャンクごとにChaCha20-Poly1305暗号化されます。動画はボールトから直接ストリーミングされ、各チャンクはプレーヤーが到達した瞬間にメモリ上で復号され、復号済みのコピーがディスクに書き込まれることはありません。
- 2つのエンベロープ、1つの鍵。マスター鍵はボールトのパスコードで1回、リカバリーコードでもう1回、それぞれラップされます。パスコードを変更してもライブラリを再暗号化するのではなくエンベロープをミリ秒単位でラップし直すだけで、どちらの秘密でも新しいデバイスでボールトを開けます。
- ボールトにはアプリロックとは別の専用パスコードがあり、Face IDまたはTouch ID、独自の自動ロックタイマーも備えています。鍵の生体認証コピーは、その場でのあなたの存在を必要とするキーチェーン内にあり、そのデバイスに紐づいています。
- ディスク上には読み取り可能なものが何も残りません。ファイルはDocumentsフォルダーの外に、意味を持たない名前で保存され、本当のファイル名とフォルダー構造は暗号化されたカタログの中にしか存在せず、サムネイルも共有キャッシュではなくボールトの中にとどまります。
- 周囲から一切漏れません。ライブラリ検索、Spotlight、Wi-Fi転送、端末間送信、共有受信箱のいずれからもボールトは見えません。プレイリストや最近再生した項目ではボールト内の項目はマスクされた行として表示され、再生中のロック画面には一般的なタイトルが表示されます。
- カモフラージュと偽装ボールト。ボールトには鍵のバッジなしで好きな名前とアイコンを付けられ、選んだジェスチャーの先に本物のボールトを配置し、無害なファイル一式へ直接開くこともできます。2つ目のパスコードで偽装ボールトが開き、オプション設定を使えばFace IDとデバイスのパスコードも偽装ボールトを開くようにできます——つまり本物のボールトは、あなたが誰にも見せる必要のないパスコードにしか反応しません。
- あなたのファイルが人質になることはありません。サブスクリプションの状態にかかわらず中身はすべて閲覧・再生・エクスポート可能で、ボールト設定内のボタン1つですべてを普通のフォルダーへ戻せます。
- 無料版では15個まで(リアルタイムでカウント)保持できるので、1つ削除すればまた空きが生まれます。それ以上はFoxDL Proの範囲です——これはリワード動画による回数追加がない数少ない機能の1つで、プライバシー機能に広告が入り込む余地はないからです。
何かを移す前に、リカバリーコードをスマホ以外の場所に保管しておいてください。パスコードを忘れ、コードもなくしてしまえば、私たちにもあなたのボールトを開けませんし、他の誰にもできません——それが設計どおりに機能している証であり、コードが存在する理由そのものです。
よくある質問
- ファイルを隠すにはどうすればいいですか?ボールトはどれくらい安全ですか?
- ボールトのパスコードを忘れたり、リカバリーコードを失くしたりしたらどうなりますか?
- ボールトの存在自体を隠したり、ロック解除を強いられたときに偽のボールトを見せたりできますか?
- 機種変更やバックアップからの復元後も、ボールトの中身は残りますか?
- 動画や音楽をボールトから直接再生できますか?
- 写真をボールトに移動するにはどうすればいいですか?「写真」からは削除されますか?
- ファイルをボールトへ直接ダウンロードできますか?
- Proなしでボールトに保存できるファイルはいくつまでですか?
- ボールトからファイルを取り出すにはどうすればいいですか?
- ボールト内の項目は、アプリの他の場所にも表示されますか?