对用户进行鉴权的方法、装置及计算机设备与流程

文档序号:12035027阅读:164来源:国知局
对用户进行鉴权的方法、装置及计算机设备与流程

本发明涉及计算机领域,尤其涉及计算机领域对特定访问对象进行基于权限的保护。



背景技术:

计算机已经在企业、院校、研究机构及家庭得到了广泛的普及。从环境保护、空间节省、方便访问等角度出发,人们喜欢将各种信息、数据存储在计算机硬盘或是移动存储设备(例如,闪存,也称u盘)中。通过计算机,用户还可以实现对内部网络(例如企业内网(intranet))和互联网的访问。

与此同时,数据、专有网络的所有者(例如,企业)希望用户(例如,企业员工)对网络、数据的访问是受到权限限制的,于是,产生了基于权限的访问控制。例如,企业向员工发放存有企业专有的付费软件、数据库的u盘,并告知一个固定的授权码,员工需要通过计算机使用该付费软件或数据库时,将u盘插入计算机,系统会优先弹出一个对话框,要求用户输入该授权码,这在一定程度上保障了付费软件、数据库等受保护对象的基于权限的使用。



技术实现要素:

有鉴于此,根据本发明的实施例,提出了对用户进行鉴权的方法、鉴权装置及包含该鉴权装置的计算机设备,即使知悉授权码的人员离开原公司或将u盘恶意赠与他人,权限的管理者仍然能够实现对受保护对象的访问的限制。

具体地,根据本发明的第一方面的实施例,提供了对用户进行鉴权的鉴权装置,包括:一生成单元,配置为根据时间信息生成授权码;一发送单元,配置为将生成的所述授权码提供给所述用户。

根据时间信息生成授权码,使得授权码变得与时间相关,那么当时间变化时,授权码也可以根据需要而发生变化,从而使授权码具有时效性,非法用户即使一时获知了授权码,该授权码也将在一段时间后失效,该非法用户将因此不能再继续访问受保护对象。

可选地,该鉴权装置还包括:一接收单元,配置为接收所述用户输入的待检验的授权码;一处理单元,配置为对所述待检验的授权码进行检验,以得到对所述用户的鉴权结果。

由于授权码与时间相关联,因此,当处理单元将用户输入的授权码用于检验时,将会知道该授权码的时效是否仍在,从而实现对用户的鉴权。其中,对授权码的检验有多种方式,将在下文中详述。由此,避免了恶意用户或无权限的用户长时间享有对受保护对象的访问权限。

可选地,该鉴权装置还包括:一解析单元,配置为对所述待检验的授权码进行解析,所述解析包括尝试由所述待检验的授权码恢复出用于生成所述待检验的授权码的时间信息;所述处理单元配置为,当所述解析单元恢复出用于生成所述待检验的授权码的时间信息时,将恢复出的所述时间信息与参考时间比较,并根据比较结果得到所述鉴权结果。

对待检验的授权码的检验可以是将其与参考授权码直接比对,由于参考授权码是定期根据时间信息更新的,于是,旧的授权码会在下一次更新后(例如,每季度即每3个月更新一次)失去时效性,也即,不再能与参考授权码匹配,导致鉴权失败。

另外,也可以选择将授权码进行解析,尝试恢复出生成时所用的时间信息,借此,也可以获得一些额外的信息,系统收到的授权码如果恢复出了一个较早的时间信息,则说明是用户仍在使用原来的老的授权码尝试访问。而如果是授权码无法恢复出一个时间信息,则可能是用户偶然输错或无权限用户在进行恶意的尝试。

可选地,所述时间信息包括一年份信息和一月份信息,所述授权码包括一第一码段、一第二码段和一校验码段,所述第一码段、第二码段均为所述年份信息和月份信息的函数,所述校验码段根据所述第一和第二码段生成。

第一、第二码段根据年份和月份信息生成,保证了授权码的时效性,而基于第一、第二码段生成的校验码,则进一步增强了授权码面对恶意破解的鲁棒性。

可选地,所述生成单元配置为每个季度更新所述授权码。

如此,通过年份信息和月份信息,可以灵活地生成需要的授权码,这个授权码可以是每月更新的,也即每个月使用当月的月份信息来生成授权码,也可以是每个季度更新的,也即每个季度均使用其中例如第一个月的月份信息来生成授权码。授权码的更新频率决定了权限管理者的工作的复杂度,越频繁则复杂度越高,但安全性越好,管理者可以根据需要自行决定。

