当我年轻的时候,刚开始从事软件开发工作20年前,我在Amiga上写了一些代码,既有密码,又记录(在一定阈值内)每个字母的速度

,这意味着,不仅用户必须输入正确的密码,而且他们还必须对按键进行计时。为了测试它,我的脑子里有节奏,可以每次都重新输入一次密码。但是,如果我只是定期或缓慢地输入它,那么它就不会被接受。

我不是安全专家(幸运的是,我的编程位于不太困难的领域),但是我突然想到了
































br />

评论

潜在的问题:可访问性。

具有免费/付费大学水平课程的网站coursera.com会在每次考试之前进行此操作,以确保正确的人参加了考试。密码可以共享,键定时不能(无论如何都不容易)

对音乐人有益,并确保军事级机密的安全,对日常使用不利。

这肯定会增加我的挫败感,因为我经常只用一只手输入密码,而且在登录失败时,我会变慢并确保我不会搞乱。而且qV519 [YW; BAZE * qvjj11也不容易使节奏变暗;)当然还有密码管理器。

我实际上是使用机器学习来实现这样的系统的,但是我发现它对于密码之类的简短输入来说太不可靠了。但是,如果输入更多(例如更长的Facebook帖子),它可能会相当准确(检测率高达95%)。因此,它可以用来增强登录后的安全性,例如检查是否有人刚刚开始使用计算机。然后,可以确保再次输入密码。

#1 楼

您正在寻找的术语是“击键动态”或“击键生物识别”,并且是一个有趣且不断发展的领域。

这个想法是,个人以某种方式键入某些键,这种键不会随时间变化很大。如果您可以映射这些动态,那么您可能会完全放弃密码,而只是让用户键入任何内容。

评论


我听说在第二次世界大战期间,盟军在德国信息室用一个隐藏的麦克风监视了德国人。禁止操作员讲话,但盟军解码器实际上可以仅凭打字的声音就能识别正在键入的操作员以及他们的大部分信息!他们给每个操作员一个昵称,因为他们不知道自己的真实身份。

– CJ Dennis
16年4月29日在5:26

@CJDennis听起来合乎逻辑。如今,这类攻击仍在使用。例如:对SSH会话的击键进行计时(仅通过计时网络流量的时刻,而不是实际内容的时间),然后将它们与受害者的常见键入模式进行比较……或从头开始分析它们。

–数字锁定
16年4月29日在6:24

@CJDennis在侦听加密的摩尔斯流量时,他们当然使用了类似的技术(请参阅Wiki上的击键动态和侦听台上的说明)。

– TripeHound
16年4月29日在10:39

该系统的唯一缺点是我刚刚更改了工作密码。我正在学习时,现在正在缓慢而刻意地输入它。再过一两周,我将发展出新的肌肉记忆力,并能够更快地键入。击键动态会要求我在接下来的90天内努力进行操作,直到再次更改为止,这将非常非常烦人,并且使肩膀冲浪更加容易。

– FreeMan
16年4月29日在12:35

像使用任何补充生物特征标记一样,使用此方法的正确方法是记录置信水平,即访问系统的个人就是他们所代表的身份。如果置信度降至某个阈值以下,请通过预选的通信渠道(例如电子邮件)提醒他们,担心某些未经授权的人可能已经访问了他们的登录信息(在时间x到系统y,因此他们可以通过某种方式确定是否可能是他们)。对于大多数用途而言,这是令人反感的,但是如果(例如)我的银行这样做,我会好的。

–詹森
16年4月29日在17:43

#2 楼

我认为您的应用程序或网站的合法用户会非常非常烦恼。手指折断或只手握住一个三明治之类的东西都会使您的登录无法使用。另外,您应该鼓励使用密码管理器,它可以非常快速地发送击键,或者完全不发送击键。您的方案可能会阻止最好的密码管理器正常工作。

评论


而且更多的攻击可能是自动攻击,而不是手动攻击,因为这样的输入很可能类似于输入密码的密码管理器...

– nhgrif
16-4-29的3:31

密码管理器始终可以生成随机的按键输入模式,但这并不能解决三明治夹的问题。

– J Young
16年4月29日在7:49

除此之外,还存在不同输入设备的问题。我敢打赌大多数人在他们的笔记本电脑,手机,平板电脑或Xbox上输入不同的速度。

–dirkk
16年4月29日在11:48

@dirkk-他们的确如此。每个人都使用各种各样的设备,尽管这个主题很有趣,但是由于人们会使用不同的输入设备来输入密码,因此最终存在缺陷。虽然有点巧妙的想法,也许作为第二个因素。

–约翰·亨特
16年4月29日在13:30

@dirkk然后,您需要切换到Dvorak之类的其他布局的人,当使用具有标准布局的其他机器时,它们将获得正确的密码或正确的时机,但不会同时获得两者。

