3

現在開発中の金融取引サービスを提供するAndroidアプリケーションとTLSサーバー間の通信を「保護」しました。

セキュリティクレデンシャルは、Androidapkに含まれているBKSキーストアに保存されます。キーストアのパスワードは、アプリケーションソースにプレーンテキストで表示されます。

keyStore.load(is, "passwd".toCharArray());

誰かがアプリをリバースエンジニアリングした場合、他のユーザーになりすましてサービスのセキュリティを危険にさらす可能性があるのではないかと心配しています。

私の実装に欠陥があるかどうか、他の誰かがこの懸念を持っているかどうか、そしてこの可能性を防ぐための最良の方法は何であるか疑問に思いました。

4

4 に答える 4

2

クライアントにセキュリティデータを保存するときはいつでも、リバースエンジニアリングによって危険にさらされる可能性があります。あなたはコードでそれを曖昧にしようとするかもしれませんが、とにかく決心したハッカーはそれを理解するでしょう。したがって、より安全にする唯一の方法は、コードにパスワードを公開しないことです。アプリケーションの開始時にユーザーにPINコードを要求し、それを使用してパスワードを復号化できるでしょうか。

于 2011-09-09T16:54:32.790 に答える
2

Are credentials stored in your app unique per user, i.e. every user gets it own apk with unique credentials? If you only have one apk with same credentials then this is as good as no security. Even worse, it gives false feeling of security.

You (your employer) should really hire a security expert to design your system from security point of view.

Here's what I'd do:

  1. App comes without security credentials.
  2. Every user is generated security credentials on server.
  3. Every user gets secret activation code which is generated in secure environment and delivered via alternative channel. Preferably via snail mail. Activation codes are time-limited and can be used only one time.
  4. On first use user types into app the activation code which enables a one-time download of credentials over a secure (https) channel.
  5. User provides password to encrypt the credentials while stored on device.
  6. Every time the app is used user must provide this paswword. If app is not used for some time the app must timeout the session and ask for password again when user wants access.

But don't take my word for granted. You still need a security expert if there are financial transactions involved.

于 2011-09-09T17:35:34.127 に答える
1

私が求めていたのはDiffie-Hellman Key Exchangeだと思います。ユーザーが関与する複雑なプロセスを使用して、独自のバージョンの DH を再実装する必要はありません。

于 2011-11-23T16:24:20.810 に答える
0

現在、プロセッシング会社のためにプログラミングしています-

それらは、取引アプリケーションの一連の規則と規制です - または - POS APP (Point Of Sale アプリケーション)

ルールはPCI検証としてオンラインでリストされており、一定額のセキュリティを発行する必要があります。そうしないと、Visa、incまたは他の多くの会社からの訴訟になります.

あなたの質問については、セキュリティ上の問題であるため、PCI コンプライアンスに従っていません。

PCI コンプライアンスを読んで、セキュリティを完全に理解してください。カード所有者データを危険にさらすことは良くありません。

:)

于 2011-09-09T16:42:19.973 に答える