本发明属于通信技术领域,具体涉及一种短信认证方法、短信认证服务器及终端。
背景技术:
近年来随着移动通信技术的发展,许多终端设备具有移动通信功能,而短信具有实现简单,费用低廉和被广泛接收的基础,因而许多终端设备可以用短信进行通信。随着技术的普及和发展,安全问题逐渐显现,但是短信通信的安全问题还没有引起足够重视。
设备之间的短信通信安全认证方法,一般是对短信的发送方进行身份安全认证,目前采用的是用号码进行身份认证(即从短信中提取发送方的号码,然后和设备本地存储的号码进行比对),但是现在已经出现了伪造手机号码的短信,因此常用的身份认证方式已经难以满足要求。
技术实现要素:
本发明旨在至少解决现有技术中存在的技术问题之一,提供一种安全性能好、计算简单的短信认证方法、短信认证服务器及终端。
解决本发明技术问题所采用的技术方案是一种短信认证方法,包括:
接收客户端所发送的短信认证请求信息,并生成相应的验证码内容;其中,所述请求信息包括所述客户端所属终端的终端号码;
将所生成的验证码内容和终端的终端号码发送给短信网关,以使所述短信网关将所述验证码内容发送给所述终端;
接收短信网关所发送的记录信息;所述记录信息为:所述短信网关在接收到验证码内容和终端的终端号码时,所记录的信息;
将所述记录信息发送给所述客户端;
根据所接收的所述记录信息和所生成的所述验证码内容,采用预设算法进行计算,得到第一认证信息;
将所述第一认证信息与第二认证信息进行比较;其中,所述第二认证信息为:所述客户端根据所接收的记录信息和用户通过所述终端所输入的验证码内容,采用预设算法进行计算得到的信息;
根据比较结果判断该用户是否通过验证。
优选的是,所述记录信息为所述短信网关在接收到验证码内容和终端的终端号码时,所记录的时间戳。
优选的是,所述根据所接收的所述记录信息和所生成的所述验证码内容,采用预设算法进行计算,得到第一认证信息的步骤,具体包括:
根据所接收的所述记录信息和所生成的所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第一认证信息。
进一步优选的是,所述第二认证信息具体为:所述客户端根据所接收的记录信息和所述终端所接收的验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第二认证信息。
解决本发明技术问题所采用的技术方案是一种短信认证方法,包括:
接收用户通过终端所发送的短信认证请求信息;其中,所述请求信息包括所述终端的终端号码;
将所述短信认证请求信息发送给短信认证服务器,以使所述短信认证服务器生成相应的验证码内容,以及将所述验证码内容和所述终端号码发送给短信网关,以使所述短信网关向所述终端发送所述验证码内容,以及向所述短信认证服务器发送记录信息;所述记录信息为:所述短信网关在接收到验证码内容和终端的终端号码时,所记录的信息;
接收所述短信认证服务器所发送的所述记录信息;
接收用户通过所述终端所输入的验证码内容;
根据接收的所述记录信息和所述验证码内容,采用预设算法进行计算,得到第二认证信息;
将所述第二认证信息发送给所述短信认证服务器,以使所述短信认证服务器将所述第一认证信息与第二认证信息进行比较;其中,第一认证信息为:所述短信认证服务器根据所接收的所述记录信息和所生成的所述验证码内容,采用预设算法进行计算得到信息。
优选的是,所述记录信息为所述短信网关在接收到验证码内容和终端的终端号码时,所记录的时间戳。
优选的是,所述根据接收的所述记录信息和所述验证码内容,采用预设算法进行计算,得到第二认证信息的步骤,具体包括:
根据接收的所述记录信息和所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第二认证信息。
进一步优选的是,所述第一认证信息具体为:所述短信认证服务器根据所接收的所述记录信息和所生成的所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第一认证信息。
解决本发明技术问题所采用的技术方案是一种短信认证服务器,包括:
第一接收模块,用于接收客户端所发送的短信认证请求信息,并生成相应的验证码内容;其中,所述请求信息包括所述客户端所属终端的终端号码;
生成模块,用于将所生成的验证码内容和终端的终端号码发送给短信网关,以使所述短信网关将所述验证码内容发送给所述终端;
第二接收端模块,用于接收短信网关所发送的记录信息;所述记录信息为:所述短信网关在接收到验证码内容和终端的终端号码时,所记录的信息;
第一发送模块,用于将所述记录信息发送给所述客户端;
第一计算模块,用于根据所接收的所述记录信息和所生成的所述验证码内容,采用预设算法进行计算,得到第一认证信息;
比较模块,用于将所述第一认证信息与第二认证信息进行比较;其中,所述第二认证信息为:所述客户端根据所接收的记录信息和用户通过所述终端所输入的验证码内容,采用预设算法进行计算得到的信息;
判断模块,用于根据比较结果判断该用户是否通过验证。
优选的是,所述记录信息为所述短信网关在接收到验证码内容和终端的终端号码时,所记录的时间戳。
优选的是,所述第一计算模块,具体用于根据所接收的所述记录信息和所生成的所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第一认证信息。
进一步优选的是,所述第二认证信息具体为:所述客户端根据所接收的记录信息和所述终端所接收的验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第二认证信息。
解决本发明技术问题所采用的技术方案是一种终端,包括:
第三接收模块,用于接收用户通过终端所发送的短信认证请求信息;其中,所述请求信息包括所述终端的终端号码;
第二发送模块,用于将所述短信认证请求信息发送给短信认证服务器,以使所述短信认证服务器生成相应的验证码内容,以及将所述验证码内容和所述终端号码发送给短信网关,以使所述短信网关向所述终端发送所述验证码内容,以及向所述短信认证服务器发送记录信息;所述记录信息为:所述短信网关在接收到验证码内容和终端的终端号码时,所记录的信息;
第四接收模块,用于接收所述短信认证服务器所发送的所述记录信息;
第五接收模块,用于接收用户通过所述终端所输入的验证码内容;
第二计算模块,用于根据接收的所述记录信息和所述验证码内容,采用预设算法进行计算,得到第二认证信息;
第三发送模块,用于将所述第二认证信息发送给所述短信认证服务器,以使所述短信认证服务器将所述第一认证信息与第二认证信息进行比较;其中,第一认证信息为:所述短信认证服务器根据所接收的所述记录信息和所生成的所述验证码内容,采用预设算法进行计算得到信息。
优选的是,所述记录信息为所述短信网关在接收到验证码内容和终端的终端号码时,所记录的时间戳。
优选的是,所述第二计算模块,具体用于根据接收的所述记录信息和所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第二认证信息。
进一步优选的是,所述第一认证信息具体为:所述短信认证服务器根据所接收的所述记录信息和所生成的所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第一认证信息。
本发明具有如下有益效果:
本发明中所提供的短信认证方法,通过短信网关记录时间戳,并将时间戳通过互联网通道传送给短信认证服务端和客户端,时间戳和短信验证码同时作为验证用户权限的计算参数,这样可以避免短信被盗用或者截获后,造成的安全问题。而且该过程在短信认证服务端只运用了一次MAC运算,简化了加密解密过程,极大的简化了服务端的运算,减少了服务端的压力。
附图说明
图1为本发明的实施例1的短信认证方法的流程图;
图2为本发明的实施例2的短信认证服务的结构示意图;
图3为本发明的实施例3的终端的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
实施例1:
本实施例提供一种短信的认证方法,如图1所示,该方法具体包括如下步骤:
1、用户登录终端中的客户端时,发送短信认证请求;其中,该短信认证请求中至少包括该手机终端的终端号码,当然还可以包括发送短信认证请求的客户端的标识和相关的链路信息。在此需要说明的是,本实施例中以终端为手机为例进行说明,当然该终端也可以是ipad等其它电子设备;终端号码也即是手机号码。
2、客户端将用户所发送的短信认证请求发送给短信认证服务器,此时短信认证服务器将会记录下用户的手机号码等信息。
3、短信认证服务器在记录下用户的手机号码等信息的同时,还将会生成验证码内容,该验证码内容可以是数字,也可以是字母,还可以是短语等。之后,短信认证服务器把手机号码和所生成的验证码内容发送给短信网关。
4、短信网关在收到短信认证服务器所发送的手机号码和所生成的验证码内容时,标记一个记录信息。其中,该记录信息优选为时间戳,以下以该记录信息为时间戳为例进行说明,但这并不构成对本实施例的限定。之后,短信网关将把该时间戳发送给短信认证服务器,与此同时,短信网关向手机终端发送短信认证服务器所生成的验证码内容。
5、短信认证服务器在接收到短信网关所发送的时间戳后,将该时间戳发送给客户端。同时,短信认证服务器根据所接收的时间戳和所生成的验证码信息采用预设算法进行计算,得到第一认证信息;具体的可以采用标准摘要算法(如SHA1算法)进行MAC运算,获取MAC码(长度与算法相关,对于SHA1算法,MAC码的长度为20字节),并截取后8位字节(当然,也不局限于选截取后8位字节)作为第一认证信息。
6、用户将手机终端所接收到的验证码内容输入到客户端。
7、客户端根据所接收到的短信认证服务器所发送的时间戳和客户所输入的验证码内容,采用采用预设算法进行计算,得到第二认证信息;具体的可以采用标准摘要算法(如SHA1算法)进行MAC运算,获取MAC码(长度与算法相关,对于SHA1算法,MAC码的长度为20字节),并截取后8位字节(当然,也不局限于选截取后8位字节)作为第二认证信息。之后,将第二认证信息发送给短信认证服务器。
8、短信认证服务器将第一认证信息和第二认证信息进行比较,并判断这两个信息是否一致,若这两个信息一致,则认为该用户通过验证,即该用户可以使用该客户端进行后续访问。
本实施例中所提供的短信认证方法,通过短信网关记录时间戳,并将时间戳通过互联网通道传送给短信认证服务端和客户端,时间戳和短信验证码同时作为验证用户权限的计算参数,这样可以避免短信被盗用或者截获后,造成的安全问题。而且该过程在短信认证服务端只运用了一次MAC运算,简化了加密解密过程,极大的简化了服务端的运算,减少了服务端的压力。
实施例2:
如图2所示,本实施例提供一种短信认证服务器,其包括:第一接收模块、第二接收端模块、生成模块、第一发送模块、第一计算模块、比较模块、判断模块。
其中,第一接收模块用于接收客户端所发送的短信认证请求信息,并生成相应的验证码内容;其中,所述请求信息包括所述客户端所属终端的手机号码。
生成模块用于将所生成的验证码内容和终端的手机号码发送给短信网关,以使所述短信网关将所述验证码内容发送给所述终端;
第二接收端模块用于接收短信网关所发送的记录信息;所述记录信息为:所述短信网关在接收到验证码内容和终端的手机号码时,所记录的信息;优选的,记录信息为所述短信网关在接收到验证码内容和终端的手机号码时,所记录的时间戳。
第一发送模块用于将所述记录信息发送给所述客户端。
第一计算模块,用于根据所接收的所述记录信息和所生成的所述验证码内容,采用预设算法进行计算,得到第一认证信息。
具体的,第一计算模块具体用于根据所接收的所述记录信息和所生成的所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第一认证信息。
比较模块用于将所述第一认证信息与第二认证信息进行比较;其中,所述第二认证信息为:所述客户端根据所接收的记录信息和用户通过所述终端所输入的验证码内容,采用预设算法进行计算得到的信息;优选的,该第二认证信息具体为:所述客户端根据所接收的记录信息和所述终端所接收的验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第二认证信息。
判断模块用于根据比较结果判断该用户是否通过验证。若这两个信息一致,则认为该用户通过验证,即该用户可以使用该客户端进行后续访问。
本实施例中所提供的短信认证服务器,通过短信网关记录时间戳,并将时间戳通过互联网通道传送给短信认证服务端和客户端,时间戳和短信验证码同时作为验证用户权限的计算参数,这样可以避免短信被盗用或者截获后,造成的安全问题。而且该过程在短信认证服务端只运用了一次MAC运算,简化了加密解密过程,极大的简化了服务端的运算,减少了服务端的压力。
实施例3:
如图3所示,本实施例中提供一种终端,该终端可以为手机终端,当然也可以为ipad等其它电子设备。该终端包括第三接收模块、第四接收模块、第五接收模块、第二发送模块、第三发送模块、第二计算模块。
其中,第三接收模块用于接收用户通过终端所发送的短信认证请求信息;其中,所述请求信息包括所述终端的手机号码。
第二发送模块用于将所述短信认证请求信息发送给短信认证服务器,以使所述短信认证服务器生成相应的验证码内容,以及将所述验证码内容和所述手机号码发送给短信网关,以使所述短信网关向所述终端发送所述验证码内容,以及向所述短信认证服务器发送记录信息;所述记录信息为:所述短信网关在接收到验证码内容和终端的手机号码时,所记录的信息。优选的,该记录信息为时间戳。
第四接收模块用于接收所述短信认证服务器所发送的所述记录信息。
第五接收模块用于接收用户通过所述终端所输入的验证码内容。
第二计算模块,用于根据接收的所述记录信息和所述验证码内容,采用预设算法进行计算,得到第二认证信息。
具体的,该第二计算模块具体用于根据接收的所述记录信息和所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第二认证信息。
第三发送模块用于将所述第二认证信息发送给所述短信认证服务器,以使所述短信认证服务器将所述第一认证信息与第二认证信息进行比较;其中,第一认证信息为:所述短信认证服务器根据所接收的所述记录信息和所生成的所述验证码内容,采用预设算法进行计算得到信息。优选的,该第一认证信息具体为:所述短信认证服务器根据所接收的所述记录信息和所生成的所述验证码内容,采用标准摘要算法进行MAC运算,获取MAC码,并截取后8位字节作为第一认证信息。
本实施例中所提供的终端,通过短信网关记录时间戳,并将时间戳通过互联网通道传送给短信认证服务端和客户端,时间戳和短信验证码同时作为验证用户权限的计算参数,这样可以避免短信被盗用或者截获后,造成的安全问题。而且该过程在短信认证服务端只运用了一次MAC运算,简化了加密解密过程,极大的简化了服务端的运算,减少了服务端的压力。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。