我没有安全方面的经验或科学知识,我只是想问问这是否可行,因为我对此感兴趣。

如果我加密数据并且每个密码都将其解密怎么办,但仅正确的帐户不会造成毫无意义的数据混乱?
登录时也可以做到这一点:错误的登录数据会导致伪造的虚拟帐户,只有正确的登录详细信息才能使您进入正确的帐户。

这不是一种更好的加密方法,因为您不能只是尝试使用密码,而必须查看结果以查看是否正确?

评论

听起来像一次性垫。

蜜罐或垃圾箱是旨在浪费机器人时间的系统。

它只能在网上使用,并且您应该不能在第一位强行使用网上密码...

好吧,当您尝试强行加密文本时,这就是您要做的。当您正确地进行解密时,没有神奇的铃铛会告诉您,您必须查看输出并进行检查。如果某人加密了压缩文件,而您仅检查尝试是否生成纯文本,则即使尝试所有可能的密钥,也将永远无法解密该文本。

@Bakuriu:最实用的加密系统包括一个哈希,它会告诉您何时正确解密。此外,某些加密方案,例如全磁盘加密的目的是使您可以高效地进行随机访问,因此无需解密整个卷即可知道拥有正确的解密密钥。

#1 楼

答案始终取决于您的威胁模型。安全总是编织在安全性和可用性之间的平衡中。您的方法会给试图闯入该帐户的黑客带来不便,但也会给仅输入错误密码的用户带来不便。如果伪造帐户足以欺骗攻击者,那么它也可能足以欺骗有效用户。这可能非常糟糕。

这在极高风险的环境中可能是理想的。如果您必须在互联网上公开存储核秘密,那么使每个失败的密码都将导致您进入一个可以访问伪造文件的帐户,而该文件实际上并没有泄露国家秘密。但是,在大多数情况下,这是不必要的。

还必须考虑其他方法。一种非常流行的方法是在N次尝试后将帐户锁定,这基本上使所有蛮力尝试都停止了,并具有大多数用户愿意接受的可用性行为。

评论


当涉及可能性时,唯一的限制将是您是否愿意花时间创建一个虚拟帐户的现实问题。查找数据的一个有趣地方是可拒绝的加密。在可否认的加密中,您将创建一个虚拟分区,并使攻击者无法以数学方式证明任何其他分区都存在。该社区对如何使虚拟分区看起来合法表示了极大的兴趣。

–Cort Ammon
16年7月12日在21:39

这样的帐户也可以用作蜜罐,当有人登录那里时,蜜罐会触发安全传感器,以便您可以及早发现攻击者。

–约翰尼
16年7月13日在1:05

蜜罐登录尝试的问题是有效用户不会意识到这些不是真实的计划,因此他们会构建无法正常工作的核武器。希望您的虚假计划不会破坏安全检查。我见过的最有效的方法是强制用户在两次登录尝试之间等待的时间越来越长。强迫他们放慢脚步,思考他们正在输入的内容。这样,当他们达到N次尝试限制时,就不足为奇了。

–candied_orange
16年7月13日在11:24

经过几次失败的尝试(3?),而不是将您锁定在帐户之外,将您带入伪造帐户的组合肯定会很有趣。附带说明一下,我曾经在用户表PK是user + password的地方工作。

–Wayne Werner
16年7月13日在22:00

@DamianYerrick这是真的。 DOS问题是我仅将其列出为受欢迎的替代方案而非解决方案的主要原因之一。在某些环境中,这种风险低到可以接受。在其他环境中,这是完全不可接受的。

–Cort Ammon
16年7月14日在3:22

#2 楼

用误报来欺骗攻击者不是一个坏主意,这也不是新鲜事。以下内容可能会让您感兴趣。

加密迷彩

CA技术已获得一项称为加密迷彩的技术的专利。



敏感点公钥加密中的方法是如何保护私钥。我们概述了一种使用加密伪装保护私钥的方法。具体来说,我们不会使用太长的密码来进行详尽的攻击,以加密私钥。取而代之的是,我们对它进行加密,以便只有一个密码可以正确地对其解密,但是许多密码可以对它进行解密,以产生看起来足够有效以欺骗攻击者的密钥。对于某些应用程序,此方法可以像智能卡一样保护私钥免受字典攻击,但完全在软件中。


这与您所说的不完全相同(重新保护密钥,而不是访问密钥),但概念是相同的。通过使难以或不可能确定您是否确实破解了代码,挫败了暴力攻击。

捕鼠器

1984年,Michael Crichton(Andromeda Strain的作者)以及其他许多人)写的一个短篇小说,围绕一个黑客,他认为他正在窃取最高机密文件。他猜出了正确的密码,但是对于他来说,计算机实际上并不是通过查看他的密码,而是通过他使用键盘和鼠标的速度和方式对他进行身份验证,这是一种生物特征认证机制。他认证失败。但是计算机没有告诉他失败了,而是向他提供了一份伪造的秘密文件副本,然后他下载并试图在黑市上出售。

同样,这与您要问的并不完全相同,但它(无论如何,还是虚构的)证明了使用误报来阻止攻击。