可选地,所述生成单元根据以下操作生成所述第一、第二码段:根据以下公式生成与所述第一码段对应的一第一值和与所述第二码段对应的一第二值:公式1:第一值=y2-a*y+b;第二值=m3+c*m2+d*m+e*y+f;或者公式2:第一值=(y-g)*(y+h)+i+m;第二值=(m+j)3+k*m+l*y;对生成的所述第一值和第二值分别进行处理,以生成所述第一码段和第二码段; 其中,y表示所述年份信息,m表示所述月份信息,a,b,c,d,e,f,g,h,i,j,k,l为常量。

如此,可以实现由时间信息得到唯一的授权码,并根据授权码逆向运算可以得到唯一的解,即生成该授权码时所用的年份和月份信息。

可选地,所述生成单元根据以下公式对所述第一值和第二值进行处理,生成所述第一码段和第二码段,其中,所述第一码段和第二码段分别包含三个字符:公式3:第一码段的第一字符=int(第一值/1296);第一码段的第二字符=int(第一值/36)mod36;第一码段的第三字符=第一值mod36;公式4:第二码段的第一字符=int(第二值/1296);第二码段的第二字符=int(第二值/36)mod36;第二码段的第三字符=第二值mod36。

与前述相对应地,上述运算保证了用三个字符来表示第一码段和第二码段,且其逆向运算可以得出唯一的解,即唯一的年份和月份信息组合。

根据本发明的第二方面的实施例,提供了计算机设备,包括前述任一对用户进行鉴权的鉴权装置。

该计算机可以是用户使用的本地计算机,也可以是网络侧的专门用于鉴权的服务器,实现对受保护对象的访问的基于权限的控制,且用户得到的授权码具有时效性,如果不能及时获得更新的授权码,将无法用旧的授权码继续访问。

根据本发明的第三方面的实施例,提供了在计算机设备中对用户进行鉴权的方法,包括以下步骤:根据时间信息生成授权码;将生成的所述授权码提供给所述用户,所述用户可在之后需要鉴权时,输入所述授权码。

根据时间信息生成授权码,使得授权码变得与时间相关,那么当时间变化时,授权码也可以根据需要而发生变化,从而使授权码具有时效性,非法用户即使一时获知了授权码,该授权码也将在一段时间后失效,该非法用户将因此不能再继续访问受保护对象。

可选地,该方法还包括以下步骤:接收所述用户输入的待检验的授权码;对所述待检验的授权码进行检验,以得到对所述用户的鉴权结果。

由于授权码与时间相关联,因此,用户输入的授权码用于检验时,将会知道该授权码的时效是否仍在,从而实现对用户的鉴权。其中,对授权码的检验有多种方式,将在下文中详述。由此,避免了恶意用户或无权限的用户长时间享有对受保护对象的访问权限。

可选地,该方法还包括以下步骤:对所述待检验的授权码进行解析,所述解析包括尝试由所述待检验的授权码恢复出用于生成所述待检验的授权码的时间信息;所述检验 步骤还包括,当所述解析单元恢复出用于生成所述待检验的授权码的时间信息时,将恢复出的所述时间信息与一参考时间比较,并根据比较结果得到所述鉴权结果。

对待检验的授权码的检验可以是将其与参考授权码直接比对,由于参考授权码是定期根据时间信息更新的,于是,旧的授权码会在下一次更新后(例如,每季度即每3个月更新一次)失去时效性,也即,不再能与参考授权码匹配,导致鉴权失败。

另外,也可以选择将授权码进行解析,尝试恢复出生成时所用的时间信息,借此,也可以获得一些额外的信息,系统收到的授权码如果恢复出了一个较早的时间信息,则说明是用户仍在使用原来的老的授权码尝试访问。而如果是授权码无法恢复出一个时间信息,则可能是用户偶然输错或无权限用户在进行恶意的尝试。

由于本发明的实施例采用随时间变化的授权码,使得即使知悉授权码的员工离职,他/她也将很快无法继续对受保护对象的访问/使用,对于用户恶意泄露授权码给外部人员甚至是竞争对手的人员,都起到了一定的防范和抵御作用。另外,一些实施例中将对专有移动存储设备的设备标识的识别与时变授权码相结合,可以有效地防范对原始的移动存储设备的复制及相应的不当使用。

