1

ユーザーが名前/パスの組み合わせでログインする必要があるアプリを作成しようとしています。ただし、ユーザー名/パスが有効かどうかを確認する場所が完全にはわかりません。

アプリを実行するたびに、ログイン画面を表示する前に電話でデータベースのコピーを更新する必要がありますか? または、ログイン情報を検証した後にのみプルする必要があります (https 経由で送信された投稿を介して?)。

また、電話のユーザー名とパスワードの組み合わせを含むデータベースの一部を保存することのセキュリティについても疑問に思っています。パスワードをソルトで繰り返しハッシュすると、ユーザー名とパスワードの組み合わせが簡単に表示される可能性はありますか? どのハッシュアルゴリズムが適切ですか? (私が読んだ md5 は弱いものであり、sha-1 も同様ですが、反復を繰り返すことで sha-1 の弱点を緩和できるのでしょうか?)

4

4 に答える 4

0

質問のパスワード保存部分について:

  • パスワードを単純にハッシュして保存しないでください。
  • そこに塩を投げるだけでなく、ハッシュして保管してください。
  • ユーザーのパスワードを保護するために、他の誰かがセキュリティを既に精査した認定アルゴリズムを使用してください。

そのような例としては、Blowfish に基づく bcrypt や、SHA-256 のようなハッシュ アルゴリズムに基づく PBKDF2 があります。

security.stackexchange.com にあるこの質問では、2 つの関連するすべての詳細とそのトレードオフについて説明しています。

パスワードの保存に bcrypt を推奨するセキュリティ専門家はいますか?

How to safe store a password を読むことも役に立つかもしれません。

于 2012-08-24T18:53:39.493 に答える
0

ユーザーがログインを使用する前または後にデータベースを更新するかどうかは、アプリケーションのコンセプトによって異なります。提供されたデータは、有効なログインを持つユーザーのみを対象としているため、ログイン後にのみデータベースをロード/更新する必要があると思います。そうしないと、ユーザーがアプリケーションをダウンロードし、データベースをダウンロードして、提供されたデータにアクセスする可能性があります。

電話にユーザー データ (ログイン) を保存するのはなぜですか? これは、アプリケーションがインターネットなしで実行される場合にのみ意味がありますが、これは、アプリケーションがすべての電話のすべてのユーザーのログイン データを保存する必要があることを意味します。それは恐ろしい考えです。

パスワードに SHA-2 を使用することもできますが、salted md5 を使用してもほとんどのシナリオで使用できるはずです。

于 2012-08-24T18:37:50.287 に答える
0

データベースを更新する前に、(何らかの HTTP メソッドを介して) ログイン情報を検証します。電話のデータベースに資格情報を保存すると、ログインしていない誰かがルート化された電話でデータにアクセスできるようになります。値をハッシュしたとしても、ルート化された電話を使用している誰かがデータベースなどの内容を変更できます..

ソルトを使用した SHA-2 は、セキュリティに適しています。

于 2012-08-24T18:39:30.607 に答える