アプリケーションをより詳細に説明すると、私はここでベースから外れていることに気付くかもしれませんが、今のところ、ユースケースと脅威モデルについていくつかの仮定をします。
私の理解では、断続的な接続を備えたモバイルデバイスといくつかのリモートサービスの間で同期したい機密情報がいくつかあります。このサービスには認証されたユーザーのみがアクセスでき、ユーザーは、オフラインの場合でも、情報のコピーにアクセスするためにモバイルデバイスに対して自分自身を認証する必要があります。
強力なセキュリティが必要な場合は、パスワードベースの暗号化を使用してモバイルデバイスのコピーを暗号化します。
サービスへの認証に使用したものと同じパスワードを使用できますが、一般的に、同じキーを別の目的で再利用することは避けます。より良いアプローチは、モバイルデバイスのマスター暗号化パスワードを用意することです。これにより、モバイルデータベースと、同期サービスに対してユーザーを認証するために使用される「パスワード」が暗号化されます。サービス認証パスワードは、実際にはSSLクライアント証明書認証用の秘密鍵または文字ベースのパスワードである可能性があることに注意してください。
パスワードが1つしかない場合のリスクを評価する必要がありますが、多くの場合、これがユーザーに提供する便利さと、2つの弱いが覚えやすいパスワードではなく、1つの強力なマスターパスワードによって提供される安全性を組み合わせたものだと思います。バランスが良いです。
このアプローチでは、サービスアクセスが取り消されたユーザーは、新しい更新なしでローカルコピーに引き続きアクセスできることに注意してください。モバイルソフトウェアによって強制される時間制限の概念を含めることができますが、断固とした攻撃者はこれを回避する可能性があります。
おもちゃのセキュリティだけが必要な場合は、モバイルデバイスに正しいハッシュを保存するという提案が適切であり、実際のパスワードをハッシュするか代替パスワードをハッシュするかは問題ではありません。正しいハッシュを使用する場合は、それらを使用する必要があるためです。リモートサービスへのアクセスを可能にするパスワードの衝突を見つけるのに数十億年かかりました。
ただし、攻撃者がパスワードハッシュを見ることができると仮定すると、同期されたデータも攻撃者が見ることができないのはなぜですか?なぜ彼らはパスワードを回復する必要があるのでしょうか?モバイルデータベースを暗号化すると、これを防ぐことができます。