一种安全登录方法、客户端设备及服务器与流程

文档序号:11253707阅读:261来源:国知局
一种安全登录方法、客户端设备及服务器与流程

本发明涉及网络安全技术领域,更具体地说,涉及一种安全登录方法、客户端设备及服务器。



背景技术:

一个完整的web(worldwideweb,全球广域网)系统往往需要用户登录操作,而安全登录是大部分用户访问互联网、使用互联网服务的关键步骤,系统中维护了用户众多的私密信息,例如手机号、身份证号码、家庭住址、银行卡信息等等,如果用户登录的安全性不能保证,这些信息遭到窃取,这将会给系统用户造成巨大的损失,所以,系统安全对一个合格系统而言至关重要,一套合理的安全登录方式更是重中之重。

由于系统对密码复杂度要求不高时,该系统下的密码很容易就能被暴力破解,所以为了解决这个问题有的系统会要求用户设置非常复杂的登录密码,例如数字+字母+特殊字符并且总长度大于10位,来防止入侵,更有甚者为了防止暴力破解用户密码往往加上验证码的功能,这虽然在一定程度上能防止一部分非法入侵,但是这样用户的体验效果并不好,用户每次都需要输入复杂的密码或者输入验证码进行身份认证,操作十分不便;然而不管是上述哪一种情况,不论密码是否复杂都不能防止接口重放攻击,所谓接口重放攻击是指攻击者发送一个目的主机已经接收过的包,特别是在认证过程中用于认证用户身份所接收的包,来达到欺骗系统的目的,所以即使系统加上了验证码的功能,入侵者只要在验证码有效期内拦截登录请求依旧可以很轻松地就入侵到系统中,因此如何防止系统登录过程中的重放攻击以及在保证用户体验效果的同时防止暴力破解成为了亟待解决的重要问题。



技术实现要素:

本发明要解决的技术问题在于:现有系统登录方式中的登录请求密码固定,导致该密码容易被暴力破解且当攻击者劫取到该登录请求密码后能直接登录服务造成系统不安全的问题。

为解决上述技术问题,本发明提供一种安全登录方法,包括:

服务器接收客户端设备发送的登录认证请求,所述登录认证请求中包含用户识别信息、以及所述客户端设备根据本次请求的登录附加码和用户密码采用预设算法生成的登录请求密码,所述登录附加码包括在所述客户端设备发起所述登录认证请求之前所述服务器为其动态生成并在所述服务器侧有存储的动态随机码;

根据所述用户识别信息在注册密码数据库中查询注册时存入的注册密码,所述注册密码根据所述用户密码生成;

采用所述预设算法对所述服务器侧存储的动态随机码和所述注册密码进行计算得到新密码;

根据所述新密码对所述登录请求密码进行验证。

进一步地,所述接收客户端设备发送的登录认证请求之前,还包括:

接收所述客户端设备发送的登录页面显示请求并生成动态随机码,将所述动态随机码进行存储,并将所述动态随机码发送给客户端设备以供所述客户端设备生成登录请求密码。

进一步地,所述接收客户端设备发送的登录认证请求之前,还包括:接收所述客户端设备发送的注册请求并完成注册;所述登录附加码还包括所述在注册过程中生成的固定码;所述注册过程包括:

接收所述客户端设备发送的注册页面显示请求并生成固定码,将所述固定码发送给所述客户端设备以供所述客户端设备根据所述固定码和所述用户密码组合生成注册密码。

进一步地,所述登录认证请求中还包括动态随机码;

所述采用预设算法对服务器侧存储的动态随机码和所述注册密码进行计算得到新密码之前还包括:

将本次接收到所述登录认证请求中的动态随机码与之前至少一个登录认证请求产生的动态随机码进行比较,若存在一致的动态随机码,则将本次登录认证请求视为无效登录认证请求;

和/或,

从所述登录认证请求中获取所述动态随机码,并获取所述服务器侧存储的动态随机码的有效时间范围,判断所述登录认证请求中的动态随机码当前是否在所述有效时间范围内,如否,将本次登录认证请求视为无效登录认证请求。

进一步地,本发明还提供一种安全登录方法,包括:

客户端设备根据本次请求的登录附加码和用户密码采用预设算法生成登录请求密码;所述登录附加码包括在所述客户端设备发起登录认证请求之前服务器为其动态生成并在所述服务器侧有存储的动态随机码;

发送包含用户识别信息和所述登录请求密码的登录认证请求,以供所述服务器根据用户识别信息在注册密码数据库中查询注册时存入的注册密码,进而采用预设算法对所述服务器侧存储的动态随机码和所述注册密码进行计算得到用于对所述登录请求密码进行验证的新密码,所述注册密码根据所述用户密码生成。

