CN106534196A - 一种抗口令猜测重放攻击的身份验证方法 - Google Patents
一种抗口令猜测重放攻击的身份验证方法 Download PDFInfo
- Publication number
- CN106534196A CN106534196A CN201611195195.5A CN201611195195A CN106534196A CN 106534196 A CN106534196 A CN 106534196A CN 201611195195 A CN201611195195 A CN 201611195195A CN 106534196 A CN106534196 A CN 106534196A
- Authority
- CN
- China
- Prior art keywords
- password
- shared key
- identity verification
- timestamp
- user
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
Abstract
本发明涉及身份鉴别技术领域,特别是一种抗口令猜测重放攻击的身份验证方法。本发明首先将服务器与需要身份验证的用户浏览器进行时间同步;然后用户浏览器通过https机制获取一个共享密钥;获取当前的时间戳;用户浏览器端使用共享密钥把用户名和时间戳一起与密码进行加密;然后整个身份验证信息用共享密钥再次加密;然后服务器端进行两次解密,获得两份身份验证信息;然后分别进行对比,如果完全一致,那么把时间戳与当前时间对比,最后验证信息中的用户名密码的组合是否与系统中保存的用户名密码组合是否一致,如果一致,那么执行验证通过。本发明避免了通过口令猜测攻击身份验证;可以用于Web应用的身份验证。
Description
技术领域
本发明涉及身份鉴别技术领域,特别是一种抗口令猜测重放攻击的身份验证方法。
背景技术
随着计算机技术和互联网技术的日志发展和广泛应用,人们越来越强烈地感受到无地域性和实时性的网络数字流正在全方位地改变着信息的传播方式,使之变得更加快捷、更加高效。但信息安全问题已经成为制约计算机网络应用的一个瓶颈,并且随着计算机网络的迅猛发展,日益突出。
在当前Web应用占主流的趋势下,身份验证系统是保护信息安全最重要的部分。用户名/口令机制占了身份验证系统实现技术的绝大多数。然而,随着网络的高度共享尤其是云计算的蓬勃发展,对身份验证系统的攻击成本越来越低,攻击者采用廉价的计算资源对身份验证系统进行暴力的口令猜测重放攻击非常常见了,如何抵抗此类攻击是各应用开发商需要面临的重大问题。
口令猜测的攻击的成功往往是由于用户选择比较简单好记的弱口令导致的。而口令猜测攻击的手段多依赖于穷举手段,势必经过多次尝试才能成功。因此,目前,抗口令猜测重放攻击的方法有以下两种:
1、使用口令生成器生成强度较高的密码,这时候破解的成本就大大提高以至于在有限时间内无法成功,但是强度较高的密码往往也难以记住,对用户来说,有可能忘记密码,也有可能发生用户把密码存储在其他地方而导致密码泄露,也不利于信息安全;
2、使用随机生成的验证码,但是这个只适合页面类的应用,对于接口类的应用不适用,并且目前的图像识别技术也已经能在图片中识别出验证码,此类攻击也能实现自动化;
3、限制错误口令连续尝试次数,对超出限制的用户账号进行锁定,此种手段可以抵抗口令猜测的攻击,可是却引入了另外一个攻击手段,攻击者通过猜测用户名不断尝试失败,可能导致大量用户账号被锁定,大大影响了应用的可用性。
发明内容
本发明解决的技术问题在于一种抗口令猜测重放攻击的身份验证方法。
本发明解决上述技术问题的技术方案是,
所述的方法包括以下步骤:
步骤1:服务器与需要身份验证的用户浏览器分别在互联网上进行时间同步,确保两边的系统时间保持一致;
步骤2:用户浏览器通过https机制获取一个共享密钥;
步骤3:每次需要进行身份验证前,用户浏览器端获取当前的时间戳;
步骤4:用户浏览器端使用共享密钥把用户名和时间戳一起与密码进行加密;
步骤5:整个身份验证信息用共享密钥再次加密,如下面的构造:
加密完成后,用户浏览器把上述信息作为消息体传送到服务器端;
步骤6:服务器端获得身份验证信息的密文以后,进行第一次解密,获得第一份身份验证信息和一份密文,继续对密文进行第二次解密,获得第二份身份验证信息;
步骤7:把第一份身份验证信息和第二份身份验证信息中的用户名、时间戳和本次密码分别进行对比,如果完全一致,那么执行步骤8,否则,可能是重放攻击,执行步骤11;
步骤8:把身份验证信息中的时间戳与当前时间对比,如果超出允许的时间范围,可能是重放攻击,执行步骤11,否则,执行步骤9;
步骤9:验证信息中的用户名密码的组合是否与系统中保存的用户名密码组合是否一致,如果一致,那么执行步骤10,否则,执行步骤11;
步骤10:返回验证通过的响应消息到用户浏览器;
步骤11:返回验证不通过的响应消息到用户浏览器。
所述通过https机制获取一个共享密钥指的是获取网站上使用的数字证书上的公钥作为共享密钥,使用https协议的网站会向第三方的权威机构申请一个数字证书,来证明自己的身份,数字证书中含有一个公钥,用户浏览器使用这个公钥对发送的http请求进行加密,请求到了服务器端后,再通过网站中的私钥解密成明文,以达到通信过程加密的谜底。
所述解密指的是使用服务器本身拥有的对应共享密钥的私钥对用户浏览器发送请求中的密文进行解密。
所述时间戳超出允许的时间范围指的是身份验证的时间与当前时间的时间差超出允许的时间范围,本发明的服务器只对具有新鲜性的身份验证信息进行验证,消息中两次时间不一致,或构造消息中的时间不真实均不对其进行验证,避免弱密码经过多次口令猜测被破解的问题。
本发明的方法能产生如下的有益效果:
1、本发明对口令猜测重放攻击的抵抗效果不依赖于口令的密码强度,单独实施也能实现其效果,是一种适用范围较广的技术;
2、本发明方法能避免由于海量尝试而可能出现的口令被破解的问题,通过多次猜测方式发送的身份验证请求不会被验证;
3本发明在常用用户名/口令验证机制的基础上加入时间戳作为唯一的临时值以对验证请求进行标识,并且通过加解密方法的应用达到抗口令猜测重放攻击的效果。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图;
图2为本发明实施的示意图。
具体实施方式
如图1、2所示;下面以利用ASP.net提供的固有服务器控件Login建立用户登录页面Login.aspx进行详细说明。
Login.aspx的页面代码如下:
<%@Page Language=″C#″AutoEventWireup=″true″CodeFile=″Login.aspx.cs″Inherits=″_Default″%>
<!DOCTYPE html PUBLIC″-//W3C//DTD XHTML1.0Transitional//EN″″http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd″>
<html xmlns=″http://www.w3.org/1999/xhtml″>
<head runat=″server″>
<title>Login</title>
</head>
<body>
<form id=″form1″runat=″server″>
<div>
<asp:Login ID=″Login1″runat=″server″Height=″119px″Width=″365px″>
</asp:Login>
</div>
</form>
</body>
</html>
如图2所示,攻击过程如下:合法用户发送正常的访问请求到web服务器,但其通信过程攻击者监听。之后,攻击者根据监听到的身份信息构造请求,假冒合法用户访问web服务器。针对上述ASP.net网站,重放攻击的原理性实施方案如下:
1)用户输入web服务器URL,服务器响应登录页Login.aspx;
2)用户输入用户名与密码,点击登录按钮,认证通过,服务器返回主页。
3)假定攻击者成功监听到用户浏览器的请求,也就是Login.aspx执行后的内容;
http://Server_IP/aspnetweb/Login.aspx?usemame=admin&password=0FkeIYPa5PfxnLx&authcode=<=LT-35874-05gyEVZu0FkeIYPa5PfxnLxxeYDfsl&execution=e2s1&_eventId=submit&submit=%E3%80%80%E3%80%80%E7%99%BB%E3%80%80%E5%BD%95%E3%80%80%E3%80%80
4)攻击者可以构造合法的请求http请求,并发送到web服务器;
5)攻击者直接进入主页面,无需输入用户名与密码,享有合法用户的权限。攻击成功。
为了避免在每一个页面中做认证处理,应对方案的实施位置选择在FormsAuthentication Modul.Authenticate事件的处理函数中,即在Global.aspx文件中加入Forms Authentication_OnAuthenticate事件响应函数。
由于本文提出的应对方案是在ASP.net认证框架的基础上添加会话指纹识别功能实现的,所以,实施方案需要ASP.net自身的认证框架和会话机制的配合。
应对方案的关键伪代码如下:
Phrase=Request.Params[″HTTP_ASPFILTE R SESSIONID″];
SSubstring=Phrase.SubString(S串特征);//用户名
FSubstring=Phrase.SubString(F串特征);//密码
if(FSubstring不为空){
Current Session=Application[SSubstring];
if(CurrentSession不为空){
Freshvalue=CurrentSession.datetime();//时间戳
Key=CurrentSession.cert.publicKey;//获取共享密钥
ComingRequest=Encry.encry(Key,SSubstring+Freshvalue+FSubstring+Encry.encry(Key,SSubstring+Freshvalue+FSubstring));//加密身份验证信息
if(!ComingRequest.Equals(CurrentSession)){
authidentity=new CustomFormsIdentity(false);
e.User=new CustomPrincipal(authidentity);
}
}
else{
authidentity=new CustomFormsIdentity(false);
e.User=new CustomPrincipal(authidentity);
}
}
else
{
authidentity=new CustomFormsIdentity(false);
e.User=new CustomPrincipal(authidentity);
}
上述算法用于对服务器收到的所有请求进行验证。如果验证通过,则不做任何处理,即采用ASP.net的认证框架的验证结果。如果验证失败,则将该请求的身份信息设置为非认证用户,需要用户重新输入原始的用户名与密码进行认证。
利用原始的用户名与密码进行认证的伪代码如下,在Login控件的OnAuthenticate事件响应函数中实施:
protected void on Authenticate(Object sender,AuthenticateEventArgs e){
if(Membership.ValidateUser(Login1.UserName,Login1.Password)){
e.Authenticated=true;
freshvalue=GetDateTime();
Key=Session.cert.publicKey;//获取共享密钥
Application[Session.SessionID]=Encry.encry(Key,Login1.UserName+freshvalue+Login1.Password+Encry.encry(Key,Login1.UserName+freshvalue+Login1.Password));
FormsAuthentication.RedirectFromLoginPage(Login1.UserName,false);
}
else{
e.Authenticated=false;
}
}。
Claims (3)
1.一种抗口令猜测重放攻击的身份验证方法,其特征在于,所述的方法包括以下步骤:
步骤1:服务器与需要身份验证的用户浏览器分别在互联网上进行时间同步,确保两边的系统时间保持一致;
步骤2:用户浏览器通过https机制获取一个共享密钥;
步骤3:每次需要进行身份验证前,用户浏览器端获取当前的时间戳;
步骤4:用户浏览器端使用共享密钥把用户名和时间戳一起与密码进行加密;
步骤5:整个身份验证信息用共享密钥再次加密,如下面的构造:
{用户名,时间戳,本次密码+{用户名,时间戳,本次密码}共享密钥}共享密钥
加密完成后,用户浏览器把上述信息作为消息体传送到服务器端;
步骤6:服务器端获得身份验证信息的密文以后,进行第一次解密,获得第一份身份验证信息和一份密文,继续对密文进行第二次解密,获得第二份身份验证信息;
步骤7:把第一份身份验证信息和第二份身份验证信息中的用户名、时间戳和本次密码分别进行对比,如果完全一致,那么执行步骤8,否则,可能是重放攻击,执行步骤11;
步骤8:把身份验证信息中的时间戳与当前时间对比,如果超出允许的时间范围,可能是重放攻击,执行步骤11,否则,执行步骤9;
步骤9:验证信息中的用户名密码的组合是否与系统中保存的用户名密码组合是否一致,如果一致,那么执行步骤10,否则,执行步骤11;
步骤10:返回验证通过的响应消息到用户浏览器;
步骤11:返回验证不通过的响应消息到用户浏览器。
2.根据权利要求1所述的方法,其特征在于,所述通过https机制获取一个共享密钥指的是获取网站上使用的数字证书上的公钥作为共享密钥。
3.根据权利要求1或2所述的方法,其特征在于,所述解密指的是使用服务器本身拥有的对应共享密钥的私钥对用户浏览器发送请求中的密文进行解密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611195195.5A CN106534196A (zh) | 2016-12-22 | 2016-12-22 | 一种抗口令猜测重放攻击的身份验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611195195.5A CN106534196A (zh) | 2016-12-22 | 2016-12-22 | 一种抗口令猜测重放攻击的身份验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106534196A true CN106534196A (zh) | 2017-03-22 |
Family
ID=58340748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611195195.5A Pending CN106534196A (zh) | 2016-12-22 | 2016-12-22 | 一种抗口令猜测重放攻击的身份验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106534196A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819577A (zh) * | 2017-11-28 | 2018-03-20 | 成都蓉威电子技术有限公司 | 一种用于总线数据传输的同步密钥生成方法及装置 |
CN111262701A (zh) * | 2020-01-10 | 2020-06-09 | 普联国际有限公司 | 一种重放攻击检测方法、系统、设备及存储介质 |
CN113660216A (zh) * | 2021-07-26 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 口令攻击检测方法、装置、电子装置和存储介质 |
CN114581595A (zh) * | 2021-12-13 | 2022-06-03 | 北京市建筑设计研究院有限公司 | 渲染配置信息的生成方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136750A (zh) * | 2007-10-15 | 2008-03-05 | 胡祥义 | 一种网络实名制的实现方法 |
CN101464932A (zh) * | 2007-12-19 | 2009-06-24 | 联想(北京)有限公司 | 硬件安全单元间协作方法、系统及其应用设备 |
CN101582896A (zh) * | 2009-06-24 | 2009-11-18 | 周哲 | 第三方网络认证系统及其认证方法 |
CN101808353A (zh) * | 2010-03-08 | 2010-08-18 | 南昌航空大学 | 一种监视与分析无线传感器网络自身健康状态的方法 |
US20150082399A1 (en) * | 2013-09-17 | 2015-03-19 | Auburn University | Space-time separated and jointly evolving relationship-based network access and data protection system |
-
2016
- 2016-12-22 CN CN201611195195.5A patent/CN106534196A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136750A (zh) * | 2007-10-15 | 2008-03-05 | 胡祥义 | 一种网络实名制的实现方法 |
CN101464932A (zh) * | 2007-12-19 | 2009-06-24 | 联想(北京)有限公司 | 硬件安全单元间协作方法、系统及其应用设备 |
CN101582896A (zh) * | 2009-06-24 | 2009-11-18 | 周哲 | 第三方网络认证系统及其认证方法 |
CN101808353A (zh) * | 2010-03-08 | 2010-08-18 | 南昌航空大学 | 一种监视与分析无线传感器网络自身健康状态的方法 |
US20150082399A1 (en) * | 2013-09-17 | 2015-03-19 | Auburn University | Space-time separated and jointly evolving relationship-based network access and data protection system |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819577A (zh) * | 2017-11-28 | 2018-03-20 | 成都蓉威电子技术有限公司 | 一种用于总线数据传输的同步密钥生成方法及装置 |
CN107819577B (zh) * | 2017-11-28 | 2021-04-09 | 中电科蓉威电子技术有限公司 | 一种用于总线数据传输的同步密钥生成方法及装置 |
CN111262701A (zh) * | 2020-01-10 | 2020-06-09 | 普联国际有限公司 | 一种重放攻击检测方法、系统、设备及存储介质 |
CN111262701B (zh) * | 2020-01-10 | 2023-05-23 | 普联国际有限公司 | 一种重放攻击检测方法、系统、设备及存储介质 |
CN113660216A (zh) * | 2021-07-26 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 口令攻击检测方法、装置、电子装置和存储介质 |
CN113660216B (zh) * | 2021-07-26 | 2022-10-21 | 杭州安恒信息技术股份有限公司 | 口令攻击检测方法、装置、电子装置和存储介质 |
CN114581595A (zh) * | 2021-12-13 | 2022-06-03 | 北京市建筑设计研究院有限公司 | 渲染配置信息的生成方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9871791B2 (en) | Multi factor user authentication on multiple devices | |
US8627424B1 (en) | Device bound OTP generation | |
US8275984B2 (en) | TLS key and CGI session ID pairing | |
US7257836B1 (en) | Security link management in dynamic networks | |
US7032110B1 (en) | PKI-based client/server authentication | |
US10250589B2 (en) | System and method for protecting access to authentication systems | |
US20110179478A1 (en) | Method for secure transmission of sensitive data utilizing network communications and for one time passcode and multi-factor authentication | |
Archana et al. | Survey on usable and secure two-factor authentication | |
CN106534196A (zh) | 一种抗口令猜测重放攻击的身份验证方法 | |
WO2009146655A1 (zh) | 一种密码输入方法、装置和系统 | |
US9954853B2 (en) | Network security | |
Mukhopadhyay et al. | An Anti-Phishing mechanism for single sign-on based on QR-code | |
US20150328119A1 (en) | Method of treating hair | |
Aljawarneh et al. | A web client authentication system using smart card for e-systems: initial testing and evaluation | |
KR102049527B1 (ko) | 사용자 인증 서버 및 시스템 | |
Popov et al. | Token Binding over HTTP | |
CN111199035B (zh) | 一种接口加密数据传输的单点登录方法 | |
Wang et al. | Review of web authentication | |
Deeptha et al. | Extending OpenID connect towards mission critical applications | |
CN112787821A (zh) | 非对称加密Token验证方法、服务器、客户端及系统 | |
Ozha | Kerberos: An Authentication Protocol | |
Pranata et al. | A distributed mechanism for secure collaboration in Digital Ecosystems | |
Lin et al. | Enhancing the session security of zen cart based on HMAC-SHA256 | |
CN117792802B (zh) | 基于多系统交互的身份验证与应用访问控制方法及系统 | |
Kumari et al. | Hacking resistance protocol for securing passwords using personal device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170322 |