击键动态是否总是每人生成一个配置文件?

信息安全 验证
2021-09-04 21:21:05

我的一位同事向我寻求帮助,因为他被罚款 1000 美元,因为他在工作中使用的 Web 应用程序声称他与其他人共享了他的登录凭据,违反了他们的服务条款。他声称他没有这样做。

该网站声称他们知道有多个人使用他的密码,因为他们在登录过程中使用击键动态。引用他们的审计师的话:

“您帐户的主要因素是多种打字模式,这表示多个用户。”

审核员提供了我已查看的登录事件的审核。它显示了 5 个唯一的“击键 ID”。他们只跟踪成功的登录,并且使用 Backspace 键清除整个密码,强制从头开始重新输入。我相信他们使用浏览器插件来捕获数据。

没有意义的是,所有登录都来自我同事的笔记本电脑,只有两个公共 IP 地址:他的办公室和他的家。在 5 个击键 ID 中,有 4 个发生在工作中。有趣的是,这 5 种模式中的 4 种也出现在他家制作的登录中。

我认为这些模式都是由我的同事产生的,但我对击键动力学的熟悉程度不足以解释它如何产生假阳性结果。

多个打字模式表示多个用户是真的吗? 如果不是,如何解释一个人有多种模式?

4个回答

生物特征验证器的一个共同主题是它们基于具有固有可变性的身体特征或行为。大多数身份验证系统会采取一些措施来减少对有效用户的拒绝。

首先,这些系统在比较生物特征样本时允许确定数量的可变性。换句话说,他们承认您不会每次都以完全相同的方式输入密码(事实上,有些系统将完全匹配视为重放攻击的指标)。如果提供的生物特征样本“足够接近”,系统内通常有一个阈值仍然允许进行身份验证。让系统不那么宽容,你会增加你的错误拒绝率 (FRR),这意味着合法用户没有经过身份验证。在这种情况下,FRR 可能实际上表明用户已成功通过身份验证,但生成了新的“击键 ID”。使系统更宽容,您会提高错误接受率 (FAR),这意味着未经授权的用户更有可能被错误识别。

有时系统管理员可以调整此控制以满足他们独特的部署需求,而有时供应商/开发人员将硬编码为他们认为最适合大多数用户的值。

其次,这些系统需要从授权用户那里采集足够数量的样本,以便创建准确的生物特征模板。这对于像击键动态这样的生物特征更为重要,在这种情况下,您的输入会随着输入而改变。此模板基于的样本越多,它与比较新身份验证是否在授权用户模板的误差范围内的第一个控件一起工作的效果就越好。

我们不知道,也可能无法查明,您朋友使用的服务如何处理这两个元素。有可能他们调整了他们的系统以大大减少 FAR,以至于他在随后的登录过程中打字方式的变化会产生不同的“击键 ID”,尽管它确实是他。这篇关于击键动力学的研究论文将它们的 FRR 列为 5% 左右。在此服务的上下文中,这可能意味着类似的 FRR 会在每 20 次登录中的 1 次中为您朋友的有效登录生成不同的击键 ID。

我们也不知道他们使用了多少次登录来训练他们的系统以获取他的有效生物特征模板。他们可能只是在帐户设置过程中使用了他的初始密码输入。或者他们可能在寻找未经授权的使用之前使用他的几十个登录信息训练了系统。显然,为了提高生物识别模板的质量,他们应该使用第二种方法。

除非这是一个新系统或不可靠的供应商,否则我认为他们已经解决了这些问题,因为它们可能会影响所有客户并引起很多投诉。但也有可能您的朋友在密码输入技术方面的变化比普通用户多。

我同意 Johnny 的回答,即拥有不同的击键 ID 配置文件只是供应商用来确定是否发生欺诈的指标之一。如果没有有关他们特定生物识别系统的详细信息,他可能对所有这些登录负全部责任,并被错误地指控违反了 ToS。他应该要求他们提供更多信息,而不仅仅是登录的源 IP 和击键 ID,或者说他们迄今为止提供的证据是站不住脚的。

多种打字模式确实意味着多个用户,但这是分析师在指责正在进行凭证共享之前应该审查的众多指标之一。它们应该与 IP 或其他用户/行为分析(访问时间/日期、行为模式、同时登录等)进行交叉引用。在提出这样的指控之前。这是疯狂的草率。