附图说明

下面将通过参照附图详细描述本发明的优选实施例,使本领域的普通技术人员更清楚本发明的上述及其它特征和优点,附图中:

图1为根据本发明的实施例的对用户进行鉴权的方法、鉴权装置的一种典型使用环境的示意图。

图2为根据本发明的实施例的对用户进行鉴权的鉴权装置的示意性框图。

图3为根据本发明的实施例的对用户进行鉴权的方法的流程示意图。

标号说明:

1移动存储设备

2计算机

3服务器

4网络

20鉴权装置

210生成单元

220发送单元

230接收单元

240解析单元

250处理单元

22生成的授权码

24待检验的授权码

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明进一步详细说明。

虽然示例性实施例可以有多种修改和替换形式,但是在附图中以举例的方式示出了其中的一些实施例,并且将在这里对其进行详细描述。但是应当理解的是,并不意图将示例性实施例限制到所公开的具体形式,相反,示例性实施例意图涵盖落在权利要求书的范围内的所有修改、等效方案和替换方案。相同的附图标记在各幅图的描述中始终指代相同的单元。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被 称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。

除非另行定义,否则这里使用的所有术语(包括技术和科学术语)都具有与示例性实施例所属领域内的技术人员通常所理解的相同的含义。还应当理解的是,除非在这里被明确定义,否则例如在通常使用的字典中定义的那些术语应当被解释成具有与其在相关领域的上下文中的含义相一致的含义,而不应按照理想化的或者过于正式的意义来解释。

示例性实施例的一些部分和相应的详细描述是通过计算机存储器内的软件或算法以及对于数据比特的操作的符号表示而给出的。这些描述和表示是本领域技术人员用以向本领域其他技术人员有效地传达其工作实质的描述和表示。正如其通常被使用的那样,这里所使用的术语“算法”被设想成获得所期望的结果的自相一致的步骤序列。所述步骤是需要对物理数量进行物理操纵的那些步骤。通常而非必要的是,这些数量采取能够被存储、传输、组合、比较以及按照其他方式被操纵的光学、电气或磁性信号的形式。主要出于通常使用的原因,已经证明有时把这些信号称作比特、数值、元素、符号、字符、项、数字等等是便利的。

在后面的描述中将参照可以被实施为程序模块或功能处理的动作以及操作的符号表示(例如以流程图的形式)来描述说明性实施例,所述程序模块或功能处理包括实施特定任务或者实施特定抽象数据类型的例程、程序、对象、组件、数据结构等等,并且可以利用现有网络单元处的现有硬件来实施。这样的现有硬件可以包括一个或更多中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路、现场可编程门阵列(fpga)计算机等等。

但是应当认识到,所有这些以及类似的术语应当与适当的物理数量相关联,并且仅 仅是被应用于这些数量的便利标签。除非明确地另行声明或者从讨论中可以明显看出,否则例如“处理”、“计算”、“确定”或“显示”等术语指的是计算机系统或类似的电子计算设备的动作和处理,其对被表示为所述计算机系统的寄存器和存储器内的物理、电子数量的数据进行操纵,并且将其变换成被类似地表示为所述计算机系统存储器或寄存器或者其他此类信息存储、传送或显示设备内的物理数量的其他数据。

还应当提到的是,示例性实施例的软件实施的方面通常被编码在某种形式的程序存储介质上或者通过某种类型的传送介质来实施。所述程序存储介质可以是磁性(例如软盘或硬盘驱动器)或光学(例如紧致盘只读存储器或“cdrom”)存储介质,并且可以是只读或随机存取存储介质。类似地,所述传送介质可以是双绞线、同轴电缆、光纤或者本领域内已知的某种其他适当的传送介质。示例性实施例不受任何给定实现方式的这些方面的限制。

处理器和存储器可以一同操作来运行装置功能。举例来说,存储器可以存储关于装置功能的代码段。所述代码段又可以由处理器执行。此外,存储器可以存储处理变量和常数以供处理器使用。

需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(asic)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

参看图1,其中示出了根据本发明的实施例的对用户进行鉴权的方法、鉴权装置的一种典型使用环境的示意图。

