SHARE THE PERSPECTIVE
オフラインテストでは特定の結果を示すべきです。ハッシュや暗号のデモは、製品全体の完全な監査ではありません。

オフライン検証では、特定の計算がサーバーからのリアルタイムの応答なしで行われることを示せます。これは有益ですが、メッセンジャー全体の安全性を証明するものではありません。役立つ結果にするには、どのファイル、バージョン、入力、出力をテストしたのかを正確に記録する必要があります。

ファイルのハッシュ、リリース署名、テストベクトル、再現可能なビルド、セキュリティ監査は、それぞれ別の問いに答えます。どれか一つを「完全な安全のお墨付き」にするより、証拠を組み合わせる方が有用です。

それぞれの証拠は何を示すのか?

証拠 限定的で正しい結論 自動的には証明されないこと
ファイルのSHA-256 ファイルが参照ダイジェストと一致する 参照元が誠実であること、またはコードが無欠陥であること
APK署名 パッケージに対する署名が有効で、署名者の鍵に関連付けられる 別途確認しない限り、その鍵が意図した発行者のものであること
テストベクトル 対象となるケースで期待した出力が得られる 製品のすべての状態とエラーが網羅されていること
再現可能なビルド 指定したソースと環境で同じ出力が作られる ソースコードに脆弱性がないこと
監査 特定の範囲とバージョンが検査された 後の変更や範囲外の構成要素も承認されたこと

再現可能なビルドの定義は、特定の入力と環境を前提としています。Android公式のapksignerツールはAPK署名を確認するためのもので、ハッシュの計算とは異なります。

現在のLivara Proof Labの範囲は?

Proof Labのページでは、APKハッシュのローカルツールと、P-256、HKDF、AES-GCMの処理のデモが紹介されています。1ビットを改変して真正性の検証失敗を観察する例も含まれます。ページ自体が、LVR1/LGS1の完全な組み合わせはこの実験台の範囲外だと明記しています。

したがって、正しい結果は「このファイルは参照ダイジェストと一致した」または「この暗号デモはテストした改変を拒否した」と記述します。「ハイブリッドプロトコル全体とインストール済みバージョン全体が独立監査された」とは書かないでください。本記事は、そのツールの新たな実行テストを報告するものではありません。

再現できるオフラインテストをどう準備するか?

  1. 目的を決めます。 ファイルの同一性を確認するのか、暗号処理の振る舞いを調べるのかを決めます。
  2. バージョンと入手元を記録します。 APK名、バージョン番号、ダウンロード先、そのリリースのダイジェストは対応していなければなりません。
  3. 信頼できる入手元からツールと入力を用意します。 オフラインにしても、最初から悪意のあるコードが信頼できるものになるわけではありません。
  4. 機密性のないテストデータを使います。 暗号のデモに私的なメッセージや本物の秘密は不要です。
  5. 接続を切り、テストを繰り返します。 この手順が測るのはリアルタイム応答への依存であり、既にダウンロードしたコードへの信頼ではありません。
  6. 結果とエラーを記録します。 バージョンの違い、読み込み失敗、出力の不一致を「合格」に置き換えないでください。

ハッシュが異なる場合はインストールを止め、まずバージョン、ファイル、参照元を確認します。別のリリースを選んだために差が出る場合もあります。調べずに確実なマルウェアだと決めつけたり、確実に無害な差だと見なしたりしないでください。

テストベクトルと正式な認証の違いは?

テストベクトルは、ある振る舞いの入力と期待する出力を定めます。Wycheproofのような集合は、既知の攻撃に関係するケースについてライブラリをテストするのに役立ちます。合格しても未知のケースまで網羅したことにはなりません。

NIST CAVPにはアルゴリズムの検証プロセスがあります。ブラウザーで公開ベクトルを数件実行することは、検証証明書を取得することと同じではありません。標準アルゴリズムを使っても、製品が自動的に認証されるわけではありません。

メッセンジャーを比較する際に何を求めるべきか?

Livara、Signal、WhatsApp、Session、Elementに対して、同じ問いを立ててください。正確なバージョンは何か。公式ファイルはどれか。署名者の鍵や参照ダイジェストはどう確認されるのか。どのテストを実行できるのか。監査報告にはどのコードと構成要素が含まれていたのか。

本記事は、これらの製品をテストして順位付けするものではありません。単一ページのツールがないことはセキュリティの証拠がない証明にはならず、あることも製品全体の優位性を証明しません。同じバージョンの公式文書と再現可能な報告を比較してください。

役立つ結果記録表

短い報告には、目的、バージョン、ファイルの入手元、hash、ツールとそのバージョン、ネットワーク状態、機密性のない入力、期待した出力、観測した出力、限界を記載します。他のテストを実施していない場合は「未テスト」と記録します。

連絡相手の鍵の確認も別の検証です。ローカルツールは一つの処理を示せても、あなたに代わって会話相手の本人性やその携帯電話の健全性を確認することはできません。結果と併せてLivaraのセキュリティの境界を読み、ツールでの満点をすべての境界に対する保証と考えないでください。

Proof Labでテストを実行
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