令牌生成和校验方法、智能终端及服务器与流程

文档序号:15358175发布日期:2018-09-05 00:16阅读:375来源:国知局

本申请涉及智能终端领域,特别是涉及一种令牌生成和校验方法、智能终端及服务器。



背景技术:

令牌(accesstokens)是针对智能终端安全性的一个概念,当用户登陆时,系统创建一个访问令牌,里面包含登录进程返回的系统识别码和由本地安全策略分配给用户和用户的安全组的特权列表。以该用户身份运行的所有进程都拥有该令牌的一个拷贝,系统使用令牌控制用户可以访问哪些安全对象,并控制用户执行相关系统操作的能力。

传统的令牌生成和校验方法只针对静态令牌,容易给用户带来很大的风险,增加账户被盗的风险。



技术实现要素:

本申请主要解决的技术问题是提供一种令牌生成和校验方法、智能终端及服务器,可以确保每次访问服务器的令牌都不一样。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种令牌生成和校验方法,其包括:智能终端生成随机数和时间戳,以随机数和时间戳为参数对唯一标识符进行加密,生成动态令牌,向服务器发送静态令牌、随机数、时间戳和动态令牌,以使得服务器解密静态令牌和动态令牌以校验唯一标识符。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种令牌生成和校验方法,其包括:接收智能终端发送的静态令牌、随机数、时间戳和动态令牌,其中动态令牌是以随机数和时间戳为参数对智能终端的唯一标识符进行加密得到的,对动态令牌和静态令牌进行解密,以校验唯一标识符。

为解决上述技术问题,本申请采用的又一个技术方案是:提供一种智能终端,其包括:相互连接的通信电路和处理器,通信电路,用于获取静态令牌和唯一标识符,处理器,通过通信电路获取静态令牌和唯一标识符,并执行指令以实现如上述的方法。

为解决上述技术问题,本申请采用的再一个技术方案是:提供一种服务器,其包括:相互连接的通信电路和处理器,通信电路,用于获取静态令牌、随机数、时间戳和动态令牌,处理器,通过通信电路获取静态令牌、随机数、时间戳和动态令牌,并执行指令以实现如上述的方法。

本申请的有益效果为:区别于现有技术的情况,本申请通过智能终端生成随机数和时间戳,以随机数和时间戳为参数对唯一标识符进行加密,生成动态令牌,向服务器发送静态令牌、随机数、时间戳和动态令牌,以使得服务器解密静态令牌和动态令牌以校验唯一标识符。随机数不断变化,因此每次访问服务器的令牌都不一样,即使令牌被窃取,也无法短时间内解密令牌,从而提高了服务器的访问安全。

附图说明

图1是本申请令牌生成和校验方法第一实施例的流程示意图;

图2是本申请令牌生成和校验方法智能终端和服务器的交互图;

图3是本申请令牌生成和校验方法第二实施例的流程示意图;

图4是本申请令牌生成和校验方法第三实施例的流程示意图;

图5是本申请令牌生成和校验方法第四实施例的流程示意图;

图6是本申请令牌生成和校验方法第四实施例服务器校验静态令牌和动态令牌的流程示意图;

图7是本申请令牌生成和校验方法第五实施例的流程示意图;

图8是本申请智能终端一实施例的结构示意图;

图9是本申请服务器一实施例的结构示意图。

具体实施方式

如图1所示,本申请令牌生成和校验方法第一实施例包括:

s2:智能终端生成随机数和时间戳。

s3:以随机数和时间戳为参数对唯一标识符进行加密,生成动态令牌。

s4:向服务器发送静态令牌、随机数、时间戳和动态令牌,以使得服务器解密静态令牌和动态令牌以校验唯一标识符。

唯一标识符由服务器生成,用以识别与服务器交互的智能终端,静态令牌为固定的字符组合,动态令牌则为随机字符组合,时间戳为能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的字符序列,用来唯一地标识某一刻的时间。

参阅图2,服务器生成静态令牌,并发送静态令牌给智能终端进行授权,智能终端接收到服务器发送的静态令牌后,并获取到服务器生成的智能终端的唯一标识符。智能终端生成预设位数的随机数,例如智能终端生成8字节的随机数,同时获取对应的时间戳,例如生成该随机数的时间,根据获取到的随机数及时间戳为参数对唯一标识符使用加密算法进行加密,进而生成动态令牌。动态令牌生成后,智能终端将静态令牌、随机数、时间戳和动态令牌发送给服务器,服务器解密接收到的静态令牌和动态令牌,得到静态令牌和动态令牌对应的唯一标识符后,检验该静态令牌和该动态令牌对应的唯一标识符是否一致,若一致,则校验成功,该智能终端可以访问服务器,否则校验失败,智能终端不能访问服务器。其中,该加密算法可以是对称加密,也可以是非对称加密,具体可以根据实际需求选择,此处不做具体限定。

