加密4位密码/密码 - 容易破解?

时间:2011-06-12 16:13:56

标签: database security encryption mobile twilio

我目前正在开发一项服务,要求用户选择一个4位数的密码/密码,因为它是一项移动服务。我使用256或2048位加密对这些密码进行加密,然后进行哈希处理。该帐户在4次错误输入后被阻止,并且只能通过手机输入。破解这些PIN会难吗?我问这个是因为存储了敏感信息。数据库连接到Web应用程序,应用程序使用twilio加载到手机。我最害怕的是数据库正在通过网络被黑客攻击。什么是保持敏感数据安全的好方法?

5 个答案:

答案 0 :(得分:6)

如果有人掌握了数据库,你就会被搞砸了:

如果您只加密4位密码,攻击者只需构建一个包含10000个可能加密字符串的表格,并且可以轻松解密PIN码。

如果您使用盐字符串(并且不加密PIN,但加密PIN +盐并加密加密(PIN +盐)与盐一起加载),人们必须按密码进行操作,但每个密码仍然只有10000种可能性密码(不是很多)。

这意味着,无论如何,您应该将数据库保持在网络上。 (如果仅通过twilio访问Web应用程序,则可以拒绝来自任何其他IP范围的连接。)

答案 1 :(得分:2)

由于您正在使用twilio,因此请确保twilo仅使用安全协议与您的Web服务进行通信,并拒绝任何您不确定来自可信来源(即twilo)的请求。根本不需要针脚。

这是一个关于如何在您的Web服务器和twilo之间设置ssl的庞大网页。它甚至有一个PHP的例子。 http://www.twilio.com/docs/security

答案 2 :(得分:2)

如果您使用PKCS#1 1.5或2.0 RSA加密(view the standards),您还将加密随机填充。这意味着在传输过程中,只要填充保密并且是真正随机的(这不是应该公开的盐),就无法比较PIN。

对于数据库,尽可能将其从正常操作中移出是个好主意。创建一个只在解密后检查PIN的简单服务,确保没有缓冲区溢出等,如果可能,使用与生产服务器不同的机器和访问权限。真的很好地测试这个部分,因为界面很小,所以应该不难。

如果您和手机都能胜任,您可能想尝试使用ECC,但这并不适合温顺。 RSA加密通常使用一个小的公共指数(强烈建议使用0x010001),因此它比手机的ECC快。在服务器上(以及在密钥创建期间)ECC更快。我不建议使用对称加密(AES / 3DES)。

哦,并在应用程序中包含公共加密密钥(用于隐式信任),不要从服务器发送它。保密私钥是秘密的,除了已经提到的服务之外的其他任何东西都不可访问。

答案 3 :(得分:1)

您描述的界面听起来对我来说很安全。它对ATM来说足够安全!

加密的PIN很容易破解吗?是的,只有10000种可能的组合,除非您rainbow table,否则可以生成所有可能的加密值salt。但是,这需要访问加密的PIN,这意味着攻击者已经拥有了数据库的副本。

所以你需要确保你的数据库服务器是安全的。有很多变量可能使它不安全,所以这是一个很大的问题。相反,您可以依赖第三方解决方案,如Amazon S3others,并专注于编码而不是安全性。让他们努力工作!

答案 4 :(得分:0)

您应该使用高质量的密码腌制技术来防止黑客入侵密码。查看维基百科文章,了解有关盐析的更多信息。 Salt Article