我即将开始在我们公司设立一个仅限员工的Rails应用程序来处理敏感信息。将会有防火墙,物理安全措施等。我现在关心的是应用程序的登录过程。
我想使用Devise进行身份验证。 Devise最安全的配置是什么?
我想我会做以下事情:
config.paranoid
,以便攻击者无法判断他们是否猜到了有效的电子邮件地址我不确定的一些具体事项,devise.rb
用斜体字引用:
我还缺少什么?
答案 0 :(得分:21)
辣椒:是的,你是对的。如果你使用盐,胡椒没有太大的额外安全性。
拉伸:12是合理的,但是bcrypt只能确保一个恒定的时间。您应该考虑使用较新的scrypt,因为它允许您指定常量时间和要使用的内存量。 Cryptyograhpically bcrypt和scrypt大致相同,但scrypt使暴力变得更难。
密码长度:强制使用任何类型的密码规则都会降低密码的熵。唯一的限制应该是最小长度,许多研究表明至少有8个字符。
SSL Cookie :如果可以,请使用它们。应始终从一开始就构建安全性,而不是在以后添加。你永远无法确定谁可能在嗅探你的内部网络。仅仅因为你假设没有外人可以嗅探数据,并不意味着内部员工不会出于某种原因。您有责任保护您的员工以及外部威胁。
答案 1 :(得分:4)
对于密码,您可以签出https://github.com/bitzesty/devise_zxcvbn拒绝使用弱熵的密码,并检查已知的破解密码。