是否有可能通过强制攻击加固aes加密?
有没有什么方法可以在不加强密码的情况下强化aes加密以抵御蛮力攻击。我的意思是用户通常选择简易密码。我不想强迫用户选择越来越复杂的密码(这是正确的解决方案,但是当他们连续忘记密码并且不能使用密码时,它是无用的)他们从大写,小写和数字中选择密码。并且密码长度是8.我想在不改变这些密码属性的情况下很难进行暴力攻击。是否有可能通过强制攻击加固aes加密?
编辑:密码长度正好是8.较少的长度是不可接受的。还有一个关于回复的问题,在内存上保存加密文本(使用salting和密钥伸缩)是一个安全问题?
我很想说:不,这是不可能的。为了使蛮力攻击更难,你需要更多的熵。
这就是说,如果你做key stretching,你实际上可以让猜测过程变慢。
那么在内存中存储加密文本呢,这是一个安全问题吗? – PepeDeLew 2012-08-15 07:29:28
如果不知道使用方法的确切性质,很难评论这个问题。 (例如,密码只能存储为8个字符?)。
也就是说,选择一个好的salt会让蛮力强制变得更难。今天大多数密码被盗是由于没有实施适当的盐析。
为了更安全起见,您可以使用consistent hashing将盐分割成多个值。
使用多轮会减慢尝试密码的过程,但那只是我所能想到的。
如果你想确保你的用户不使用密码,如“密码”,“12345678”或类似的密码,然后没有没有办法硬化他们。
您必须能够检查提供的密码是否与合理时间内的散列相匹配(即平均硬件时间少于1秒)。即使在检查散列和密码之间的等同性时,Brute强制使用简单的密码,但在普通PC上需要1天的时间不到一天。
如果您想要保证平均质量的密码(不是最常用的密码1000或最常用的语言中的单个单词),那么密码/密钥延伸是您最好的选择:scrypt,bcrypt或标准PBKDF2不错的选择。
盐(每位用户唯一)与关键拉伸一起是一条路。 – CodesInChaos 2012-08-19 11:14:16
正确的盐分和拉伸使得即使是简单的密码(如“密码”)变得更硬。 (如果这是第一个猜测的密码,那么是的,这会失败,但它仍然可以根据要求对抗强力。) – 2012-09-03 00:20:23
@RobNapier:如何将大多数常见密码的攻击时间从5分钟改为10小时帮你? – 2012-09-03 10:27:09
http://xkcd.com/936/ – Kimvais 2012-08-15 06:47:36
这是第二个脱离两个穆罕默德主题问题。 – 2012-08-15 20:26:16
你为什么给倒计时? – PepeDeLew 2012-08-15 20:37:07