– David Starkey
16-4-29在14:18



#3 楼

这里有好有坏,有些丑陋。


它增加了密码的熵并且使暴力破解变得更困难


它基于可以被可听见地记录和计时的东西,并且需要容错,这意味着只需要足够接近就可以解决这个问题了。

真丑陋
时间。由于多种原因(伤害,年龄,忘记模式的进行方式),他们可能不再能够以相同的准确速度和频率或在公差范围内输入,然后实际上损害了用户使用服务的能力

因此,尽管有一个不错的主意和一个有趣的领域,但实际上,对于人类来说,保持密码的熵仅是困难的。更糟糕的是,使用机器重新创建模式很容易。在没有人或模式的事先知识的情况下,这将使破解变得更加困难,但随着时间的流逝,它也可能使用户对您的服务的体验恶化,并使收集有关密码熵的本地信息变得更加容易。

评论


但是这些对于任何生物特征识别都是相似的优点/缺点,对吗?

– schroeder♦
16年4月28日在21:41

关。问题在于,这不仅是生物特征,还包括音频特征(声音模式)。生物指标在这里更好,因为您必须看到它们才能记录下来。对于时序模式,这仅需要在附近。

– Robert Mennell
16年4月28日在21:47

它确实给密码带来了一些很酷的熵,但这很容易做到,而无需通过仅增加长度或字符集来添加额外的系统。

– Robert Mennell
16年4月28日在21:48

“容易拦截/复制”和“容易忘记”几乎是密码的两个最差的功能。

–奥列格·沃尔科夫(Oleg V. Volkov)
16年4月29日在13:29

要补充一点:经常,当我无法登录时,我通常会缓慢输入密码,而且我确定自己使用的密码正确,这使我觉得我误按了一个键。

– JorgeeFG
16年5月2日在14:08

#4 楼


如今这是否对安全性是可行的补充


我认为它不可行的唯一原因是人们最近从许多不同的设备登录。我可以保证您与在主工作桌面上输入密码和平板电脑上的Swype键盘没有任何关联。

评论


即使是笔记本电脑还是台式机,或者您使用不同的键盘布局(使用英语,使用其他语言的个人系统,或者喜欢dvorak)。

–克里斯H
16年4月29日在8:22

用手机站在公共汽车上与坐在电脑前的办公桌上

– miva2
16年4月29日在9:54

为此,对于同一设备(笔记本电脑),我具有不同的鼠标/键盘组合。当我旅行时,我会使用一个迷你键盘,甚至是一个模压在笔记本电脑中的键盘,当我在工作中的办公桌旁时,我会拥有与家里不同的键盘/鼠标设置,等等。除了一天中的时间(咖啡因/疲倦)外,我击键的时间也因人而异,而gawd只知道其他时间。击键动态变化对于安全功能来说根本不是一个好的选择。

–HopelessN00b
16年4月29日在15:49

#5 楼

是的,它更安全。它将使8个字符的定时密码与〜9.5个字符长的非定时密码一样强大。

这是一种动态击键形式。这是一段时间以来一直处于活跃研究的领域-尽管运行在Amiga上的软件可能早于大部分时间!

有一个python软件包,以防您想尝试使用更现代的语言(免责声明:我写的。)

某些现代服务实际上使用了这种技术,例如Coursera,他使用它来确保回答问题的人是实际用户。


让我们探索一些理论来回答您的问题。人工身份验证的常用选项包括:


您知道的东西(密码,密码)
您知道的东西(手机,硬件令牌,智能卡)
您所处的状态(指纹,虹膜,步态)。通常是生物识别技术。击键动力学属于第三类。通常,好的身份验证系统依赖于其中多个。当使用两个不同的系统时,这通常称为两因素身份验证。


通常,生物特征识别带有一些警告:


它们可能会随着时间而改变。您的打字方式会随着时间,椅子和桌子的高度,正在使用的键盘以及许多其他因素而改变。
它们可能会无法挽回地丢失。如果您失去一根手指,则将永远无法进行身份验证。

您的设计未采用传统的生物识别技术。您要让用户记住键入模式。这将属于第一类(您所知道的),因此,有效地,您可以使用熵来衡量它增加的安全性。

假设您的系统有两个可能的按键持续时间(您的示例似乎暗示了这一点),则每个字符增加了一点熵-因此,它将使8个字符的定时密码的强度大约为9.5个字符左右的非定时密码。


当然,与生物特征击键动力学相比,设计也有缺陷:


图案非常独特的事实将有了录音机,攻击者就更容易受到攻击者的攻击
由于用户知道了该模式,因此可以强制他们将其透露出来。传统的按键动力学可以用作隐式身份验证。


评论