可选地,步骤s2之前包括:

s1:接收服务器生成的静态令牌,以获取唯一标识符。

智能终端接收到服务器发送的静态令牌后,并获取到和静态令牌一起发送的唯一标识符。在其他实施例中,智能终端也可以通过解密服务器端发送的静态令牌得到唯一标识符。本申请通过智能终端生成随机数和时间戳,以随机数和时间戳为参数对唯一标识符进行加密,生成动态令牌,向服务器发送静态令牌、随机数、时间戳和动态令牌,以使得服务器解密静态令牌和动态令牌以校验唯一标识符。随机数不断变化,因此每次访问服务器的令牌都不一样,即使令牌被窃取,也无法短时间内解密令牌,从而提高了服务器的访问安全。

如图3所示,本申请令牌生成和校验方法第二实施例是在第一实施例的基础上,进一步限定步骤s3包括:

s31:对时间戳中至少一个字节进行逻辑运算,以得到与时间戳位数相同的时间因子。

该时间戳的字节数可以是智能终端的系统设定的,也可以是根据用户需求设置的,当该时间戳具有多个字节时,可以对其中一个字节进行逻辑运算,也可以是对多个字节进行逻辑运算,计算得到的时间因子的字节数和时间戳相同,当该时间戳只有一个字节时,可以对该字节中的某些位数进行逻辑运算,或者对所有位数进行逻辑运算,得到的时间因子与时间戳的位数相同。

具体的,在一个应用例中,设定时间戳为8个字节,将时间戳按字节数分为八个部分,即t1,t2,t3,t4,t5,t6,t7和t8,其中t1,t2,t3,t4,t5,t6,t7和t8各占一个字节,对t1和t2进行逻辑运算得到时间因子的第一部分,对t3和t4进行逻辑运算得到时间因子的第二部分......对t8和t1进行逻辑运算得到时间因子的第八部分,时间因子的八部分组合构成一个完整的时间因子。该逻辑运算可以为与运算,也可以为非运算,或者其他逻辑运算,此处不作具体限定。

s32:以随机数为参数计算得到第一加密因子和第二加密因子。

将随机数按字节数分为两个部分,将随机数第一部分进行逻辑运算后得到关键字,随机数字第二部分进行逻辑运算后得到引用值,对关键字和引用值再进行条件运算得到加密因子,即根据关键字所满足的预设条件,对引用值进行数学运算得到加密因子。第一加密因子为对随机数第一部分进行数学运算得到的,第二加密因子为对随机数第二部分进行数学运算得到的,随机数第一部分的数学运算和随机数第二部分的数学运算可以相同,也可以不相同。具体的,在一个应用例中,随机数为8个字节,分为4个字节的两个部分,第一部分为高随机数部分(高4字节),第二部分为低随机数部分(低4字节),选取高随机数部分或者选取低随机数部分,对选取的随机数部分先进行异或运算后取四的余数得到关键字,对选取的随机数部分先进行异或运算后取十的余数得到引用值。加密因子为2字节数字,将加密因子按十六进制分为四部分,设定引用值为加密因子的第一部分时,当关键字等于3的时候,加密因子的第二部分等于引用值加1,加密因子的第三部分等于引用值加2,加密因子的第四部分等于引用值加3;当关键字等于2的时候,加密因子的第二部分等于引用值加1,加密因子的第三部分等于引用值加2,加密因子的第四部分等于引用值;当关键字等于1的时候,加密因子的第二部分等于引用值加1,加密因子的第三部分等于引用值,加密因子的第四部分等于引用值加1;当关键字等于0的时候,加密因子的第二部分、第三部分和第四部分都等于引用值;其中,也可以设定引用值为加密因子的其他部分,加密因子的四个部分也可以由引用值与其他数字进行其他数学运算(如减法或乘法等)得到,该数字不作具体限定。

具体的,在一个应用例中,当关键字和引用值都等于0,则加密因子为十六进制的4321;当引用值为0,关键字为1时,加密因子为十六进制的0101;当引用值为3,关键字为3时,加密因子为十六进制的3456;当引用值为3,关键字为0时,加密因子为十六进制的3333,引用值和关键字还可以是其他数值,此处不再举例。