评论


加密伪装让我想起了TrueCrypt如何根据所提供的密码加载诱饵或隐藏操作系统。

–熊佳亚诺夫
16年7月15日在16:44

另一个很好的例子!

–吴宗宪
16年7月15日在16:45

#3 楼

为了给您一个直接的答案,是的,有可能降低暴力攻击的有效性,并且可以按照您建议的方式进行,但不应该这样做。仅通过在每次失败尝试和下一个猜测之间实施时间延迟,就可以得到非常相似的结果。同样,(仅就您所知)非常精确和相似的技术已经针对此具体事物进行了设计和实现。 Canary,Honey Pots和Honey Docs之类的产品都提供类似的东西,例如假环境,设备,服务器,帐户等。

评论


好的,但是加密文件呢?您不能在失败的解密尝试之间放置延迟,可以吗?

– Tweakimp
16年7月13日在4:50

我认为您也无法在可靠的容器中制作足够多的伪造文件集,从而无法可靠地欺骗自动破解工具。如果攻击有可能进行离线攻击,则必须依靠其他强化技术(例如密钥派生功能)来限制单位时间的尝试次数。

–西蒙·林格伦(Simon Lindgren)
16年7月13日在8:32

@Tweakimp,您可能对“ TrueCrypt隐藏卷”感兴趣。听起来就像您在描述什么。 (但是它只有两个密码,不是无限的。)

–通配符
16年7月15日在3:45

@Wildcard谢谢,我来看看。两种声音比无限小;)

– Tweakimp
16年7月15日在6:21

@SimonLindgren,直到量子计算成为现实,每秒尝试次数达到新高度。因此,密钥派生功能也必须增加。

–user4317867
16年7月16日在17:08

#4 楼

效果很小

让我们假设您的系统将实用的蛮力转换从解密前四个字节(实际上是第一个大得多的块,但随便什么)转变为必须解密整个字节。 4 GB的加密数据,使暴力破解的尝试速度降低了大约十亿倍或2 ^ 30倍。

现在,对您来说,这似乎有很大的不同,但实际上,与其他替代方案相比,这种影响很小。在密码学世界中,仅仅是“慢十亿倍”的规模就没有那么多了。如果只是增加额外的30位到加密密钥长度上会做同样的事情,并且从从128位(如果还不够)到256位,会提供比这大得多的效果吗?

#5 楼

多数人已经说过,我只想提供另一种观点。

想象一下,您将尝试使用这种技术来保护房屋。如果入侵者试图打开门一段时间,您可以让入侵者进入地下室。

问题是,即使在那儿也要入侵者吗?入侵者最肯定会意识到,一段时间后他没有得到想要的东西,并试图从那里走得更远。而且,您必须为准备好的酒窖保持额外的安全性。

因此,从某种意义上讲,您只能增加一些工作来欺骗(没有经验的)攻击者一段时间。

评论


因为如果我做得很好,入侵者将(在一段时间内)不知道他在假房间里,甚至无法确定他进入房间时是否在正确的房间里。而且,在房间里看还需要时间。 ,因此您不能只测试门是否有钥匙,而是每次都必须在房间里看,这将占用更多时间来强行通过槽。

– Tweakimp
16年7月13日在11:36

是的,我明白你的意思。我的观点是:以良好的方式建立和保护假房间需要您的时间。您可以花更多的时间来首先保护“前门”。 :)

– gpinkas
16年7月13日在12:14

无论如何,已经有必要对经过身份验证的合法用户进行适当的访问控制。我看不到假帐户会有什么额外的工作。

– Michelle
16年7月14日在13:11

没错,但是保护整个访问控制要比保护登录屏幕困难得多。这是必须的,但要实现完美的安全性几乎是不可能的。通过这种方案,您可以使可能的攻击者更接近系统。在大多数攻击中,获得对系统中ANY帐户的访问权限是获得root特权的第一步。

– gpinkas
16年7月14日在13:41

这是一个最近的特权升级示例:theregister.co.uk/2015/07/22/os_x_root_hole

– gpinkas
16年7月14日在13:44

#6 楼

听起来您在谈论加密上下文中的一种“可拒绝加密”或“合理拒绝”。也就是,另一种机密,它解密为可信但非真实的明文。有关详细信息,请参见https://en.wikipedia.org/wiki/Deniable_encryption。

但严格来说,如果某人有能力对您的密文进行暴力破解,他们将有可能发现所有可能的明文,然后,基于他们对上下文已经掌握的任何知识,他们将能够确定哪个纯文本是真实的原始文本。第一部分可以通过伪AI完成,但是第二部分仍然需要人工操作。

评论


使用一次性键盘,每条可能出现的消息都是同样可能的,如果没有原始密钥,您将无法知道原始内容。例如,“周三下午3点见面”与“周二晚上9点见面”或“完成我的任务”同等可能-上下文并不总是有帮助

– Dezza
16年7月14日在11:03



#7 楼