“这会使每个字符增加一点熵-因此,它将使8个字符的定时密码的强度与〜9.5个字符长的非定时密码的强度差不多。”这听起来是错误的。每个字符多一位,则应多给您8位。假设您通常有1.1位/字符,那么您将有〜8.8 + 8 = 16.8,相当于15.2个字符,而不是9.5。此外,我想说的不是字母的数目,而是字母之间的间隔数,因此它将是7,而不是8,但这并不重要。

–法比奥说恢复莫妮卡
16年5月2日在17:11

@FabioTurati对于不说我的假设我很不好意思:)我假设使用长度为36个字符集的随机密码,每个字符给您5.17位。 (5.17 * 8 + 8)/ 5.17〜= 9.5。我不确定您从哪里获得1.1位/字符,这听起来很低-也许是对于非随机数字引脚?

– goncalopp
16年5月2日在17:39



知道了我当时正在思考典型的英语单词,因此(“ Shannon确定典型的书面英语的信息内容约为每个字母1.0到1.2位”),我的值为1.1位/字符。但是现在我明白你的意思了。谢谢!

–法比奥说恢复莫妮卡
16年5月2日在18:01

#6 楼

由于这基本上排除了使用密码管理器(这是密码安全性的基本最佳实践),因此它不会改善但会损害密码安全性。

评论


它应该与闪电般的输入密码管理器一起使用,但这将成为登录的唯一方法

– Xen2050
16年4月29日在0:35

如果将它用作密码管理器的密码怎么办? ;)

– goncalopp
16-4-29的2:02

听起来像是一种锁定一切的好方法。

–R .. GitHub停止帮助ICE
16-4-29的2:07

@R ..这很有趣;您要么破解密码管理器的加密,要么必须记住密码。好玩好玩。

– wizzwizz4
16年5月3日在19:31

@ wizzwizz4:如果正确使用密码管理器,您的密码将不容易记住,因为您从不知道/没有看到它们。它们都是随机的长字符串。

–R .. GitHub停止帮助ICE
16年4月4日,0:50

#7 楼

这是一个好主意,(理论上的)净效果将是密码熵的增加。例如,假设您的阈值为1/4秒,最大暂停时间为1秒。在某些时候,暂停将被转换为位,这将使密码字符集有效增加4倍;例如80个字符集将变为320个字符集。实施80个可能的字符的10位密码,通过实施您的想法将使暴力破解的难度增加100万倍。换句话说,您的10个字符的密码将变得更像13或14个字符。
实际上,我看到的主要好处是,人们可能更容易记住带有10个字符的歌曲的节奏要记住的字符比14个字符要多。但是最好的密码是人类无论如何都不会记住的密码,因此(对所有相关方而言)仅向密码中添加更多字符以实现相同的熵增加可能会更简单。
此外,(如elixenide在评论中指出的那样),强迫用户键入密码而不是粘贴密码实际上会降低整体的熵,因为它不鼓励通常从密码管理器粘贴而不是物理键入的复杂密码。

评论


通过使密码管理器难以使用或无法使用,可能会降低熵。必须能够记住并连续输入密码的用户将不会使用长密码或复杂密码。与鼓励使用较短的密码而不是密码管理器毫不费力地处理的非常长且非常复杂的密码相比,记录10位密码的键盘定时所产生的熵损失微不足道。

– Elixenide
16年5月3日在18:23

@elixenide很好。我更新了答案以反映这一点。 (迟到总比不到好。)

– TTT
20 Sep 18 '18:42

#8 楼

我已经在这方面以及一些相关领域做了一些工作,我对这个问题的回答取决于您有多少时间:

简短的回答:是的,但是有一个。 />
简单地说,正如您先前所发现的,观察到的按键(或其他行为生物特征识别模式)存在相似之处。从理论上讲,这些可以用于额外的安全性,但是误报率和误报率仍然相对较高,因此可用性令人怀疑,并且我不推荐任何可靠的预建库。

更长的答案:不,但是要有一个。

安全性方面的行为生物特征识别技术的问题在于它不适合我们当前的模型。如果您得到密码,那是对的还是错的。如果某物正在测量您的虹膜,那是匹配还是不匹配。没有回旋余地或摆动空间,一个或另一个是二进制身份验证。

行为人士不这样做。行为根据一天中的时间,一个月中的时间和外面的天气而变化。您可以说“看起来像这个人”,但没有“干脆”的“是/否”响应,这使它们在传统身份验证方面表现不佳,尤其是在密码等样本量较小的情况下。

另一方面,可以评估很多行为分析(网络使用率,按键,鼠标使用率,移动性以及其他许多方面)。这些可以组合在一起,以在长时间内提供持续的置信度指示。因此,例如,您可以登录自己的计算机,由于尚未通过银行验证,因此您无法访问银行。做一些您需要做的事情,工作一段时间,算法返回一个良好的置信度值,并授予对特权系统的访问权限。

