Freigeben über


使用图片密码登录

Windows 8 新增了一种全新的登录方式,那就是“图片密码”,开发人员预览版中当前已提供了这一项功能。让我们来了解更多幕后信息,看看这一项功能在安全保护方面的强大能力,并了解其构建过程。触摸屏的应用给我们带来了众多新奇的应用便利,其中一项好处就是提供了一种登录 PC 的全新方式。大家可能都不希望在使用 PC 时取消密码登录功能,对于大多数人来说,在大多数情况下,取消密码登录的方式是不可取的,至少是不明智的。提供一种以触摸方式快速而流畅地进行登录的机制非常重要,我们都知道,在触摸屏手机上使用字母形式的密码极为不便。用户体验中心团队的项目经理 Zach Pace 撰写了这篇博文,对在 Windows 8 中实现图片密码以及图片密码的安全性进行了介绍。有一点需要说明,在图片密码登录方式中,您仍然可以使用鼠标,只需完成数次单击和/或拖动操作即可。
--Steven


以触摸方式登录 PC 时,采用传统登录方式极为不便。由于当今对密码安全性的要求越来越严格,密码必须由数字、符号和不同大小写的字母组成,在触摸键盘上输入一长串的复杂密码需要 30 秒钟以上的时间。在 Windows 8 中,从登录 PC 开始,我们确信能够为您提供快速而流畅的使用体验。

市场上也出现了一些其他形式的触摸体验,试图尝试解决这一问题,数字 PIN 就是其中的一种典型方式。PIN 很好地解决了这一问题:几乎所有人都曾经看到或使用过这一方式,以触摸方式使用数字软键盘非常方便。不过,我们认为这一方式仍有改进的空间。

由于采用便于记忆的数字顺序通常安全性较低,数字组合形式的密码会给用户带来许多问题。采用常用的数字顺序(如 1111 或 1234)很容易被猜中,而如果像许多人那样使用个人资料中的特殊日期作为 PIN,当攻击者掌握了用户的个人资料(许多个人资料都可以轻松获取到)时,也很容易推断出所使用的 PIN。在这种情况下,采用个人资料中的数字作为密码会降低密码的安全性。于是,我们决定对这一典型密码输入形式进行改进:我们设计了一种快速而流畅的触摸登录体验,并同时保证了登录方式的个性化。

个性化登录体验

图片密码的核心由两个互补的部分组成。包括您的图片收藏集中的一张图片以及您在该图片上绘制的一组手势。不必从预先定义的 Microsoft 图像库中进行选择,您可以自行提供图片,这样能够提高密码的安全性和易记性。您自行决定图片的内容以及您认为图片中哪些部分比较重要。此外,您还会看到一张非常重要的图片,就像许多人在其手机锁定屏幕上看到的图片一样。

四个人的图像/[Switch to password](切换密码)按钮

图片密码功能的设计核心是标记出图像中对您最为重要的部分,它需要使用一组手势,让您快速、准确地标记出这些部分。为了确定要使用的最佳手势组合,我们将一组图片分发给参与此项研究的人员,要求他们标记出图像中对其最为重要的部分。也就是说,我们没有提供任何附加说明。我们发现,这些参与研究的人员执行了三类基本操作:标示位置,连接特定区域或标记出路径,以及圈出特定区域。我们将这些操作分别映射为点击、线条和圆圈。我们发现,这是让用户标记出图像中对其最重要的部分所需的最少手势组合。

对于圆圈和线条手势,其自身还具有一种属性,可以在个性化和安全性方面附加一层保护:那就是方向。在所选图片上绘制圆圈或线条时,Windows 会记住您的绘制方式。因此,当有人试图破解您的图片密码时,他不仅要知道您标记出的图片部分以及标记顺序,还要知道您绘制圆圈和线条时所使用方向和起止点。

设置手势/男士头部周围显示有圆圈,左侧的人的鼻子上显示有圆点,右侧两人的鼻子之间显示有一根线条。

我们还对使用任意手势进行了研究。当我们针对这一概念展开研究时,在设计迭代和调查研究阶段,我们均发现此类系统存在重大缺陷:登录所花费的时间过长。正如我在上文中所述,我们希望找到一种比触摸键盘更快的解决方案。在开发此项功能的过程中,我们以使用触摸键盘登录所花费的时间为基准来判断我们的方法是否成功。我们发现,当允许用户使用任意手势时,用户均需要花费更长时间才能完成登录。用户受思维观念所困而导致登录速度缓慢,他们认为需要在图像中精确定位并跟踪图像细节。

