クライアント側スキャンはユーザーのデバイス上のコンテンツを調べます。そのコンテンツは、送信前や受信後にはすでに読み取り可能になっている場合があります。そのため、暗号化された配信経路の外側に情報開示の経路を作り得ます。APK のチェックサムを比較しても、アプリにスキャン用コードが含まれないことは証明できません。 分かるのは、選択したバイト列が特定のダイジェストに一致するか、というもっと限定的なことです。
これらの主張を区別することで、暗号化もソフトウェア検証も、より役立つものになります。
デバイス上のスキャンがプライバシーの境界を変える理由
アプリはメッセージを表示したり写真を送信できるよう準備したりするために、平文を扱う必要があります。その後にネットワークを流れるメッセージがエンドツーエンドで暗号化されていても、スキャン機能はこの段階で動作できます。デバイスから何が出ていくかはスキャナーの設計次第です。一致を報告する場合も、選んだコンテンツをアップロードする場合も、その他の派生情報を送信する場合もあります。
研究論文 Bugs in our Pockets は、悪用、誤検知、攻撃対象領域の拡大などのリスクを検討しています。これらは、提案されたスキャンシステムのデータフローとガバナンスを調べる理由になります。ただし、デバイス上のあらゆる機能が監視であることや、特定の法律が一律のスキャン義務を課したことを示すものではありません。
ユーザーが制御するローカル機能は、必ずしも強制的な報告と同じではありません。誰が分析方法を選び、何が引き金となり、誰が規則を更新でき、どんなデータがデバイス外へ出られるのかを確認してください。
ソフトウェアに関する四種類の証拠
| 確認項目 | 確認できること | それだけでは確認できないこと |
|---|---|---|
| SHA-256 チェックサム | ファイルが信頼できる参照ダイジェストと一致すること | 参照プログラムが安全であることや、ソースコードと一致すること |
| APK の署名検証 | パッケージの署名が検証を通過し、署名証明書を特定できること | 署名者が信頼できることや、コードに望ましくない動作がないこと |
| 再現可能ビルド | 指定されたソースとビルド入力から期待される成果物を生成できること | ソースに脆弱性や有害なロジックがないこと |
| 独立したレビューとテスト | 定められたバージョンと範囲についての知見 | 将来のすべての更新を対象とした永久的な保証 |
Android の apksigner ドキュメント は、パッケージの検証と証明書情報の表示について説明しています。Reproducible Builds の定義 は、成果物の再現にソース、ビルド環境、手順のすべてが重要である理由を説明しています。
ソースのアーカイブと、その横に表示されたチェックサムだけでは、再現可能ビルドの結果にはなりません。同様に、悪意あるリリースに付いた有効な署名も、有効な署名であることに変わりありません。
結果を過大解釈せずにダウンロードを確認する方法
まず目的のリリースを特定し、信頼できる配布経路から APK と期待されるダイジェストを取得します。ダイジェストをローカルで計算してください。一致しない場合、理由が分からないままそのファイルをインストールしてはいけません。別のリリース、不完全なダウンロード、改ざんのいずれでも不一致が生じます。
一致した場合は、リリースと結果を記録します。確認できたのは参照値に対するバイト列の一致であって、クライアント側スキャンがないことではありません。同じ攻撃者がダウンロードと表示されたチェックサムの両方を置き換えられるなら、比較はそれでも成功し得ます。独立した参照情報、署名鍵の継続性、リリースの透明性は、この信頼の問題の異なる部分への対処に役立ちます。
ソースとバイナリーの対応を主張する場合は、実際のリリースについて文書化されたビルド手順と、独立して再現された結果を探してください。「オープンソース」という言葉からその性質を推測しないでください。
更新は依然として重要
ソフトウェアの配布は攻撃される可能性がありますが、セキュリティ更新をいつまでも避けることは、一般的な防御策として適切ではありません。更新は悪用可能な脆弱性も修正します。信頼できる更新経路を利用し、重要なセキュリティ通知を確認し、リスクに応じてリリースの証拠を検証してください。既知の欠陥がある古いバージョンは、以前チェックサムが一致したというだけで安全になるわけではありません。
Livara の Proof Lab が確認すること
Livara の Proof Lab は、ローカルでの APK ダイジェスト比較と、ブラウザー上の暗号技術のデモを提供します。このページは、LVR1/LGS1 の完全なラチェットを実行せず、プロトコル監査には当たらないと明記しています。脅威モデル も、攻撃者がファイルと期待されるダイジェストの両方を置き換えられる場合の限界を説明しています。
これらの確認は、その範囲内では有用です。しかし、アプリをインストールしたスマートフォンにマルウェアがないこと、Livara のリリースが独立して再現可能であること、アプリに未開示の動作が含まれ得ないことを証明するものではありません。主張されているメッセージ保護の境界については、セキュリティ文書を別途お読みください。
問うべきなのは、バッジに「検証済み」と書いてあるかではありません。どの主張を、どの信頼できる参照情報に照らし、どの正確なリリースについてテストしたのか、ということです。