图1中示出了移动存储设备1,计算机2,用于权限管理的服务器3以及网络4。其中移动存储设备1典型地可以是u盘,例如在公司甲的员工乙b入职时发给员工,移动存储设备1上可以存储有专有数据、专有程序等,公司甲通过自主开发或付费购买许可而获得对数据、程序的使用权限,因此希望员工对数据、程序的使用是符合公司的期望的,而不是为了个人的目的或是为了公司以外的其它人或企业的利益而使用。

计算机2一般是一台台式或笔记本电脑,其可以与移动存储设备1匹配地使用,例如,如果移动存储设备1是u盘,则可以插入到计算机2的usb接口中。在不同的例子中,计算机2既可以自身集成对用户进行鉴权所需的软件、程序等,也可以只是充当一 个受保护对象的角色。例如,在一个例子中,对用户鉴权的鉴权装置20可以是计算机2的一部分(例如,通过计算机2的处理芯片及安装的安全程序来实现),而在另一个例子中,计算机2只为存有受保护对象的移动存储设备1提供一个供用户调用,访问网络的接口,在又一个例子中,计算机2可以自身就存储有受保护对象(例如,公司专有数据等),在后两种例子中,用户的鉴权由下文提到的服务器3完成。

服务器3,不同于计算机2,它并非供个人用户2的日常办公等使用,而是被主要赋予了对各个用户的对受保护对象的访问进行预先的鉴权,其主要是通过接收用户输入的待检验的授权码后,对其进行解析,也即一种逆运算,得到生成该待检验授权码时所用的时间信息,再将所得的时间信息与当前生效的参考时间进行比较,从而得到鉴权结果。如前对计算机2进行说明时提到的,上述的鉴权操作在一些例子中也可以由计算机2代替服务器3完成。不失一般性地,服务器3一般由公司内负责管理用户权限的人员(例如,信息安全中心等)专门负责。

网络4可以是公司甲的内部网络,也可是互联网,尤其当其是公司内网时,本发明实施例中对用户的鉴权过程可以是对用户访问网络4的限制,例如,当用户无法通过所述鉴权时,就将无法访问网络4。这在网络4上连接了其它重要服务器、存储器时,尤其有利于公司的数据、信息安全。

以下参照图2并结合图1对根据本发明的实施例的对用户进行鉴权的鉴权装置20进行详述,该鉴权装置20的一个例子如图2所示。

图示的鉴权装置20包括生成单元210,发送单元220,接收单元230,解析单元240,和处理单元250,在一些例子中,该解析单元240是可以省略的。

以下结合几个假设的场景来更清楚地介绍鉴权装置20的各个部件的功能:

场景1:公司甲新进员工乙,乙因工作需要配备了存有公司专有数据的u盘(结合图1的附图标记下称u盘1),还配备了一台笔记本电脑(结合图1下称计算机2),公司内由安全中心运行的服务器(结合图1下称服务器3)来控制公司内部所有员工对各自的u盘的使用。

生成单元210定期地(例如,每个季度也即一年4次)生成/更新授权码22,生成的授权码22可以优选地经过公司甲与员工乙之间的安全通信(例如,公司邮箱系统,发送单元220的一个实现方式)告知给用户。于是,理论上这个用户在未来的一个季度内,都可以凭该授权码实现对受保护对象的访问,通过服务器3所执行的鉴权。也即,当用户(本例中即员工乙)将u盘1插入计算机2,u盘1可以自动运行一个鉴权程序,或 者计算机2识别出插入的是u盘1则优先弹出一个窗口要求用户完成鉴权。于是,用户输入自己被告知的授权码,此时由于输入的授权码还未通过解析,所以我们将其称为待检验的授权码,并使用与发送单元220提供的授权码22不同的附图标记24。

接收到的用户输入的待检验的授权码可以直接提供给处理单元250,并由处理单元250将其与一个预存的参考授权码相比对,比对的结果将导致不同的鉴权结果,也即,如果输入的授权码与参考授权码不一致,则鉴权失败,用户的访问请求被拒绝。反之,如果输入的授权码与参考授权码一致,则鉴权成功,用户被允许访问该受保护的对象。不失一般性地,该的参考授权码可以是生成单元210最近一次生成或更新授权码时生成并保存在服务器3处的,它与最近一次告知给用户的授权码相一致,因此,如果是有权限的用户在该授权码有效期内发起的鉴权请求,其结果应该是鉴权通过。