我很清楚您的同事从事什么工作,因为我们自己处理这个问题,但迄今为止还没有找到适当的解决方案。他可能会很难解决这个问题(因为他签署的合同的性质),但他真的需要抱怨直到他喘不过气来。击键配置文件违规不是合同违约的确凿证据。

我怀疑任何基于密码输入生物识别的行为是否有足够的精度来做出这样的决定

我使用人工智能来处理活动日志并预测故障。我在它的应用上取得了惊人的成功,但它的预测远非 100% 精确。

我没有尝试使用人工智能来进行按键检测,但我很好地想象了它是如何完成的。首先,我们必须了解数据的来源:输入是什么?据我所知,键盘让我们知道按下了哪个键。一次只有一个,除了 shift/caps/control/alt/scroll 键。这意味着这样的模型必须处理每个键入的字符的 keyup keydown 事件的时间,以及 shift 键的组合。除此之外没有更多的数据。

该模型将在其背后开发一个复杂的数学,以将这些输入组合到配置文件中。

根据我的直觉,信息太少,无法进行良好的匹配。在我看来,密码太短太随意,无法确定精确的模式。如果我们谈论更大的样本量,比如在应用程序中的使用,我可能更倾向于相信声明的严重性。[但这是一种直觉,我可能错了]

我刚刚阅读了一篇文章的介绍,该文章证实了这种感觉,并指出某些键组合具有特殊含义(ART1)。由于样本量太小,所有密码都不太可能具有可用作签名的特征组合。另一篇文章有​​点旧,但描述了 83% 到 92% 范围内的方法和成功率,并指出击键模式是一种辅助机制 ( ART2 )。生物识别解决方案明确指出:“一般而言,击键动力学等行为生物识别不如生理生物识别可靠”和“不可能与行为生物识别完全匹配”(SITE1)。这符合我的直觉。

实际上,我希望输入常用单词作为签名比密码更容易。人们会用常用词输入他们习惯的东西。这不是密码的情况。

我希望这样的算法会产生不同的配置文件:

  • 如果此人使用多个键盘。
  • 如果密码的数字部分是在小键盘上或在键盘的 QUERTY 部分上方的数字中输入的。
  • 如果在桌子上或膝上的笔记本电脑上输入键盘;
  • 如果密码很复杂;
  • 如果经常更改密码;
  • 如果密码包含符号和标点符号。在不同的键盘上, [ ] { } ' " | \ 位于不同的位置。我们在不同品牌的笔记本电脑上的这些键上有很多可变性。例如,在我使用的键盘中,问号是右移的下一个键。在我的笔记本上没有问号键...我必须按右 alt + W 才能得到问号。
  • 如果打字机和我一样。我快速打字。我打字的速度比人们说话的速度还要快。但是我的打字风格很疯狂。我只用 6 个手指打字。根据键盘的倾斜度,我用不同的手指和不同的速度打字。
  • 由于人的心情。

我问:

  1. 您的同事使用不同的键盘?
  2. 您的关联密码中的字符在不同的键盘上具有不同的位置或大小?
  3. 您的关联密码又大又复杂?
  4. 您的关联密码太小?
  5. 您的同事多久更改一次密码?

再说一次,我同意这里的人的观点:举证责任在于原告。原告必须提出比这更好的论据。对于这样的算法,我会向公司询问模型上的测试数据,包括样本量、错误识别率 (FRR)、错误接受率 (FAR),以证明击键模式检测足够准确,值得信赖。如果他们可以提供合适的样本量和足够低的错误(我对此表示怀疑),那么您可以考虑进行测试。甚至 DNA 也有警告和例外。

我这么说是因为许多产品离开实验室时测试不佳。许多公司在没有测试的情况下购买。他们认为销售公司应该知道他们在做什么。如果我们注意这一点,这不是问题。例如,默认情况下不信任新的操作系统版本(Windows 和 Linux 等)。我们注意到在它们上面会发现许多错误。我们可以在一些问题的风险下尽早获得新功能。对于具有适当控制级别的大多数应用程序来说,这是可以接受的。如果我们知道我们可以为此做好准备。