进一步地,本发明还提供一种服务器,包括:

登录认证请求接收模块,用于接收客户端设备发送的登录认证请求,所述登录认证请求中包含用户识别信息、以及所述客户端设备根据本次请求的登录附加码和用户密码采用预设算法生成的登录请求密码,所述登录附加码包括在所述客户端设备发起所述登录认证请求之前所述服务器为其动态生成并在所述服务器侧有存储的动态随机码;

查询模块,用于根据所述用户识别信息在注册密码数据库中查询注册时存入的注册密码,所述注册密码根据所述用户密码生成;

计算模块,用于采用所述预设算法对所述服务器侧存储的动态随机码和所述注册密码进行计算得到新密码;

验证模块,用于根据所述新密码对所述登录请求密码进行验证。

进一步地,所述服务器还包括:

随机码发送处理模块,用于在接收客户端设备发送的登录认证请求之前接收所述客户端设备发送的登录页面显示请求并生成动态随机码,将所述动态随机码进行存储,并将所述动态随机码发送给客户端设备以供所述客户端设备生成登录请求密码。

进一步地,所述服务器还包括注册模块,用于在接收所述客户端设备发送的登录认证请求之前接收所述客户端设备发送的注册请求并完成注册;所述登录附加码还包括所述在注册过程中生成的固定码;所述注册模块包括:

注册处理单元,用于在注册过程中接收所述客户端设备发送的注册页面显示请求并生成固定码,将所述固定码发送给所述客户端设备以供所述客户端设备根据所述固定码和所述用户密码组合生成注册密码。

进一步地,所述登录认证请求中还包括动态随机码;所述服务器还包括:

第一判断模块,用于将本次接收到所述登录认证请求中的动态随机码与之前至少一个登录认证请求产生的动态随机码进行比较,若存在一致的动态随机码,则将本次登录认证请求视为无效登录认证请求;

和/或,

第二判断模块,用于从所述登录认证请求中获取所述动态随机码,并获取所述服务器侧存储的动态随机码的有效时间范围,判断所述登录认证请求中的动态随机码当前是否在所述有效时间范围内,如否,将本次登录认证请求视为无效登录认证请求。

进一步地,本发明提供一种客户端设备,包括:

登录请求密码生成模块,用于根据本次请求的登录附加码和用户密码采用预设算法生成登录请求密码;所述登录附加码包括在所述客户端设备发起登录认证请求之前服务器为其动态生成并在所述服务器侧有存储的动态随机码;

登录认证请求发送模块,用于发送包含用户识别信息和所述登录请求密码的登录认证请求,以供所述服务器根据用户识别信息在注册密码数据库中查询注册时存入的注册密码,进而采用预设算法对所述服务器侧存储的动态随机码和所述注册密码进行计算得到用于对所述登录请求密码进行验证的新密码,所述注册密码根据所述用户密码生成。

有益效果

本发明提供一种安全登录方法、客户端设备及服务器,服务器通过接收客户端设备发送的登录认证请求,并根据登录认证请求中的用户识别信息在注册密码数据库中查询注册时存入的注册密码,其中,登录认证请求中还包含该客户端设备根据本次请求的登录附加码和用户密码采用预设算法生成的登录请求密码,登录附加码包括在该客户端设备发起登录认证请求时服务器为其动态生成并在服务器侧有存储的动态随机码,注册密码根据用户密码生成;然后采用预设算法对服务器侧存储的动态随机码和注册密码进行计算得到新密码,根据新密码对登录请求密码进行验证,由于随机码是服务器动态生成的,所以服务器每次接收到登录认证请求时,每次请求所对应产生的动态随机码也就不同,从而对每一次登录请求而言在服务器侧存储的用于验证登录请求密码的动态随机码也就不同,所以即使攻击者拦截到了之前客户端设备向服务器发送的登录请求密码,但由于攻击者此次发起的登录请求时服务器相应产生的动态随机码与之前客户端设备发起登录请求时相应产生的动态随机码不同,所以攻击者发送的登录请求密码就无法通过服务器的认证,从而保证了登录过程不被重放攻击,由于相对于现有方案而言,本方案在用户密码的基础上结合了动态随机码,因此从一定程度上也防止了暴力破解攻击,从而就算用户设置的用户密码简单,也能保证登录传输过程中的安全性,在防止暴力破解的同时也防止了重放攻击,提升了用户体验的满意度。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为实现本发明各个实施例一个可选的客户端设备的硬件结构示意图;

