2011-01-20 17 views
1

私のシナリオは次のとおりです。Androidアプリケーション用のオプションのコンテンツパッケージを安全/保護された方法で配布する必要があります。このコンテンツは、サイズが最大4メガバイトのZIP形式のSQLiteデータベース作成ファイルで構成されています。パッケージは年に4回更新されます。私は現在約1000のアクティブなインストールがあります。これは、ピーク時にコンテンツパッケージのアップデートをダウンロードするためのトラフィックが1日あたり約4GBになる可能性があることを意味します。アプリのインストールベースは、1日あたり約100人のユーザーが増えます。コンテンツを配信するための最良の方法だろう何Androidアプリ用の安全な/保護されたコンテンツ配信

  1. :私は次の問題を解決する方法を疑問に思うのシナリオに基づいて

    ? HTTPS転送?認証(パスワード、証明書など)の推奨方法は何ですか?代わりにパスワードで保護されたZipファイルを使用する必要がありますか?次の基準に適合したコンテンツ配信のために使用されるべきインフラ

  2. :1から保護メカニズムの

    • サポート)ボックスセットアップが簡単
    • のうちと
    • スケーラブルを維持し、ヨーロッパおよび米国のノードをダウンロードしてください。
    • (安価です(月額30ドル以下)。理想的には帯域幅に応じて支払う。

私はなどSOFTLAYER、アマゾンCloudFrontは、同様のCDNどれ勧告を検討していましたか?

+0

"Androidアプリケーション用のオプションのコンテンツパッケージを安全に保護された方法で配布する必要があります。つまり、アプリケーションの外部からコンテンツをダウンロードしないようにする必要があります。 - それは不可能です。どのような手段を使用しても、アプリケーションからリバースエンジニアリングしたり、他の場所で使用することができます。コードの難読化などを使用してこれをもう少し難しくしようとすることができますが、それはかなりです。 – CommonsWare

+0

私は100%安全な解決策を得ることは不可能だと認識しています。それでも誰かがダウンロードURLにサーフィンするだけでデータを取得することは望ましくありません。だから私は少なくともパスワード保護を使用し、アプリケーションをより難しくするためにパスワードを隠すのはすばらしいだろう。どのように私はそれを行うことができますどのような推奨事項? – Philipp

+1

1日あたり100人のユーザーと1000人のユーザーがいますか?私はあなたがそれから有意義な統計を導くことができるとは思わない。 – Falmarri

答えて

2

ファンシーなサーバー構成は必要ありません。私が理解しているところから、HTTPSはクライアントとサーバーの間のリンクを保護するために使用され、基本的には自分が思うサーバーに接続していることを保証します。しかし、HTTPS対応のクライアントは、サーバーに接続してファイルを要求することができます。それで、あなたがしようとしていることを助けません。 (誰かがあなたのサーバーを偽装しないようにしようとしていた場合は、それを使用します)。

この問題を解決するには、おそらく標準のファイル暗号化が必要です。これにより、暗号鍵を持たない誰でもコンテンツを安全に保つことができます。誰かが最終的にあなたのアプリからキーを掘ることができるだろうが、あなたは新しいキーに更新し、うまくいけば価値よりも痛みを増やすことができる。

+0

お返事ありがとうございます。どこに暗号鍵を保存するのですか?その目的のために任意のライブラリをお勧めできますか?パスワードのzipファイルで十分でしょうか? – Philipp

+0

鍵以外に必要なものはすべてAndroidにある必要があります。Androidの下でjavax.cryptoを探します。キーはアプリ内に格納する必要があります(おそらく文字列として)。 – Andrew

+0

Androidでパスワードで保護されたzipファイルがサポートされているかどうかはわかりませんが、一般に安全性が低いとみなされます。どちらのソリューションも基本レベルの「正直な人々を正直に保つ」保護のタイプです。 – Andrew

関連する問題