CN109714176B - 口令认证方法、装置及存储介质 - Google Patents
口令认证方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109714176B CN109714176B CN201910188547.1A CN201910188547A CN109714176B CN 109714176 B CN109714176 B CN 109714176B CN 201910188547 A CN201910188547 A CN 201910188547A CN 109714176 B CN109714176 B CN 109714176B
- Authority
- CN
- China
- Prior art keywords
- password
- authenticated
- character string
- authentication
- random number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请涉及一种口令认证方法、装置及存储介质,属于通信技术领域,该方法包括:接收终端发送的待认证口令;生成认证随机数;对预先获取到的共享密钥和认证随机数进行混淆处理,得到第一字符串和第二字符串;基于预设加密算法,将第一字符串作为预设加密算法的加密密钥、并将第二字符串作为预设加密算法的初始向量对待认证口令进行加密;将访问请求数据包发送至口令认证服务器,以供口令认证服务器对待认证口令进行认证;访问请求数据包包括加密后的待认证口令和所述认证随机数;可以解决使用MD5算法、共享密钥和认证随机数直接对待认证口令进行加密时,共享密钥和认证随机数容易被破解的问题;提高了待认证口令的传输过程的安全性。
Description
技术领域
本申请涉及口令认证方法、装置及存储介质,属于通信技术领域。
背景技术
为了加强身份认证的安全性,动态口令技术被广泛应用于各个不同领域,比如:视频会议、网银、网游、电信运营商、电子政务、企业服务器等领域。动态口令是根据专门的算法生成一个不可预测的随机数字组合,一个密码使用一次有效。
目前,在对动态口令进行认证时往往使用远程验证拨入用户服务(RemoteAuthentication Dial In User Service,RADIUS)协议进行认证,使用,RADIUS协议对动态口令进行认证时至少包括如下几个步骤:
1、终端向网络接入服务器发送访问请求;
2、网络接入服务器接收访问请求,根据该访问请求指示的访问内容对终端进行身份认证;
3、终端接收用户输入的动态口令,并将该动态口令发送至网络接入服务器;
4、网络接入服务器接收动态口令;生成认证随机数,并获取共享密钥;使用MD5算法对认证随机数和共享密钥进行摘要运算,得到运算结果;使用动态口令与该运算进行异或操作得到加密后的动态口令;网络接入服务器将加密后的动态口令发送至口令认证服务器;
5、口令认证服务器接收加密后的动态口令;使用MD5算法、认证随机数和共享密钥还原加密后的动态口令;将本地存储的动态口令与还原得到的动态口令进行比较;在二者一致时确定对终端发送的动态口令认证通过。
在上述过程中,动态口令从网络接入服务器发送至口令认证服务器时仅经过一轮MD5运算和异或操作进行加密。
然而,MD5算法已经有很庞大的哈希碰撞库,恶意人员可能会根据该哈希碰撞库反推出共享密钥,且异或操作的反推过程也比较简单,因此,这就导致加密后的动态口令的安全程度不高,容易泄露的问题。
发明内容
本申请提供了一种口令认证方法、装置及存储介质,可以解决使用MD5算法、共享密钥和认证随机数直接对待认证口令进行加密时,共享密钥和认证随机数容易被破解,导致待认证口令的传输过程不安全的问题。本申请提供如下技术方案:
第一方面,提供了一种口令认证方法,所述方法包括:
接收终端发送的待认证口令;
生成认证随机数;
对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串;
基于预设加密算法,将所述第一字符串作为所述预设加密算法的加密密钥、并将所述第二字符串作为所述预设加密算法的初始向量对所述待认证口令进行加密;
将访问请求数据包发送至口令认证服务器,以供所述口令认证服务器对所述待认证口令进行认证;所述访问请求数据包包括加密后的待认证口令和所述认证随机数。
可选地,所述对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串,包括:
对所述共享密钥和所述认证随机数进行散列处理,得到第一散列数据;所述第一散列数据包括第一部分散列数据和第二部分散列数据;
对所述第一部分散列数据进行散列处理,得到第二散列数据;所述第二散列数据包括第三部分散列数据和第四部分散列数据;
对所述第二部分散列数据进行散列处理,得到第三散列数据;所述第三散列数据包括第五部分散列数据和第六部分散列数据;
将所述第三部分散列数据与所述第五部分散列数据进行异或操作,得到所述第一字符串;
将所述第四部分散列数据与所述第六部分散列数据进行异或操作,得到所述第二字符串。
可选地,所述对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串,包括:
对所述共享密钥和所述认证随机数进行散列处理,得到第一散列数据;所述第一散列数据包括第一部分散列数据和第二部分散列数据;
对所述第一部分散列数据进行散列处理,得到第二散列数据;所述第二散列数据包括第三部分散列数据和第四部分散列数据;
对所述第二部分散列数据进行散列处理,得到第三散列数据;所述第三散列数据包括第五部分散列数据和第六部分散列数据;
将所述第三部分散列数据循环左移两位后与所述第五部分散列数据进行异或操作,得到所述第一字符串;
将所述第四部分散列数据循环左移两位后与所述第六部分散列数据进行异或操作,得到所述第二字符串。
可选地,所述散列处理为基于密码散列函数标准SM3进行散列。
可选地,所述预设加密算法为分组密码标准SM4算法。
第二方面,提供了一种口令认证方法,所述方法包括:
接收网络接入服务器发送的访问请求数据包,所述访问请求数据包包括加密后的待认证口令和认证随机数,所述加密后的待认证口令是所述网络接入服务器基于预设加密算法,将第一字符串作为所述预设加密算法的加密密钥、并将第二字符串作为所述预设加密算法的初始向量对待认证口令进行加密得到的;所述第一字符串和所述第二字符串是对预先获取到的共享密钥和所述认证随机数进行混淆处理得到的,所述认证随机数是所述网络接入服务器接收到终端发送的待认证口令时生成的;
对所述认证随机数和所述共享密钥进行混淆处理,得到第三字符串和第四字符串;
基于所述预设加密算法对应的解密算法,将所述第三字符串作为所述解密算法的解密密钥、并将所述第四字符串作为所述解密算法的初始向量对所述加密后的待认证口令进行解密,得到所述待认证口令;
获取本地存储的所述终端对应的本地口令;
在所述待认证口令与所述本地口令相同时,确定对所述待认证口令认证成功。
第三方面,提供了一种口令认证装置,所述装置包括:
口令接收模块,用于接收终端发送的待认证口令;
随机数生成模块,用于生成认证随机数;
混淆处理模块,用于对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串;
口令加密模块,用于基于预设加密算法,将所述第一字符串作为所述预设加密算法的加密密钥、并将所述第二字符串作为所述预设加密算法的初始向量对所述待认证口令进行加密;
口令发送模块,用于将访问请求数据包发送至口令认证服务器,以供所述口令认证服务器对所述待认证口令进行认证;所述访问请求数据包包括加密后的待认证口令和所述认证随机数。
第四方面,提供了一种口令认证装置,所述装置包括:
口令接收模块,用于接收网络接入服务器发送的访问请求数据包,所述访问请求数据包包括加密后的待认证口令和认证随机数,所述加密后的待认证口令是所述网络接入服务器基于预设加密算法,将第一字符串作为所述预设加密算法的加密密钥、并将第二字符串作为所述预设加密算法的初始向量对待认证口令进行加密得到的;所述第一字符串和所述第二字符串是对预先获取到的共享密钥和所述认证随机数进行混淆处理得到的,所述认证随机数是所述网络接入服务器接收到终端发送的待认证口令时生成的;
混淆处理模块,用于对所述认证随机数和所述共享密钥进行混淆处理,得到第三字符串和第四字符串;
口令解密模块,用于基于所述预设加密算法对应的解密算法,将所述第三字符串作为所述解密算法的解密密钥、并将所述第四字符串作为所述解密算法的初始向量对所述加密后的待认证口令进行解密,得到所述待认证口令;
口令获取模块,用于获取本地存储的所述终端对应的本地口令;
口令认证模块,用于在所述待认证口令与所述本地口令相同时,确定对所述待认证口令认证成功。
第五方面,提供一种口令认证装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的口令认证方法;或者,实现第二方面所述的口令认证方法。
第六方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的口令认证方法;或者,实现第二方面所述的口令认证方法。
本申请的有益效果在于:通过接收终端发送的待认证口令;生成认证随机数;对预先获取到的共享密钥和认证随机数进行混淆处理,得到第一字符串和第二字符串;基于预设加密算法,将第一字符串作为预设加密算法的加密密钥、并将第二字符串作为预设加密算法的初始向量对待认证口令进行加密;将访问请求数据包发送至口令认证服务器,以供口令认证服务器对待认证口令进行认证;其中,访问请求数据包包括加密后的待认证口令和认证随机数;可以解决使用MD5算法、共享密钥和认证随机数直接对待认证口令进行加密时,共享密钥和认证随机数容易被破解,导致待认证口令的传输过程不安全的问题;由于先对共享密钥和认证随机数进行混淆处理,这样,相当于间接使用共享密钥和认证随机数对待认证口令进行加密,提高了共享密钥和认证随机数的破解难度,从而提高了待认证口令的传输过程的安全性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的口令认证系统的结构示意图;
图2是本申请一个实施例提供的口令认证方法的流程图;
图3是本申请一个实施例提供的访问请求数据包的格式的示意图;
图4是本申请一个实施例提供的口令认证方法的流程图;
图5是本申请一个实施例提供的口令认证装置的框图;
图6是本申请一个实施例提供的口令认证装置的框图;
图7是本申请一个实施例提供的口令认证装置的框图。
具体实施方式
下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
首先,对本申请涉及的若干名词进行解释。
远程验证拨入用户服务(Remote Authentication Dial In User Service,RADIUS):RADIUS是一种客户端/服务器(C/S)结构的协议。其中,客户端最初是网络接入服务器(Net Access Server,NAS),任何运行RADIUS客户端软件的电子设备都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用口令认证协议(PasswordAuthentication Protocol,PAP)或者质询握手认证协议(Challenge HandshakeAuthentication Protocol,CHAP)等多种方式登录认证。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS支持厂商扩充专有属性。
RADIUS的基本工作原理包括:终端接入NAS,NAS向RADIUS服务器使用Access-Request数据包提交用户信息,包括用户名、密码等相关信息,其中密码是经过MD5加密的,双方使用共享密钥,共享密钥不经过网络传播;RADIUS服务器对用户名和密码的合法性进行检验;如果合法,向NAS返回Access-Accept数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问。
动态口令(或称,一次性口令)(One Time Password,OTP):是由特定的算法生成一个不可预测的随机数字组合,生成的动态口令仅一次有效。
SM3:是中国国家密码管理局发布的一种密码散列函数标准。相关标准为“GM/T0004-2012《SM3密码杂凑算法》”。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等。
SM4:是由中国国家密码管理局发布的一种分组密码标准。相关标准为“GM/T0002-2012《SM4分组密码算法》”。SM4主要用于对数据进行对称加密,密钥长度和分组长度均为128比特(bit)。
图1是本申请一个实施例提供的口令认证系统的结构示意图,如图1所示,该系统至少包括:终端110、网络接入服务器120和口令认证服务器130。
终端110可以是计算机、手机、平板电脑或者可穿戴式设备等需要进行口令认证的电子设备。终端110基于有线方式或者无线方式与网络接入服务器120进行通信连接。
可选地,本申请中,终端110用于向网络接入服务器120发送访问请求,并在网络接入服务器120根据该访问请求向终端110返回认证通知时,根据口令输入提示向网络接入服务器120发送待认证口令。其中,待认证口令是动态口令。
可选地,待认证口令是终端110通过动态令牌生成的。
网络接入服务器120基于有线方式或者无线方式与口令认证服务器130通信连接。示意性地,网络接入服务器120基于RADIUS协议与口令认证服务器130通信连接。其中,网络接入服务器120相当于RADIUS协议中的客户端,口令认证服务器130相当于RADIUS协议中的服务器。网络接入服务器120可以是独立的服务器主机;或者,也可以是多台服务器主机构成的服务器集群。
可选地,本申请中,网络接入服务器120用于:接收终端发送的待认证口令;生成认证随机数;对预先获取到的共享密钥和认证随机数进行混淆处理,得到第一字符串和第二字符串;基于预设加密算法,将第一字符串作为预设加密算法的加密密钥、并将第二字符串作为预设加密算法的初始向量对待认证口令进行加密;将访问请求数据包发送至口令认证服务器,以供口令认证服务器130对待认证口令进行认证。其中,访问请求数据包包括加密后的待认证口令和所述认证随机数。
其中,预设加密算法可以是支持使用加密密钥和初始向量的加密算法,比如:SM4算法等,本实施例不对预设加密算法的类型作限定。
由于网络接入服务器120对共享密钥和认证随机数进行混淆处理后得到第一字符串和第二字符串,然后使用第一字符串和第二字符串对待认证口令进行加密,即间接地使用共享密钥和认证随机数对待认证口令进行加密,这样,恶意人员在截获到加密后的待认证口令之后需要先解密出第一字符串和第二字符串、再对第一字符串和第二字符串进行还原才能得到共享密钥和认证随机数,提高了共享密钥和认证随机数的破译难度,从而提高了传输待认证口令的安全性。
口令认证服务器130可以是独立的服务器主机;或者,也可以是多台服务器主机构成的服务器集群。口令认证服务器130用于对接收到的待认证口令进行认证,从而对终端110的身份进行认证。
可选地,本申请中,口令认证服务器130用于:接收网络接入服务器发送的访问请求数据包,该访问请求数据包包括加密后的待认证口令和认证随机数;对认证随机数和共享密钥进行混淆处理,得到第三字符串和第四字符串;基于预设加密算法对应的解密算法,将第三字符串作为解密算法的解密密钥、并将第四字符串作为解密算法的初始向量对加密后的待认证口令进行解密,得到待认证口令;获取本地存储的终端对应的本地口令;在待认证口令与本地口令相同时,确定对待认证口令认证成功。
图2是本申请一个实施例提供的口令认证方法的流程图,本实施例以该方法应用于图1所示的口令认证系统中为例进行说明。该方法至少包括以下几个步骤:
步骤201,网络接入服务器接收终端发送的待认证口令。
可选地,待认证口令是终端通过动态令牌生成的(一次认证过程中有效)。每条待认证口令存在对应的口令标识,且网络接入服务器存储有口令标识与终端的用户标识之间的对应关系。其中,口令标识用于唯一地标识每条待认证口令,该口令标识可以是编号、随机字符串等,本实施例不对口令标识的设置方式作限定。用户标识用于标识使用本地口令的用户,该用户标识可以是用户帐号、姓名、终端的设备号、身份证号、邮箱地址等,本实施例不对用户标识的设置方式作限定。比如:终端生成的待认证口令为“159365”,该待认证口令的口令标识为“123456”,终端的用户标识为“张三”,则网络接入服务器存储有“张三”与“123456”之间的对应关系。
步骤202,网络接入服务器生成认证随机数。
可选地,网络接入服务器通过预设的随机数生成算法生成认证随机数。认证随机数的字节数为第一预设字节,比如:认证随机数为32字节、16字节等,本实施例不对第一预设字节的取值作限定。
可选地,网络接入服务器还会接收到终端的用户标识;在生成认证随机数之前,网络接入服务器还会查询用户标识是否合法(比如:查询是否存储有该用户标识,若已存储则合法;若未存储则不合法),在用户标识合法时再执行生成认证随机数的步骤。
步骤203,网络接入服务器对预先获取到的共享密钥和认证随机数进行混淆处理,得到第一字符串和第二字符串。
可选地,共享密钥是网络接入服务器与口令认证服务器商定得到的,网络接入服务器与口令认证服务器商定共享密钥之后,均会将该共享密钥存储至本地。可选地,共享密钥的字节数为第二预设字节,第二预设字节与第一预设字节相同或不同,示意性地,共享密钥的字节数与认证随机数的字节数相同为16字节。
本实施例中,通过对共享密钥和认证随机数进行混淆处理,得到第一字符串和第二字符串;之后使用第一字符串和第二字符串加密待认证口令,而不是直接使用共享密钥和认证随机数加密,可以提高共享密钥和认证随机数的破解难度,从而提高传输待认证口令过程的安全性。
可选地,网络接入服务器对预先获取到的共享密钥和认证随机数进行混淆处理,得到第一字符串和第二字符串的方式包括但不限于以下几种:
第一种,对共享密钥和认证随机数进行散列处理,得到第一散列数据;该第一散列数据包括第一部分散列数据和第二部分散列数据;对第一部分散列数据进行散列处理,得到第二散列数据;该第二散列数据包括第三部分散列数据和第四部分散列数据;对第二部分散列数据进行散列处理,得到第三散列数据;该第三散列数据包括第五部分散列数据和第六部分散列数据;将第三部分散列数据与第五部分散列数据进行异或操作,得到第一字符串;将第四部分散列数据与第六部分散列数据进行异或操作,得到第二字符串。
可选地,第一部分散列数据的字节数和第二部分散列数据的字节数相同;第三部分散列数据的字节数、第四部分散列数据的字节数相同、第五部分散列数据的字节数和第六部分散列数据的字节数均相同。
可选地,本申请中,散列处理为基于SM3进行散列,当然,散列处理也可以是使用其他散列算法进行散列,比如:MD5等,本实施例不对散列处理的方式作限定。
比如:网络接入服务器生成的认证随机数RA为16字节、预先获取到的共享密钥SK也为16字节;之后,网络接入服务器通过下述公式(1)计算得到第一散列数据S;S为32字节,其中前16字节为第一部分散列数据,后16字节为第二部分散列数据;然后,网络接入服务器通过下述公式(2)对第一部分散列数据进行散列处理得到第二散列数据T1、通过下述公式(3)对第二部分散列数据进行散列处理得到第三散列数据T2;其中,第二散列数据T1为32字节,前16字节为第三部分散列数据、后16字节为第四部分散列数据;第三散列数据T2为32字节,前16字节为第五部分散列数据、后16字节为第六部分散列数据;最后,网络接入服务器通过下述公式(4)将第三部分散列数据与第五部分散列数据进行异或操作,得到第一字符串S1、通过下述公式(5)将第四部分散列数据与第六部分散列数据进行异或操作,得到第二字符串S2。
S=SM3(SK+RA) (1)
T1=SM3(S前16字节) (2)
T2=SM3(S后16字节) (3)
S1=(T1前16字节)XOR(T2前16字节) (4)
S2=(T1后16字节)XOR(T2后16字节) (5)
其中,SM3表示对括号内的数据基于SM3算法进行散列处理;XOR表示将之前的数据与之后的数据进行异或操作。
第二种,对共享密钥和认证随机数进行散列处理,得到第一散列数据;第一散列数据包括第一部分散列数据和第二部分散列数据;对第一部分散列数据进行散列处理,得到第二散列数据;第二散列数据包括第三部分散列数据和第四部分散列数据;对第二部分散列数据进行散列处理,得到第三散列数据;第三散列数据包括第五部分散列数据和第六部分散列数据;将第三部分散列数据循环左移两位后与第五部分散列数据进行异或操作,得到第一字符串;将第四部分散列数据循环左移两位后与第六部分散列数据进行异或操作,得到第二字符串。
比如:网络接入服务器生成的认证随机数RA为16字节、预先获取到的共享密钥SK也为16字节;之后,网络接入服务器通过下述公式(6)计算得到第一散列数据S;S为32字节,其中前16字节为第一部分散列数据,后16字节为第二部分散列数据;然后,网络接入服务器通过下述公式(7)对第一部分散列数据进行散列处理得到第二散列数据T1、通过下述公式(8)对第二部分散列数据进行散列处理得到第三散列数据T2;其中,第二散列数据T1为32字节,前16字节为第三部分散列数据、后16字节为第四部分散列数据;第三散列数据T2为32字节,前16字节为第五部分散列数据、后16字节为第六部分散列数据;最后,网络接入服务器通过下述公式(9)将第三部分散列数据循环左移两位后与第五部分散列数据进行异或操作,得到第一字符串S1、通过下述公式(10)将第四部分散列数据循环左移两位后与第六部分散列数据进行异或操作,得到第二字符串S2。
S=SM3(SK+RA) (6)
T1=SM3(S前16字节) (7)
T2=SM3(S后16字节) (8)
S1=((T1前16字节)<<2)XOR(T2前16字节) (9)
S2=((T1后16字节)<<2)XOR(T2后16字节) (10)
其中,SM3表示对括号内的数据基于SM3算法进行散列处理;XOR表示将之前的数据与之后的数据进行异或操作;<<2表示将<<前的数据循环左移2位。
当然,网络接入服务器也可以通过其他混淆处理方式对共享密钥和认证随机数进行混淆处理,得到第一字符串和第二字符串;只要得到的第一字符串与第二字符串与共享密钥和认证随机数不同即可,本实施例不对混淆处理的方式作限定。
步骤204,网络接入服务器基于预设加密算法,将第一字符串作为预设加密算法的加密密钥、并将第二字符串作为预设加密算法的初始向量对待认证口令进行加密。
可选地,预设加密算法为SM4算法;当然,预设加密算法也可以是其他需要使用加密密钥和初始向量的加密算法,本实施例不对该加密算法的类型作限定。
步骤205,网络接入服务器将访问请求数据包发送至口令认证服务器,以供口令认证服务器对待认证口令进行认证;访问请求数据包包括加密后的待认证口令和所述认证随机数。
可选地,网络接入服务器基于RADIUS协议将访问请求数据包发送至口令认证服务器。此时,网络接入服务器将加密后的待认证口令填入访问请求数据包(Access-RequestPacket)中的属性(Attributes)域中。比如:参考图3所示的访问请求数据包的格式,该访问请求数据包包括数据包编号(Code)301,用于标识数据包的类型,比如:数据包编号301用于标识数据包的类型为访问请求包;字节编码(Identifier)302,用于标识短时间内同一个IP端口发出的重复请求,防止重放攻击;长度字段(Length)303,标识数据包的长度;请求认证器(Request Authenticator)304为唯一的、不可预测的特殊值(比如认证随机数);属性305用于存储用户的信息,比如:加密后的待认证口令、用户标识、IP地址等。
步骤206,口令认证服务器接收网络接入服务器发送的访问请求数据包。
其中,访问请求数据包包括加密后的待认证口令和认证随机数。加密后的待认证口令是网络接入服务器基于预设加密算法,将第一字符串作为预设加密算法的加密密钥、并将第二字符串作为预设加密算法的初始向量对待认证口令进行加密得到的;第一字符串和第二字符串是对预先获取到的共享密钥和预先生成的认证随机数进行混淆处理得到的,认证随机数是网络接入服务器接收到终端发送的待认证口令时生成的。
步骤207,口令认证服务器对认证随机数和共享密钥进行混淆处理,得到第三字符串和第四字符串。
可选地,认证随机数是网络接入服务器生成后发送至口令认证服务器的;共享密钥是网络接入服务器与口令认证服务器商定得到的。口令认证服务器使用的混淆处理方式与步骤203中网络接入服务器使用的混淆处理方式相同;此时,若口令认证服务器使用的认证随机数与网络接入服务器使用的认证随机数相同,且口令认证服务器使用的共享密钥与网络接入服务器使用的共享密钥相同,则口令认证服务器生成的第三字符串与第一字符串相同,生成的第四字符串与第二字符串相同。
可选地,口令认证服务器还会接收到网络接入服务器的服务器标识;在对认证随机数和共享密钥进行混淆处理之前,口令认证服务器会查询网络接入服务器是否合法(比如:查询是否存储有网络接入服务器的服务器标识;若已存储则合法;若未存储则不合法),在合法时再执行对认证随机数和共享密钥进行混淆处理的步骤。
步骤208,口令认证服务器基于预设加密算法对应的解密算法,将第三字符串作为解密算法的解密密钥、并将第四字符串作为解密算法的初始向量对加密后的待认证口令进行解密,得到待认证口令。
可选地,预设加密算法为对称加密算法,此时,该预设加密算法对应的解密算法与该预设加密算法相同。
步骤209,口令认证服务器获取本地存储的终端对应的本地口令。
可选地,口令认证服务器通过本地软件生成终端对应的本地口令,该本地软件与终端中的动态令牌同步生成终端对应的动态口令,且口令认证服务器生成本地口令后,会存储终端的用户标识与本地口令之间的对应关系。此时,口令认证服务器获取访问请求数据包中的用户标识,从该对应关系中读取访问请求数据包中的用户标识对应的本地口令。
步骤210,在待认证口令与本地口令相同时,口令认证服务器确定对待认证口令认证成功。
可选地,在待认证口令与本地口令相同时,说明终端发送的待认证口令与口令认证服务器生成的本地口令相同,即,对终端的身份认证通过。
在待认证口令与本地口令不相同时,口令认证服务器确定对待认证口令认证失败。
可选地,口令认证服务器对待认证口令认证完成后,向网络接入服务器发送认证回复消息,若认证成功,则回复认证成功数据包(Access-Accept Packet);若认证失败,则回复认证失败数据包(Access-Reject Packet)。认证回复消息包括第三字符串和第四字符串。
可选地,口令认证服务器将认证回复消息中响应认证器(ResponseAuthenticator)的值进行散列处理后发送至网络接入服务器,比如:经过SM3算法计算后发送至网络接入服务器;这样,可以防止认证回复消息中响应认证器的值被篡改。比如:参考图4所示的认证回复消息的消息格式,该认证回复消息包括数据包编号(Code)401,用于标识数据包的类型,比如:数据包编号401用于标识数据包的类型为认证成功数据包;字节编码(Identifier)402,用于标识短时间内同一个IP端口发出的重复请求,防止重放攻击;长度字段(Length)403,标识数据包的长度;响应认证器404;属性(Attributes)405用于存储用户的信息,比如:用户标识、IP地址等。响应认证器404的值Response Authenticator=SM3(Code+Identifier+Length+RA+Attributes+S1+S2);其中,SM3为散列处理方式,RA为请求认证器的值,S1为第三字符串,S2为第四字符串。
综上所述,本实施例提供的口令认证方法,通过接收终端发送的待认证口令;生成认证随机数;对预先获取到的共享密钥和认证随机数进行混淆处理,得到第一字符串和第二字符串;基于预设加密算法,将第一字符串作为预设加密算法的加密密钥、并将第二字符串作为预设加密算法的初始向量对待认证口令进行加密;将访问请求数据包发送至口令认证服务器,以供口令认证服务器对待认证口令进行认证;访问请求数据包包括加密后的待认证口令和认证随机数;可以解决使用MD5算法、共享密钥和认证随机数直接对待认证口令进行加密时,共享密钥和认证随机数容易被破解,导致待认证口令的传输过程不安全的问题;由于先对共享密钥和认证随机数进行混淆处理,这样,相当于间接使用共享密钥和认证随机数对待认证口令进行加密,提高了共享密钥和认证随机数的破解难度,从而提高了待认证口令的传输过程的安全性。
可选地,在上述实施例中,步骤201-205可单独实现为网络接入服务器侧的方法实施例;步骤206-210可单独实现为口令认证服务器侧的方法实施例。
图5是本申请一个实施例提供的口令认证装置的框图,本实施例以该装置应用于图1所示的口令认证系统中的网络接入服务器120为例进行说明。该装置至少包括以下几个模块:口令接收模块510、随机数生成模块520、混淆处理模块530、口令加密模块540和口令发送模块550。
口令接收模块510,用于接收终端发送的待认证口令;
随机数生成模块520,用于生成认证随机数;
混淆处理模块530,用于对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串;
口令加密模块540,用于基于预设加密算法,将所述第一字符串作为所述预设加密算法的加密密钥、并将所述第二字符串作为所述预设加密算法的初始向量对所述待认证口令进行加密;
口令发送模块550,用于将访问请求数据包发送至口令认证服务器,以供所述口令认证服务器对所述待认证口令进行认证;所述访问请求数据包包括加密后的待认证口令和所述认证随机数。
相关细节参考上述方法实施例。
图6是本申请一个实施例提供的口令认证装置的框图,本实施例以该装置应用于图1所示的口令认证系统中的口令认证服务器130为例进行说明。该装置至少包括以下几个模块:口令接收模块610、混淆处理模块620、口令解密模块630、口令获取模块640和口令认证模块650。
口令接收模块610,用于接收网络接入服务器发送的访问请求数据包,所述访问请求数据包包括加密后的待认证口令和认证随机数,所述加密后的待认证口令是所述网络接入服务器基于预设加密算法,将第一字符串作为所述预设加密算法的加密密钥、并将第二字符串作为所述预设加密算法的初始向量对待认证口令进行加密得到的;所述第一字符串和所述第二字符串是对预先获取到的共享密钥和所述认证随机数进行混淆处理得到的,所述认证随机数是所述网络接入服务器接收到终端发送的待认证口令时生成的;
混淆处理模块620,用于对所述认证随机数和所述共享密钥进行混淆处理,得到第三字符串和第四字符串;
口令解密模块630,用于基于所述预设加密算法对应的解密算法,将所述第三字符串作为所述解密算法的解密密钥、并将所述第四字符串作为所述解密算法的初始向量对所述加密后的待认证口令进行解密,得到所述待认证口令;
口令获取模块640,用于获取本地存储的所述终端对应的本地口令;
口令认证模块650,用于在所述待认证口令与所述本地口令相同时,确定对所述待认证口令认证成功。
相关细节参考上述方法实施例。
需要说明的是:上述实施例中提供的口令认证装置在进行口令认证时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将口令认证装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的口令认证装置与口令认证方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本申请一个实施例提供的口令认证装置的框图,该装置可以是图1所示的口令认证系统中的网络接入服务器120或者口令认证服务器130。该装置至少包括处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如:4核心处理器、7核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的口令认证方法。
在一些实施例中,口令认证装置还可选包括有:外围设备接口和至少一个外围设备。处理器701、存储器702和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,口令认证装置还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的口令认证方法。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的口令认证方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种口令认证方法,其特征在于,用于网络接入服务器,所述方法包括:
接收终端发送的待认证口令,所述待认证口令是动态口令;
生成认证随机数;
对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串;
基于预设加密算法,将所述第一字符串作为所述预设加密算法的加密密钥、并将所述第二字符串作为所述预设加密算法的初始向量对所述待认证口令进行加密;
将访问请求数据包发送至口令认证服务器,以供所述口令认证服务器对所述待认证口令进行认证;所述访问请求数据包包括加密后的待认证口令和所述认证随机数;所述口令认证服务器使用的混淆处理方式与所述网络接入服务器使用的混淆处理方式相同。
2.根据权利要求1所述的方法,其特征在于,所述对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串,包括:
对所述共享密钥和所述认证随机数进行散列处理,得到第一散列数据;所述第一散列数据包括第一部分散列数据和第二部分散列数据;
对所述第一部分散列数据进行散列处理,得到第二散列数据;所述第二散列数据包括第三部分散列数据和第四部分散列数据;
对所述第二部分散列数据进行散列处理,得到第三散列数据;所述第三散列数据包括第五部分散列数据和第六部分散列数据;
将所述第三部分散列数据与所述第五部分散列数据进行异或操作,得到所述第一字符串;
将所述第四部分散列数据与所述第六部分散列数据进行异或操作,得到所述第二字符串。
3.根据权利要求1所述的方法,其特征在于,所述对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串,包括:
对所述共享密钥和所述认证随机数进行散列处理,得到第一散列数据;所述第一散列数据包括第一部分散列数据和第二部分散列数据;
对所述第一部分散列数据进行散列处理,得到第二散列数据;所述第二散列数据包括第三部分散列数据和第四部分散列数据;
对所述第二部分散列数据进行散列处理,得到第三散列数据;所述第三散列数据包括第五部分散列数据和第六部分散列数据;
将所述第三部分散列数据循环左移两位后与所述第五部分散列数据进行异或操作,得到所述第一字符串;
将所述第四部分散列数据循环左移两位后与所述第六部分散列数据进行异或操作,得到所述第二字符串。
4.根据权利要求2或3所述的方法,其特征在于,所述散列处理为基于密码散列函数标准SM3进行散列。
5.根据权利要求1至3任一所述的方法,其特征在于,所述预设加密算法为分组密码标准SM4算法。
6.一种口令认证方法,其特征在于,用于口令认证服务器中,所述方法包括:
接收网络接入服务器发送的访问请求数据包,所述访问请求数据包包括加密后的待认证口令和认证随机数,所述加密后的待认证口令是所述网络接入服务器基于预设加密算法,将第一字符串作为所述预设加密算法的加密密钥、并将第二字符串作为所述预设加密算法的初始向量对待认证口令进行加密得到的;所述第一字符串和所述第二字符串是对预先获取到的共享密钥和所述认证随机数进行混淆处理得到的,所述认证随机数是所述网络接入服务器接收到终端发送的待认证口令时生成的;所述待认证口令是动态口令;
对所述认证随机数和所述共享密钥进行混淆处理,得到第三字符串和第四字符串;所述口令认证服务器使用的混淆处理方式与所述网络接入服务器使用的混淆处理方式相同;
基于所述预设加密算法对应的解密算法,将所述第三字符串作为所述解密算法的解密密钥、并将所述第四字符串作为所述解密算法的初始向量对所述加密后的待认证口令进行解密,得到所述待认证口令;
获取本地存储的所述终端对应的本地口令;
在所述待认证口令与所述本地口令相同时,确定对所述待认证口令认证成功。
7.一种口令认证装置,其特征在于,用于网络接入服务器,所述装置包括:
口令接收模块,用于接收终端发送的待认证口令,所述待认证口令是动态口令;
随机数生成模块,用于生成认证随机数;
混淆处理模块,用于对预先获取到的共享密钥和所述认证随机数进行混淆处理,得到第一字符串和第二字符串;
口令加密模块,用于基于预设加密算法,将所述第一字符串作为所述预设加密算法的加密密钥、并将所述第二字符串作为所述预设加密算法的初始向量对所述待认证口令进行加密;
口令发送模块,用于将访问请求数据包发送至口令认证服务器,以供所述口令认证服务器对所述待认证口令进行认证;所述访问请求数据包包括加密后的待认证口令和所述认证随机数;所述口令认证服务器使用的混淆处理方式与所述网络接入服务器使用的混淆处理方式相同。
8.一种口令认证装置,其特征在于,用于口令认证服务器中,所述装置包括:
口令接收模块,用于接收网络接入服务器发送的访问请求数据包,所述访问请求数据包包括加密后的待认证口令和认证随机数,所述加密后的待认证口令是所述网络接入服务器基于预设加密算法,将第一字符串作为所述预设加密算法的加密密钥、并将第二字符串作为所述预设加密算法的初始向量对待认证口令进行加密得到的;所述第一字符串和所述第二字符串是对预先获取到的共享密钥和所述认证随机数进行混淆处理得到的,所述认证随机数是所述网络接入服务器接收到终端发送的待认证口令时生成的;所述待认证口令是动态口令;
混淆处理模块,用于对所述认证随机数和所述共享密钥进行混淆处理,得到第三字符串和第四字符串;所述口令认证服务器使用的混淆处理方式与所述网络接入服务器使用的混淆处理方式相同;
口令解密模块,用于基于所述预设加密算法对应的解密算法,将所述第三字符串作为所述解密算法的解密密钥、并将所述第四字符串作为所述解密算法的初始向量对所述加密后的待认证口令进行解密,得到所述待认证口令;
口令获取模块,用于获取本地存储的所述终端对应的本地口令;
口令认证模块,用于在所述待认证口令与所述本地口令相同时,确定对所述待认证口令认证成功。
9.一种口令认证装置,其特征在于,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至5任一项所述的口令认证方法;或者,实现如权利要求6所述的口令认证方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至5任一项所述的口令认证方法;或者,实现如权利要求6所述的口令认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910188547.1A CN109714176B (zh) | 2019-03-13 | 2019-03-13 | 口令认证方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910188547.1A CN109714176B (zh) | 2019-03-13 | 2019-03-13 | 口令认证方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714176A CN109714176A (zh) | 2019-05-03 |
CN109714176B true CN109714176B (zh) | 2021-11-30 |
Family
ID=66265855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910188547.1A Active CN109714176B (zh) | 2019-03-13 | 2019-03-13 | 口令认证方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714176B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311740B (zh) * | 2019-07-31 | 2022-06-21 | 深圳市云海物联科技有限公司 | 数据加密方法、数据解密方法、终端及存储介质 |
CN111092721B (zh) * | 2019-12-03 | 2023-03-03 | 深圳前海微众银行股份有限公司 | 一种设置访问口令的方法及装置 |
CN111245802B (zh) * | 2020-01-06 | 2022-06-17 | 银清科技有限公司 | 数据传输安全控制方法、服务器以及终端 |
CN111464301B (zh) * | 2020-04-28 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种密钥管理方法及系统 |
CN112597475A (zh) * | 2020-12-24 | 2021-04-02 | 深圳市九洲电器有限公司 | 指令执行方法、装置、终端设备以及存储介质 |
CN113114654B (zh) * | 2021-04-06 | 2022-10-18 | 中科美络科技股份有限公司 | 一种终端设备接入安全认证方法、装置及系统 |
CN114760138B (zh) * | 2022-04-20 | 2024-02-13 | 深圳市昊洋智能有限公司 | 基于云架构下的视频会议系统安全方法及装置 |
CN115795413B (zh) * | 2023-02-07 | 2023-05-16 | 山东省计算中心(国家超级计算济南中心) | 基于国密算法的软件认证保护方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1534931A (zh) * | 2003-04-02 | 2004-10-06 | 华为技术有限公司 | 一种在无线局域网中生成动态密钥的方法 |
CN101064595A (zh) * | 2006-04-27 | 2007-10-31 | 联想(北京)有限公司 | 一种计算机网络安全输入认证系统和方法 |
CN101252788A (zh) * | 2008-04-11 | 2008-08-27 | 北京首信科技有限公司 | 支持RADIUS协议的Diameter-AAA服务器及其工作方法 |
CN103795534A (zh) * | 2012-10-31 | 2014-05-14 | 三星Sds株式会社 | 基于口令的认证方法及用于执行该方法的装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9143324B2 (en) * | 2010-06-07 | 2015-09-22 | Protected Mobility, Llc | Secure messaging |
-
2019
- 2019-03-13 CN CN201910188547.1A patent/CN109714176B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1534931A (zh) * | 2003-04-02 | 2004-10-06 | 华为技术有限公司 | 一种在无线局域网中生成动态密钥的方法 |
CN101064595A (zh) * | 2006-04-27 | 2007-10-31 | 联想(北京)有限公司 | 一种计算机网络安全输入认证系统和方法 |
CN101252788A (zh) * | 2008-04-11 | 2008-08-27 | 北京首信科技有限公司 | 支持RADIUS协议的Diameter-AAA服务器及其工作方法 |
CN103795534A (zh) * | 2012-10-31 | 2014-05-14 | 三星Sds株式会社 | 基于口令的认证方法及用于执行该方法的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109714176A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109714176B (zh) | 口令认证方法、装置及存储介质 | |
CN110324143B (zh) | 数据传输方法、电子设备及存储介质 | |
CN109347835B (zh) | 信息传输方法、客户端、服务器以及计算机可读存储介质 | |
CN109088889B (zh) | 一种ssl加解密方法、系统及计算机可读存储介质 | |
WO2018046009A1 (zh) | 一种区块链身份系统 | |
US11533297B2 (en) | Secure communication channel with token renewal mechanism | |
CN111416807B (zh) | 数据获取方法、装置及存储介质 | |
EP4016920A1 (en) | Confidential authentication and provisioning | |
EP3324572B1 (en) | Information transmission method and mobile device | |
WO2021114891A1 (zh) | 密钥加密方法、解密方法及数据加密方法、解密方法 | |
US10594479B2 (en) | Method for managing smart home environment, method for joining smart home environment and method for connecting communication session with smart device | |
KR20060003319A (ko) | 기기 인증 시스템 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN110690956B (zh) | 双向认证方法及系统、服务器和终端 | |
CN110958209B (zh) | 基于共享密钥的双向认证方法及系统、终端 | |
CN108809633B (zh) | 一种身份认证的方法、装置及系统 | |
WO2023083007A1 (zh) | 物联网设备身份认证方法、装置、系统及存储介质 | |
CN114244508B (zh) | 数据加密方法、装置、设备及存储介质 | |
CN114553590A (zh) | 数据传输方法及相关设备 | |
CN114143108A (zh) | 一种会话加密方法、装置、设备及存储介质 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
US20240106633A1 (en) | Account opening methods, systems, and apparatuses | |
CN111740995B (zh) | 一种授权认证方法及相关装置 | |
CN115473655B (zh) | 接入网络的终端认证方法、装置及存储介质 | |
CN109510711B (zh) | 一种网络通信方法、服务器、客户端及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |