インストールではブランドの認証ではなくパッケージが検証されます

Android は、APK の構造と署名の一貫性を検証します。 DEX、リソース、またはマニフェストを変更した後、攻撃者はその結果に別の証明書で署名し、技術的に完全なパッケージを作成する可能性があります。

システムが承認されても、正式な出版 ID が付与されるわけではありません。インストール チェックでは、チャネルが正当であるかどうか、アカウントがサインインできるかどうか、またはリスクの高い API リクエストを続行する必要があるかどうかは判断されません。

再署名により正式なアップグレードの継続性が中断される

通常、インプレース アップグレードには署名の継続性が必要です。別の証明書で署名されたパッケージは、単に公式インストールを置き換えることはできず、パッケージ名の変更、アンインストール、または個別のインストールが必要になる場合があります。

クリーン インストールと製品バージョンからのアップグレードの両方をテストします。インストール画面のみをテストすると、署名の継続性、保持されたデータ、チャネル構成が失われます。

  • 承認された証明書ダイジェスト
  • 製品版からのアップグレード
  • 法的なパッケージとバージョンのセット
  • 最終署名前のチャネル変更

クライアントのシグナルをサーバーの決定に変える

クライアントはパッケージ、バージョン、署名、およびプラットフォームの整合性シグナルを提示できますが、それらは絶対的な真実ではありません。高リスクの操作は、アカウント、法的バージョン、デバイスのリスク、およびリクエストの動作コンテキストに基づいてサーバー側で決定する必要があります。

このポリシーには、展開、誤検知への対応、緊急復旧も必要です。サーバーがバージョンと署名 ID を無視した場合、クライアント保護は、変更されたパッケージによる実際のビジネス API の呼び出しを阻止できません。

最終的な APK を一意に追跡可能にする

すべての候補のビルド ソース、パッケージ名、バージョン、署名証明書ダイジェスト、ファイル ダイジェスト、およびチャネル順序を記録します。静的チェック、インストール、アップグレード、およびビジネス回帰は、同じファイル ID を参照する必要があります。

再構築、再署名、またはチャネルの変更により、新しい候補が作成されます。別のファイルの結論を継承するのではなく、検証に戻る必要があります。

  • 再現可能な最終ファイルのダイジェスト
  • 一貫したリリース証明書
  • 固定チャンネル順序
  • 1 つのファイルに限定された回帰

ガイダンスを実際のアプリケーションに適用する

Yudun が焦点を絞った保護と互換性のレビューを推奨できるように、スタック、クリティカル パス、ターゲット システム、および現在の候補を提供します。