4

多くの調査を行った後、bcrypt (お気軽にコメントしてください) を使用してパスワードをハッシュし、phonegap アプリに保存することにしました。

数日前、Bcrypt.net に出くわしました。それで、私の質問は、C# で利用できる bcrypt の他の代替実装は何ですか? Bcrypt.net の実装に深刻な欠陥はありますか?

私のセキュリティ モデルは、基本的に次のようになります。

  1. ユーザーはクライアントで自分の PIN/パスワード/パスフレーズを入力します
  2. これは、安全な SSL 経由で .net アプリに送信されます (基本的にクライアントからプレーンテキストで送信します)。
  3. bcrypt.net のようなライブラリを使用してパスワードをハッシュし、保存/比較を行います

ここで本当に考慮する必要があるものは他にありますか?

どんな助けでも大歓迎です。

4

3 に答える 3

3

ここで研究を行った人に会えてうれしいです。

bcrypt を使用すべきではない正当な理由は見当たりません。一般に、サーバー上で bcrypt、PBKDF2、または scrypt を使用して、優れたセキュリティ層を提供します。

いつものように、悪魔は細部に宿ります。可能であれば、AES 暗号化を使用する TLS 1.2 が必要です。これができない場合は、接続でユーザー名/パスワード + 必要な HTML 以外を許可しないようにしてください。

パスワードの文字エンコードを決定する必要があります。おそらく印刷可能なASCII文字に絞り込まれたUTF-8をお勧めします。使用されている文字エンコーディングを文書化するか、設定のどこかに保存してください。

すべての入力パラメータを「ハッシュされた」パスワードとともに bcrypt に保存してみてください。確かに反復回数を忘れないでください。これにより、後でユーザーがパスワードを入力したときに、反復回数を増やしてアップグレードすることが容易になります。パスワードとともに保存するには、8 ~ 16 バイトの安全なランダム ソルトを生成する必要があります。

さらに、上記の PBKDF のいずれかの出力に、追加の KBKDF (キー ベースのキー派生スキーム) を適用することもできます。これによりbcyrpt、追加のキーなどに の出力を使用できるようになります。KBKDF は十分なエントロピーを持つデータを処理するため、通常はほとんど時間がかかりません (たとえば、NIST SP 800-108 互換のカウンター モード KDF を使用します)。これは「エキスパートモード」と見なす必要があると思います。

于 2013-07-26T21:27:52.080 に答える
1

あなたはbcryptが得意です。

クラッカーによる優れた調査: https://crackstation.net/hashing-security.htm#faq ソフォスによる追加検証: http://www.sophos.com/en-us/medialibrary/PDFs/other/sophossecuritythrereport2013.pdf

bcrypt も c# ライブラリの一部です: http://msdn.microsoft.com/en-us/library/windows/desktop/aa375383(v=vs.85).aspx

于 2013-07-26T19:55:16.303 に答える
1

パスワードハッシュを行う主な理由は次のとおりです。

を。パスワードの平文はネットワーク経由で送信されません (プライマリ)。
b. パスワードの平文がサーバーに保持されることはありません (セカンダリ)

あなたのセットアップでは、あなたは何もしていません。代わりに SSL に依存します。可能であれば、クライアント側でハッシュする必要があると思います。将来の変更に対する余裕があり、一般的に、パスワードはコンテンツ データよりも高いセキュリティ/保護に値します。

また、どのような種類のサーバー アプリや拡張性がサポートされているかもわからないため、コードからパスワードを分離することは、依然として追加の問題として残る可能性があります。

ハッシュを行うための実際のアルゴ/ユーティリティに関する限り-私にはセキュリティの専門知識がありません:)

于 2013-07-26T20:01:51.527 に答える