0

これをセキュリティの専門家に確認したいと思います。

ユーザーを登録するWebアプリがあります。ユーザーごとに一意のソルトを使用してpwをBcryptし、ハッシュされたpwをDBに保存します。

モバイルアプリからユーザーを認証する必要があります。sslを使用できません。また、モバイルとWebサーバー間でパスワードをクリアで渡さないようにしたいと思います。したがって、サーバーで(RESTful APIを介して)ログインメソッドを呼び出す前に、モバイルでpwをBCryptし、APIを介してハッシュしてサーバーに渡して比較することをお勧めします。

重要なのは、モバイルでは同じソルトでBCryptする必要があるということです(私が知る限り、異なるソルトでハッシュされた2つのBCrypted pwを比較することはできません)。

だから問題は:それは大丈夫で安全ですか?

  1. モバイルはユーザーXのソルトをサーバーに要求します(DBに保存されているpwから最初の22文字とオフセットを取得します)
  2. モバイルでは、ポイント1で取得したソルトを使用してpwをBCryptします。
  3. 最後に、モバイルはサーバー上でlogin(username、hashedpw)を呼び出します。

前述のように、すべての通信はプレーンhttpを介して行われ、SSLは使用されません。

これは理にかなっていますか?

4

1 に答える 1

2

スキームでは、「hashedpw」は単純なパスワードになり、暗号化せずにデータベースに保存します。

サーバーにログインするために必要なのは、ハッシュ値とユーザー名を(たとえば、傍受して)知ることだけです。実装では、ハッシュはセキュリティとは無関係であり、エンドユーザーにとってはメモリの助けになりますが、セキュリティ上の利点はありません。

于 2012-10-10T07:50:45.507 に答える