在一个变化例中,输入的待检验的授权码24由接收单元230接收后提供给解析单元240。如果我们把生成单元210看作是一个编码装置,也即把时间信息编码为授权码22,那么,解析单元240就可以看作相应的解码装置,它尝试将接收到的待检验的授权码24解析为时间信息,如果解析出的时间信息恰好是参考时间(例如,服务器3的当前年、月),则可以认为鉴权成功,如果解析不出时间信息(例如,用户输错授权码导致解析单元240无法求解),或者解析出的时间信息与参考时间不匹配,则认为鉴权失败,用户无法使用/访问受保护对象。具体地,由处理单元250来完成对鉴权结果的上述判断。

上述的解析出的时间信息与参考时间不匹配的典型的例子如,授权码22于每个季度的第一天生成后提供给用户,员工乙在2016年1月1日获得这个授权码(为了区分称“1季度授权码”),并正常使用直至3月20日离职,且离职时未上交u盘1。则离职后直到2016年3月31日,如果鉴权过程仍能访问到服务器3,则前员工乙可凭1季度授权码继续使用u盘1上的受保护数据/软件。但到了4月1日,由于鉴权装置20开始使用新的月份信息(例如,年份信息“2016”和月份信息“4”)进行鉴权,因此,当解析单元240对乙输入的1季度授权码进行解析并解析出年份信息“2016”和月份信息“1”后,处理单元250会将“2016”和“1”与“2016”“4”比较,发现不匹配,于是鉴权失败。

本领域技术人员理解,生成单元210和发送单元220更新授权码以及处理器250更新其参考时间的周期可以是多种多样的。可以根据实际情况,更频繁或更不频繁地更新,以适应实际的需要。而这些变形和变化都在本发明的精神的范围之内。

根据一个变化例,发送单元220还可以通过手机短信、推送窗口等其它方式将生成 的新的授权码告知用户。

根据一个例子,生成单元210生成的授权码22包括第一码段、第二码段和校验码段,第一、第二码段分别为年份信息和月份信息的函数,校验码段则根据第一和第二码段生成,所以也可以是年份信息和月份信息的函数。其中,为了适应授权码的每月、每季度变化的区别,可以对生成单元210进行配置,例如,以每季度变化为例,生成单元210在1月份生成授权码时,可以使用“1”作为月份信息,而在3月份如果也需要生成授权码,则仍使用“1”作为月份信息。如果每月变化,则生成单元210每个月更换所用的月份信息。同样,处理单元240也被配置,当授权码每季度变化时,1-3月可以都使用“1”作为参考时间中的月份信息,直到4月才将参考时间中的月份信息更新为“4”,而如果授权码每月变化,则每个月的参考时间均以当月的实际月份信息为准。

由以上内容可见,解析单元240得到确定的解析结果,对于处理单元250得到正确的比对和鉴权结果是十分重要的。为此,生成单元210以时间信息为参数生成授权码22的过程(解析单元240所执行操作是生成操作的逆向运算过程)希望得到这样的授权码,即,授权码22可以经解析单元240解析出生成授权码22时所用的年份信息和月份信息,并且,该解析有唯一的解。

在一个例子中,生成单元210根据以下操作生成该第一、第二码段:

步骤1:根据以下公式生成与第一码段对应的第一值和与第二码段对应的第二值:

公式1:第一值=y2-a*y+b;第二值=m3+c*m2+d*m+e*y+f;或者

公式2:第一码段=(y-g)*(y+h)+i+m;第二码段=(m+j)3+k*m+l*y;

步骤2:对生成的第一值和第二值分别进行处理,以生成第一码段和第二码段。

其中,y表示年份信息,m表示月份信息,a,b,c,d,e,f,g,h,i,j,k,l为根据前述规则确定的常量。

具体地,生成单元210根据以下公式对第一值和第二值进行处理,生成第一码段和第二码段,其中,第一码段和第二码段分别包含三个字符,例如,第一码段表示为abc,第二码段表示为def。

公式3:第一码段的第一字符=int(第一值/1296);第一码段的第二字符=int(第一值/36)mod36;第一码段的第三字符=第一值mod36;

公式4:第二码段的第一字符=int(第二值/1296);第二码段的第二字符=int(第二值/36)mod 36;第二码段的第三字符=第二值mod36。

