2017-03-21 9 views
0

私はAndroidアプリの開発にほとんど経験がなく、iOSではほとんど経験がありません。私は特定の "キー"を格納しなければならないアプリケーションを作成しています。このキーを安全な方法で保存したいと思います。合理的な開発努力で、できるだけ安全にしてください。キーを保存する必要があります。つまり、サーバーからフェッチするためにオンラインにする必要はありません。モバイルプラットフォームに秘密鍵を安全に保存することは本当に難しいですか?

どのプラットフォームが2つのプラットフォームそれぞれに最適なソリューションかはわかりません。私はAndroidのキーストアとiOSのキーチェーンについて少しは読んだことがありますが、どれほど安全かはわかりません。多くの人は、攻撃者がアプリケーションをリバースエンジニアリングしてファイルを見つけ出し、アクセスすることができるように、本当に安全だとは言いません...しかし、最終的には何十年もPC上のどこかにパスワードと鍵を保管しています。安全なので、私はそれがモバイルアプリ(通常よりも多くのパラノイア)になるか、モバイルプラットフォームが実際にはそれほど安全でないかどうかは、それがちょうどパラノイアかどうかを理解することができません。

キーストアとキーチェーンがあまりにも高度な(または高価な)攻撃からキーを保護するために必要なセキュリティを私に与えると想定するのは合理的ですか?

PS私は間違ってはいません。私は誰と同じくらいセキュリティを高く評価しています。私は常にそれを目指しています。しかし、アプリは携帯電話が盗まれてしまうかもしれませんので、「」「安全ではない」ことになる、我々はすべてのすべて:)

+0

キーはどのように使用されますか? – Michael

+0

また、あなたの脅威のベクトルは何ですか?あなたは誰がこの鍵を手に入れようとしていますか? – CommonsWare

+0

キーはどこに生成されますか?それはアプリによって生成されるか、またはアプリと共に配布される単一のキーがありますか? – Paulw11

答えて

-2

ファーストでソフトウェアを書く必要があるかどうかを疑問視する私を促していること読んで、キーストアを送信する前に、アプリケーションに署名するために使用されますたとえば、あなたがアプリケーションをpaly/appleストアに送る場合、keystore/keychainを使用してアプリケーションを保護してマルウェアから安全な状態にしておくなど、いくつかのものをダウンロードして、マルウェアを入れて保存し直すことができます。 また、古いアプリケーションのバージョンを更新すると、クライアントは古いアプリを更新できません。アプリがkeyStore/Keychainを使用してリンクされていないため、2つのバージョンが同時にインストールされます。明らかです。

は何を見ていることは:レルムファイルは512ビットの暗号化キー(64バイト)を渡すことで、ディスク上に暗号化して格納することができますので、この場合には、私はRealmを使用し、暗号化された情報とストレージです。

+2

私はOPが[this Keystore](https://developer.android.com/reference/java/security/KeyStore.html)(特に 'AndroidKeyStore')を参照していると思います。 – Michael

+0

彼は言った:**キーを格納する必要があります:全体のポイントは、サーバーからフェッチするためにユーザーがオンラインにする必要はありません。**、私は彼が暗号化データについて話すと思います – Euphor08

+1

まあ、この質問の「キーストア」は、アプリがAPKに署名するために使用するファイルではなく、デバイス上に暗号化オブジェクトを格納できる場所を指していると私は信じています。 – Michael

関連する問題