图2为实现本发明各个实施例一个可选的服务器的硬件结构示意图;

图3为本发明第一实施例提供的在服务器侧执行的安全登录方法的流程示意图;

图4为本发明第一实施例提供的在客户端设备侧执行的安全登录方法的流程示意图;

图5为本发明第二实施例提供的安全登录方法的流程示意图;

图6为本发明第二实施例提供的服务器对登录认证请求进行验证的流程示意图;

图7为本发明第三实施例提供的服务器的第一结构示意图;

图8为本发明第三实施例提供的服务器的第二结构示意图;

图9为本发明第三实施例提供的服务器的第三结构示意图;

图10为本发明第三实施例提供的客户端设备的结构示意图;

图11为本发明第四实施例提供的安全登录系统的结构示意图;

图12为本发明第四实施例提供的安全登录系统中服务器的结构示意图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现在将参考附图描述实现本发明各个实施例的移动应用设备。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。

本实施例中的客户端设备可以为任意的终端,其中本实施例中的终端可以以各种形式来实施,例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、导航装置等等的移动应用设备以及诸如数字tv、台式计算机等等的固定应用设备。下面,假设终端是移动终端,然而,本领域技术人员应当理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。

移动终端100可以包括无线通信单元110、a/v(音频/视频)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。

无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块、移动通信模块、无线互联网模块、短程通信模块和位置信息模块中的至少一个。

a/v输入单元120用于接收音频或视频信号。a/v输入单元120可以包括相机和麦克风,相机对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示模块上。经相机处理后的图像帧可以存储在存储器160(或其它存储介质)中或者经由无线通信单元110进行发送,可以根据移动终端的构造提供两个或更多相机。麦克风可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样的声音处理为音频数据,同时,麦克风也可以采集移动终端所处环境的声音。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由移动通信模块发送到移动通信基站的格式输出。麦克风可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。

用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。其中,用户可以通过用户输入单元130输入情境推理条件,以对其他传感设备采集到的数据进行推理组合,特别地,当触摸板以层的形式叠加在显示模块上时,可以形成触摸屏。

感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、用户对于移动终端100操作的速度、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。感测单元140可以包括接近传感器、重力传感器、射频识别模块、温度传感器等等。

接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(uim)、客户识别模块(sim)、通用客户识别模块(usim)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。

另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元150可以包括显示模块、音频输出模块、警报模块等等。

存储器160可以存储由控制器180执行的处理和控制操作的软件应用等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。

存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。

控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块,多媒体模块可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。

电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。

这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用(或应用)来实施,软件代码可以存储在存储器中并且由控制器180执行。

至此,已经按照其功能描述了移动终端,应当理解的是,本实施例中的移动终端可以包括但不限于上述的功能。

请参见图2所示,图2为实现本发明各个实施例一个可选的服务器的结构示意图,该服务器至少包括:

输入输出(io)总线21、处理器22、存储器23、内存24和通信装置25。其中,

输入输出(io)总线21分别与自身所属的服务器的其它部件(处理器22、存储器23、内存24和通信装置25)连接,并且为其它部件提供传送线路。

处理器22通常控制自身所属的服务器的总体操作。例如,处理器22执行计算和确认等操作。其中,处理器22可以是中央处理器(cpu)。

存储器23存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器22执行本文描述的功能的指令(即软件执行功能)。

其中,本发明提供的服务器中,实现登录认证请求接收模块、查询模块、计算模块、验证模块、随机码发送处理模块、随机码接收处理模块、第一注册处理单元、第二注册处理单元、第一判断模块以及第二判断模块的功能的软件代码可存储在存储器23中,并由处理器22执行或编译后执行。

内存24,一般采用半导体存储单元,包括随机存储器(ram),只读存储器(rom),以及高速缓存(cache),ram是其中最重要的存储器。内存24是计算机中重要的部件之一,它是与处理器22进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放处理器22中的运算数据,以及与硬盘等外部存储器交换的数据,只要计算机在运行中,处理器22就会把需要运算的数据调到内存中进行运算,当运算完成后处理器22再将结果传送出来。

通信装置25,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。

以下通过具体实施例进行详细说明。

第一实施例

为了防止登录过程中的重放攻击,同时防止暴力破解密码攻击,进一步的提升登录传输过程中的安全性,本实施例提供一种安全登录方法,请参见图3所示,本实施例图3示出的安全登录方法可以应用于服务器侧,包括:

s301:服务器接收客户端设备发送的登录认证请求。