密钥的问题在于它们以数据而不是运行代码的形式存在。即使使用CA和Crichton示例,也会发生带外过程,该过程为每次解密尝试提供了合理的响应。从数学上讲,这在密文和暴力破解的尝试上是不可能的。

#8 楼

正如其他人所说,对于远程访问,可以进行简单的锁定和延迟。

对于密码,您拥有的是单向哈希。要验证密码,请重新哈希它,然后比较两个哈希。拥有多个简单的密码才能针对单个哈希产生有效的匹配被认为是不希望的:这意味着哈希很弱,并且具有“冲突”。

因此,您对加密驱动器很感兴趣。

您所描述的-伪造的“外部”驱动器充满了保护加密的“内部”驱动器的伪造数据-是可能的,并且已经在truecrypt中完成(此后不幸死亡)。 br />
以下是我自己的幼稚理解,有些或全部可能是错误的。我从未使用过此功能,但认为它很有趣。

Truecrypt允许您指定第二个密码,该密码将解锁加密驱动器的“层”(可能仅限于一个外部容器,我忘了)。这有明显的问题;外部驱动器不知道内部驱动器,内部驱动器存储在加密的外部驱动器的“空白空间”中。因此,外部驱动器的更改可能会破坏内部驱动器。另外,访问加密驱动器时,内部驱动器上的日期戳不会自动更新。因此,具有您的计算机访问权限的人可以知道您上次修改加密驱动器文件的时间,并且可以将这些日期戳与加密驱动器上的最后修改时间进行比较,并立即得知您最近使用它,因此必须有一个内部驱动器。

但是,主意是,您让外部驱动器具有易于猜测的密码(例如password123),在其中放置一些含糊的秘密内容,这会使您对手认为他们已经进入了您的加密驱动器。

更少的东西-刚返回垃圾的任何东西(相当于未格式化驱动器的随机噪声),通过检查解密驱动器上的“魔术字符串”(在任何实际驱动器上都是必需的)来解决,而在垃圾驱动器中则不太可能解决。

与加密文档相同:大多数文件类型都有魔术字符串,因此,如果您知道包含哪种文件类型,则可以对所有已完成的加扰进行暴力查找以找到产生魔术字符串的所有方式。 br />
但这并不意味着一个坏主意-如果密码字符串是“ jfif”,那么大约1600万个密码中只有一个会产生该密码字符串。但是,如果密钥长度为2 ^ 1024,那么他们只会将其减小为2 ^ 1000,这当然可以使破解速度提高1600万倍,但是从字面上看,它永远都是永久的。 >
偶然的密码输入错误不会使某人认为他们已经解密了该文件,但仅仅寻找魔术字符串是不够的。

评论


您遗漏了一点:要解锁“外部”驱动器,您应该键入两个键。这样,您可以进行更改而不会破坏内部驱动器。但是,当攻击者用扳手威胁您时,您只需告诉他外键即可成功打开驱动器,而没有证据表明存在内部驱动器,因此也就无法保护内部驱动器。

–通配符
16年7月15日在3:51

@wildcard啊,好的。尽管可悲的是,“外部”驱动器上的时间戳可能仍会很清楚地表明您实际上只在内部活动,除非您不愿意安装和访问两者,可能是在内部使用了脚本来操纵外部。

– Dewi Morgan
16年7月20日在1:26

#9 楼

类似的事情实际上是在某些版本的RAR压缩软件中完成的(在早期,不确定它是否仍然是这样)。输入的任何密码都将解密加密的存档,但是密码错误将导致输出乱码。这样做是为了防止暴力破解密码,这对于当时可立即返回“错误密码”错误的ZIP存档是可行的。

评论


实际上,使用zip并非所有密码都会导致“密码错误”错误。大多数人都会遇到这种快速拒绝的情况(因此,用户经常“错误地”输入错误),但是如果强行使用密码,则crc32上会出现很多误报(基于1字节或2字节) -byte crc check),需要通过完全提取文件然后实现提取的crc32不匹配或-如果幸运的话,通过在要提取的文件开头查看已知的纯文本来进行验证。

–Ángel
16年7月16日在0:13

也许这是新的?我在谈论20年前。

–汤姆
16年7月16日在10:07

我说的是传统的zip加密。那是20年前可用的

–Ángel
16年7月16日在23:00

我想我确切地理解了您的意思:我还记得还试图找回大型存档的密码,然后WinRAR会先“提取”整个存档,然后告诉我密码错误。我认为这应该与不适合使用适当的密钥扩展方法的时代联系在一起,WinRAR使用这种方法来减缓暴力攻击。

–WhiteWinterWolf
16年7月17日在8:14

这样的方法使暴力破解效率直接取决于档案的大小,这不是一件好事:小型档案将受到较少的保护,向其添加无用的文件将增加安全性,这太hacky了。这里提供了适当的密钥扩展方法,这些方法可以使密码检查过程的时间保持不变,而与存档大小无关:与较大的存档相比,小型存档的暴力破解保护级别相同,该级别仅取决于所选算法和参数,显然更清洁,因此更安全。

–WhiteWinterWolf
16 Jul 17'8:16