上述应用例中,可以对高随机数部分进行上述运算得到第一加密因子,对低随机数部分进行上述运算得到第二加密因子。当然,在其他实施例中,也可以选择随机数的其他部分字节进行上述运算得到加密因子。

s33:以时间因子、时间戳中第一部分字节、随机数中第一部分字节和第一加密因子为元素,构成加密密钥。

加密密钥由时间因子、时间戳中第一部分字节、随机数中第一部分字节和第一加密因子构成,加密密钥的字节数为时间因子的字节数、时间戳中第一部分字节的字节数、随机数中第一部分字节的字节数和第一加密因子的字节数之和,时间因子、时间戳中第一部分字节、随机数中第一部分字节和第一加密因子可以按照一定顺序组构成加密密钥,也可以排列组合构成加密密钥。

具体的,在一个应用例中,加密密钥为16个字节,第一部分为时间因子,占加密密钥8个字节,第二部分为时间戳中第一部分字节,占加密密钥2个字节,第三部分为随机数中第一部分字节,占加密密钥4个字节,第四部分为第一加密因子,占加密密钥2个字节。

s34:以时间因子、时间戳中第二部分字节、随机数中第二部分字节和第二加密因子为元素,构成密钥向量。

密钥向量由时间因子、时间戳中第二部分字节、随机数中第二部分字节和第二加密因子构成,加密密钥的字节数为时间因子的字节数、时间戳中第二部分字节的字节数、随机数中第二部分字节的字节数和第二加密因子的字节数之和,时间因子、时间戳中第二部分字节、随机数中第二部分字节和第二加密因子可以按照一定顺序组构成密钥向量,也可以排列组合构成密钥向量。

具体的,在一个应用例中,密钥向量为16个字节,第一部分为时间因子,占加密密钥8个字节,第二部分为时间戳中第二部分字节,占加密密钥2个字节,第三部分为随机数中第二部分字节,占加密密钥4个字节,第四部分为第二加密因子,占加密密钥2个字节。

其中,加密密钥和密钥向量中,时间因子、时间戳、随机数和加密因子的位置可以一一对应。

s35:使用加密密钥和密钥向量对唯一标识符进行加密,生成动态令牌。

通过加密密钥和密钥向量对唯一标识符使用加密算法进行加密,进而生成动态令牌,其中,加密密钥和密钥向量可以为16个字节,也可以为其他字节数,加密算法为对加密密钥和密钥向量先使用高级加密算法进行加密,然后再对其使用编码算法进行编码得到动态令牌。

如图4所示,本申请令牌生成和校验方法第三实施例是在第二实施例的基础上,进一步限定步骤s35包括:

s351:以加密密钥和密钥向量对唯一标识符进行加密,得到加密密文。

智能终端通过加密密钥和密钥向量对唯一标识符进行加密,进而生成加密密文,其中,加密算法可以为aes高级加密算法,例如aes128,也可以为其他算法,此处不做具体限定。

s352:对加密密文进行编码,生成动态令牌。

智能终端在得到加密密文后,对加密密文使用编码算法进行编码,进而生成动态令牌,其中,编码算法可以为64位编码算法,例如base64,也可以为其他位数的编码算法,此处不做具体限定。

如图5所示,本申请令牌生成和校验方法第四实施例包括:

s7:接收智能终端发送的静态令牌、随机数、时间戳和动态令牌,其中动态令牌是以随机数和时间戳为参数对智能终端的唯一标识符进行加密得到的。

s8:对动态令牌和静态令牌进行解密,以校验唯一标识符。

参阅图2和图6,在一个应用例中,服务器可以先生成静态令牌,并发送静态令牌给智能终端进行授权,智能终端生成动态令牌后,智能终端将授权后的静态令牌、随机数、时间戳和动态令牌发送给服务器。服务器利用随机数和时间戳对动态令牌和静态令牌进行解密,分别得到对应的两个标识符,若两个标识符一致,则校验成功,否则校验失败。

该解密算法可以为aes高级解密算法,也可以为其他算法,此处不做具体限定。该解密算法与智能终端采用的加密算法对应。

可选地,步骤s6之前包括:

s5:服务器生成静态令牌。

s6:发送静态令牌至智能终端进行授权。

智能终端和服务器需要以某种同步方式对智能终端进行授权。智能终端使用一张用户特性列表,作为密码登录计算机。只有智能终端和服务器知道这些特性的意义。因为两者是同步的,智能终端把准确的令牌呈现给服务器。

