最终的 Windows 8 版本已发布到制造阶段。Windows 8 的新功能之一是 “图片密码”,最终用户通过单击锁定屏幕上的特定模式登录 Windows。(对于不熟悉该功能的读者,这个 4 分钟的视频说明了它。)
从纯粹的安全角度来看,图片密码方案与传统密码输入的优缺点是什么?
图片密码“点击”、“圆圈”和“线条”与密码长度的对应关系是否有一个粗略的近似值,即图片密码手势大致提供了多少位熵?
最终的 Windows 8 版本已发布到制造阶段。Windows 8 的新功能之一是 “图片密码”,最终用户通过单击锁定屏幕上的特定模式登录 Windows。(对于不熟悉该功能的读者,这个 4 分钟的视频说明了它。)
从纯粹的安全角度来看,图片密码方案与传统密码输入的优缺点是什么?
图片密码“点击”、“圆圈”和“线条”与密码长度的对应关系是否有一个粗略的近似值,即图片密码手势大致提供了多少位熵?
潜在弱点:可预测的密码。 我预计主要弱点可能是用户选择了可猜测或可预测的“图片密码”。如果用户选择了一组可预测的位置/手势,那么有人可能会猜到“图片密码”。
对于微软对自己设计的评价,你应该阅读这篇关于 Windows 图片密码安全性的微软博文。它们提供了一些简单的计算来估计图片密码的强度,并估计它们提供了多少位熵。然而,我认为他们的安全分析过于乐观,因为他们做了几个可疑的假设:
首先,他们假设图像中的所有位置都同样可能被用户选择。我认为这是不现实的;对于任何给定的照片,我认为某些位置比其他位置更有可能被选中,这将是可以预测的,哪些位置更有可能被选中。有人可能更有可能选择图片中的某个独特特征,而不是在广阔的蓝天中间的随机位置。例如,在您分享的视频中,用户选择点击图像中窗口的位置。
其次,他们假设用户三个手势的位置都是独立选择的。在实践中,我认为这是不现实的。我认为通常会有一些模式。例如,在您分享的视频中,用户选择依次点击三个窗口。如果您已经猜到第一个点击位置在一个窗口上,那么很自然地会猜测接下来的两个可能也在其他一些窗口上。
第三,他们假设用户将使用点击、圆圈和线条的组合。(它们有 3 种手势:点击特定位置、以一定半径围绕特定位置转圈,或者将手指从一个位置拖到另一个位置。)然而,点击是最快速、最简单、最自然的手势。这些手势。因此,我怀疑许多用户只会点击三个位置,而不会打扰其他手势。同时,点击的安全性最弱,因为图片上有人可能选择的位置数量有限。因此,我认为微软对安全级别的一些计算可能是基于某种乐观的观点,用户可能不会按照他们假设的方式行事。
因此,我怀疑图片密码的熵可能远低于那些微软博客文章中的估计值。
微软有一篇后续博客文章,他们在其中向用户提供如何选择难以猜测的图片密码的建议,但我不相信普通用户会意识到这一点或会打扰。
也就是说,微软针对猜测攻击部署了一项非常重要的防御措施:您只能尝试 5 次输入图片密码。尝试 5 次后,系统将您锁定并要求您输入文本密码。因此,拿到您手机的人只会尝试 5 次猜测您的图片密码——如果他们在 5 次猜测内没有猜对,他们就完成了。如果实施得当,这似乎是一种强大而有效的防御猜测攻击的方法。
潜在弱点:最薄弱环节效应。 现在有两种登录方式:输入文字密码,或输入图片密码。如果攻击者可以猜到其中任何一个,他就可以访问您的帐户。因此,您的安全性仅与这两个密码中较弱的密码一样好。为了安全起见,两者都需要精心挑选。这可能会使一些用户绊倒。
潜在弱点:涂抹攻击。 假设有人拿到了你的手机。他们可以尝试猜测您的图片密码的另一种方法是查看手指油留下的屏幕上的污迹图案。
过去的研究在手机锁屏的背景下研究了污迹。他们发现这种攻击可能非常有效。如果您将手机与光线保持正确的角度,您通常可以清楚地看到污迹。如果他们用数码相机以正确的角度拍照,污迹会变得更加清晰。令人惊讶的是,他们发现即使用户将手机放在口袋里,污迹仍然清晰可见——你可能会认为这会擦掉指纹,但不,它们仍然可见!
该研究在以下论文中进行了描述:
虽然我在 Windows 图片密码的上下文中没有看到任何相关工作,但我希望类似的方法可以帮助攻击者猜测图片密码并显着降低密码中的熵。幸运的是,攻击者只能猜到 5 次,这应该有助于使涂抹攻击更加困难。
例如,假设攻击者运气好,屏幕上只有 3 个污迹。然后有3个!= 3 2 1 = 6 种可能的重新排序。攻击者获得 5 次尝试猜测图片密码。因此,在这种情况下,攻击者在被锁定之前有 5/6 的机会正确猜出图片密码。也就是说,这对攻击者来说几乎是最好的情况,实际上,攻击可能更难实施,因为攻击者必须猜测哪些污迹来自图片密码,哪些来自其他用途的触摸屏。
作为这种攻击的较低技术和更极端的版本,请考虑以下 PIN 输入键盘的照片:

你能根据钥匙上的磨损图案猜出密码吗?是的,很好,我知道你可以!
潜在弱点:肩部冲浪。 另一种可能的攻击是,如果有人在您登录时看着您的肩膀,他们会发现很容易注意到您在哪里点击。事实上,很难不注意到正在输入的图片密码。所以,当你在别人的视野中输入你的图片密码是不安全的。
优点:方便。 我希望图片密码更易于用户使用,更方便。目前,在移动/触摸屏设备上进行身份验证的所有方法都令人头疼。在触摸屏键盘上输入文本密码是一种可怕的体验,它只会驱使用户选择糟糕、短的密码——这对安全性不利。所以,我希望图片密码对用户有好处。
优点:不比替代品差。 目前,在移动平台上,主要的替代方案是要求用户输入 4 位 PIN 或要求用户使用解锁手势,就像在 Android 或 iPhone 上所做的那样。但是,它们也有其自身的安全弱点,它们可能并不比 Windows 图片密码好。因此,对于移动平台来说,Windows 图片密码可能代表了易用性和安全性之间的一种务实合理的折衷,对于普通用户来说已经足够了。
结论和要点。 我个人的印象是:这似乎是一个合理的方案,对于许多或大多数用户来说可能已经足够了。总的来说,考虑到工程限制,这对我来说是一个务实的选择——我很难想出更好的东西。然而,这是一个新方案,需要更多的研究来更好地了解它在实践中的安全性。该方案的安全性将在很大程度上取决于用户如何使用它,现在说它是否适用于典型用户可能还为时过早。
相关方案。 要了解其他在移动或触摸屏设备上进行身份验证的方案,请参阅iPhone “连接点”密码是否安全?以及Android 的密码屏幕锁定是否足以保护数据盗窃?.
@DW在这里发布了一个很好的分析,所以我将通过扩展我在评论中提到的问题来跟进。(介绍后编辑:看起来我比我预期的要走得更远。无论如何,我希望这对你有用。如果你想要真正简短的版本,请跳到最后。)
正如他所说,在大多数情况下,Windows 8 图片密码可能“不比其他选项差”,但这需要纳入特定的范围和视角。对于将触摸屏作为唯一用户界面的智能手机、平板电脑和其他设备,替代方案都相当糟糕,几乎与 Windows 8 图片密码相同 - 除了一个例外,但我们甚至可能没有承认这一点,因为大多数用户不会选择它。
对于纯触摸界面,您通常有以下一个或多个选项:
让我们把完整的 ASCII 密码放在一边,因为可能 99% 以上的人会忽略这个选项。屏幕键盘在你需要它们的时候写起来就够痛苦了,所以大多数人甚至不想在每次想要解锁设备时都考虑使用它们。即使他们这样做了,他们也更有可能选择一个低熵密码,只包含几个小写字母,而不是考虑一个更长且复杂度更高的更合适的密码。
考虑到这一点,很难确定哪个非 Windows 8 专有密码最弱。数字密码的主要漏洞,主要是由于许多用户习惯为他们的“PIN”选择通用元素。如果密码不是“白痴放在行李里的那种东西”,它通常来自用户的家庭住址、生日、最喜欢的运动员的球衣号码、周年纪念日或其他可以通过社会工程预测的东西。
基于网格的手势密码几乎同样脆弱,甚至在某些方面更糟。这又是因为用户将倾向于相当常见的手势,这些手势更注重易用性而不是安全性。也许更糟糕的是,他们会选择一个明显表示他们为前一个选项选择的可能较弱的数字密码的手势。允许单个手势解锁的系统也相当薄弱,因为涂抹观察可以很容易地揭示手势的明显起点和终点,以及必须遵循的路径 - 立即将必要猜测的范围缩小到两个最多。
然后,我们就有了 Windows 8 图片密码。由于图片是用户可选择的,因此很容易选择没有与 PIN 键盘相关联的便捷选项的图片。因此,这些密码不太可能基于我们都知道和讨厌的弱数字密码。(或者爱,如果你在攻击端。)它们还需要多个手势,这意味着,与基于网格的手势密码相比,可靠地猜测必须执行手势的顺序有点困难。当然,这部分依赖于用户选择的密码在污迹观察时不会呈现明显的顺序。
以上所有,不包括我提到的屏幕键盘,仍然或多或少地容易受到两种非常有效的攻击:
正如我所说,涂抹观察的漏洞因方法而异,并且部分依赖于用户的密码选择。虽然 Windows 8 图片密码可能比单手势、基于网格的密码更能抵抗这种攻击,但它可能与相同长度的数字密码几乎相同。
所有这些系统几乎同样容易受到肩部冲浪的影响。然而,在大多数仅触摸屏的设备上,肩部冲浪通常需要相当明显且不舒服的个人空间侵入——受害者可能会意识到这一点,并且可以在必要时轻松采取额外措施来防止。
然而,这就是分析范围的重要性。Windows 8,虽然看起来通常不是这样,但它不仅适用于移动、仅触摸屏的平台。因此,图片密码也不限于这些设备。它也可以用于更传统的桌面设备,带有键盘和鼠标以及更大的屏幕。
在这些情况下,不应考虑 Windows 8 图片密码和基于网格的手势密码。为什么?因为它们没有提供任何机制,通过这种机制,认证者的反馈甚至可以部分地被肩膀冲浪者所掩盖,而键盘的可用性使得这些选项确实可以轻松实现。然后,一旦您认为您已经轻松轻松地获得了完整的 ASCII 字符集,那么您也应该扔掉纯数字密码。
物理键盘有什么这么重要?它促进了触摸打字,越来越多的人开始擅长它。当您可以触摸输入时,您无需像在其他系统中那样在屏幕上看到密码的任何部分。此外,当您可以使用触摸打字时,创建更长和更复杂的密码会更加容易和舒适。一个体面的触摸打字员可以足够快地输入一个相当长的密码,而且手指移动如此之小,以至于一个不经意的观察者很难一次准确地捕捉到它。
使用基于手势的密码(网格或图片),您的整个密码会在您输入时有效地显示在您的计算机屏幕上。这正是大多数键入密码表单字段中的小点和星号所要防止的。当有人从中等距离看着您的屏幕时,您可以在输入密码时看到您的密码,并且当密码像简单的手势或图案一样令人难忘时(西蒙,有人吗?),您不妨将其分享给所有当您解锁计算机时,它就在您旁边。
TL;DR: 虽然 Windows 8 图片密码实际上可能是移动设备的更好选择(好多少,仍然是一个争论的话题),但对于拥有它的系统,请坚持使用物理键盘。如果您想做得更好,请添加多因素身份验证。
熵位
我在搜索图片密码提供的熵位数时发现了这个问题。熵是随机性的一个奇特词,数字保护的安全性通常通过计数来衡量,这意味着必须正确指定多少二进制元素才能解锁保护。例如,如果您只允许在密码中使用 0 和 1 作为字符,那么它的长度也是它的熵。对于那里的数学书呆子来说,密码的熵是使用可能密码数量的以 2 为底的日志。方便的是,这告诉您必须将猜测所需的时间加倍,才能得出尝试所有可能密码所需的时间(也称为“暴力破解”密码,尽管您当你成功时停止,所以暴力破解平均需要,
那么图片密码是多少?
DW说“你应该阅读这篇关于 Windows 图片密码安全性的微软博客文章。” 在那篇文章中,我们发现
“如您所见,使用三个手势可提供大量独特的手势组合,并为 5 或 6 个随机选择的字符的密码提供类似的安全保证。”
该文本显示在一个表格下方,其中唯一的 3 手势图片密码的数量列为 1,155,509,083。这大约是 30 位熵,假设你真的使用随机手势而不是图片的特征来选择在哪里制作它们。正如 DW 指出的那样,如果您确实使用了功能,则会限制攻击者的搜索空间。
图片密码存在安全漏洞。将您的登录方法切换为图片密码后,Windows 8 将使用可逆加密算法存储您的图片密码以及您的常规用户密码。使用免费软件 Mimikatz,您可以立即解密图片密码。