由于用户只需标记出图像区域而不必关注图像细节,我们发现使用有限的手势组合要比采用任意手势方式平均快三倍。我们还发现,经过多次重复使用之后,使用手势组合的用户均能够在四秒钟之内完成登录任务,与之相比,使用任意手势模式平均需要 17 秒钟才能完成登录。在连续使用任意手势模式一段时间之后,我们发现许多参与者要求更换任意手势,改为选择简单的线条和位置。

工作原理

当您选择图像之后,我们会将该图像拆分成网格。沿图像的长边将图像拆分为 100 份。然后,沿短边按比例拆分图像以形成一个网格,您将在此网格上绘制手势。

若要设置图片密码,您随后需要在我们创建的区域中绘制您的手势。单个点采用该点在网格上的坐标 (x,y) 位置来表示。对于线条,我们将记录线条的起止坐标以及线条端点的出现顺序。我们使用顺序信息来确定线条的绘制方向。对于圆圈,我们将记录中心点坐标、半径和方向。对于点击,我们将记录触摸点的坐标。

在叠加了网格的图片上,显示两人鼻子之间的线条。线条端点表示为 (X1, Y1) 和 (X2, Y2)

当您使用图片密码登录时,我们将对您提供的手势进行评估,与设置图片密码时所使用的手势组合进行比较。我们会比较各个手势之间的差异,并根据整个组合中出现的错误数量来决定是否授予您登录权限。如果手势类型不匹配(应该是圆圈,但您提供的是线条),则始终会拒绝授权。当类型、顺序和方向均正确无误时,我们会比较各个手势与设定的手势在显示位置方面有多大差异,并据此决定是否授予您登录权限。

以点击手势为例,在三种手势中,点击在唯一排列形式的数量和后续分析的复杂性方面都是最低的。在判断您点击的点与参考点是否匹配时,我们的评分函数会比较您在图片密码中记录的手势与刚刚输入的手势直接的距离。分数根据二者之间的距离逐渐递减,完全匹配时为 100%,距离足够远时为 0%。分数大于等于 90% 表示这两个点相匹配。下图以直观的形式显示了临近 100% 匹配的各点的评分函数:

对点击手势进行评分

评定为匹配的区域是一个半径为 3 个网格的圆形。对于任何特定点击,总共有 37 (X,Y) 个位置将返回匹配结果。对于与线条和圆圈相关的变量,我们将执行类似的计算。

安全性与手势数量

在确定使用图片密码所需的手势数量时,我们考虑到了安全性、易记性和速度因素。我们试图在这三种相互制约的属性之间达成一种均衡的折中解决方案,在确保使用安全的情况下实现最佳的用户体验。为了确定符合我们的安全目标的合适手势数量,我们将图片密码与各种身份验证方法(即 PIN 和纯文本密码)进行了比较。

分析唯一 PIN 的数量非常简单。4 位 PIN(具有 4 位数字,每位数字具有 10 个可能的数字值)意味着存在 104 = 10,000 种唯一排列形式。

对于字母数字密码,分析过程可以基于以下假设进行简化:假设密码由小写字母(26 个)、大写字母(26 个)、数字(10 个)和符号(10 个)组成。考虑最基本的情况,如果密码完全由 n 个小些字母组成,则存在 26n 种排列形式。如果密码可由 1 到 n 个字母组成,则排列形式数量高达:

?_(i=1)^n¦?26?^n

例如,由 8 个字符组成的密码具有 2,080 亿种排列形式,对于大多数用户来说,这看起来似乎已经非常安全了。

但遗憾的是,用户在选择密码时却远远达不到随机的地步。用户在其设备上通常会使用常用单词或词组、家庭成员姓名等等。

在这种情况下,假设用户密码包含所有类别的字符,并且必须由两个小写字母、一个大写字母和一个数字或符号组成;不过,大写字母和数字/符号可以出现在密码的任意位置。那么,唯一密码的数量将为:

?26?^(n-1)·20·n!/(n-2)!

下表显示了在不同字符集假设下各种密码长度的求解空间大小。

密码长度

唯一密码数量

1

不适用

2

不适用

3

81,120

4

4,218,240

5

182,790,400

6

7,128,825,600

7

259,489,251,840

8

8,995,627,397,120

对于图片密码,我们可以对每一种手势类型进行类似的分析。下表中的信息同时考虑到了手势位置和识别算法的冗余度。

对于最简单的手势“点击”来说,根据点击数量的不同,唯一手势的数量变化如下:

点击数量