同步智能终端使用时间戳与授权同步作为授权过程的核心部分。如果同步是基于时间的,智能终端和服务器使他们的时间戳保持相同。使用智能终端的时间戳和随机数生成令牌,输入该令牌和唯一识别码进入智能终端,然后智能终端把他们传送到服务器运行授权服务。授权服务解密令牌并且与期望的令牌比较。如果两者匹配,用户的授权操作完成,允许使用该智能终端和资源。

基于时间戳的同步,智能终端和服务器共享相同的密钥和密钥向量,用于加密和解密。

可选地,步骤s8之前包括:

s801:服务器判断时间戳是否小于或等于智能终端前一次发送的时间戳。

s802:若时间戳小于或等于智能终端前一次发送的时间戳,则判断随机数是否与智能终端前一次发送的随机数相等,若随机数与智能终端前一次发送的随机数不相等,则继续执行对动态令牌和静态令牌进行解密,以校验唯一标识符的步骤。

在服务器对动态令牌和静态令牌进行解密之前,服务器判断本次发送的时间戳是否小于或者等于智能终端前一次发送的时间戳,若本次发送的时间戳小于智能终端前一次发送的时间戳,则返回错误并结束解密,若本次发送的时间戳等于智能终端前一次发送的时间戳,则判断随机数是否与智能终端前一次发送的随机数相等。如果随机数与智能终端前一次发送的随机数相等,那么返回错误并结束解密,如果随机数与智能终端前一次发送的随机数不相等,则对动态令牌和静态令牌使用解密算法进行解密,来校验唯一标识符。

如图7所示,本申请令牌生成和校验方法第五实施例是在第四实施例的基础上,进一步限定步骤s8包括:

s81:以随机数和时间戳为参数对动态令牌进行解密,以在动态令牌解密成功后,得到第一标识符。

服务器根据随机数和时间戳来生成解密密钥和解密密钥向量,以解密密钥和解密密钥向量对动态令牌使用解码算法进行解码,得到解密密文,对解密密文使用解密算法,得到第一标识符。如果没有解密成功,则返回错误并结束解密。该解密过程和加密过程为对应的过程。当该动态令牌没有被编码时,也可以省去该解码过程。

s82:对静态令牌进行解密,以在静态令牌解密成功后,得到第二标识符。

服务器在动态令牌解密成功得到第一标识符后,使用解密算法对静态令牌进行解密,静态令牌解密成功后得到第二标识符。如果静态令牌没有解密成功,则返回错误并结束解密。其中,该静态令牌的解密算法可以与动态令牌的解密算法相同,也可以不同。

s83:判断第一标识符和第二标识符是否相同。

s84:若第一标识符和第二标识符相同,则唯一标识符校验成功;否则,校验失败。

在动态令牌和静态令牌都解密成功后,服务器判断第一标识符和第二标识符是否相同,如果第一标识符和第二标识符不相同,则唯一标识符校验失败,结束校验,如果第一标识符和第二标识符相同,则唯一标识符校验成功。

如图8所示,本申请智能终端一实施例包括:

相互连接的通信电路10和处理器20;

该通信电路10用于获取静态令牌和唯一标识符。

该处理器20用于通过通信电路10获取静态令牌和唯一标识符并执行指令,以实现本申请令牌生成和校验方法第一至第四实施例中任一个以及任意不冲突的组合所提供的方法。

该处理器20控制智能终端的操作,处理器20还可以称为cpu(centralprocessingunit,中央处理单元)。处理器20可能是一种集成电路芯片,具有信号的处理能力。处理器20还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

智能终端可以进一步包括存储器(图中未画出),存储器用于存储处理器20工作所必需的指令及数据。

在其他实施例中,该智能终端还可以视具体需求设置显示屏、键盘等其他部件,此处不做具体限定。

如图9所示,本申请服务器一实施例包括:

相互连接的通信电路30和处理器40;该通信电路30用于获取静态令牌、随机数、时间戳和动态令牌。

该处理器40用于通过通信电路30获取静态令牌、随机数、时间戳和动态令牌并执行指令,以实现本申请令牌生成和校验方法第五至第八实施例中任一个以及任意不冲突的组合所提供的方法。

该处理器40控制服务器的操作,处理器40还可以称为cpu(centralprocessingunit,中央处理单元)。处理器40可能是一种集成电路芯片,具有信号的处理能力。处理器40还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

服务器可以进一步包括存储器(图中未画出),存储器用于存储处理器40工作所必需的指令及数据。

服务器可以为私人服务器,也可以为云端服务器。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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