4

ご存知のように、ルート化した後、Android デバイス上の任意のフォルダーにアクセスできます。私のアプリには、データベースとその他のバイナリ ファイルがあります。ユーザーが自分のファイルとデータベースを見るのを防ぐことはできないことを知っています。しかし、ユーザーが違法に使用するために他のAndroidデバイスにコピーするのを防ぐ方法はありますか?

4

2 に答える 2

4

1 つのオプションは、データベースに格納されているデータを暗号化することです。通常は平文で保存されます。SQLCipher、Androidでも機能すると思います..

Android/google公式フォーラムから、

ルート化された電話を持つユーザーは、必要なファイルにアクセスできます。それ以外の場合、従来のオンボード フラッシュの場所にあるデータベースは安全です。

その(ルーティングされたアクセス)を防止したい場合、唯一のオプションはそれを暗号化することです。どんなに時間がかかっても。

編集:

私が言いたいのは、決して完全に安全ではないということです。ハッカーにとって同じくらい困難にすることができます。復号化キー (のみ) をサーバーに保存できます (サーバーからデータ全体をダウンロードするのに時間がかかる場合) が、アプリが機能するにはネット接続が必要です。キーは隠しファイル (. で始まるファイル名) に保存できますが、Linux タイプのファイル システムに関する知識を持つ root ユーザーはそれらを見つけることができます。または、Teovald がこの回答へのコメントで提案しているように、任意の定数 (IMEI 番号など) からハッシュ アルゴリズムを使用して実行時にキーを生成することもできますが、いくつかの処理も必要です。保護しようとすればするほど、それを使用するために必要な作業が増えます。したがって、これは 50 対 50 の状況であり、決定は自分の要件に依存する必要があります。

于 2012-10-29T10:51:25.537 に答える
3

暗号化 (Krishnabhadra の回答を参照) とは別に、重要なデータを確保する唯一の方法は、デバイスにすべてを持たないようにすることです。そのため、最も重要なデータには常にオンラインでのみアクセスできます。

もちろん、これには、ユーザーが接続していない場合、すべてのアプリを使用できるわけではないという欠点があります。データを詮索されないように保護する必要性と、データへの即時のオフライン アクセスを可能にする必要性との間でバランスを取る必要があります。

前者の問題を軽減できるかどうかは、データによって異なります。すべてが重要な場合、デバイスでは何も許可されません。ユーザーはこれを理解し、しぶしぶ受け入れます。自分のデバイスに自分の銀行口座のコピーを持ちたいと思う人はいないでしょう。ただし、オフライン モードでも重要ではないすべてへのアクセスを許可する必要があります。

于 2012-10-29T11:11:35.120 に答える