其中,int表示求整(不进行四舍五入),mod表示取余。

以下是用公式1、3和4来生成授权码的介绍:

首先,公式1的一个具体例子如:

第一值=y2-3687*y+3374700;

第二值=m3+70*m2+1587*m+11*y+12176。

实用中,生成单元210将具体年份信息和月份信息代入y和m的取值即可。例如,以2016年1月为例,y=2016,m=1,则第一值=20162-3687*2016+3374700=5964,第二值=13+70*12+1587*1+11*2016+12176=36010。

相应地,根据公式3和公式4计算各个码段的各个字符,其中,各个码段的字符的取值f(x)遵循以下关系:f(x)=x,x=0,1…,9;f(x)=“a”~“z”,x=9,10…35

第一码段的第一字符,a=int(5964/1296)=4;

第一码段的第二字符,b=int(5964/36)mod36=21=l;

第一码段的第三字符,c=5964mod36=24=o。

第二码段的第一字符,d=int(36010/1296)=27=s;

第二码段的第二字符,e=int(36010/36)mod36=28=t;

第二码段的第三字符,f=36010mod36=10=b。

根据一个例子,校验码段可以包含4个字符,α,β,γ,及δ,表示如下,其中round为四舍五入操作:

α=round(a/3+b/3+10)

β=round(b/3+d/3+f/3)

γ=round(c/3+f/3)

δ=round(c/3+e/3+8)

至此,可以得到由10个字符组成的授权码abcdefαβγδ。根据一个替代例,原始的授权码可以再经过一次编码(例如,打乱字符间的顺序)而作为真正的授权码。

上述的计算是可逆的,也即,当上述授权码被提供给解析单元240时,能够解析出唯一的解,年份信息“2016”和月份信息“1”。

场景2:(接场景1)员工乙合同期满未续签劳动合同,离职但未归还u盘1到公司的安全中心。

由于乙离职却未归还u盘1,虽然在授权码未更新的这段时间他/她或许仍能接入,但一旦授权码更新,处理单元250用于鉴权比对的参考时间将会变更,原始的授权码经解析单元240的解析将无法得到与新的参考时间相匹配的年份和月份信息,导致鉴权失败,由于年、月组合没有重复性,该用户之前持有的授权码将永远无法通过所述鉴权。而如果是直接将授权码与参考授权码比较,则将得出输入的授权码与参考授权码不一致的结论,同样,鉴权失败。

场景3:(接场景1)员工乙的u盘1不慎遗失,被竞争对手公司的员工丙拾得。

与场景2同,员工丙因无法获知新的授权码,在授权码和参考时间更新后将失去继续访问受保护对象的机会。

场景4:(接场景1)员工乙将u盘1交给竞争对手公司的员工丁,并告知其最近的授权码。

优选地,公司甲应定期检查各个员工的u盘的持有情况,如发现有人遗失或不再持有u盘,则将停止向其告知新的授权码,由此,可以防止员工丁始终知晓最新的授权码。

图3为根据本发明的实施例的对用户进行鉴权的方法的流程示意图,其主要示出了在终端用户尝试鉴权时的操作步骤,一般地,在服务器3端,会预先定期地生成授权码,并将其通过某种交互方式提供给所述用户。而后的鉴权过程可以描述为以下步骤:

以下结合几个假设的场景来更清楚地介绍对用户进行鉴权的方法各个步骤:

场景1:公司甲新进员工乙,乙因工作需要配备了存有公司专有数据的u盘(结合图1的附图标记下称u盘1),还配备了一台笔记本电脑(结合图1下称计算机2),公司内由安全中心运行的服务器(结合图1下称服务器3)来控制公司内部所有员工对各自的u盘的使用。

服务器3定期地(例如,每个季度也即一年4次)生成/更新授权码22,生成的授权码22可以优选地经过公司甲与员工乙之间的安全通信(例如,公司邮箱系统、短信猫等)告知给用户。于是,理论上这个用户在未来的一个季度内,都可以凭该授权码22实现对受保护对象的访问,也即,成功通过服务器3所执行的鉴权。换言之,当用户(本例中即员工乙)将u盘1插入计算机2,u盘1可以自动运行一个鉴权程序,或者计算机2 识别出插入的是u盘1则优先弹出一个窗口要求用户完成鉴权。于是,在步骤s300中,用户输入自己被告知的授权码,服务器3接收用户输入的授权码24,此时由于输入的授权码还未通过检验,所以我们将其称为待检验的授权码,并使用服务器3提供的授权码22不同的附图标记24。