步骤s301中的登录认证请求中包含用户识别信息、以及客户端设备根据本次请求的登录附加码和用户密码采用预设算法生成的登录请求密码,其中,登录附加码包括在客户端设备发起登录认证请求之前为其动态生成并在服务器侧有存储的动态随机码。也即是客户端设备每向服务器发起一次登录认证请求时,都伴随有动态随机码的生成,需要说明的是,本实施例中的动态随机码可以由客户端设备生成,也可以由服务器生成,需要说明的是,无论是由哪一方生成,客户端设备与服务器都会进行动态随机码信息的交互,以使两侧都能获取到相应的动态随机码,优选地,本实施例中的动态随机码在服务器侧生成,服务器在生成了相应的动态随机码后,客户端设备再采用预设算法对该动态随机码和用户通过客户端设备输入的用户密码进行计算生成登录请求密码。应当理解的是,步骤s301中的用户识别信息可以为用户在注册时设置的用户名。这里还需要对本步骤s301中的预设算法进行说明,本实施例中的预设算法可以为任意的算法,例如可以为md5(message-digestalgorithm5,信息-摘要算法5)加密算法、des(dataencryptionstandard,数据加密标准)加密算法、idea(internationaldataencryptionalgorithm)国际数据加密算法)等等。

需要说明的是,当动态随机码是由服务器生成的时候,本实施例在步骤s301之前还可以包括:服务器接收客户端设备发送的登录页面显示请求并生成动态随机码,将动态随机码进行存储,并将该动态随机码发送给客户端设备以供客户端设备生成登录请求密码。当动态随机码是由客户端设备生成的时候,服务器可以接收该客户端设备发送的动态随机码,并将该动态随机码进行存储,客户端可以在向服务器发送登录页面显示请求之前生成动态随机码,然后将该动态随机码携带在登录页面显示请求中发送给服务器,或者客户端设备也可以在向服务器发送完登录页面显示请求之后或者正在发送登录页面显示请求时生成动态随机码,然后将该动态随机码单独发送给服务器。

步骤s301之前还可以包括:接收客户端设备发送的注册请求并完成注册。此时步骤s301中的登录附加码还可以包括在注册过程中生成的固定码,此时的登录请求密码则是采用预设算法对用户密码、动态随机码以及固定码组合计算得到的,应当理解的是,本实施例中的固定码在注册过程中可以由客户端设备生成,也可以由服务器生成。

当本实施例中的固定码由服务器生成时,服务器侧的注册过程包括:接收客户端设备发送的注册页面显示请求并生成固定码,将固定码发送给客户端设备以供客户端设备根据固定码和用户密码组合生成注册密码。

当本实施例中的固定码由客户端设备生成时,服务器侧的注册过程包括:接收客户端设备根据自身生成的固定码以及用户密码组合生成的注册密码。

s302:根据用户识别信息在注册密码数据库中查询注册时存入的注册密码,注册密码根据用户密码生成。

应当理解的是,当登录附加码中还包括固定码时,此时的注册密码根据用户密码以及该固定码生成,具体而言,可以采用某一预设的加密算法生成。

s303:采用预设算法对服务器侧存储的动态随机码和注册密码进行计算得到新密码。

步骤s303中的预设算法与步骤s301中的预设算法应当对应,例如当步骤s301中采用的算法是md5时,则步骤s303中也应当对应选用md5算法。当然在其他一些实施例中,可以不进行步骤s303,而是服务器根据预设解密算法对接收到的登录请求密码进行解析,拆分出相应的动态随机码与注册密码,将拆分出来的动态随机码和注册密码与服务器侧存储的动态随机码与注册密码进行比较。

s304:根据新密码对登录请求密码进行验证。

步骤s304中可以将新密码与登录请求密码进行比较,若比较结果为二者一致,则说明发送登录认证请求的一方为安全设备,可以允许其登录,相反,若比较结果为二者不一致,则说明发送登录认证请求的一方可能是攻击方,可以将此次登录认证请求视为无效登录认证请求,阻止此次登录。

在本实施例中,服务器接收到的客户端设备发送的登录认证请求中还可以包括动态随机码,此时采用预设算法对服务器侧存储的动态随机码和注册密码进行计算得到新密码之前还可以包括:

将本次接收到的登录认证请求中的动态随机码作为一个比较参数与之前至少一个登录认证请求产生的动态随机码进行比较,若存在一致的动态随机码,则可以将本次登录认证请求视为无效登录认证请求,当然若不存在一致的动态随机码则可以继续进行步骤s303以进行进一步的验证。需要说明的是,具体的在何种情况下将本次登录认证请求视为无效登录认证请求可以由开发人员任意设置,例如,还可以将本次接收到的登录认证请求中的动态随机码与上一次或者之前所有的登录认证请求产生的动态随机码进行比较,若存在一致的动态随机码,则将本次登录认证请求视为无效登录认证请求,还需要说明的是,当服务器要判断客户端设备发送的登录认证请求中的动态随机码是否与之前重复时,此时的动态随机码可以由客户端设备生成,并由客户端设备将该动态随机码发送给服务器进行存储,即使攻击方劫取到了客户端设备发送的动态随机码与相应的登录请求密码,由于服务器判断出该动态随机码与之前登录认证请求相应产生的动态随机码相同,服务器也不会通过此次登录认证,因此,这在一定程度上也能防止重放攻击;

和/或,

从登录认证请求中获取动态随机码,并获取服务器侧存储的动态随机码的有效时间范围,判断登录认证请求中的动态随机码当前是否在有效时间范围内,如否,将本次登录认证请求视为无效登录认证请求。当然,如果登录认证请求中的动态随机码当前在有效时间范围内,则可以进行步骤s303以进行进一步的验证。

当然了,本实施例中在将本次登录认证请求视为无效登录认证请求之后可以不再执行步骤s303和步骤s304,如此,可以节约系统中的资源。

在其他一些实施例中,登录认证请求中同样包括动态随机码,服务器根据新密码对登录请求密码进行验证,并且验证结果为新密码与登录请求密码一致之后还可以对将本次接收到的登录认证请求中的动态随机码与之前至少一个登录认证请求产生的动态随机码进行比较,若存在一致的动态随机码,则可以将本次登录认证请求视为无效登录认证请求;和/或,从登录认证请求中获取动态随机码,并获取服务器侧存储的动态随机码的有效时间范围,判断登录认证请求中的动态随机码当前是否在有效时间范围内,如否,将本次登录认证请求视为无效登录认证请求。

应当理解的是,本实施例中为服务器侧存储的动态随机码的有效时间范围可以由开发人员根据实际的应用场景灵活设置,例如可以设置为20秒、30秒等等。

本实施例还提供了一种应用于客户端设备的安全登录方法,请参见图4所示,包括:

s401:客户端设备根据本次请求的登录附加码和用户密码采用预设算法生成登录请求密码,登录附加码包括动态随机码。

步骤s401中的动态随机码为在客户端设备发起登录认证请求之前在服务器侧动态生成的,并且在服务器侧进行了存储。

s402:发送包含用户识别信息和登录请求密码的登录认证请求,以供服务器根据用户识别信息在注册密码数据库中查询注册时存入的注册密码,进而采用预设算法对服务器侧存储的动态随机码和注册密码进行计算得到用于对登录请求密码进行验证的新密码,注册密码根据用户密码生成。

最后需要说明的是,本实施例中的客户端设备可以由任意的终端来实施,也可以由服务器来实施。

本实施例提供的安全登录方法,通过在客户端设备每一次发起登录认证请求时都为其生成动态随机码并与用户密码一起生成登录请求密码,所以客户端设备每一次所发起的登录请求密码都会根据动态随机码的不同而不同,即使客户端设备发送的登录请求密码被拦截,此时由于攻击者此次发起登录请求时服务器相应产生的动态随机码与之前客户端设备发起登录请求时相应产生的动态随机码不同,所以攻击者劫取发送的登录请求密码就无法通过服务器的认证,从而保证了登录过程不被重放攻击,并且相对于现有技术中将固定的用户密码作为登录请求密码进行登录的这一方案,本方案在用户密码的基础上结合动态随机码,增加了暴力破解的难度,保证了登录传输过程中的安全性。

第二实施例

为了更好的理解本发明,本实施例在实施例一的基础上以基于http(hypertexttransferprotocol,超文本传输)协议登录web系统进行示例说明,本实施例提供的安全登录方法具体的可以参见图5所示,包括:

s501:客户端设备向服务器发送注册页面显示请求。

s502:服务器接收到注册页面显示请求后生成固定码并发送给客户端设备。

需要说明的是,本实施例中客户端设备在接收到固定码之后可以将该固定码保存起来。

s503:客户端设备向服务器发送注册密码进行注册。

需要说明的是,本实施例s503步骤中的注册密码可以是采用预设加密算法对用户通过客户端设备输入的用户密码与固定码进行计算得到的,例如,可以采用md5算法对用户密码和固定码进行加密得到注册密码,注册密码=md5(md5(用户密码)+固定码)。应当理解的是,客户端设备获取固定码,以及采用预设算法对用户密码和固定码进行计算得到注册密码都是自动生成的,也即用户只需要在客户端侧在注册过程中设置用户密码即可,用户设置用户密码时就会自动根据该用户密码和固定码生成注册密码发送给服务器。