唯一手势数量

1

270

2

23,535

3

2,743,206

4

178,832,265

5

15,344,276,658

6

1,380,314,975,183

7

130,146,054,200,734

8

13,168,374,201,327,200

圆圈手势的复杂性高于点击手势,但低于线条手势。为了量化圆圈的相对安全性,我们可以假设攻击者确信圆圈半径介于 6 到 25 格之间(这样做是为了简化猜测圆圈手势的工作),并假设 X 坐标和 Y 坐标介于第 5 格和第 95 格之间。在此条件下,黑客发动攻击需要尝试的可能解空间如下所示:

(95-5+1)^2·(25-6+1)·2=331,240

根据圆圈数量的不同,唯一手势的数量变化如下:

圆圈数量

唯一手势数量

1

335

2

34,001

3

4,509,567

4

381,311,037

5

44,084,945,533

6

5,968,261,724,338

7

907,853,751,472,886

线条是三种手势中最为复杂的手势。线条由标准化的 100 x 100 网格中的两点按一定顺序连接绘制而成。名义上,这可以生成 1 亿根可能的线条;不过,由于线条长度必须至少为 5 格,因此,唯一线条数量实际上为 99,336,960 根。对于圆圈,黑客可以做出一些简化假设,从而在猜测圆圈手势时显著减少解空间的大小。但对于线条来说,这样做没有明显的效果。线条可以从屏幕的一边贯穿到另一边,也可以绘制的非常短。根据线条数量的不同,唯一手势的数量变化如下:

线条数量

唯一手势数量

1

1,949

2

846,183

3

412,096,718

4

156,687,051,477

5

70,441,983,603,740

现在,我们已经了解了各种手势的安全性,接下来,我们可以将这些数据组合到一起,对包含多种手势的手势组合的安全性进行评估。计算方法如下:对于特定的手势长度 n,将所有三种手势类型的唯一手势数量相加,然后再求 n 次方。结果如下表所示,下表将图片密码与 PIN 密码和字母数字密码模式进行了比较。

长度

10 位 PIN

简单的 a-z 字符组合密码

更为复杂的字符组合密码

多手势图片密码

1

10

26

不适用

2,554

2

100

676

不适用

1,581,773

3

1,000

17,576

81,120

1,155,509,083

4

10,000

456,976

4,218,240

612,157,353,732

5

100,000

11,881,376

182,790,400

398,046,621,309,172

6

1,000,000

308,915,776

7,128,825,600

 

7

10,000,000

8,031,810,176

259,489,251,840

 

8

100,000,000

208,827,064,576

8,995,627,397,120

 

从上表中可以看出,使用三个手势即可提供相当庞大的唯一手势组合排列数量,在安全性方面与 5 或 6 个任意字符的密码相当。此外,使用三个手势还可以确保图片密码便于记忆和快速使用。

除了唯一组合排列数量相当庞大之外,我们还引入了两种安全保护措施,可以防范重复性的攻击尝试,进一步增强了图片密码功能的安全性。与使用 PIN 密码的手机上的锁定功能类似,如果图片密码输入错误的次数达到 5 次,将会阻止您使用该功能,之后您只能使用纯文本密码登录。此外,在远程和网络模式下,将会禁用图片密码,以防范针对图片密码功能的网络攻击。

需要澄清的一点是,我们提供图片密码只是将其作为文本密码的一种辅助登录机制,不会替代文本密码。您应确保牢记自己的文本密码并应用相应的安全保护机制,您随时可以使用文本密码进行登录(登录屏幕提供了一种一键式切换机制,允许您在所有可以密码输入方式之间切换)。

防范触摸痕迹利用

如果您使用图片密码,我们还考虑到了在实际使用过程中会碰到的一些现实问题。人们普遍担心,在使用触摸屏时,我们会在屏幕上留下触摸痕迹,通过分析这些痕迹,是不是很容易就能够破解用户密码。由于手势还具有顺序、方向和位置特性,即便是在非常干净的屏幕上,要想根据触摸痕迹猜出正确的手势组合也极为困难,更不用说在经常使用的触摸屏上了。

此处潜在的威胁是,登录时留下的触摸痕迹可能会留下线索,让人能够据此推断出所使用的身份验证密码顺序。我们可以对触摸键盘、4 位 PIN 和图片密码这三种登录方式进行比较,看看猜测出登录顺序的难易程度。让我们考虑最坏的情况:

  1. 用户清洁了屏幕,屏幕表面一尘不染。
  2. 用户仅仅触摸执行身份验证所需的最少量位置。
  3. 然后,用户离开了其电脑,不再执行任何其他触摸操作。
  4. 攻击者窃取了这台平板电脑,可以准确看到身份验证所使用的全部手势。

