デバイスにペイメントアプリケーションがあり、アプリケーションがそのアプリケーションのサービスに接続して、支払いアクティビティの開始を待機してから、onActivityResult()メソッドの結果を聞きます(アプリ内購入シナリオと同様)フィッシング攻撃を防ぐために実行時にインストールされたアプリケーションを確認する方法は?
お支払い予定のパッケージ名を設定しました。しかし、あなたが知っている、それは支払いアプリケーションが信頼されているという保証はありません。同じパッケージ名と同じaidl-serviceインプリメンテーションを持つ未知のソースから偽のアプリケーションをインストールすると、保留中のインテントとフィッシングのユーザー情報が表示されます。
私は支払いの結果をいくつかの仕組みで検証し、私のアプリケーションは偽の支払い結果からしか保護されませんが、アプリケーションのユーザーはフィッシャーアプリケーションでデータを入力します。私は私が他のアプリケーションの署名と公開鍵を確認することができ、いくつかのアプローチを知って
(この段落は、私の問題は、ペイメントアプリケーションの応答を信頼していないと言う、私の問題は、前に、それらの活性を起動決済アプリケーションを信頼されます)。 の場合Android OS 公開鍵と署名が読み取り専用であり、インストール済みのアプリケーションと一致することが保証されていれば、支払いアプリケーションの公開鍵を確認してから送信することができます。インストール時のみ一致を確認してください。
フィッシング攻撃を防止するための提案(類似または異なるアプローチ)
: 私の法人のWebサイトからアプリケーションのユーザーインストールアプリケーションの約50%(Unknown-Source)を直接更新しました。
私はあなたの要件を理解しているかどうかを確認してください。私がそれをしたことを確認してください。あなたはサーバーとクライアントを持っていて、サーバーが実際にあなたのものであり、要求中にデータを送信している間にハッカーではないことを確認する必要があります。私は正しいですか? – Ram
@Ramいいえ、私はサービス(aidl-implementation)によって支払いアプリケーションに接続するアプリケーションを持っています。私はそれに私のユーザーを送信する前に支払いアプリケーションを確認したい。 (実際に私のアプリケーションと支払いアプリケーションの両方がサーバーを持っていますが、私の質問はそれらを確認することではありません) –
Android OSはアプリケーションをインストールする前に公開鍵の検証を保証することができますが、 "不明なソース設定を避ける"など。アプリケーションを信頼することは、慎重であってもユーザーの手に委ねられます。デバイスが侵害されると、ユーザーのデータが侵害されます。デバイスがシステムにインストールされるたびに、アプリケーションが実行ごとに検証されることは期待できません。すべてはユーザーとOSの設定に依存します。インストール後にデータプライバシーがアプリケーションの手に入ります – Ram