基本上,当前存在的二进制身份验证路由不是非常适合行为生物特征识别,但是基于信任的身份验证有很多希望。

#9 楼

否的另一个原因:假设您的用户偶尔输入错误的密码。您可以输入完美的字母,但是我们其他人有时手指发胖。他们可能会在第二次尝试时输入速度较慢,从而弄乱了指标。如果存在任何可检测到的超时/延迟(速率限制或只是缓慢的登录服务器),则尤其如此,因为他们不想等待第一个已经烦恼的另一个延迟

#10 楼

让我们称这为定时密码输入。

基本上,您正在执行的操作是:


尝试增加密码熵。

这有一些弊端,例如人们改变的事实,几年后它可能会咬你。

问题是:这种增加密码熵的方法值得吗?为了正确回答这个问题,您需要首先测量需要定时输入密码才能获得的总熵。

我认为您不会获得太多的熵,因为大多数人通常会使用相似的键盘。因此,当您知道大多数人通常使用键盘的方式大致相同时,您将知道知道定时打字的过程中并没有太多的熵(或信息)。

因此,我建议:


定时密码输入不值得冒险。
如果您需要更多的熵,只需使用更高质量的密码(更长的随机字母即可)。


评论


“大多数人通常会以相似的方式使用键盘。”您对此有参考吗?我希望人们以明显不同的方式使用键盘。

– Dennis Jaheruddin
16年5月3日,9:41

不,这只是我的观察。我观察到的是,有几类键盘使用方法。我可以想象最多有5个班级,而且很可能以不统一的方式进行分配。例如。有些班级拥有庞大的用户群,而其他班级则少刮胡子。因此,如果测量由这5个非均匀分布的类获得的熵,则其熵应小于仅添加2.3位的熵。

–洞穴人
16年5月4日在14:52

#11 楼

这是一个很酷的主意,但是如果没有像其他所有人所说的那样正确实施,那将是行不通的,因为人们会改变并且必须正确实施容错。

我的想法实施此操作的一种好方法是查看用户是否在特定的时间模式中输入了密码,如果输入的密码不是正确且密码正确,则可以使用此信息使请求看起来有点可疑并具有其他类似的事情,例如可能要求用户将文本输入到手机中以确保输入的内容正确。

优点:用户正常输入密码,如果时间不对,则可以二次身份验证。这只会打扰用户,如果他们输入不正确或试图进入其帐户的人。

缺点:他们可能是误报,可能会打扰尝试登录的用户,并且那些时间可以由看着你的肩膀的人看到和/或记录。

#12 楼

是的,如果处理得当,它可以正常工作。
好处是显而易见的:他人更难使用密码登录。猜测变得越来越困难,即使有人拥有(部分)密码,他仍未完成。
,我将解决您的担忧:
是的,您仍然可以用断指登录
当然,断手时密码可能会“丢失”,但是可以通过提供(更强的)主密码来解决。如果您遇到无法使自己保持黑体状态的情况,可以随时使用主密码进入。(并根据需要更改黑体)。
是的,您仍然可以使用多个设备
显然,不同种类的设备将具有不同的节奏,但是如果您经常使用它们,则每个设备的节奏应足够稳定。这样,您可以允许用户拥有多个有效的程序。
是的,您仍然可以使用密码管理器
显然,可以使密码管理器提交该程序以及击键。尽管这可能具有挑战性,但在使用密码管理器登录时仅使用上述主密码可能非常容易。

#13 楼

与其残酷地阻止/允许用户使用,不如让它在10到20次登录期间“学习”用户的方法,并以中等的时间间隔获取时间。

常规登录:
-密码+通过应用程序/短信/电子邮件链接的两次登录功能

过一会儿,您将了解他的模式,并可以为用户提供启用附加安全性的选项,然后降低了两因素登录所需的登录时间。 (假定使用了相同的IP)。

启用附加安全性后,只要IP源相同,就可以允许用户仅使用密码登录。

,当您发现用户从较早的注册中改变了他的登录敲击敲击速度时,您可以再次要求两次登录并更新列表。 (总是取5次登录尝试的中位数,以消除极端情况)

#14 楼

我认为,这在经常使用密码且输入内容不允许使用多种字符的情况下最具潜力。一个明显的例子是类似门的进入代码。这也具有一个优点,即使有人能够看到您肩膀上的代码本身,他们仍然必须正确调整节奏。这也使您可以从非常基本的输入设备中获得更多的熵。

您甚至可以想象这样一种情况:只有一个按钮,而节奏是唯一的输入,毕竟这是“秘密敲门”的数字版本。

如果没有别的,这对于低级别的安全应用程序可能具有一些新颖的价值,对于说专业的音乐家来说,它们甚至可能具有更为严重的利基地位,他们被期望具有非常准确的时机感。