1

私は現在、アプリのセキュリティに固執しています。私のアプリケーションは、ユーザーのGPS位置を10分ごとに記録し、12時間後にデータをサーバーに送信します。現在、ユーザーの場所を内部メモリの*.txtファイルに保存しています。ここで、このファイルを保護して、アプリケーションでのみ編集できるようにする必要があります。これにより、ユーザーはファイルをハッキングして、記録されたgpsの場所を変更できなくなります。

文字列またはファイル自体の暗号化について読みましたが、ここに私の質問があります。スタックオーバーフローの人々は、コードが難読化されていても、パスワードをハードコーディングすることを推奨していません。このファイルのデータを他にどのように保護できますか?ProGuard +コードの難読化(ビットシフト、数学演算など)を自分で使用するだけでは、コードにパスワードを保存するのに十分ではありませんか?コメントをいただければ幸いです。データはそのままにしておく必要があるため、これを安全にする必要があります。ありがとう!!

4

1 に答える 1

3

パスワードがメモリ内にある場合、暗号化されていない/難読化されていても、ユーザーが自分のしていることを知っていれば、パスワードを回復したり悪用したりすることができます。

これを修正するには、暗号化に使用するキーをアプリにサーバーに要求させる必要があります。サーバーがキーを送信し、その過程でキーが傍受されないことを保証できるように、キー自体はSSLを使用して暗号化/署名する必要があります。キーがデバイスに残らないように、すぐにメモリからキーをクリアします。

この解決策はまだ絶対確実ではありません。ユーザーはアプリをリバースエンジニアリングして、古いキーを使用するように指示できます。デバイスに座標を保存している限り、何らかの方法で脆弱になります。今説明した手法を使用すると、攻撃者はGPSソースをスプーフィングしたり、リプレイ攻撃を使用したりする可能性があります。これを防ぐには、保存ごとに異なるキーを使用し、キーが適用された順序をサーバーで追跡する必要があります。

より安全な方法は、デバイスに場所をまったく保存しないことです。改ざんを防ぐために暗号化/署名SSL方式を使用して、利用可能になり次第アップロードします。健全性はサーバー上でそれらをチェックして、不正ななりすましジョブを除外します。デバイスから発信されたデータ(GPS座標など)を信頼する場合、巧妙な攻撃者による操作のリスクがあります。

于 2013-02-28T18:38:58.940 に答える