社内で機密情報を扱う従業員専用の Rails アプリケーションのセットアップを開始しようとしています。ファイアウォール、物理的なセキュリティ対策などがあります。現在の私の懸念は、アプリケーションのログイン プロセスです。
認証にDeviseを使いたいです。Deviseの最も安全な構成は何ですか?
私は次のことをしようと考えています:
- 少数のログイン試行の失敗後にアカウントをロックする
config.paranoid
有効な電子メール アドレスを推測したかどうかを攻撃者が判断できないようにするために使用します- メールによるパスワードのリセットを無効にすることはできますか?
私が確信していない特定の事柄のいくつかdevise.rb
。
- コショウ。Devise には、 「暗号化されたパスワードを生成するためにペッパーをセットアップする」オプションがあります。私の理解では、これは "password123" のようなばかげたパスワードを "password123K#(!@akdlwekdf" または "*%!kd39gpassword123" などのハッシュ化する前の何かに変換する単一のアプリ固有の値であるということです。これは阻止するためのものです。しかし、この記事から理解したところでは、パスワードごとに一意のソルトほど良くないということです. また、この記事とこの論文では、bcrypt にはソルトが組み込まれていると述べています. bcrypt でペッパーを使用すると、本当に何かが追加されますか?ソルト カラムも使用できますか、またその必要はありますか?
- 伸びます。「bcrypt の場合、これはパスワードをハッシュするためのコストであり、デフォルトは 10 です。」この質問に 基づいて、作業係数 12 を使用することを考えています。それは合理的ですか?
- パスワードの長さ。一般的には、長いパスワードの方が安全に思えますが、ユーザーがどこかに紙に書き留めるほどパスワードを難しくしたくはありません。bcrypt を使用している場合、パスワードの長さは重要ですか?
- SSL クッキー。SSL が有効になっているパブリック アプリの場合、Cookie を「これは HTTPS 経由でのみ送信できます」とマークすると、Firesheepスタイルの攻撃から保護されます。しかし、内部アプリ用のセキュリティ証明書を持っていることがどれほど理にかなっているのか、私にはわかりません。それはばかげていますか?
他に何が欠けていますか?