s504:服务器接收注册密码并将该注册密码存入注册密码数据库,并向客户端设备反馈注册成功通知。

需要说明的是,步骤s504中的注册密码数据库可以在本地服务器上,也可以在其他的服务器,当在其他的服务器上时,本实施例中的服务器在接收到客户端设备发送过来的注册密码时,再将该注册密码转发给其他的服务器以将该注册密码存入注册密码数据库。

s505:客户端设备向服务器发送登录页面显示请求。

s506:服务器生成动态随机码,将该动态随机码进行存储并将该动态随机码发送给客户端设备。

步骤s506中,服务器可以将该动态随机码存储在本地服务器上,也可以将该动态随机码存储在其他缓存服务器上。需要说明的是,可本实施例中可以为存储在服务器中的动态随机码设置有效时间,当服务器生成了动态随机码,且在该动态随机码的有效时间范围内没有接收到与该动态随机码匹配的登录认证请求时,可以将该动态随机码设置为无效码或者删除,即使后面收到了与该无效码匹配的登录认证请求,也不会通过对该登录认证请求的验证。需要说明的是,为了进一步保证系统登录的安全性,还可以为存储动态随机码的服务器设置权限,例如可以只允许接收到该服务器下发的动态随机码的客户端设备访问该服务器,可以相对提升本系统登录的安全性。本实施例中的动态随机码是根据开发人员设置的预设随机码生成算法生成的,具有随机性,例如可以为1qaz2wsx3edc4rfv!@#$%^&qqtrtrtwdfhajbfhagfuahkjfhajhfjhajwrfa。

s507:客户端设备向服务器发送登录认证请求。

步骤s507中的登录认证请求中包含用户名、随机码以及客户端设备采用预设算法对用户密码、固定码、动态随机码进行计算得到的登录请求密码,例如,可以采用md5算法对用户密码、固定码、动态随机码进行计算,具体而言,登录请求密码可以为md5(md5(md5(用户密码)+固定码)+动态随机码)。

s508:服务器对客户端设备发送的登录认证请求进行验证后,将验证结果反馈给客户端设备。

对于步骤s508而言,可以参见图6所示,包括:

s61:判断本次登录认证请求中的动态随机码是否与以前登录认证请求产生的动态随机码重复,如是,转至s65,否则转至s62。

s62:采用预设算法对服务器侧存储的动态随机码和注册密码进行计算得到新密码。

与前面采用的预设算法对应,这里也应当采用md5算法,计算新密码的公式为:新密码=md5(注册密码+动态随机码)。

s63:判断新密码与登录请求密码是否一致,如是,转至s64,如否,转至s65.

s64:将本次登录认证请求视为有效登录认证请求。

s65:将本次登录认证请求视为无效登录认证请求。

需要说明的是,当进行了步骤s62之后,可以将服务器上存储的本次登录认证请求产生的动态随机码进行删除,这样可以节约资源便于管理,当然在其他一些实施例中也可以不进行删除,但需要为每一次生成的动态随机码设置时间标识,这样,当产生新的动态随机码时,服务器才能根据该时间标识判断本次产生的动态随机码具体是哪一个。

本实施例提供的安全登录方法,结合了固定码与动态随机码进行加密,用户每次登录的登录请求密码都会根据随机码的不同而不同,进而能相对避免重放攻击,再加上随机码与固定码以及用户密码进行组合,使密码更加复杂增加了暴力破解的难度,即使用户设置的用户密码简单,但由于固定码与动态随机码存在,也能保证登录传输过程中的安全性。

第三实施例

本实施例提供一种服务器,用于执行第一实施例中的一种安全登录方法,请参见图7所示,本实施例提供的服务器包括:登录认证请求接收模块71、查询模块72、计算模块73、以及验证模块74。

本实施例中的登录认证请求接收模块71用于接收客户端设备发送的登录认证请求,登录认证请求中包含用户识别信息、以及所述客户端设备根据本次请求的登录附加码和用户密码采用预设算法生成的登录请求密码,登录附加码包括在客户端设备发起登录认证请求之前服务器70为其动态生成并在服务器70侧有存储的动态随机码;查询模块72用于根据用户识别信息在注册密码数据库中查询注册时存入的注册密码,注册密码根据用户密码生成;计算模块73用于采用预设算法对服务器70侧存储的动态随机码和注册密码进行计算得到新密码;验证模块74用于根据新密码对登录请求密码进行验证,具体而言可以将新密码与登录请求密码进行比较,若比较结果为二者一致,则说明发送登录认证请求的一方为安全设备,可以允许其登录,相反,若比较结果为二者不一致,则说明发送登录认证请求的一方可能是攻击方,可以将此次登录认证请求视为无效登录认证请求,阻止此次登录。。

