基于图形化签名的用户访问控制的制作方法
【专利摘要】用户输入由多条线条组成的图案,通过相对长度、总体方向及曲率将这些线条分类。在线条起始于新位置的情况下,需将相对先前始点的方向考虑在内。然后,将这组线条序列化为键值,该键值可继而用于解密存储于装置的数据。这使数据能够安全存储,其原因在于密钥是在运行时间由用户提供,而非自身存储于装置。
【专利说明】基于图形化签名的用户访问控制
【技术领域】
[0001]本发明涉及用户访问控制,特别涉及访问本地存储的数据,但不仅限于此。
【背景技术】
[0002]某些客户端应用程序(如移动应用程序)采用4-6位数密码吣来防御未获授权的访问。这本身是一种弱式验证,5位数密码仅能提供100000种组合,通过“暴力破解”(即尝试每种组合)即可轻易猜出真正的密码。
[0003]为克服这一问题,多数移动应用程序并不在本地移动客户端上存储敏感数据,而且在几次错误尝试输入密码之后即实行封锁方案,在服务器上执行该封锁方案。然而,对于移动应用程序,在移动客户端存储数据有利于断开网络连接后的访问和分析。因此,需要安全访问本地存储的数据,幸免于暴力破解。
【发明内容】
[0004]根据本发明的一方面,提出根据权利要求1所述的方法。根据本发明的另一方面,提出根据权利要求4所述的方法。
[0005]在本发明一实施方案中,用户在装置上输入包含多条线条的图形化图案。通过相对长度、总体方向及曲率将这些线条分类。在线条起始于新位置的情况下,需将相对先前始点的方向考虑在内。然后,将这组线条序列化为键值,该键值可继而用于加密和/或解密存储于装置的数据。这使数据能够安全存储,其原因在于密钥是在运行时间由用户提供,而非自身存储于装置。
[0006]图案可由多个线条或笔画组成。每一线条均可是直线或曲线,并且每一线条均可从前一线条的端点延续或从新的位置开始,通过方向的显著变化识别新的线条。图案可类似于签名或许多用户所熟知类型的手势。
[0007]然后,通过相对长度、总体方向及曲率将输入图案的线条分类。在线条起始于新位置的情况下,需将相对先前始点的方向考虑在内。然后,将这组线条序列化为键值。
[0008]键值可继而用于解密存储于装置的数据。这使数据能够安全存储,其原因在于密钥是在运行时间由用户提供,而非自身存储于装置。较佳地,序列化过程是基于每一线条的向量,而非任何底层网格。
【专利附图】
【附图说明】
[0009]下面,仅通过举例方式参照下述附图详细说明本发明的实施方案。
[0010]图1是在本发明一实施方案中连接至移动数据系统的移动装置的示意图;
[0011]图2表示移动装置上的验证输入屏;
[0012]图3是在所述实施方案中密钥生成过程的流程图;
[0013]图4是在所述实施方案中密钥注册过程的流程图;
[0014]图5是在所述实施方案中验证过程的流程图。
【具体实施方式】
[0015]参照图1,在本发明一实施方案中的移动装置1包括至少一处理器2,该处理器2包括例如硬件及应用平台、运行至少一个应用程序3并连接至存储数据7(如账户数据)的存储器6。应用平台可以是移动操作系统,诸如苹果操作系统)、如安卓操作系统)或03(黑莓操作系统应用程序3可包括程序代码,该程序代码可加载或下载至移动装置1。
[0016]移动装置1具有显示器4及图形输入装置5,例如这二者可以是独立部件或集成为触摸屏。可采用其他可选或附加的图形输入装置,诸如轨迹球、轨迹板、运动传感器或鼠标。
[0017]移动装置1可经由网络接口 8通过移动网络9与移动网关10通信,该移动网关10提供对远程数据库11的访问,例如用于检索数据,从而本地加密存储于存储器6。移动网络9可以是支持无线数据连接协议的蜂窝网络,诸如⑶或36。
[0018]概述
[0019]应用程序3利用至少一密钥加密或解密数据7,该密钥的生成过程如下述。
[0020]在初始注册阶段,提示用户输入用于生成密钥的图形化图案。可要求用户多次(如3次)输入相同的图形化图案,可利用由多个输入图案派生出的图形化图案近似值生成密钥。然后,从远程数据库11检索数据,利用密钥将其加密并本地存储为数据7。数据7可包括敏感的用户数据,该数据被应用程序3解密并在显示器4上呈现于用户。
[0021]为对应用程序3和/或数据进行后续访问,用户需要输入与注册阶段生成的图形化图案近似的图形化图案。密钥由所输入的图形化图案生成并用于尝试解密数据7。原始输入密钥及新输入密钥之间的细微不匹配仍能使数据解密。通过这种方式,原始输入的密钥无需存储于移动装置并由此不会由于受到访问以致威胁数据7的安全性。
[0022]即便在移动装置1并未连至移动网关10的情况下,亦可启用应用程序3访问数据7。因此,不能实行服务器端的封锁。反之,如下所述,用户验证足以抵御“暴力破解”。然而,应用程序3会执行本地封锁,例如通过在预定数目的用户验证尝试失败之后关闭或暂停。
[0023]优选地,密钥生成方法的熵足以抵御暴力破解,例如接近128位高级加密标准(八£3)的熵。而在用户输入时,输入的图形化图案会稳定生成相同的密钥,例如成功率大于80%。
[0024]密钥生成
[0025]现参照图2和图3,阐述密钥生成的一较佳方法。图2表示由移动装置上的应用程序3生成的用户验证页面,在该例中,移动装置具有形成显示器4和图形输入装置5的触摸屏。图3是如应用程序3所执行的密钥生成过程的流程图。
[0026]受到提示时,用户画出包括一序列线条(在该例中引用三条线11、12和13)的图形化图案并选择输入该图形化图案(步骤31)。例如通过识别线条之间方向的中断或间断变化,将输入的图形化图案分为一序列线条(步骤32)。
[0027]然后,利用下列基于向量的参数将各线条分类:
[0028]方向-定义为相对于第一条线的方向所成角度。360度角被分成九等分,将第一条线的方向指定为方向0(参见步骤37)并相对于该方向0定义后续线条的方向。由于线条可能呈弯曲形,线条的方向可取自其始点及终点。亦或,可采用线条的平均或近似总体方向。
[0029]长度-识别图案中最长的线条(步骤33),并根据其他各线条的长度与最长的长度的比例将其长度分类为短(切.33)、中(^0.66)或长00.661每一条线的长度均可看作其始点与终点间的距离或沿线条的实际长度。
[0030]曲率-记录线条通过的不同方向的数量并将其用来测量线条的曲率。将仅通过1或2个方向的线条归类为直线,通过多达5个方向的线条被认为呈“曲形”,通过多于5个方向的线条被认为呈“圆形”。
[0031]始点-倘若线条由前一线条延续,则不存在始点;倘若线条具有新的始点(步骤310),则输出相对先前始点的方向(步骤311)。
[0032]对于记录的每一线条,应用各自的分类器并由参数值的结果串派生出密钥(步骤317)。例如,对于图2所示的图案,
[0033]派生的字符串为:
[0034]^1)0 1|4 勵 8|2
[0035]其中随后是整数,其是新的始点,随后是其相对先前始点的方向。由于第一条线11没有先行线,则在这种情况下方向为空(“一”)。该线条本身则以“[”代表长、以“)”代表弯曲且以“0”代表方向,对于第一条线,该方向始终为0。
[0036]下一条线12的“I”代表长,“ | ”代表在方向4的直线,由于线条12是由先前线条11延续,因此其不具有始点。最后一条线[3具有新始点,该新始点是相对先前始点的方向0,该始点在图2中表示为圆点。线条13是短直线并处于方向2。
[0037]如图所示,第一条线之后的各条线具有:
[0038]10种始点(没有始点或相对先前始点的九个方向之一上的始点);
[0039]3种可能长度;
[0040]3中可能曲度;以及
[0041]9种可能方向。
[0042]这给出每条线总计10x3x3x9 = 810种组合。由于第一条线的始点及方向固定,其仅具9种组合。因此,图2中简单的3条线示例具有9x810x810或约六百万种组合,这比5位数密码强60倍且输入更快。6条线的图案给出的熵是56位对称密钥(023密钥)的30倍且比18位密码更强,因此多线条图案极具安全性。
[0043]倘若用户不能确实有效地重复图案,则安全性用途受到局限。在图案过长时,待分类的线条存在差异的余地更大,这会在更大程度上成为问题。在将临界情况归类至邻近离散值的情况下,还可能出现“量化误差”。
[0044]利用第一条线的方向作为对于其它所有线条的参考方向有助于提高可重复性,其原因在于图案毋须与任何参考方向一致,但仍会发生量化误差。同样地,由于采用硬阈值来分类长度及曲度,它们也可能被量化成错误值。
[0045]注册
[0046]为采用密钥来验证和加密/解密,需首先在应用程序注册密钥。现参照图4的流程图阐述一种例如由应用程序3所执行的密钥注册的方法。
[0047]为将量化及其他误差减至可接受的数量,在注册期间请求用户多次(如4次)输入其拟定图案(步骤町至旧)。对图案进行比较并发现:
[0048]线条或始点数目发生变化(步骤财),在任一情况下,图案均无法使用且注册失败(步骤尺5);并且
[0049]参数值由于量化误差而发生变化(步骤册),这种变化常见于较多线条的图案并可通过创建识别已知错误区域的密钥掩码进行处理(步骤1^7)。
[0050]然后,通过利用掩码落入的邻近量值,掩码可用于生成一系列潜在密钥。例如,在如图2所示图案的注册中,生成两个相似密钥:
[0051]1(67 1-^.1)0 1|4 勵 8|2
[0052]1(67 2-^1) 0 11 5 ^0 11 2
[0053]这两个密钥长度相同,由此可在步骤34下接受,但在第二条线上,在不同情况下对方向的量化不同,在最后一条线上,在长度上发生同样的情况。为允许这种变化,生成掩码,该掩码表示这两个位置存在错误,由此应利用在这两个位置的邻近值生成一系列密钥。
[0054]^1)0 1|4 勵 8|2
[0055]^1)0 1|4 勵 1|2
[0056]^1)0 1|5 勵 8|2
[0057]^1)0 1|5 勵 1丨2
[0058]由此,需尝试4个不同的密钥,从而确保所有有效组合均被接受。为确保这一点,生成掩码并在本地存储该掩码,例如存储于存储器6中,用来指示需尝试邻近值的位置。例如,掩码可表示为“^^.—.—”,其中点表示在试图解密数据7时需通过应用程序3对所输入内容的邻近值进行尝试。
[0059]存在超过数百个潜在密钥的情况下,处理器2上的负载及由此使用户经受的延迟并不能被接受,因此实际上限制了可随机尝试的密钥的数目。而且,也不应由于生成过多密钥而使熵过弱。在上述示例中,六百万种可能的密钥已缩减为极少的4种,而使解决方案对用户而言非常实用。然而,在注册时输入的图案之间的参数若存在过多变化,则注册会失败。例如,可能还有准许“弱位置例如掩码中的点)的阈值或比数,倘若超过阈值则注册失败。
[0060]在一变换方法中,无需尝试一系列密钥,在注册时检测到变化的位置,分类器可降级到较少的数值。例如,倘若特定长度可能错误归类为3或1,则可在仅具两种可能值3或I的位置使用备选(例如粗选)分类器。同样的方法可用于其它参数值。掩码可表明应采用备选分类器的位置。
[0061]然后,利用安全散列函数(例如3^1)将以上派生的密钥字符串散列,继而将该值用作仙3-128密钥(步骤狀)。然后,可将密钥用于加密和/或解密存储于存储器6中的数据7。
[0062]验证
[0063]现参照图5阐述一种例如由应用程序3所实施的验证过程。用户输入图形化图案,由其生成输出字符串(步骤八1,对应于步骤31-3161可利用与注册时所用的密钥生成模式(参见步骤狀)相同的模式,应用任一所储存的掩码(参见步骤87),由该输出字符串派生一个或多个密钥(步骤八2),因此结果可能是多个密钥。
[0064]为确定输入的图案正确与否,派生的密钥可或均可用于解密存储于存储器6中的包含加密的已知值的数据包(步骤八4〉。假使在解密后得到已知值(步骤八5),则获悉密钥正确且验证成功(步骤八7);对移动应用程序的访问可获授权,派生的密钥可用于加密/解密数据7。假使利用密钥或任意密钥均未得到已知值,则授权失败(步骤八8);对移动应用程序的访问被拒,无可用的派生密钥能够解密数据7。
[0065]作为解密已知值的可选方案,数据7可包括误差检测或校正位,派生的密钥可或均可用于解密未含已知值的数据7。假使在解密的数据7中检测到错误,则授权失败(步骤八8)。
[0066]计算机程序
[0067]应用程序3可作为计算机程序执行,该计算机程序可存储于或具身于计算机程序媒介或计算机可用媒介中。所述媒介可包括移动存储媒介(如磁盘或非易失性存储器)或信号(如电子信号、光信号或电磁信号可通过网络(如移动网络9)或经由直接连接将应用程序下载至移动装置。应用程序3可以是离散应用程序或可表现为操作系统或平台功會泛。
[0068]可选的实施方案可实现为硬件、固件、软件或其任意组合中的控制逻辑。如上所述,应用程序的功能可表现为离散软件模块。
[0069]其他实施方案
[0070]通过举例方式对上述实施方案加以阐述,而本领域技术人员通过阅读本文容易得出的可选实施方案仍属权利要求保护的范围。
【权利要求】
1.一种生成密钥的方法,该密钥用于加密和/或解密本地存储于一装置的数据,该方法包括: (i)接收一用户输入所述装置的一图形化签名; (ii)针对所述图形化签名的多个预定参数派生值;以及 (iii)由所述派生的值生成该密钥。
2.如权利要求1所述的方法,该方法包括利用生成的该密钥加密和/或解密数据。
3.如权利要求2所述的方法,该方法包括利用该密钥解密所述数据,若成功解密数据则验证该用户。
4.一种在一移动装置上验证用户的方法,该方法包括: (i)接收一用户输入所述装置的一图形化签名; (?)针对所述图形化签名的多个预定参数派生值;以及 (iii)借助派生的值验证该用户。
5.根据任一前述权利要求所述的方法,其中针对预定参数中至少一参数派生的值为相对值。
6.根据任一前述权利要求所述的方法,其中将派生值量化为少数的离散值。
7.根据任一前述权利要求所述的方法,其中所述预定参数包括所述图形化签名的一条或多条线的长度、方向及曲度。
8.如权利要求7所述的方法,其中所述预定参数包括所述一条或多条线的相对始点。
9.根据任一前述权利要求所述的方法,该方法包括检测多个接收到的所述图形化签名之间的参数值的变化并将所述变化的记录本地存储于所述装置,其中所述记录用于允许随后接收的图形化签名中的变化属于先前检测到的变化。
10.如权利要求9所述的方法,其中所述记录包括一表示所选的参数值变化的掩码。
11.根据权利要求9所述的方法,该方法包括扩展对其中已检测到变化的所选参数值的量化大小。
12.一种配置为当用一适当设置的处理器处理时执行任一前述权利要求所述方法的计算机程序。
13.一种设置用于执行权利要求1至11中任一项所述方法的移动装置。
14.一种移动装置,该移动装置包括存储数据的存储器、一运行应用程序的处理器及一图形输入装置,其中所述图形输入装置设置成接收一用户的一图形化签名,所述应用程序设置成对所述图形化签名的多个预定参数派生值并由所派生的值生成一密钥;其中所述密钥可用于加密和/或解密数据。
15.一种移动装置,该移动装置包括存储数据的存储器、一运行应用程序的处理器及一图形输入装置,其中所述图形输入装置设置成接收一用户的一图形化签名,所述应用程序设置成对所述图形化签名的多个预定参数派生值并借助所派生的值验证所述用户。
【文档编号】H04L9/08GK104471892SQ201180076221
【公开日】2015年3月25日 申请日期:2011年12月2日 优先权日:2011年12月2日
【发明者】安德鲁·惠利, 乔治·弗伦奇, 杰里米·戈德斯通, 伊恩·塞耶斯 申请人:巴克莱银行公开有限公司