显然,这种情况出现的几率很低,不过,在这种情况下,我们可以对这三种身份验证方式进行比较和对比,看看哪一种方式更容易导致密码被破解。

PIN 密码会在密码中使用的每一个数字位置留下触摸痕迹。如果 PIN 密码包含 n 个数字,并且所有数字都是唯一的(推断难度最高的情况),则有 n! 种可能的 PIN 密码组合顺序。对于典型的 4 位 PIN,共有 24 种不同组合形式。

对于屏幕键盘,如果采用 n 字符密码,同样有 n! 种组合顺序。对于符合规范的密码,用户通常会使用 Shift 键(或其他按钮)来选择备选字符集。按下此键当然也会被攻击者看到,但攻击者无法明确判断 Shift 键的使用顺序。为了简化计算,假设密码中仅使用了一次 Shift 键,则有 n!·n 种可能的密码组合。

手势同样具有 n! 种顺序。对于手势组合中使用的每一个圆圈和线条,排列组合数量都会增加两倍。如果所有手势都是圆圈和线条,则可能的排列组合数量与使用 Shift 键的密码相同,均为 n!·2^n 种。

下表汇总了不同序列长度下各种登录方式的排列组合数量:

长度

PIN

密码

使用 Shift 键的密码

仅点击手势

线条和圆圈手势

1

1

1

1

1

2

2

2

2

4

2

8

3

6

6

18

6

48

4

24

24

96

24

384

再次说明,上表假设使用完全清洁的屏幕,且屏幕上仅有手势触摸痕迹。如果由于电脑使用非常频繁(触摸痕迹非常混乱)或仅使用鼠标和键盘操作,导致攻击者无法通过触摸痕迹获取任何有用的信息,则猜测出正确顺序的机会将更加微乎其微。我们定义了三种手势类型,手势具有方向性,并要求密码长度至少应包含三个手势,因此,正如上文中所述,可能的手势组合数量高达 1,155,509,083 种。

我们考虑的最后一种攻击与图像中的兴趣点有关,也就是显示图像时用户通常会选择的区域。尽管我们的研究表明,此类攻击极为不现实(在试验中,用户选择的区域与用户在该区域上绘制的手势类型之间的相关性极低),但通过假设给定图片具有 clip_image016 个兴趣点,我们仍可以对此类攻击进行分析。如果用户可以使用点击、圆圈和线条手势的任意组合,则总共有 (m·(1+2·5+(m-1)))^n 种排列组合,其中 n 表示图片密码的长度。这将产生以下数量的可能组合形式:

兴趣点数量

长度

5

10

15

20

1

75

200

375

600

2

5,625

40,000

140,625

360,000

3

421,875

8,000,000

52,734,375

216,000,000

4

31,640,625

1,600,000,000

19,775,390,625

129,600,000,000

假设图像一般具有 10 个兴趣点,手势序列长度为 3,则有 800 万种可能的组合,要想在 5 次登录尝试中猜测出正确的顺序,成功的几率微乎其微。

尽管我们对图片密码的强大功能非常满意,但我们也知道,对于某些企业来说,安全是头等大事,任何不符合完整密码要求的登录方式都是不可接受的。因此,我们实现了相应的组策略,允许域管理员自由选择是否可使用图片密码。当然,在您的家庭 PC 中,图片密码同样是可选功能。

在我们着手开展图片密码的设计工作时,我们清楚地知道,我们希望设计一种快速、流畅且所有 Windows 8 用户均能够进行个性化设置的登录方式,并能够一如既往地提供强大的安全保护功能。我们对登录体验及概念进行了深入研究和改进,我们相信,我们找到了一种安全且具有无穷乐趣的登录方式。我们都非常喜欢图片密码,它为 Windows 8 增添了个性化设置功能,我们希望大家也能够喜欢!

-- Zach

您的浏览器不支持 HTML5 视频。

请下载此视频在您常用的媒体播放器中进行观看:
高质量 MP4 | 低质量 MP4

Comments

  • Anonymous
    January 08, 2012
    华而不实
  • Anonymous
    February 02, 2012
    Conntent: 楼上脑子有问题。 还有就是html5规范这么快就应用上了啊 呵呵
  • Anonymous
    February 02, 2012
    Thank you for all your works!
  • Anonymous
    January 02, 2013
    希望在windows7中也能使用这个功能