请参见图8所示,本实施例提供的服务器70还可以包括随机码发送处理模块75,用于在接收客户端设备发送的登录认证请求之前接收客户端设备发送的登录页面显示请求并生成动态随机码,将动态随机码进行存储,并将动态随机码发送给客户端设备以供客户端设备生成登录请求密码。

本实施例中的用户识别信息可以为用户在注册时设置的用户名。本实施例中客户端设备采用的预设算法可以为任意的算法,例如可以为md5(message-digestalgorithm5,信息-摘要算法5)加密算法、des(dataencryptionstandard,数据加密标准)加密算法、idea(internationaldataencryptionalgorithm)国际数据加密算法)等等。本实施例中的计算模块73采取的预设算法应当与客户端设备采用的预设算法对应,例如,当客户端设备采用加密算法md5时,相应的,服务器70的计算模块73也应当采用md5算法。

此外还需要说明的是本实施例中可将计算模块73替换为解析处理模块,用于按照预设的解密算法对接收到的登录请求密码进行解析,拆分出相应的动态随机码与注册密码,然后将拆分出来的动态随机码和注册密码与服务器70侧存储的动态随机码与注册密码进行比较。

请参见图9所示,本实施例提供的服务器70还可以包括注册模块76,用于在接收客户端设备发送的登录认证请求之前接收客户端设备发送的注册请求并完成注册;此时的登录附加码还可以包括在注册过程中生成的固定码;其中注册模块76包括注册处理单元,用于在注册过程中接收客户端设备发送的注册页面显示请求并生成固定码,将固定码发送给客户端设备以供客户端设备根据固定码和用户密码组合生成注册密码。

本实施例中,登录认证请求接收模块71接收到的登录认证请求中还可以包括动态随机码,此时的服务器70还可以包括第一判断模块和/或第二判断模块。

其中,第一判断模块用于在计算模块73计算得到新密码之前将本次接收到登录认证请求中的动态随机码与之前至少一个登录认证请求产生的动态随机码进行比较,若存在一致的动态随机码,则将本次登录认证请求视为无效登录认证请求,当然若不存在一致的动态随机码则可以通知计算模块73进行计算以进行后续的验证,需要说明的是,具体的在何种情况下将本次登录认证请求视为无效登录认证请求可以由开发人员任意设置,例如,还可以将本次接收到的登录认证请求中的动态随机码与上一次或者之前所有的登录认证请求产生的动态随机码进行比较,若存在一致的动态随机码,则将本次登录认证请求视为无效登录认证请求,还需要说明的是,当服务器70中包含第一判断模块时,本实施例中的动态随机码还可以由客户端设备生成,并由客户端设备将该动态随机码发送给服务器70进行存储,即使攻击方劫取到了客户端设备发送的动态随机码与相应的登录请求密码,由于服务器70中的第一判断模块能判断出该动态随机码与之前登录认证请求相应产生的动态随机码相同,所以服务器70也不会通过此次登录认证,因此,这在一定程度上也能防止重放攻击。

第二判断模块用于在计算模块73计算得到新密码之前从登录认证请求中获取动态随机码,并获取服务器70侧存储的动态随机码的有效时间范围,判断登录认证请求中的动态随机码当前是否在有效时间范围内,如否,将本次登录认证请求视为无效登录认证请求,当然,如果登录认证请求中的动态随机码当前在有效时间范围内,则可以通知计算模块73进行计算以进行后续的验证。

需要说明的是,当第一判断模块和/或第二判断模块判断出本次登录认证请求为无效登录认证请求时,可以不再进行后续操作。

当然,本实施例中的第一判断模块和/或第二判断模块的判断过程还可以在验证模块74完成验证之后再开始进行判断。

应当理解的是,本实施例中在服务器70侧存储的动态随机码的有效时间范围可以由开发人员根据实际的应用场景灵活设置,例如可以设置为20秒、30秒等等。

