我即将在我们公司为处理敏感信息的员工设置一个仅限内部使用的Rails应用程序。该应用程序将有防火墙、物理安全措施等。我目前关注的是应用程序的登录过程。
我想使用Devise进行身份验证。Devise的最安全配置是什么?
我考虑执行以下操作:
- 在少量失败的登录尝试后锁定帐户
- 使用
config.paranoid
,这样攻击者无法确定他们是否猜测出有效的电子邮件地址 - 可能禁用电子邮件密码重置?
以下是我不确定的一些具体事项,其中包括从devise.rb
中引用的内容:
- Peppers. Devise有一个选项可以"设置一个pepper来生成加密密码"。我的理解是,这是一个单个的应用程序特定值,它会在哈希之前将类似于"password123"这样的愚蠢密码转换成类似于"password123K#(!@akdlwekdf"或"*%!kd39gpassword123"之类的值。这旨在防止彩虹表攻击,但是根据这篇文章,它不如每个密码的唯一盐。然而,这篇文章和这篇论文称bcrypt已内置盐。在使用bcrypt时,使用pepper是否真的有用?我可以,并且需要也能有一个salt列吗?