问题是大多数供应商试图隐藏其产品的局限性,并且倾向于将 80% 视为足够接近 100%。80% 的精度有利于监控和询问额外的安全因素,但不足以进行完整的身份验证。我遇到的大多数生物识别供应商都试图将生物识别作为密码出售。作为安全的终极解决方案。事实并非如此。差远了。不要误会我的意思,生物识别技术很酷,对安全性有很大帮助。它们在某些情况下有助于限制犯罪分子的机会。iPhone 和三星的生物识别技术被少许牙模破坏,包括用该人的社交网络图片制作的假手指(VERGE1)。即使这样也很有用,如果您将手机忘在桌上,办公室里的人将无法使用它。它使有针对性的攻击有点困难,但难度不大,但可以很好地防止机会犯罪、丢失和盗窃。

从技术和法律的角度来看,我认为该主张有些荒谬,如果他们能够成功执行其主张,我会感到非常惊讶。或者,考虑到可能的影响,如果他们甚至尝试过(他们可能只是在虚张声势)。

到目前为止,我会礼貌地告诉他们走开,忘记整件事。

事实是什么?

有人指控您的朋友与某人分享了他的密码,或多或少是出乎意料的。指控基于一些非常可疑的数字(可能是秘密的?你的朋友在他们指控他之前知道这件事吗?)使用某种未指定且可能不可靠的系统记录。

您的朋友作证说他没有分享他的帐户信息,并且强有力的间接证据(所有登录都来自他的家用计算机或他的工作计算机,并且来自他工作的时间)证实了他的证词。

举证责任在于提供商坚持认为用户违反了服务条款,除非他们有确凿的证据,否则任何此类指控充其量都是诽谤(这是可诉的,因此我怀疑他们会试图提出指控)。

假设测量足够准确,匹配的击键模式的存在是同一个人的指标。然而,不匹配的击键模式的存在是毫无意义的指标。它可以在任何时候简单、实时地显示,同一个人可以在一两分钟内产生十几种不同的打字模式。

您的现代 iPhone 配备了指纹传感器。这是一种更复杂的生物特征认证机制,错误率要低得多,故意作弊要困难得多(假设你使用右手手指),但它经常失败——在我的手机上,大约每 10 次尝试就会失败。

现在,按照这个 Web 应用程序提供商的逻辑,Apple 应该报警,因为我偷了我的 iPhone——大约每天两次!毕竟有确凿的证据……指纹不匹配,所以显然我不是合法拥有者。这是荒唐的。

根据您居住的地方,仅仅秘密记录击键可能已经给提供商带来了严重的麻烦(他们最好不要在美国)。

从技术角度来看,桌面应用程序可以在典型的 Windows PC 上以大约 15 毫秒的分辨率记录击键动态。如果您安装一个低级键盘挂钩或驱动程序(祝您在 Javascript 或浏览器插件中这样做,祝您好运),您可以做得更好,但是合理地接收消息并将消息时间记录为 15.6 毫秒就可以了。

GetMessageTime()在收到消息后立即调用,WM_KEYDOWN或者WM_KEYUP几乎是获取消息时间的最准确方法(您可以使用 QPC,但有什么用......准确性受到消息的限制,该消息已经包含时间戳,更高分辨率的计时器只会给出更多的数字,但不是更精确)。

如果我在一个简单的 10 行程序中执行此操作,该程序除了在键入"the quick brown fox jumps"时打印出消息时间并取增量,那么我得到的结果是我的停留时间是 2 个滴答声 +/- 1 滴答,我的飞行时间是 3 滴答 +/- 1 滴答(以 15.6 毫秒为单位表示)。

除非您的密码有几千个字符,否则这太不精确了,无法说出任何内容。十几个击键,每个需要 2 或 3 个滴答声?打扰一下?为了确凿的、确凿的证据?你也可以阅读茶叶。

是的,可以通过调整系统调度程序的间隔来提高准确性。但同样,这超出了您在浏览器中运行的某些东西的范围。此外,考虑到对于浏览器插件或一段 Javascript,浏览器的逻辑介于接收事件和您看到它们之间。这将导致未知的(并且可能是不确定的)延迟,进一步模糊测量。