相关疑难解决方法(0)

什么是最佳的scrypt工作因素?

我正在使用Java scrypt库进行密码存储.当我加密东西时N,它需要一个rp值,其文档称为"CPU成本","内存成本"和"并行化成本"参数.唯一的问题是,我实际上并不知道它们的具体含义,或者对它们有什么好的价值; 也许他们以某种方式对应于Colin Percival原创应用中的-t,-m和-M开关?

有人对此有任何建议吗?图书馆本身列出N = 16384,r = 8和p = 1,但我不知道这是强还是弱或是什么.

java cryptography scrypt

65
推荐指数
3
解决办法
1万
查看次数

C#中的哈希密码?Bcrypt/PBKDF2

我查询了msdn和其他资源如何做到这一点,但我想出了没有明确的解决方案.这是我找到的最好的http://blogs.msdn.com/b/shawnfa/archive/2004/04/14/generating-a-key-from-a-password.aspx?Redirected=true

我想使用bcrypt或PBKDF2(看起来与bcrypt相关)在C#中散列密码.我想试验一下我的计算机散列密码需要多少轮.然而,一切似乎都是关于加密,而每个人都谈论哈希.我无法弄清楚.我如何哈希密码?它看起来更像PBKDF2(Rfc2898?)是一个随机数生成器,我使用GetBytes(金额)来选择我的散列大小有多大.

我糊涂了.我究竟如何用bcrypt/PBKDF哈希密码?

.net c# passwords hash bcrypt

36
推荐指数
4
解决办法
4万
查看次数

什么是最安全的Devise配置?

我即将开始在我们公司设立一个仅限员工的Rails应用程序来处理敏感信息.将会有防火墙,物理安全措施等.我现在关心的是应用程序的登录过程.

我想使用Devise进行身份验证.Devise最安全的配置是什么?

我想我会做以下事情:

  • 在少量登录尝试失败后锁定帐户
  • 使用config.paranoid这样攻击者无法判断他们是否猜到了有效的电子邮件地址
  • 也许通过电子邮件禁用密码重置?

一些我不确定的具体事情,用devise.rb斜体字引用:

  • 胡椒.Devise可以选择"设置胡椒来生成加密密码".我的理解是,这是一个单独的,特定于应用程序的值,它将诸如"password123"之类的愚蠢密码转换为类似"password123K#(!@ akdlwekdf"或"*%!kd39gpassword123"或类似之前的任何哈希值).这是为了挫败彩虹表攻击,但我对这篇文章的理解是,它不如每个密码的独特盐那么好.然后,这篇文章本文说bcrypt有内置的盐.使用胡椒与bcrypt真的添加任何东西吗?我可以,还有什么需要,还有一个盐柱吗?
  • 伸展."对于bcrypt,这是散列密码的成本,默认为10." 基于这个问题,我正在考虑使用12的工作系数.这看起来合情合理吗?
  • 密码长度.一般来说,较长的密码似乎更安全,但我不希望它太难以让用户将它写在某张纸上.如果我们使用bcrypt,密码长度是否重要?
  • SSL cookie.对于启用了SSL的公共应用程序,将cookie标记为"这只能通过HTTPS传输"可以防止Firesheep风格的攻击.但我不确定为内部应用程序获得安全证书会有多大意义.这很傻吗?

我还缺少什么?

security encryption bcrypt devise ruby-on-rails-3

31
推荐指数
1
解决办法
7170
查看次数

是否有可用于Delphi的bcrypt实现?

我正在尝试找到一个bcrypt可以在Delphi中使用的实现.关于Googling给我带来的唯一有用的东西就是这个下载页面,其中包含一个叫做winapi单元的翻译标题bcrypt.h.但是,当我查看它提供的功能时,bcrypt.h似乎实际上没有任何方式使用Blowfish算法来散列密码!

我在C中找到了一些bcrypt实现,我可以从中构建DLL并链接到它们,除了它们似乎都需要*nix或GCC特定的,所以这也不起作用!

这有点让我感到困扰.我认为找到一个实现很容易,但事实上似乎并非如此.有谁知道我可以在哪里买到一个?

delphi bcrypt

14
推荐指数
1
解决办法
4804
查看次数

bcrypt 密码建议进行多少轮?

我正在学习 Nodejs 背景下的传递哈希,我想知道你会推荐什么盐级别。默认级别是 10,我想知道这对于少于 10 个用户的基本应用程序来说是否足够好。

bcrypt node.js

7
推荐指数
2
解决办法
7251
查看次数

bcrypt - 跟上摩尔定律

我正在使用bcrypt在我的数据库中存储密码,使用工作因子7,在我合理的现代笔记本电脑上使用大约0.02秒来散列单个密码.

Coda Hale表示,使用bcrypt可以让你通过调整工作因素来"跟上摩尔定律".但是没有办法重新加密用户的密码,因为我没有存储明文.如何让我的数据库保持最新并且难以破解(假设它会延续5年以上,这将成为一个问题)?

passwords cryptography bcrypt

4
推荐指数
1
解决办法
875
查看次数

密码安全

目前我正在使用特定的方案来保护密码,我认为我有一些需要改进的地方.实现是在Java中,所以我更喜欢使用SHA-2 512作为加密形式.

目前我有一个客户端 - 服务器模型,所以这些事情可能发生:

  • 客户想要登录,他通过网络发送一次正常的SHA-2 512加密密码.
  • 服务器具有存储在数据库中的密码,例如SHA-2_512(SHA-2_512(密码)+ salt),内部SHA-2_512(密码)是通过网络接收的"加密"密码.
  • 密码检查是在服务器端完成的,并且没有任何方法可以从服务器泄漏出来,唯一可能的漏洞就是如果有人能够读出我认为的RAM.

我有这些问题:

  • 当想要破解密码时,攻击者通常会创建冲突攻击.但是碰撞攻击如何足够?如果密码需要用于其他应用程序,如Outlook.com,Facebook或其他任何应用程序(可能使用另一种盐,因为它们与我的应用程序无关),那么碰撞攻击如何呢?你不需要真正的密码吗?

  • SHA-2 512是否已经使用迭代?即使如此,我是否应该更改加密方法以自动使用多次迭代以及首选多少次迭代?我还读过关于使用随机数量的迭代(在一个范围内),如何确定性地存储随机因子?

  • 我应该为服务器代码中的每次迭代存储系统机密吗?请参见http://blog.mozilla.org/webappsec/2011/05/10/sha-512-w-per-user-salts-is-not-enough/.我可以存储一个数组,它会为每次迭代保留一个静态秘密,第n个秘密用于第n次迭代.没有人能够知道秘密,它们被计算一次(我想加密一些随机字符串),然后基本上存储在服务器的RAM中.

  • 目前我将输入的密码从客户端发送到服务器,只需SHA-2_512(密码),是否应该改进此过程,如果是,如何进行?我不能使用盐,因为客户没有盐.

问候.

security passwords sha

1
推荐指数
1
解决办法
185
查看次数