请参见图10所示,本实施例还提供了一种客户端设备1000,包括登录请求密码生成模块1001和登录认证请求发送模块1002,本实施例中的登录请求密码生成模块1001用于根据本次请求的登录附加码和用户密码采用预设算法生成登录请求密码;登录附加码包括在客户端设备1000发起登录认证请求时服务器70为其动态生成并在所述服务器70侧有存储的动态随机码;.登录认证请求发送模块1002用于发送包含用户识别信息和登录请求密码的登录认证请求,以供服务器70根据用户识别信息在注册密码数据库中查询注册时存入的注册密码,进而采用预设算法对服务器70侧存储的动态随机码和注册密码进行计算得到用于对登录请求密码进行验证的新密码,其中,注册密码根据用户密码生成。

通过本实施例提供的服务器和/或客户端设备,由于服务器对于每一次登录的发起都会产生不同的动态随机码,因此能从一定程度上提升暴力破解和重放攻击的难度,能进一步提升系统登录的安全性。

第四实施例

为了更好的理解本发明,请参见图11所示,本实施例在实施例三的基础上提供一种安全登录系统1100,包括客户端设备1101以及服务器1102。

本实施例中的客户端设备1101包括登录请求密码生成模块和登录认证请求发送模块;请参见图12所示,服务器1102包括:注册模块1103,注册模块1103中包含有注册处理单元,随机码发送处理模块1104、登录认证请求接收模块1105、第一判断模块1106、查询模块1107、计算模块1108以及验证模块1109。

服务器1102中的注册模块1103用于在接收客户端设备1101发送的登录认证请求之前接收客户端设备1101发送的注册请求并完成注册;本实施例中的登录附加码还包括在该注册过程中生成的固定码;注册模块1103中的注册处理单元用于在注册过程中接收客户端设备1101发送的注册页面显示请求并生成固定码,将固定码发送给客户端设备1101以供客户端设备1101根据固定码和用户密码组合生成注册密码。

这里需要对客户端设备1101根据固定码和用户密码生成注册密码的过程进行说明,客户端设备1101可以采用预设加密算法对固定码和用户密码进行计算从而得到注册密码,例如,可以采用md5算法对用户密码和固定码进行加密得到注册密码,注册密码=md5(md5(用户密码)+固定码)。

服务器1102中的随机码发送处理模块1104用于在接收客户端设备1101发送的登录认证请求之前接收客户端设备1101发送的登录页面显示请求并生成动态随机码,将动态随机码进行存储,并将动态随机码发送给客户端设备1101以供客户端设备1101生成登录请求密码。

客户端设备1101在接收到服务器1102发送过来的固定码以及动态随机码之后通过登录请求密码生成模块生成登录请求密码,具体而言,本实施例中的登录请求密码生成模块可以采用预设算法对用户密码、固定码、动态随机码进行计算从而得到登录请求密码,例如,可以采用md5算法对用户密码、固定码、动态随机码进行计算,具体而言,登录请求密码可以为md5(md5(md5(用户密码)+固定码)+动态随机码),然后客户端通过登录认证请求发送模块将包含有用户名、登录请求密码以及动态随机码的登录认证请求发送给服务器1102。

服务器1102中的登录认证请求接收模块1105接收到客户端设备1101发送过来的登录认证请求之后,通过第一判断模块1106获取登录认证请求中的动态随机码,并将该动态随机码与之前至少一个登录认证请求产生的动态随机码进行比较,若存在一致的动态随机码,则将本次登录认证请求视为无效登录认证请,若不存在一致的动态随机码,可以通知查询模块1107根据用户识别信息在注册密码数据库中查询注册时存入的注册密码,然后通知计算模块1108采用预设算法对服务器1102侧存储的动态随机码和注册密码进行计算得到新密码;最后通知验证模块1109根据新密码对登录请求密码进行验证。

需要说明的是,本实施例中的注册密码数据库可以在本实施例提供的服务器1102上,也可以在其他的服务器1102,当在其他的服务器1102上时,本实施例中的服务器1102在接收到客户端设备1101发送过来的注册密码时,再将该注册密码转发给其他的服务器1102以将该注册密码存入注册密码数据库。同样,本实施例中的动态随机码可以存储在本实施例提供的服务器1102上,还可以存储在其他的缓存服务器1102上。

本实施例提供的安全登录系统,在登录过程中结合了固定码与动态随机码进行加密,用户每次登录的登录请求密码都会根据随机码的不同而不同,进而能相对避免重放攻击,再加上随机码与固定码以及用户密码进行组合,使密码更加复杂增加了暴力破解的难度,即使用户设置的用户密码简单,但由于固定码与动态随机码存在,也能保证登录传输过程中的安全性。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台应用设备(可以是手机,计算机,服务器,空调器,或者网络应用设备等)执行本发明各个实施例的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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