每个按钮多个数字对安全性有影响吗?

信息安全 身体的 授权 物理访问
2021-08-27 10:52:50

我最近遇到了这样的电子锁栓: Kwikset 门锁

每个按钮的按键有多个数字,, 1|2, 3|4, 5|6,7|89|0

有什么办法可以增加电子锁的安全性?似乎每个按钮有两个数字会大大降低您可能的熵,因为您现在有 5 位而不是 10 位,对吗?

这只是美学/削减成本而不是安全的问题吗?

4个回答

考虑技术实现,而不是用户或按钮上的绘制:它是一个有 5 个按钮的键盘。为了解锁设备,它需要这 5 个按钮的序列(无论它允许按下这 5 个按钮的次数)。

更多的按钮会使强行组合变得更加困难。想象一下只有 2 个按钮,或者想象有 20 个。更多的按钮意味着更多可能的组合,更多的组合意味着更难暴力破解。

我可以想象一种减少按钮可能会提高安全性的方法:污迹。如果您有 20 个按钮,那么随着时间的推移,您使用的少数按钮似乎会被使用,从而减少可能尝试的按钮数量,包括能够推断出用户需要记住的数字字符串(“123456”)。更少的按钮(每个按钮有多个数字)意味着涂抹的意义不大(它们都被涂抹了),并且减少了推断出记忆的数字序列是什么的可能性。但是,这只是安全性的一个方面,对于住宅锁,我可能不会太看重。

不,假设密码同样长,拥有更少的按钮并不能以任何方式提高安全性。

根据密码的选择方式,以及是否定期清洁按钮以去除污迹*,它(可能或)可能不会显着降低安全性,但减少按钮数量肯定不能使锁安全。

所以你可能是对的:它只是为了美观和/或节省成本。至于为什么您的示例锁上的按钮是双编号的,Dennis Jaheruddin 可能在评论中指出了这一点

“它基本上是一个 5 按钮锁,允许人们滥用他们的生日或密码来获取密码。”

只有五位数字可供选择,您无法选择易于记忆的密码,例如3112197631415926每个按钮标记两次,您可以。(这对安全性是好是坏是有争议的;可以说,如果用户不能选择这样的代码,他们中的许多人要么会求助于更不安全的东西,比如12341234,或者只是在便利贴上写下他们的密码。但从可用性的角度来看,这绝对是一场胜利。)


*) 既然已经提到了涂抹攻击的问题,让我简要说明一下,它们不影响一般的结论,即更少的按钮不能安全。具体来说,让我们假设已知密码长度为位,并使用总共n 个按钮中的k个按钮,并考虑以下两种极端情况:

  1. 这些按钮保持干净,因此攻击者无法分辨哪些按钮是密码的一部分。在这种情况下,有n 个可能的密码,攻击者平均必须尝试一半才能找到正确的密码。

  2. 这些按钮永远不会被清理,并且会累积污迹,最终使攻击者能够准确地分辨密码中使用了哪些k按钮。在这种情况下,未使用的按钮变得完全无关紧要,因此攻击者知道最多只有k 个可能的密码(同样,他们平均需要尝试一半才能找到正确的密码)而不管n(实际数字比k 少一点,因为可以排除仅使用少于k个不同按钮的代码,但它仍然完全不依赖于n。)

现实通常介于这两个极端之间:攻击者可能能够观察到按钮上的一些磨损和污迹,从而获得有关每个按钮成为密码一部分的可能性的一些信息,但除非键盘确实磨损并且/ 或肮脏,他们可能无法 100% 确定。因此,通常情况下,按钮越少确实会在一定程度上降低安全性,但可能不如忽略污点的天真计算会导致人们期望的那么多(因为它已经被污点降低了)。

当然,减少按钮数量会削弱安全性的另一种方法是,即使在上述严重污迹的情况下,如果密码中使用的两个数字被映射到较小键盘上的同一个按钮上(从而减少nķ)。对于随机选择的密码,n < ²,这开始成为问题(由于生日悖论,并且当n < 时肯定会成为问题尽管如此,这一观察只会强化这样一个结论,即无论是否被弄脏,更少的按钮永远不会更安全(并且可能更少)。

不是自己。

组合的总数是 X Y其中X是按钮的数量,并且Y是组合的长度。

例如:

  • 5 个按钮的 6 位数组合是 5 6 = 15 625 个组合。
  • 10 个按钮的 4 位数组合是 10 4 = 10 000 个组合。

如果不知道组合的长度,按钮的数量与安全性无关。您可能只有 2 个按钮。

当您想在每个按钮上输入第二个数字时(我假设您按两次),这不取决于实际发生的情况吗?

案例1:在同一个按钮上两次击键只是输出两个相同的数字,类似于在单个数字按钮键盘上按两次相同的按钮,结果只是按钮数量减少,但代码更长。您可以通过它是哪个按钮来引用它们,而不是通过它们的编号来引用它们(即按钮 1、按钮 2……按钮n)。我相信您知道的组合总数是 n l,其中l是组合的长度。显然 l 对总数的影响更大。

案例2:一个按键两次按键输出一个数字(按键上的第二个数字),那么按键数是10,但是长度改变了,和输入的个数不一样!

这取决于允许的最大击键次数。假设最多 10 次击键。

情况1:

5 个按钮,每次击键 1 个数字,长度为 10。

5 10 = 9 765 625

案例二:

5 个按钮,每 1 或 2 次击键 1 个数字,最大长度为 10,最小长度为 5。但请记住,您实际上有 10 个可能的输出。

如果您使用仅使用按钮前几位的组合:

5 10 = 9 765 625 - 一样!

如果您使用仅使用所有第二个数字的组合:

10 5 = 100 000 - 低得多

因此,如果创建第二个数字的机制如上,并且组合具有最大击键次数,则安全性较低。

但是,如果组合具有最大位数和无限击键,那么结果就大不相同了。

最多 10 位数字:

情况1:

同上:5 10 = 9 765 625

案例二:

现在您有 5 个按钮,但击键次数无关紧要,因此您实际上有 10 个按钮。

10 10 = 10 000 000 000

它可能看起来更多,但这与标准的 10 按钮 (0-9) 锁相同。作为结论,我可以简单地将最终案例与标准案例进行比较,并说使用这种锁可以实现的最高安全性与 10 按钮锁相同。事实是我不知道并且在我写它的时候有点想通了!希望它能照亮一些东西。