問題タブ [bcrypt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - SHA の反復回数を増やすよりも、bcrypt の方が将来性が高いのはなぜですか?
私は bcrypt ハッシュを研究してきました。もちろん、このスキームの大きな利点の 1 つは、その「適応性」です。しかし、単純に SHA-1 ハッシュの反復回数を増やす以外に、どのように適応できるのでしょうか? たとえば、SHA-1 で値を 1000 回ハッシュする代わりに、反復回数を 10,000 回に増やします。これは同じ目標を達成していませんか?bcrypt の適応性を高めるものは何ですか?
ruby-on-rails-3 - 最も安全なDevise構成は何ですか?
社内で機密情報を扱う従業員専用の Rails アプリケーションのセットアップを開始しようとしています。ファイアウォール、物理的なセキュリティ対策などがあります。現在の私の懸念は、アプリケーションのログイン プロセスです。
認証にDeviseを使いたいです。Deviseの最も安全な構成は何ですか?
私は次のことをしようと考えています:
- 少数のログイン試行の失敗後にアカウントをロックする
config.paranoid
有効な電子メール アドレスを推測したかどうかを攻撃者が判断できないようにするために使用します- メールによるパスワードのリセットを無効にすることはできますか?
私が確信していない特定の事柄のいくつかdevise.rb
。
- コショウ。Devise には、 「暗号化されたパスワードを生成するためにペッパーをセットアップする」オプションがあります。私の理解では、これは "password123" のようなばかげたパスワードを "password123K#(!@akdlwekdf" または "*%!kd39gpassword123" などのハッシュ化する前の何かに変換する単一のアプリ固有の値であるということです。これは阻止するためのものです。しかし、この記事から理解したところでは、パスワードごとに一意のソルトほど良くないということです. また、この記事とこの論文では、bcrypt にはソルトが組み込まれていると述べています. bcrypt でペッパーを使用すると、本当に何かが追加されますか?ソルト カラムも使用できますか、またその必要はありますか?
- 伸びます。「bcrypt の場合、これはパスワードをハッシュするためのコストであり、デフォルトは 10 です。」この質問に 基づいて、作業係数 12 を使用することを考えています。それは合理的ですか?
- パスワードの長さ。一般的には、長いパスワードの方が安全に思えますが、ユーザーがどこかに紙に書き留めるほどパスワードを難しくしたくはありません。bcrypt を使用している場合、パスワードの長さは重要ですか?
- SSL クッキー。SSL が有効になっているパブリック アプリの場合、Cookie を「これは HTTPS 経由でのみ送信できます」とマークすると、Firesheepスタイルの攻撃から保護されます。しかし、内部アプリ用のセキュリティ証明書を持っていることがどれほど理にかなっているのか、私にはわかりません。それはばかげていますか?
他に何が欠けていますか?
security - bcrypt にソルトを組み込むにはどうすればよいですか?
Coda Hale の記事「パスワードを安全に保存する方法」では、次のように主張しています。
bcrypt には、レインボー テーブル攻撃を防ぐためのソルトが組み込まれています。
彼はこの論文を引用しており、OpenBSD の の実装についてbcrypt
次のように述べています。
OpenBSD は、arcfour (arc4random(3)) キー ストリームから 128 ビットの bcrypt ソルトを生成し、カーネルがデバイス タイミングから収集したランダム データをシードします。
これがどのように機能するのかわかりません。私の塩の概念では:
- 保存されたパスワードごとに異なる必要があるため、それぞれに個別のレインボー テーブルを生成する必要があります。
- 反復できるように、どこかに保存する必要があります。ユーザーがログインしようとすると、パスワードの試行を行い、最初にパスワードを保存したときに行ったのと同じソルトとハッシュの手順を繰り返し、比較します
Devise (Rails ログイン マネージャー) を bcrypt で使用している場合、データベースにソルト列がないため、混乱します。ソルトがランダムでどこにも保存されていない場合、どうすれば確実にハッシュ プロセスを繰り返すことができるでしょうか?
要するに、どのようにして bcrypt に salt を組み込むことができるのでしょうか?
node.js - NodeJS:bcryptとネイティブ暗号
誰かが2つの状況とそれぞれを使用する例の状況の違いを指摘できますか?
bcryptは素晴らしく見えます。
javascript - browserifyを使用してnode-bcryptクライアント側を要求し、ハッシュをサーバーに送信できますか?
browserifyを使用してnode-bcryptクライアント側を要求し、ハッシュをサーバーに送信できますか?
これは本当に素晴らしいように聞こえますか、それともSSLを介してプレーンテキストをサーバーに渡すよりも実際にセキュリティを強化できますか?WebSocketを介してプレーンテキストを渡す場合はどうなりますか?
ありがとう!
php - PHP 5.2でbcryptの「ハッシュ」を使用する方法はありますか?
パスワードハッシュを使用してWebサイトを運営していますが、現在のアルゴリズムでは不十分だと思います。PHPのcrypt()をblowfishオプションで使用しようとしましたが、PHPのバージョンが5.2しかないため、CRYPT_BLOWFISHが有効になっていません。
Blowfishを介して暗号化できるサードパーティのライブラリを見たことがありますが、完全なBcryptハッシュを実行するライブラリはありません。crypt()関数を使用せずにbcryptハッシュを使用していることを知っているPHPライブラリはありますか?または、さらに良いことに、サードパーティのblowfish暗号化アルゴリズムをサードパーティのbcryptハッシュアルゴリズムにフィードする方法はありますか?
明確にするために、私は共有ホスティングを使用しているため、新しいバージョンのPHPをインストールできません。
何か提案をいただければ幸いです。ありがとう!
codeigniter - Code Igniter を使用してパスワードを保存する最も安全な方法は何ですか?
現在のプロジェクトで Code Igniter を使用しています。
現在、私はパスワードのハッシュにMD5を使用していますが、多くの場所で、MD5 を使用することはお勧めできません。
何を持って行けばいいですか?
- 塩を使う
- または、bcryptを使用する必要があります
また、bcryptが推奨されている場合、Code Igniter でそれを使用するにはどうすればよいですか?
編集
これらのファイルを入れましたapplication/libraries
- PasswordHash.php
- c/メイクファイル
- c/crypt_private.c
私のコントローラーでは、このコードを使用しています-
これらのエラーが発生しています -
アップデート
を削除し、 SimpleLoginSecurePasswordHash.php
を使用しています。
ruby-on-rails - PHP と Bcrypt
PHPを使用してAPIを開発しています。移行したい以前のバージョンの API は、Rails 3 を使用してビルドされていました。
1つだけ問題があります。ユーザーの保存されたパスワードは、以下の手法で暗号化されています。
ユーザーが古いパスワードを引き続き使用できるように、PHP (Codeigniter) で同じことを行うにはどうすればよいですか?
すべての助けに感謝します!
php - ランダム ソルト + ハッシュ パスまたはランダム ソルト + crypt() パス?
私は自分のサイトに多かれ少なかれ安全なログイン システムを作ろうとしていますが、物事を保護するのにあまり時間がなかったので、学習しながら学んでいます。次のうちどれが優れているか、またその理由についていくつかの意見を聞きたいと思っていました。(それともどこかで間違えた?)
どちらか(データベースに $salt が必要ない場合...)
または(データベースにも $salt が必要な場合...)
hash - bcrypt と複数回のハッシュの違いは何ですか?
bcryptは、たとえば、
その誇大宣伝を考えると、私よりも知的な人々がbcryptがこれよりも優れていることを理解したように感じます. 誰かが「賢い素人」用語の違いを説明できますか?