接收到的用户输入的待检验的授权码24可以直接进入步骤s304,并由服务器3将其与一个预存的参考授权码相比对,比对的结果将导致不同的鉴权结果,也即,如果输入的授权码与参考授权码不一致,则鉴权失败,用户的访问请求被拒绝。反之,如果输入的授权码与参考授权码一致,则鉴权成功,用户被允许访问该受保护的对象。不失一般性地,所述的参考授权码可以是服务器3最近一次生成或更新授权码时生成并保存在服务器3处的,它与最近一次告知给用户的授权码相一致,因此,如果是有权限的用户在该授权码有效期内发起的鉴权请求,其结果应该是鉴权通过。

在一个变化例中,步骤s300与步骤s304之间可以执行一个可选的步骤s302,其中,输入的待检验的授权码24将先经过服务器3的解析。如果我们把服务器3生成授权码22的过程看作是一个编码过程,也即把时间信息编码为授权码22,那么,解析步骤s302就可以看作是相应的解码过程,服务器3尝试将接收到的待检验的授权码24解析为时间信息,如果解析出的时间信息恰好是参考时间(例如,服务器3的当前年、月),则可以认为鉴权成功,如果解析不出时间信息(例如,用户输错授权码导致服务器3无法求解),或者解析出的时间信息与参考时间不匹配,则认为鉴权失败,用户无法使用/访问受保护对象。具体地,进入步骤s304来完成对鉴权结果的上述判断。

步骤s302中解析出的时间信息与参考时间不匹配的典型的例子如,授权码22于每个季度的第一天生成后提供给用户,员工乙在2016年1月1日获得这个授权码(为了区分称“1季度授权码”),并正常使用直至3月20日离职,且离职时未上交u盘1。则离职后直到2016年3月31日,如果鉴权过程仍能访问到服务器3,则前员工乙可凭1季度授权码继续使用u盘1上的受保护数据/软件。但到了4月1日,由于服务器3开始使用新的月份信息(例如,年份信息“2016”和月份信息“4”)进行鉴权,因此,当在步骤s302中对用户乙输入的1季度授权码进行解析并解析出年份信息“2016”和月份信息“1”后,服务器3将在步骤s304中将“2016”和“1”与“2016”“4”比较,发现不匹配,于是鉴权失败。

本领域技术人员理解,服务器3更新授权码22以及更新其参考时间或参考授权码的周期可以是多种多样的。可以根据实际情况,以更高的频率(每月甚至每周)或更低的 频率(每半年甚至每一年)更新,以适应实际的需要。而这些变形和变化都在本发明的精神的范围之内。

根据一个变化例,服务器3可以通过手机短信、推送窗口等其它方式将生成的新的授权码告知用户。

根据一个例子,服务器3生成的授权码22包括第一码段、第二码段和校验码段,第一、第二码段分别为年份信息和月份信息的函数,校验码段则根据第一和第二码段生成,所以也可以是年份信息和月份信息的函数。其中,为了适应授权码的每月、每季度变化的区别,可以对服务器3进行配置,例如,以每季度变化为例,服务器3在1月份生成授权码时,可以使用“1”作为月份信息,而在3月份如果也需要生成授权码,则仍使用“1”作为月份信息。如果每月变化,则服务器3每个月更换所用的月份信息。同样,在执行步骤s304时,当授权码每季度变化时,1-3月可以都使用“1”作为参考时间中的月份信息,直到4月才将参考时间中的月份信息更新为“4”,而如果授权码每月变化,则步骤s304在执行时,每个月的参考时间均以当月的实际月份信息为准。

由以上内容可见,在包含步骤s302的实施例中,优选地,步骤s302中得到确定的解析结果,对于步骤s304得到正确的比对和鉴权结果是重要的。为此,在这个实施例中,以时间信息为参数生成授权码22的过程(步骤s302所执行操作是生成操作的逆向运算过程)希望得到这样的授权码,即,授权码22可以经步骤s302解析出生成授权码22时所用的年份信息和月份信息,并且,该解析有唯一的解。

在一个例子中,生成授权码22的过程中,可以根据以下操作生成第一、第二码段:

步骤1:根据以下公式生成与第一码段对应的第一值和与第二码段对应的第二值:

公式1:第一值=y2-a*y+b;第二值=m3+c*m2+d*m+e*y+f;或者

公式2:第一码段=(y-g)*(y+h)+i+m;第二码段=(m+j)3+k*m+l*y;

步骤2:对生成的第一值和第二值分别进行处理,以生成第一码段和第二码段。

其中,y表示年份信息,m表示月份信息,a,b,c,d,e,f,g,h,i,j,k,l为根据前述规则确定的常量。

具体地,服务器3根据以下公式对第一值和第二值进行处理,生成第一码段和第二码段,其中,第一码段和第二码段分别包含三个字符,例如,第一码段表示为abc,第二码段表示为def。

公式3:第一码段的第一字符=int(第一值/1296);第一码段的第二字符=int(第一值/36)mod36;第一码段的第三字符=第一值mod36;

公式4:第二码段的第一字符=int(第二值/1296);第二码段的第二字符=int(第二值/36)mod36;第二码段的第三字符=第二值mod36。

其中,int表示求整(不进行四舍五入),mod表示取余。

以下是用公式1、3和4来生成授权码的介绍:

首先,公式1的一个具体例子如:

第一值=y2-3687*y+3374700;

第二值=m3+70*m2+1587*m+11*y+12176。

实用中,服务器3将具体年份信息和月份信息代入y和m的取值即可。例如,以2016年1月为例,y=2016,m=1,则第一值=20162-3687*2016+3374700=5964,第二值=13+70*12+1587*1+11*2016+12176=36010。

相应地,根据公式3和公式4计算各个码段的各个字符,其中,各个码段的字符的取值f(x)遵循以下关系:f(x)=x,x=0,1…,9;f(x)=“a”~“z”,x=9,10…35

第一码段的第一字符,a=int(5964/1296)=4;

第一码段的第二字符,b=int(5964/36)mod36=21=l;

第一码段的第三字符,c=5964mod36=24=o。

第二码段的第一字符,d=int(36010/1296)=27=s;

第二码段的第二字符,e=int(36010/36)mod36=28=t;

第二码段的第三字符,f=36010mod36=10=b。

根据一个例子,校验码段可以包含4个字符,α,β,γ,及δ,表示如下,其中round为四舍五入操作:

α=round(a/3+b/3+10)

β=round(b/3+d/3+f/3)

γ=round(c/3+f/3)

δ=round(c/3+e/3+8)

至此,可以得到由10个字符组成的授权码abcdefαβγδ。根据一个替代例,原始的授权码可以再经过一次编码(例如,打乱字符间的顺序)而作为真正的授权码。

上述的计算是可逆的,也即,当上述授权码在步骤s302中被服务器3解析时,能够解析出唯一的解,年份信息“2016”和月份信息“1”。

场景2:(接场景1)员工乙合同期满未续签劳动合同,离职但未归还u盘1到公司的安全中心。

由于乙离职却未归还u盘1,虽然在授权码未更新的这段时间他/她或许仍能接入,但一旦授权码更新,服务器3在步骤s304中用于鉴权比对的参考时间将会变更,原始的授权码经步骤s302的解析将无法得到与新的参考时间相匹配的年份和月份信息,导致鉴权失败,由于年、月组合没有重复性,该用户之前持有的授权码将永远无法通过所述鉴权。而如果是直接将授权码与参考授权码比较,则将得出输入的授权码与参考授权码不一致的结论,同样,鉴权失败。

场景3:(接场景1)员工乙的u盘1不慎遗失,被竞争对手公司的员工丙拾得。

与场景2同,员工丙因无法获知新的授权码,在授权码和参考时间更新后将失去继续访问受保护对象的机会。

场景4:(接场景1)员工乙将u盘1交给竞争对手公司的员工丁,并告知其最近的授权码。

优选地,公司甲应定期检查各个员工的u盘的持有情况,如发现有人遗失或不再持有u盘,则将停止向其告知新的授权码,由此,可以防止员工丁始终知晓最新的授权码。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

虽然前面特别示出并且描述了示例性实施例,但是本领域技术人员将会理解的是,在不背离权利要求书的精神和范围的情况下,在其形式和细节方面可以有所变化。这里 所寻求的保护在所附权利要求书中做了阐述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1