您好, 访客   登录/注册

Win8图片密码背后的秘密

来源:用户上传      作者: 俞木发

  安装了Win8的朋友都知道,Win8新增了一种特殊的登录方式,那就是使用图片作为系统的登录密码。那么Win8是怎么实现图片的识别,图片密码后面又隐藏着什么秘密?
  
  图片密码 设置很简单
  大家知道传统登录密码都是使用字符,这样很容易被黑客暴力破解。因此为了增强Win8的安全性,系统新增了“图片密码”,由于作为登录密码的只是一张普通的图片,其中并没有包含任何字符,这大大增加了破解的难度。要使用图片登录,只要打开“控制面板→所有控制面板项→用户账户”,然后单击“在电脑设置中更改我的账户信息”。接着在打开的设置窗口单击“创建图片密码”,然后选择一张合适的图片,在图片上使用鼠标设置自己的手势(注意顺序)即可创建(图1)。
  这样在下次登录系统时,登录界面就会出现上述图片,在这张图片上使用前面设置的手势进行解码即可登录Win8。
  图片密码的背后─Win8怎么识别手势
  从上面的介绍我们知道图片密码主要是由图片和用户绘制的手势组成,密码的核心就是用户在图片上的手势。那么Win8是怎么知道正确的手势的?
  这里以上述图片密码为例,当用户选择上述小熊照片作为密码后,Win8会将该图片以网格划分为N个区域,这样用户的手势在图片上就有一个对应的坐标。比如我的图片密码是从A开始顺时针划到B再到C点,这样第一个手势是从A(假设坐标为13,16)划到B(假设坐标为20,12),这条线段的起始位置就以特定值保存在Win8数据库中了,其他手势标记位置类似(图2)。
  由于手势坐标值是个准确的数值,而我们每次划的手势不可能都吻合,因此Win8的手势坐标值数据库还允许有一定误差。这里还是以上述手势为例,当我们在使用图片密码登录时,在A点开始划手势的时候,系统就开始比较。首先系统会将用户的操纵区域向外发散,以A点坐标为中心(值设为100%)向外递减,只有当匹配率>= 90%才算正确。也就是说起点只有在以A为中心向外扩散10%的区域开始划时,系统就认为是正确的起点(图3)。
  由于整个线段都是由不同点组成的,因此只要手势画出的直线组成的点是在AB向外扩散10%的区域内,Win8都认为是正确的手势。这样如果你在系统登录界面划出和Win8数据库相符(在误差方位内)的手势,就可以顺利登录Win8系统了(图4)。
  图片密码安全性更高
  通过上述的介绍我们了解了图片密码的制作和识别机制,那么这种登录方式和传统的字符式密码相比有什么优势?我们还是以图片中最简单的三条直线密码组合为例。如果采用3个字符的密码组合方式,理论上的组合方式是“10个数字+52个字母(大小写)”即62^3 = 238328种,其中剔除类似111、aaa之类的非独特密码,最终密码种数是81120。如果采用直线密码,大家知道通过一个点就可以画出无数条直线(但是需要剔除其向外扩散10%区域内同方向的直线),而且这条直线的起点可以在图片任何位置开始。这样图形密码的第一条线我们就可以设置出非常多的手势(这还不包括反方向直线),三条直线手势根据微软计算公式可以组合出高达846183种独特密码,它的总数是数字字符的10倍!当然这还不包括点和圆的组合。按照微软的理论,有5个手势的图片密码最多有398万亿种组合可能,而传统的8位密码也仅有9万亿种。微软做了个比较表格,可以看到图片密码可产生的独特密码要远远多于字符式密码(见表)。


转载注明来源:https://www.xzbu.com/8/view-1606042.htm