CN107295011B - 网页的安全认证方法及装置 - Google Patents

网页的安全认证方法及装置 Download PDF

Info

Publication number
CN107295011B
CN107295011B CN201710664195.3A CN201710664195A CN107295011B CN 107295011 B CN107295011 B CN 107295011B CN 201710664195 A CN201710664195 A CN 201710664195A CN 107295011 B CN107295011 B CN 107295011B
Authority
CN
China
Prior art keywords
hash value
authentication
random number
user
login
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
Application number
CN201710664195.3A
Other languages
English (en)
Other versions
CN107295011A (zh
Inventor
蒋蔡军
范渊
黄进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN201710664195.3A priority Critical patent/CN107295011B/zh
Publication of CN107295011A publication Critical patent/CN107295011A/zh
Application granted granted Critical
Publication of CN107295011B publication Critical patent/CN107295011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种网页的安全认证方法及装置,该方法包括:根据用户终端发送的业务请求生成随机数;将随机数发送至用户终端,以使用户终端对随机数、服务器地址、用户输入的口令进行哈希加密,得到目标信息;判断目标信息和用户输入的用户名是否符合业务认证条件;如果符合业务认证条件,则通过业务请求的认证。本发明网页的安全认证方法中,在进行哈希加密时,是对随机数,服务器地址和口令进行的哈希加密,因为随机数的存在,使得每次加密对象不同,使得每次加密得到的目标信息也不同,这样,目标信息在传输的过程中更加安全,可以有效的防范重放攻击,提高了网页认证的安全性,缓解了传统的网页认证安全性差,存在重放攻击隐患的技术问题。

Description

网页的安全认证方法及装置
技术领域
本发明涉及安全认证的技术领域,尤其是涉及一种网页的安全认证方法及装置。
背景技术
以往的网页认证(比如,网页登录)基本上只是以表单的形式设计一个页面,客户端访问登录页面,该页面要求用户填写相应的用户名和密码,然后按下“确定”或“登录”按钮,将所填写信息提交到服务器端,与数据库中已保存的用户注册信息进行比对,确定是否允许登录。这种登录方式,在用户身份验证过程中,由于网页系统登录信息是在信道上使用明文或接近明文的方式传送用户名和口令,容易被截获分析或破解,所以安全性不高。
传统的身份认证通常采用静态口令,容易被截获分析或破解。为解决静态口令安全性问题,曾出现了动态口令技术,即一次一密的认证方式,在用户每次的登录信息中加入动态变化的因素,使每次在网络中传输的信息都不相同,从而提高登录过程的安全性。为了实现动态登录,一般需要额外设备的支持,如口令卡、智能卡、手机等。使用额外设备,用户携带不便,而且有的还需要支付额外的硬件成本,当前环境难以推广。
当前普遍的做法是,保存口令的HASH值,比如利用MD5或者AES对口令(此时还是明文状态)进行加密,得到密文,再将此得到的密文存储到数据库中。用户进行登录认证的时候,将客户端传递过来的明文口令进行HASH运算,与服务器端取出的密文进行一致性比较,若相同,则认证通过,登录成功。
但是,这种方法有其致命的缺陷,因为每次都对相同的口令进行HASH加密,则网络上每次传输的加密值都相同,存在明显的重放攻击隐患。
发明内容
有鉴于此,本发明的目的在于提供一种网页的安全认证方法及装置,以缓解传统的网页认证安全性差,存在重放攻击隐患的技术问题。
第一方面,本发明实施例提供了一种网页的安全认证方法,应用服务器,所述方法包括:
根据用户终端发送的业务请求生成随机数,其中,所述业务请求包括以下任一种:登录请求,注册请求,所述业务请求中包含请求业务的服务器地址;
将所述随机数发送至所述用户终端,以使所述用户终端对所述随机数、所述服务器地址、用户输入的口令进行哈希加密,得到目标信息;
判断所述目标信息和所述用户输入的用户名是否符合业务认证条件,其中,所述业务认证条件包括:登录认证条件,注册认证条件;
如果符合所述业务认证条件,则通过所述业务请求的认证。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述目标信息包括:第一哈希值,第二哈希值;
所述第一哈希值为所述用户终端根据所述随机数和所述服务器地址计算得到的哈希值;
所述第二哈希值为所述用户终端根据所述口令计算得到的哈希值。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,当所述业务请求为所述登录请求时,判断所述目标信息和所述用户输入的用户名是否符合业务认证条件包括:
根据所述随机数和所述服务器地址计算得到第三哈希值;
如果所述第三哈希值与所述第一哈希值相同,则根据所述用户名在数据库中查询得到与所述用户名相对应的存储密码;
利用AES对称加密算法对所述第二哈希值进行加密运算,得到加密后的第二哈希值,其中,所述AES对称加密算法中使用的密钥包含静态密钥和动态密钥,所述动态密钥为与所述随机数不同的随机数;
如果所述存储密码与所述加密后的第二哈希值相同,则确定符合所述登录认证条件,其中,在符合所述登录认证条件的情况下,通过所述登录请求的认证。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述方法还包括:
如果所述第三哈希值与所述第一哈希值不同,则确定不符合所述登录认证条件,其中,在不符合所述登录认证条件的情况下,所述登录请求的认证失败。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述方法还包括:
如果所述数据库中不存在与所述用户名相对应的存储密码,则确定不符合所述登录认证条件,其中,在不符合所述登录认证条件的情况下,所述登录请求的认证失败。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述方法还包括:
如果所述存储密码与所述加密后的第二哈希值不同,则确定不符合所述登录认证条件,其中,在不符合所述登录认证条件的情况下,所述登录请求的认证失败。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,当所述业务请求为所述注册请求时,判断所述目标信息和所述用户输入的用户名是否符合业务认证条件包括:
根据所述随机数和所述服务器地址计算得到第四哈希值;
如果所述第四哈希值与所述第一哈希值相同,则确定数据库中是否已存在所述用户名;
如果所述数据库中不存在所述用户名,利用AES对称加密算法对所述第二哈希值进行加密运算,得到加密后的第二哈希值,其中,所述AES对称加密算法中使用的密钥包含静态密钥和动态密钥,所述动态密钥为与所述随机数不同的随机数;
将所述用户名和所述加密后的第二哈希值保存至所述服务器的用户信息关联表中,以完成所述注册请求的认证。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述方法还包括:
如果所述第四哈希值与所述第一哈希值不同,则退出所述注册请求的认证。
结合第一方面,本发明实施例提供了第一方面的第八种可能的实施方式,其中,所述方法还包括:
如果所述数据库中存在所述用户名,则向所述用户终端发送提示信息,其中,所述提示信息用于提示用户所述用户名已被注册。
第二方面,本发明实施例还提供了一种网页的安全认证装置,应用于服务器,所述装置包括:
生成模块,用于根据用户终端发送的业务请求生成随机数,其中,所述业务请求包括以下任一种:登录请求,注册请求,所述业务请求中包含请求业务的服务器地址;
发送模块,用于将所述随机数发送至所述用户终端,以使所述用户终端对所述随机数、所述服务器地址、用户输入的口令进行哈希加密,得到目标信息;
判断模块,用于判断所述目标信息和所述用户输入的用户名是否符合业务认证条件,其中,所述业务认证条件包括:登录认证条件,注册认证条件;
通过模块,如果符合所述业务认证条件,则通过所述业务请求的认证。
本发明实施例带来了以下有益效果:本发明实施例提供了一种网页的安全认证方法及装置,该方法应用于服务器,包括:根据用户终端发送的业务请求生成随机数,其中,业务请求包括以下任一种:登录请求,注册请求,业务请求中包含请求业务的服务器地址;将随机数发送至用户终端,以使用户终端对随机数、服务器地址、用户输入的口令进行哈希加密,得到目标信息;判断目标信息和用户输入的用户名是否符合业务认证条件,其中,业务认证条件包括:登录认证条件,注册认证条件;如果符合业务认证条件,则通过业务请求的认证。
传统的网页认证方法中,对用户终端发送的明文口令进行哈希加密,每次对相同的口令进行哈希加密,传输的加密值相同,存在明显的重放攻击隐患。与传统的网页认证方法相比,本发明网页的安全认证方法中,服务器会根据用户终端发送的业务请求生成随机数,然后,将随机数发送至用户终端,以使用户终端对随机数,服务器地址,口令进行哈希加密,得到目标信息,将目标信息发送至服务器,服务器再进一步判断目标信息和用户名是否符合业务认证条件,如果符合业务认证条件,则通过业务请求的认证。本发明网页的安全认证方法中,在进行哈希加密时,是对随机数,服务器地址和口令进行的哈希加密,因为随机数的存在,使得每次加密对象不同,使得每次加密得到的目标信息也不同,这样,目标信息在传输的过程中更加安全,可以有效的防范重放攻击,提高了网页认证的安全性,缓解了传统的网页认证安全性差,存在重放攻击隐患的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网页的安全认证方法的流程图;
图2为本发明实施例提供的当业务请求为登录请求时,判断目标信息和用户输入的用户名是否符合业务认证条件的流程图;
图3为本发明实施例提供的当业务请求为注册请求时,判断目标信息和用户输入的用户名是否符合业务认证条件的流程图;
图4为本发明实施例提供的一种网页的安全认证装置的结构示意图。
图标:
11-生成模块;12-发送模块;13-判断模块;14-通过模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种网页的安全认证方法方法进行详细介绍。
实施例一:
本发明实施例提供了一种网页的安全认证方法,参考图1,该认证方法包括:
S101、根据用户终端发送的业务请求生成随机数,其中,业务请求包括以下任一种:登录请求,注册请求,业务请求中包含请求业务的服务器地址;
在本发明实施例中,当服务器接收到用户终端发送的业务请求后,会生成一个随机数。
服务器产生的随机数,它指的是生成的字符串salt(盐)。盐的生成有很多讲究,并不是加个盐就安全了。这是因为,若盐的随机性与安全性不够高,则其仍面临口令脆弱性问题。主要有如下几个要点需要注意:
1、不能使用固定值,亦不能使用普通的随机数算法。普通的随机数生成算法,比如C语言标准库里面的rand()方法,或JAVA中的Math.random()方法,这些算法都是伪随机的,也就是有规则的随机,即在给定种(seed)的区间内随机生成数字,相同种子数的Random对象,相同次数生成的随机数字是完全相同的。实际上,其可预测性较高。
2、盐不能太短。那意味着密码+盐组成的字符串的长度和取值空间都有限。
3、盐不能重复使用。需要保证每个ID的盐均不一样。
综上所述:本发明中使用CSPRNG(Cryptographically SecurePseudo-RandomNumber Generator)生成盐,而不是普通的随机数算法。CSPRNG跟普通的随机数生成算法不同,CSPRNG是加密安全的,意味着用它产生的随机数更加随机,且不可预测。常见编程语言都提供了CSPRNG,例如在JAVA中,它对应的就是Java.security.SecureRandom方法,所以不必担心在不同语言环境的适配性问题。
具体的,服务器利用Java.security.SecureRandom生成10位16进制的随机数,生成的该随机数保存在服务器的会话控制中,并发送至用户终端。
S102、将随机数发送至用户终端,以使用户终端对随机数、服务器地址、用户输入的口令进行哈希加密,得到目标信息;
具体的,用户终端接收服务器发送的随机数后,将随机数以隐藏域的形式保存,且显示业务请求界面,使得用户输入用户名,口令。进而,对随机数,服务器地址,口令进行哈希加密,得到目标信息。然后,将目标信息和用户名发送至服务器。
S103、判断目标信息和用户输入的用户名是否符合业务认证条件,其中,业务认证条件包括:登录认证条件,注册认证条件;
服务器在接收到目标信息和用户名后,判断目标信息和用户名是否符合业务认证条件。判断的具体过程将在下文中进行具体描述。
S104、如果符合业务认证条件,则通过业务请求的认证。
否则,业务请求的认证失败。
传统的网页认证方法中,对用户终端发送的明文口令进行哈希加密,每次对相同的口令进行哈希加密,传输的加密值相同,存在明显的重放攻击隐患。与传统的网页认证方法相比,本发明网页的安全认证方法中,服务器会根据用户终端发送的业务请求生成随机数,然后,将随机数发送至用户终端,以使用户终端对随机数,服务器地址,口令进行哈希加密,得到目标信息,将目标信息发送至服务器,服务器再进一步判断目标信息和用户名是否符合业务认证条件,如果符合业务认证条件,则通过业务请求的认证。本发明网页的安全认证方法中,在进行哈希加密时,是对随机数,服务器地址和口令进行的哈希加密,因为随机数的存在,使得每次加密对象不同,使得每次加密得到的目标信息也不同,这样,目标信息在传输的过程中更加安全,可以有效的防范重放攻击,提高了网页认证的安全性,缓解了传统的网页认证安全性差,存在重放攻击隐患的技术问题。
进一步地,目标信息包括:第一哈希值,第二哈希值;
第一哈希值为用户终端根据随机数和服务器地址计算得到的哈希值;
在本发明实施例中,用户终端对随机数,服务器地址,口令进行哈希加密,具体为:用户终端对随机数和服务器地址一起进行哈希加密,得到第一哈希值。
第二哈希值为用户终端根据口令计算得到的哈希值。
同时,用户终端对口令进行哈希加密,得到第二哈希值。在得到第一哈希值,第二哈希值后,用户终端将目标信息(即,第一哈希值和第二哈希值)和用户名发送至服务器。
进一步地,参考图2,当业务请求为登录请求时,判断目标信息和用户输入的用户名是否符合业务认证条件包括:
S201、根据随机数和服务器地址计算得到第三哈希值;
服务器端获取会话控制中的随机数,并获取服务器地址,对随机数和服务器地址一起进行哈希加密,得到第三哈希值。
S202、如果第三哈希值与第一哈希值相同,则根据用户名在数据库中查询得到与用户名相对应的存储密码;
在得到第三哈希值后,服务器将第三哈希值与第一哈希值进行对比,如果相同,也就是用户终端发送的随机数和服务器地址信息与服务器中的随机数和服务器地址信息相同,就根据用户名在数据库中查询得到与用户名相对应的存储密码。具体的,存储密码存储于用户信息表中。
S203、利用AES对称加密算法对第二哈希值进行加密运算,得到加密后的第二哈希值,其中,AES对称加密算法中使用的密钥包含静态密钥和动态密钥,动态密钥为与随机数不同的随机数;
在得到第二哈希值(即,加密的口令)后,进一步采用AES对称加密算法对第二哈希值进行加密运算,在使用AES对称加密算法时,密钥包含静态密钥和动态密钥,静态密钥保存在服务器中的属性文件中,这一静态密钥对于所有用户均相同;动态密钥就是盐(也就是随机数),该随机数不同于服务器起初生成的随机数无关,是另外生成的,也是利用Java.security.SecureRandom生成的10位16进制的随机数,这里的动态密钥生成后,是保存于服务器中的用户信息关联表中。
不保存于用户信息表中是因为可以降低同时泄漏密码与密钥的风险。也就是,当用户信息表中的信息被截获后,由于无法得知用户信息关联表中的密钥,依然无法破解。对口令的两次加密,大大提高了认证过程中的安全性,并且,将密钥存储于除用户信息表的其它位置,更加确保了认证过程的安全性。
S204、如果存储密码与加密后的第二哈希值相同,则确定符合登录认证条件,其中,在符合登录认证条件的情况下,通过登录请求的认证。
进一步地,该方法还包括:
如果第三哈希值与第一哈希值不同,则确定不符合登录认证条件,其中,在不符合登录认证条件的情况下,登录请求的认证失败。
具体的,登录请求的认证失败后,服务器重新生成随机数,发送至用户终端,重复登录的过程。
进一步地,该方法还包括:
如果数据库中不存在与用户名相对应的存储密码,则确定不符合登录认证条件,其中,在不符合登录认证条件的情况下,登录请求的认证失败。
具体的,该登录请求的认证失败后,服务器也会重新生成随机数,发送至用户终端,重复登录的过程。
进一步地,该方法还包括:
如果存储密码与加密后的第二哈希值不同,则确定不符合登录认证条件,其中,在不符合登录认证条件的情况下,登录请求的认证失败。
具体的,该登录请求的认证失败后,服务器也会重新生成随机数,发送至用户终端,重复登录的过程。
进一步地,参考图3,当业务请求为注册请求时,判断目标信息和用户输入的用户名是否符合业务认证条件包括:
S301、根据随机数和服务器地址计算得到第四哈希值;
服务器端获取会话控制中的随机数,并获取服务器地址,对随机数和服务器地址一起进行哈希加密,得到第四哈希值。
S302、如果第四哈希值与第一哈希值相同,则确定数据库中是否已存在用户名;
在得到第四哈希值后,服务器将第四哈希值与第一哈希值进行对比,如果相同,也就是用户终端发送的随机数和服务器地址信息与服务器中的随机数和服务器地址信息相同,就查找数据库中是否已存在上述用户名。
S303、如果数据库中不存在用户名,利用AES对称加密算法对第二哈希值进行加密运算,得到加密后的第二哈希值,其中,AES对称加密算法中使用的密钥包含静态密钥和动态密钥,动态密钥为与随机数不同的随机数;
在得到第二哈希值(即,加密的口令)后,进一步采用AES对称加密算法对第二哈希值进行加密运算,在使用AES对称加密算法时,密钥包含静态密钥和动态密钥,静态密钥保存在服务器中的属性文件中,这一静态密钥对于所有用户均相同;动态密钥就是盐(也就是随机数),该随机数不同于服务器起初生成的随机数无关,是另外生成的,也是利用Java.security.SecureRandom生成的10位16进制的随机数,这里的动态密钥生成后,是保存于服务器中的用户信息关联表中。
不保存于用户信息表中是因为可以降低同时泄漏密码与密钥的风险。也就是,当用户信息表中的信息被截获后,由于无法得知用户信息关联表中的密钥,依然无法破解。对口令的两次加密,大大提高了认证过程中的安全性,并且,将密钥存储于除用户信息表的其它位置,更加确保了认证过程的安全性。
S304、将用户名和加密后的第二哈希值保存至服务器的用户信息关联表中,以完成注册请求的认证。
进一步地,该方法还包括:
如果第四哈希值与第一哈希值不同,则退出注册请求的认证。
进一步地,该方法还包括:
如果数据库中存在用户名,则向用户终端发送提示信息,其中,提示信息用于提示用户用户名已被注册。
在本发明中,用户终端与服务器之间采用HTTP协议进行通信,编程语言为JAVA,Web服务器采用Tomcat 7,数据库服务器采用mysql 5.7,用户终端页面采用HTML5,前后端数据传输采用AJAX。在开发过程中,实现用户的验证与登录。
对于Hash加密的选择,整个系统的安全性建立在单向Hash函数安全性的基础上。常见的单项函数有Md4、Md5及SHA等。至少到目前为止,这些函数还未被发现有安全漏洞,但通常认为Md5算法强度较高。本发明中采用的是Md5单向函数。也就是本发明中的Hash加密均指Md5加密算法。
本发明中提供的网页的安全认证方法能够实现安全保密传输,可有效抵抗网络截获与口令分析攻击,且通过增加服务器随机数可抵抗重放攻击。
下面对注册过程和登录过程进行整体简要描述:
用户注册的步骤如下:
1、用户终端向服务器发送注册请求的时候,服务器利用Java.security.SecureRandom生成10位16进制的随机数Random,该Random保存在会话Session中,并将Random发送给用户终端。用户终端显示注册页面,并采用隐藏域的形式保存随机数。
2、用户终端接收用户输入的用户名UserName和口令PassWord,计算M=URL+Random,利用AJAX技术将UserName、Hash(M)、Hash(PassWord)的值发送给服务器(其中URL为请求服务器的地址)。
3、服务器从会话Session中获取Random、服务器URL,计算得到Hash(URL+Random),判断其与用户终端发送的Hash(M)是否相同。若相同,进入步骤4,否则退出注册服务。
4、根据用户终端发送的用户名查询到数据库该用户名是否重复,若重复,则告知用户终端“该用户名已被注册,请更改用户名”,并退出注册服务。否则进入步骤5。
5、服务器利用AES对称加密算法对用户终端发送的Hash(PassWord)进行加密,得到PassWord4DB,将UserName和PassWord4DB保存到用户信息表中。
用户登录的步骤如下:
1、用户终端向服务器发送登录请求的时候,服务器端利用Java.security.SecureRandom生成10位16进制的随机数Random,将该Random和用户终端请求的地址URL保存在会话Session中,并将Random发送给用户终端。用户终端显示登录页面,并采用隐藏域的形式保存该Random。
2、用户终端接收用户输入的用户名UserName和口令PassWord,计算M=URL+Random,利用AJAX技术将UserName、Hash(M)、Hash(PassWord)的值发送给服务器(其中URL为请求服务器的地址)。
3、服务器从会话Session中获取Random、服务器URL,计算得到Hash(URL+Random),判断其与用户终端发送的Hash(M)是否相同。若相同,进入步骤4,否则进入步骤6。
4、根据用户终端发送的用户名查询到数据库中该用户的存储密码RealPassWord,若不存在该用户,则退出登录认证。否则进入步骤5。
5、服务器利用AES对称加密算法对用户终端发送的Hash(PassWord)进行加密,得到PassWord4DB,将PassWord4DB与RealPassWord比较,若二者相同,则认证通过,否则进入步骤6。
6、登录认证失败后,服务器端重新生成随机数Random,并将其发送至用户终端。用户终端显示登录页面,并采用隐藏域的形式保存该Random。进入步骤2,重复登录流程。
实施例二:
一种网页的安全认证装置,参考图4,应用于服务器,该装置包括:
生成模块11,用于根据用户终端发送的业务请求生成随机数,其中,业务请求包括以下任一种:登录请求,注册请求,业务请求中包含请求业务的服务器地址;
发送模块12,用于将随机数发送至用户终端,以使用户终端对随机数、服务器地址、用户输入的口令进行哈希加密,得到目标信息;
判断模块13,用于判断目标信息和用户输入的用户名是否符合业务认证条件,其中,业务认证条件包括:登录认证条件,注册认证条件;
通过模块14,如果符合业务认证条件,则通过业务请求的认证。
进一步地,目标信息包括:第一哈希值,第二哈希值;
第一哈希值为用户终端根据随机数和服务器地址计算得到的哈希值;
第二哈希值为用户终端根据口令计算得到的哈希值。
进一步地,当业务请求为登录请求时,判断模块包括:
第一计算单元,用于根据随机数和服务器地址计算得到第三哈希值;
查询单元,如果第三哈希值与第一哈希值相同,则根据用户名在数据库中查询得到与用户名相对应的存储密码;
第一加密运算单元,用于利用AES对称加密算法对第二哈希值进行加密运算,得到加密后的第二哈希值,其中,AES对称加密算法中使用的密钥包含静态密钥和动态密钥,动态密钥为与随机数不同的随机数;
确定符合单元,如果存储密码与加密后的第二哈希值相同,则确定符合登录认证条件,其中,在符合登录认证条件的情况下,通过登录请求的认证。
进一步地,判断模块还包括:
第一确定不符合单元,如果第三哈希值与第一哈希值不同,则确定不符合登录认证条件,其中,在不符合登录认证条件的情况下,登录请求的认证失败。
进一步地,判断模块还包括:
第二确定不符合单元,如果数据库中不存在与用户名相对应的存储密码,则确定不符合登录认证条件,其中,在不符合登录认证条件的情况下,登录请求的认证失败。
进一步地,判断模块还包括:
第三确定不符合单元,如果存储密码与加密后的第二哈希值不同,则确定不符合登录认证条件,其中,在不符合登录认证条件的情况下,登录请求的认证失败。
进一步地,当业务请求为注册请求时,判断模块包括:
第二计算单元,用于根据随机数和服务器地址计算得到第四哈希值;
确定用户名单元,如果第四哈希值与第一哈希值相同,则确定数据库中是否已存在用户名;
第二加密运算单元,如果数据库中不存在用户名,利用AES对称加密算法对第二哈希值进行加密运算,得到加密后的第二哈希值,其中,AES对称加密算法中使用的密钥包含静态密钥和动态密钥,动态密钥为与随机数不同的随机数;
保存单元,用于将用户名和加密后的第二哈希值保存至服务器的用户信息关联表中,以完成注册请求的认证。
进一步地,判断模块还包括:
退出注册单元,如果第四哈希值与第一哈希值不同,则退出注册请求的认证。
进一步地,判断模块还包括:
提示信息发送单元,如果数据库中存在用户名,则向用户终端发送提示信息,其中,提示信息用于提示用户用户名已被注册。
该实施例二中的内容可以参考上述实施例一中的内容,在此不再进行赘述。
本发明实施例所提供的一种网页的安全认证方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (7)

1.一种网页的安全认证方法,其特征在于,应用于服务器,所述方法包括:
根据用户终端发送的业务请求生成随机数,其中,所述业务请求包括以下任一种:登录请求,注册请求,所述业务请求中包含请求业务的服务器地址;
将所述随机数发送至所述用户终端,以使所述用户终端对所述随机数、所述服务器地址、用户输入的口令进行哈希加密,得到目标信息;
判断所述目标信息和所述用户输入的用户名是否符合业务认证条件,其中,所述业务认证条件包括:登录认证条件,注册认证条件;
如果符合所述业务认证条件,则通过所述业务请求的认证;
所述目标信息包括:第一哈希值,第二哈希值;
所述第一哈希值为所述用户终端根据所述随机数和所述服务器地址计算得到的哈希值;
所述第二哈希值为所述用户终端根据所述口令计算得到的哈希值;
当所述业务请求为所述登录请求时,判断所述目标信息和所述用户输入的用户名是否符合业务认证条件包括:
根据所述随机数和所述服务器地址计算得到第三哈希值;
如果所述第三哈希值与所述第一哈希值相同,则根据所述用户名在数据库中查询得到与所述用户名相对应的存储密码;
利用AES对称加密算法对所述第二哈希值进行加密运算,得到加密后的第二哈希值,其中,所述AES对称加密算法中使用的密钥包含静态密钥和动态密钥,所述动态密钥为与所述随机数不同的随机数;
如果所述存储密码与所述加密后的第二哈希值相同,则确定符合所述登录认证条件,其中,在符合所述登录认证条件的情况下,通过所述登录请求的认证;
当所述业务请求为所述注册请求时,判断所述目标信息和所述用户输入的用户名是否符合业务认证条件包括:
根据所述随机数和所述服务器地址计算得到第四哈希值;
如果所述第四哈希值与所述第一哈希值相同,则确定数据库中是否已存在所述用户名;
如果所述数据库中不存在所述用户名,利用AES对称加密算法对所述第二哈希值进行加密运算,得到加密后的第二哈希值,其中,所述AES对称加密算法中使用的密钥包含静态密钥和动态密钥,所述动态密钥为与所述随机数不同的随机数;
将所述用户名和所述加密后的第二哈希值保存至所述服务器的用户信息关联表中,以完成所述注册请求的认证。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第三哈希值与所述第一哈希值不同,则确定不符合所述登录认证条件,其中,在不符合所述登录认证条件的情况下,所述登录请求的认证失败。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述数据库中不存在与所述用户名相对应的存储密码,则确定不符合所述登录认证条件,其中,在不符合所述登录认证条件的情况下,所述登录请求的认证失败。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述存储密码与所述加密后的第二哈希值不同,则确定不符合所述登录认证条件,其中,在不符合所述登录认证条件的情况下,所述登录请求的认证失败。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第四哈希值与所述第一哈希值不同,则退出所述注册请求的认证。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述数据库中存在所述用户名,则向所述用户终端发送提示信息,其中,所述提示信息用于提示用户所述用户名已被注册。
7.一种网页的安全认证装置,其特征在于,应用于服务器,所述装置包括:
生成模块,用于根据用户终端发送的业务请求生成随机数,其中,所述业务请求包括以下任一种:登录请求,注册请求,所述业务请求中包含请求业务的服务器地址;
发送模块,用于将所述随机数发送至所述用户终端,以使所述用户终端对所述随机数、所述服务器地址、用户输入的口令进行哈希加密,得到目标信息;
判断模块,用于判断所述目标信息和所述用户输入的用户名是否符合业务认证条件,其中,所述业务认证条件包括:登录认证条件,注册认证条件;
通过模块,如果符合所述业务认证条件,则通过所述业务请求的认证;
目标信息包括:第一哈希值,第二哈希值;
第一哈希值为用户终端根据随机数和服务器地址计算得到的哈希值;
第二哈希值为用户终端根据口令计算得到的哈希值;
当业务请求为登录请求时,判断模块包括:
第一计算单元,用于根据随机数和服务器地址计算得到第三哈希值;
查询单元,如果第三哈希值与第一哈希值相同,则根据用户名在数据库中查询得到与用户名相对应的存储密码;
第一加密运算单元,用于利用AES对称加密算法对第二哈希值进行加密运算,得到加密后的第二哈希值,其中,AES对称加密算法中使用的密钥包含静态密钥和动态密钥,动态密钥为与随机数不同的随机数;
确定符合单元,如果存储密码与加密后的第二哈希值相同,则确定符合登录认证条件,其中,在符合登录认证条件的情况下,通过登录请求的认证;
当业务请求为注册请求时,判断模块包括:
第二计算单元,用于根据所述随机数和所述服务器地址计算得到第四哈希值;
确定用户名单元,如果所述第四哈希值与所述第一哈希值相同,则确定数据库中是否已存在所述用户名;
第二加密运算单元,如果所述数据库中不存在所述用户名,利用AES对称加密算法对所述第二哈希值进行加密运算,得到加密后的第二哈希值,其中,所述AES对称加密算法中使用的密钥包含静态密钥和动态密钥,所述动态密钥为与所述随机数不同的随机数;
保存单元,用于将所述用户名和所述加密后的第二哈希值保存至所述服务器的用户信息关联表中,以完成所述注册请求的认证。
CN201710664195.3A 2017-08-04 2017-08-04 网页的安全认证方法及装置 Active CN107295011B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710664195.3A CN107295011B (zh) 2017-08-04 2017-08-04 网页的安全认证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710664195.3A CN107295011B (zh) 2017-08-04 2017-08-04 网页的安全认证方法及装置

Publications (2)

Publication Number Publication Date
CN107295011A CN107295011A (zh) 2017-10-24
CN107295011B true CN107295011B (zh) 2020-09-04

Family

ID=60104440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710664195.3A Active CN107295011B (zh) 2017-08-04 2017-08-04 网页的安全认证方法及装置

Country Status (1)

Country Link
CN (1) CN107295011B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768613A (zh) * 2018-04-03 2018-11-06 四川新网银行股份有限公司 一种基于多种加密算法的密文口令校验方法
CN110365626B (zh) * 2018-04-09 2022-12-06 厦门雅迅网络股份有限公司 防撞库的用户登录安全认证方法、终端设备及存储介质
CN109391474A (zh) * 2018-12-25 2019-02-26 武汉思普崚技术有限公司 一种非加密链路的安全认证方法及系统
CN109818738A (zh) * 2018-12-29 2019-05-28 广东电网有限责任公司 一种计算机终端安全登陆方法
CN110493197B (zh) * 2019-07-25 2022-02-01 深圳壹账通智能科技有限公司 一种登录处理方法及相关设备
CN110611719B (zh) * 2019-10-16 2022-04-19 四川虹美智能科技有限公司 一种消息推送方法、服务器和系统
CN112751800B (zh) * 2019-10-29 2023-11-24 杭州海康威视系统技术有限公司 一种认证方法及装置
CN111371743A (zh) * 2020-02-21 2020-07-03 上海红神信息技术有限公司 一种安全防御方法、装置及系统
CN112383535B (zh) * 2020-11-10 2022-10-25 平安普惠企业管理有限公司 哈希传递攻击行为的检测方法、装置和计算机设备
CN112437436B (zh) * 2020-12-07 2023-05-02 中国联合网络通信集团有限公司 一种身份认证方法及装置
CN112966242A (zh) * 2021-03-29 2021-06-15 成都卫士通信息产业股份有限公司 一种用户名口令认证方法、装置、设备及可读存储介质
CN115589316B (zh) * 2022-09-30 2023-08-15 北京海泰方圆科技股份有限公司 一种数据加密传输方法、装置、电子设备及存储介质
CN115622794B (zh) * 2022-11-15 2023-04-07 北京密码云芯科技有限公司 一种加解密方法、装置、设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2020797A1 (en) * 2007-08-02 2009-02-04 Apple Inc. Client-server Opaque token passing apparatus and method
CN101621794A (zh) * 2009-07-07 2010-01-06 董志 一种无线应用服务系统的安全认证实现方法
US9264425B1 (en) * 2014-09-30 2016-02-16 National Chin-Yi University Of Technology Anonymity authentication method in multi-server environments
CN106209386A (zh) * 2016-10-10 2016-12-07 中国银行股份有限公司 一种实现安全认证的方法、装置和系统
CN106657002A (zh) * 2016-11-11 2017-05-10 广东工业大学 一种新型防撞库关联时间多密码的身份认证方法
CN106789924A (zh) * 2016-11-25 2017-05-31 北京天威诚信电子商务服务有限公司 一种使用移动终端的数字证书保护web站点登录的方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769637B2 (en) * 2007-03-23 2014-07-01 Sap Ag Iterated password hash systems and methods for preserving password entropy
US8156333B2 (en) * 2008-05-29 2012-04-10 Red Hat, Inc. Username based authentication security

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2020797A1 (en) * 2007-08-02 2009-02-04 Apple Inc. Client-server Opaque token passing apparatus and method
CN101621794A (zh) * 2009-07-07 2010-01-06 董志 一种无线应用服务系统的安全认证实现方法
US9264425B1 (en) * 2014-09-30 2016-02-16 National Chin-Yi University Of Technology Anonymity authentication method in multi-server environments
CN106209386A (zh) * 2016-10-10 2016-12-07 中国银行股份有限公司 一种实现安全认证的方法、装置和系统
CN106657002A (zh) * 2016-11-11 2017-05-10 广东工业大学 一种新型防撞库关联时间多密码的身份认证方法
CN106789924A (zh) * 2016-11-25 2017-05-31 北京天威诚信电子商务服务有限公司 一种使用移动终端的数字证书保护web站点登录的方法及系统

Also Published As

Publication number Publication date
CN107295011A (zh) 2017-10-24

Similar Documents

Publication Publication Date Title
CN107295011B (zh) 网页的安全认证方法及装置
CN111079128B (zh) 一种数据处理方法、装置、电子设备以及存储介质
CN104519042B (zh) 检测和防止加密连接上的中间人攻击
CN108512846B (zh) 一种终端与服务器之间的双向认证方法和装置
JP6399382B2 (ja) 認証システム
US9106426B2 (en) Username based authentication and key generation
CN101860540B (zh) 一种识别网站服务合法性的方法及装置
CN111615105B (zh) 信息提供、获取方法、装置及终端
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
CN109688098B (zh) 数据的安全通信方法、装置、设备及计算机可读存储介质
CN105391734A (zh) 一种安全登录系统及方法、登录服务器和认证服务器
CN101815091A (zh) 密码提供设备、密码认证系统和密码认证方法
CN110659467A (zh) 一种远程用户身份认证方法、装置、系统、终端及服务器
CN112989426B (zh) 授权认证方法及装置、资源访问令牌的获取方法
CN106789032B (zh) 服务器与移动设备间秘密共享的单一口令三方认证方法
CN104038486A (zh) 一种基于标识型密码实现用户登录鉴别的系统及方法
CN103856468A (zh) 身份验证系统及方法
CN110611670A (zh) 一种api请求的加密方法及装置
CN105447715A (zh) 用于与第三方合作的防盗刷电子优惠券的方法和装置
CN110493162A (zh) 基于可穿戴设备的身份认证方法及系统
Ahmed et al. Dynamic reciprocal authentication protocol for mobile cloud computing
CN103139163A (zh) 数据访问方法、服务器和终端
Khan et al. Offline OTP based solution for secure internet banking access
WO2022135391A1 (zh) 身份鉴别方法、装置、存储介质、程序、及程序产品
CN113411187A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310000 No. 188 Lianhui Street, Xixing Street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Anheng Information Technology Co.,Ltd.

Address before: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310051 and 15 layer

Applicant before: DBAPPSECURITY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant