2016-03-27 28 views
0

サーバーとデータを接続するAndroid/phonegapアプリを想像してみましょう。私はあなたがアプリを持っている場合にのみ、サーバーからAPIを使用できるように、私はいくつかの秘密鍵を使いたいです。アンドロイドコードバの秘密鍵の保存方法

キーチェーンと呼ばれるios用のプラグインがありますが、アンドロイドと似たものは見つかりませんでした。さて、これは解決された問題でなければなりません。多くのアプリではアンドロイド上のサーバーにAPIを使用しています。これをどうやって解決しますか?

私の主な目的はプライベートキーを生成するのではなく、サーバーをプライベートに保つことです(アプリケーションを持っている人向け)。私が最初に考えた秘密鍵を生成する方法があれば、アンドロイドでphonegapを使用する際に秘密鍵を安全に保存する方法を見つけることができません。私が持っているクローズは、javascriptに入れて、コードを難読化しています。

私はアンドロイドキーストアを見つけましたが、私が正しく理解すれば、それは私が必要としない暗号化のためです。

+0

「秘密鍵」とは、RSA鍵ペアの秘密鍵を意味しますか? 「秘密鍵」の使用法は何ですか?キーは暗号の一部ですので、キーストーンを使用してください。また、コンパイル時またはそれ以降のアプリで「秘密鍵」が生成されるのはいつですか? – zaph

+0

いいえ、私はRSA鍵ペアの秘密鍵を意味しませんでした。私はプライベート変数を意味し、パスワードまたはキーと呼んでいます。多分私は、RSAキーペアを使って私が望むことをする方法のように、APIを非公開にしているような何かを見逃しているかもしれません。 – cauchy

+0

対称暗号化キーの通常の用語は「秘密鍵」です。暗号化されていない場合はおそらくAPIキー。ゲイン:いつコンパイル時またはアプリの後で "秘密鍵"が生成されますか?また、攻撃者と保護対象の値を定義します。 – zaph

答えて

0

コンパイル時の鍵を安全にすることは事実上不可能です。コード内にあります。それをユーザーから保護することはさらに困難です。

プラットフォームによっては、ファイルを調べて実行可能ファイルを表示することができます。 iOSを含む他のプラットフォームは、実行可能ファイルを暗号化し、実行時まで利用できません。

難読化はあなたの最善のアプローチかもしれませんが、それは仕事の要素を最小限に増加させるだけであることを理解してください。

キーチェーンやキーストーンにキーを保存しても、ユーザーからの保護には役立ちません。ユーザーはアクセス権があり、キーはコード内に残ります。

また、現在のサーバー構成でhttpsを使用し、証明書を固定する必要があります。

セキュリティを強化する必要がある場合は、最初に実行したときにキーを作成するか、ユーザーにログインさせる必要があります。

関連する問題