ファイルを取り巻く記録もまた、ファイルである
写真をその画素として考えるのは直感的なので、暗号化はしばしば画像を守るものとして説明されます。しかし保存された項目は、名前、タイムスタンプ、サイズ、アルバムのタイトル、そしてしばしば生成されたプレビューを持ち——そのそれぞれが、暗号化が隠そうとしていたものを明かし得ます。
ファイル名は人物の名前になり得ます。タイムスタンプは出来事を特定し得ます。コレクションのタイトルは関係を明かし得ます。そのどれも、画像そのものを1バイトも復号する必要がありません。
サムネイルが最も一般的な漏れ
生成されたプレビューは、最も見落とされがちな項目です。正当な性能上の理由で作られ、そして都合のよいどこかにキャッシュされるからです。キャッシュされたサムネイルは、保護された画像の読める複製であり、より低い解像度で、しばしば保管庫自身のストレージの外にあります。
ファイル本体を暗号化しつつ、復号したサムネイルを無期限にキャッシュする保管庫は、問題を解決したのではなく移しただけです。
何をしても観測されうるもの
一部のメタデータは、アプリではなくオペレーティングシステムに属し、暗号化で消すことはできません。アプリケーションの総ストレージサイズ、インストール日、アクセスの時刻は、保管庫が内部で何をしようと、プラットフォームから見えます。
誠実な設計はそう述べます。有用な区別は、アプリが作って制御する、保護されるべきメタデータと、ファイルシステムやプラットフォームが要求する、否定するのではなく文書化されるべきメタデータの間にあります。
ロック解除の前に見えるものを監査する
- 保管庫が開かれる前に現れるすべての項目を一覧にします。
- サムネイル、通知の文言、最近使ったアプリのプレビュー、共有シートの項目を確認します。
- エクスポートが、書き出したファイル自身のメタデータに何を書き込むかを確認します。
- プラットフォームが要求するストレージのメタデータを、自分が作ったプライベートなメタデータから分けます。
- 総アプリサイズやアクセスの時刻など、観測されうるまま残るものを文書化します。
漏れがたいてい現れる場所
- ファイルは暗号化しつつ、内容の分かるアルバムやメモのタイトルを平文のまま残すこと。
- 復号したサムネイルを、セッションに結び付けずに無期限にキャッシュすること。
- 通知やアプリスイッチャーのプレビューにファイル名を表示すること。
- メタデータの保護が、プラットフォームからのあらゆる端末の活動を隠すと主張すること。
これが提供元に尋ねる妥当な質問である理由
メタデータの保護は、ファイルの暗号化より難しく、宣伝では見えにくいため、保管庫が設計の残りをどれだけ真剣に扱っているかの、よい目安になります。
ファイル名、プレビュー、通知の文言について考えてきた製品は、たいてい、あなたが確認できない部分についても考えてきています。
Amara はまず、機微でないデータでテストします。「保管庫が解錠される前に見えるすべての項目を一覧にする」。次に Amara は2つ目の確認手順に従います。「サムネイル、通知の文言、最近使ったアプリのプレビュー、エクスポートを確認する」。この架空のシナリオは判断の流れを示すものであり、製品テストの報告ではありません。
- ファイルは暗号化しつつ、内容の分かるタイトルを平文のまま残すこと
- 復号したサムネイルを無期限にキャッシュすること
- メタデータの保護があらゆる端末の活動を隠すと主張すること
暗号化は総ストレージサイズを隠せますか?
必ずしもそうではありません。端末のストレージは、アプリがどれだけの容量を使っているかを依然として明かし得ます。
NullVault はファイル名の保護を掲げていますか?
その Android での価値提案には、暗号化されたファイル名、メタデータ、ファイルの内容が含まれます。