私はアプリの中に秘密の文字列キーを格納する必要があります。その値は決して変更されず、コード内で手動で設定されます。リバース・エンジニアリングの方法では難読化が適用されているにもかかわらず、明らかにそれをString
として保存することはできません。Androidアプリの秘密鍵のハッキング防止ソリューションですか?
私はこの秘密鍵を保護することをどのように提案しますか?
私はそれをデータベースに保存しますが、電話機からデータベースを引き出すこともできます。
PS。このキーは特別なパラメータですので、重要なメソッドであり、誰にも知られていないことが重要です!解読鍵ではありません。この文字列は、暗号化方式(md5など)のパラメータとして使用され、その結果がインターネットサービスに送信されます。
EDIT
申し訳ありませんが、それは非常に複雑作るため。私は可能な限り少ない情報で回答を得ることができると思った。
このアプリでは、インターネットサービスにテキストを送信し、そのテキストをWebサイトに投稿することができます。どんなウェブロボットスクリプトでもアンドロイド電話を模倣して迷惑メールを投稿できるように、Androidの携帯電話経由でテキストが送信されるようにする必要があります。 captchaのようなメソッドは携帯電話では歓迎されないので、ハッシュコードを生成するためにmd5(他のものと一緒に)に置かれる秘密のキーがあります。このハッシュはインターネットサービスに送信されます。インターネットサービスは同じキーを使用してmd5結果を取得し、それを比較して送信者が携帯電話か一部のロボットかどうかを確認します。
これは本当に私が言うことができる最大です。私はそれが十分であることを望む。
「誰にも知られていないことが重要です」本当に重要な場合は、アプリケーションにまったく含めることはできません。そうしないと、攻撃者はデバッガでコードをステップ実行し、コードが文字列を使用する時点で停止し、内容を検査することができます。攻撃者は文字列を解読する方法を知る必要はありませんが、コードを解読する代わりにAndroid開発ツールをインストールするだけです。 –
@AdamMihalcinいいえ、この文字列は暗号化**に使用され、結果は他のインターネットサービスに送信されます。これは何か変わるでしょうか? – sandalone
あなたがpswd/TANのような文字列を使用している場合は、銀行に一度使用しているコードを携帯電話に送り、これを使用する方法を調べることができます彼は新しいものを手に入れます。 @アダム・ミハルチン、どういう意味ですか?私は、コードを見ているかもしれないが、ロードされたアプリケーションをデバッグすることができます、これはどのように可能ですか? – user387184