CN102281138B - 一种提高验证码安全性的方法和系统 - Google Patents

一种提高验证码安全性的方法和系统 Download PDF

Info

Publication number
CN102281138B
CN102281138B CN201010199359.8A CN201010199359A CN102281138B CN 102281138 B CN102281138 B CN 102281138B CN 201010199359 A CN201010199359 A CN 201010199359A CN 102281138 B CN102281138 B CN 102281138B
Authority
CN
China
Prior art keywords
identifying code
authorization information
verification
unit
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.)
Active
Application number
CN201010199359.8A
Other languages
English (en)
Other versions
CN102281138A (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.)
Nationz Technologies Inc
Original Assignee
Nationz Technologies Inc
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 Nationz Technologies Inc filed Critical Nationz Technologies Inc
Priority to CN201010199359.8A priority Critical patent/CN102281138B/zh
Publication of CN102281138A publication Critical patent/CN102281138A/zh
Application granted granted Critical
Publication of CN102281138B publication Critical patent/CN102281138B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种提高验证码安全性的系统与方法。该系统至少包括带校验的验证码产生服务端和带有验证码校验功能的客户端。基于该系统提高验证码安全性的方法包括4个基本工作流程:带校验的验证码产生流程、验证码校验流程、带校验的验证信息生成流程、验证信息校验核对流程。用户在登录系统时系统生成带有校验信息的验证码;客户端在确认验证码中的校验信息与验证码相符后将验证码显示给用户,提示用户输入相应的验证信息;客户端根据用户输入的验证信息生成校验部分;客户端将增加校验部分的验证信息传送至系统,由系统核对校验部分及验证信息的正确性。在用户连续输错验证码的情况下,客户端会进行自检,以确认客户端和客户端运行环境的正确性。

Description

一种提高验证码安全性的方法和系统
技术领域
本发明涉及信息安全领域,特别涉及用于增强互联网上身份认证安全性的系统和方法。
背景技术
随着互联网的发展,各种网络服务越来越发达,包括网上银行,网上交易,网上认证等。由于开放式的互联网存在分布式拒绝服务攻击、爬虫程序、重放攻击、木马、病毒等诸多不安全因素,使用验证码增加认证的安全性成为一个普遍的技术路径。
现有的验证码通常是服务器产生验证码传输给客户端,客户端将验证码呈现给客户,用户根据验证码输入验证信息,客户端将验证信息返回给服务器。现有的对验证码技术的研究集中在如何生成不轻易被计算机程序自动识别方面,如中国专利200510111302以语音的方式表达验证码、中国专利200810146233以及中国专利200710301642等都集中在构造不能轻易被程序识别的验证码图片方面。由于传输的链路长,网络安全环境比较复杂,这种简单“呈现-返回”工作模式下的验证码内容和返回的验证信息很容易被篡改,进而造成服务失效、服务阻塞等。
发明内容
根据上述问题,本发明提供了一种提高提高验证码安全性的方法和系统。
本发明提供了一种提高验证码安全性的方法,包括:
步骤1:生成带校验部分的验证码;
步骤2:根据验证码的校验部分对收到的验证码进行校验;
步骤3:根据用户输入的验证信息内容生成验证信息的校验部分,客户端根据用户的输入的验证信息和用户信息及流水号计算验证信息的HMAC作为验证信息的校验部分;
步骤4:根据验证信息的校验部分校验验证信息传输的正确性以及核对验证信息的正确性。
本发明的有益效果是:通过在验证码和验证信息中加入校验部分,增强验证码和验证信息的传输安全性,通过在客户端中加入安全单元,增强了验证码的客户端安全性。
在上述技术方案的基础上,本发明还可以做如下进一步说明。
进一步,所述步骤1包括,首先生成不带校验部分的验证码,然后根据此验证码计算校验部分,由校验部分和验证码生成最终的带校验部分的验证码。
进一步,所述步骤2包括,将带校验部分的验证码拆分成不带校验部分的验证码和校验部分,并利用校验部分对不带校验部分的验证码进行校验。
采用上述进一步方案的有益效果是防止传输错误或纂改攻击。
进一步,步骤3包括,根据用户输入的验证信息生成相应的校验部分,然后将验证信息和校验部分一起生成最终的带有校验部分的验证信息。
进一步,步骤4包括,将带有校验部分的验证信息拆分成不带校验部分的验证信息和相应的校验部分,根据校验部分对不带校验部分的验证信息进行校验。
本发明还提供了一种提高验证码安全性的系统,其特征在于,包括用于产生带校验的验证码的服务端以及用于校验验证码的客户端。
其中,所述服务端包括:带校验的验证码产生单元、验证信息校验核对单元、通信单元、认证单元、服务单元和安全单元。带校验的验证码产生单元用于产生带有校验部分的验证码;验证信息校验核对单元用于对客户端返回的验证信息进行校验与核对;通信单元用于与客户端通信;服务单元用于响应客户端的服务请求,通过客户端为用户提供服务;认证单元用于用户身份的认证;安全单元用于密钥存储和数据加解密操作,同时对服务端的状态进行监控。
所述客户端包括:通信单元、验证码校验单元、验证码显示单元、用户输入单元、验证信息校验部分产生单元、服务单元和安全单元。通信单元用于与服务端通信;验证码校验单元用于根据验证码的校验部分对所接收到的验证码进行校验;验证码显示单元用于将校验正确的验证码显示给用户;用户输入单元用于接收用户输入个人信息和根据验证码的内容输入的验证信息;验证信息校验部分产生单元用于根据用户输入的验证信息生成相应的校验部分;服务单元用于向服务器发起服务并为用户提供与服务器交互的接口;安全单元用于存储密钥并对数据进行加解密操作,同时检测客户端的安全,客户端根据用户的输入的验证信息和用户信息及流水号计算验证信息的HMAC作为验证信息的校验部分。
其有益效果是:可以在现有验证码系统的基础上改造完成,无需增加额外的硬件部分,并对现有的验证码工作方式进行扩展,与现有的验证码工作流程具有良好的兼容性。
进一步,所述服务端为应用程序服务器或智能密码钥匙。
附图说明
图1是一种应用本发明的网上交易认证系统工作流程图;
图2是验证码产生流程;
图3是验证码校验流程;
图4是带校验的验证信息生成流程;
图5是验证信息校验核对流程;
图6是本发明的工作流程;
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,图1描述了一种应用本发明的网上交易认证系统工作流程图。该系统由应用程序服务器和客户端组成。
其中应用程序服务器至少包含了带校验的验证码产生单元、验证信息校验核对单元、通信单元、认证单元、服务单元和安全单元。
通信单元负责服务器与客户端以及服务器与后台数据库间的通信;
服务单元负责响应客户端的服务请求,通过客户端为用户提供相应的服务;
认证单元负责用户身份的认证;
带校验的验证码产生单元负责产生带有校验部分的验证码,首先生成不带校验部分的验证码A部分和带校验部分的B部分,然后由A和B共同生成带有校验部分的验证码。其中不带校验部分的验证码A部分不属于本发明的内容,在专利CN200710161038.7、CN200710161039.1等中都有所描述;
验证信息校验单元负责对收到的验证信息进行校验;
验证信息校验核对单元根据客户端返回的验证信息的校验部分和验证算法对用户输入的验证信息进行校验。将接收到的验证信息拆分成不带校验的C部分和相应的校验部分D,根据D部分和其他信息对C部分进行校验。若验证信息出现传输错误或在传输途中遭到篡改,会校验失败。根据验证码的内容核对用户输入的验证信息是否正确也属于本单元的功能,但核对功能本身不属于本发明范畴,可以使用各种公开的或专用的算法。
安全单元负责存储各个客户端的通信密钥和进行相应的数据加解密操作,同时对服务端的状态进行监控,当有大规模验证码输入错误发生时,安全单元提示管理员进行相应处理。
客户端至少包括通信单元、验证码校验单元、验证码显示单元、用户输入单元、验证信息校验部分生成单元、服务单元和安全单元。
通信单元负责与服务器间的通信,包括数据的传输;
验证码校验单元是在收到服务器发出的验证码之后,根据验证码的校验部分和服务流水号对验证码进行校验,具体的,验证码校验单元将收到的验证码拆分成不带校验的A部分和校验的B部分。根据B部分和其他信息对A部分进行校验。若验证码出现传输错误或在传输途中遭到篡改,会校验失败;
验证码显示单元主要是对校验正确的验证码显示给用户;
用户输入单元主要负责接收用户输入个人信息和根据验证码的内容输入的验证信息;
验证信息校验部分产生单元负责对于用户输入的验证信息计算相应的校验值,具体的,根据用户输入的验证信息C生成相应的校验部分D,验证信息C与校验部分D一起生成最终的验证信息;
服务单元主要是向服务器发起服务并为用户提供与服务器交互的接口;
安全单元主要是存储通信密钥并对数据进行加解密操作,同时检测客户端的安全,在用户连续输错验证码的情况下,安全单元会对客户端软件和客户端运行环境进行检查,保证客户端的安全性。
用户在进行网上交易时,首先打开相应的客户端。在用户成功打开客户端之后,客户端向服务器发出验证码产生请求。服务器在收到验证码产生请求后首先判断请求时间是否超时,若请求超时,则不响应该请求,若请求合法,则生成此次服务的流水号。然后服务器开始生成验证码,具体步骤如下:
随机生成验证信息;
根据验证信息生成不带校验信息的验证码A;
以服务流水号和客户端信息为密钥计算计算A的HMAC值B;
将B与A级联生成最终验证码。
整个验证码产生流程如图2所示:
服务器将生成的带校验位的验证码和服务流水号发送至客户端,客户端接收到验证码后首先判断接收到的验证码是否超时,若接收到的验证码超时,则重新向服务器发起验证码产生请求。若收到的验证码未超时,则客户端对收到的数据进行拆包,获得验证码和流水号。
客户端分别提取验证码中非校验部分A和校验部分B,然后根据A和流水号计算HMAC,核对计算的HMAC是否与B部分相等,若二者不同,则判断验证码为非法验证码,重新向服务器发出验证码生成请求;若二者相等,则判断收到的为合法的验证码,然后将验证码的非校验部分呈现给用户。整个验证码校验流程如图3所示。
用户在客户端相应位置输入自己的ID和密码等个人信息,并根据验证码的验证信息输入相应内容。客户端根据用户的输入的验证信息和用户信息及流水号计算验证信息的HMAC作为验证信息的校验部分。校验部分与验证信息一起生成带校验的验证信息,客户端将用户的个人信息和带校验的验证信息加密后传输给服务器。整个验证信息计算流程如图4所示。
服务器收到客户端传来的验证码之后,首先判断客户端的返回是否超时,若客户端的返回超时,则提示客户端返回超时并重新产生验证码发送给客户端;若通信未超时,则对客户端发来的内容进行解密,判断用户输入的验证信息是否正确,若验证信息不正确,则提示客户端返回的验证信息错误并重新产生验证码发送给客户端;若验证信息正确,则进一步核对用户的ID和密码是否正确,若用户的ID或密码是否错误,则提示客户端用户输入的ID或密码错误并重新产生验证码发送给客户端;若用户的ID和密码都正确,则通知客户端进入服务引导界面,然后用户可以选择发起交易。整个验证码的核对流程如图5所示。
至此,整个认证流程结束。一次带校验的验证码生成、校验、核对的整个流程如图6所示。
图1~6所示的认证过程是具体应用的一种情况。各种不同的应用中对安全性的要求也不尽一致,可以适当的改变上述几个流程的具体步骤来实现。像在带有智能密码钥匙的网银中,可以由智能密码钥匙生成验证码:首先是用户输入ID和相应的密码,系统核对用户的ID和密钥正确后,使用用户的私钥或者系统的私钥对验证码的A部分签名生成校验部分B,客户端使用用户的公钥或系统的公钥进行验证。带校验的验证码也可以直接由智能密码钥匙生成而不是由应用程序服务器生成,生成校验码的校验部分时,可以是服务流水号为密钥计算HMAC,可以是用户的ID或密码计算HMAC,也可以是用户的私钥对验证码部分的签名。
带校验的验证码也可以由客户端本身产生,这时要求客户端包含验证码生成单元,当用户登录系统时,客户端根据用户的输入生成相应的验证码。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种提高验证码安全性的方法,包括:
步骤1:生成带校验部分的验证码;即,首先生成不带校验部分的验证码,然后根据此验证码计算校验部分,由校验部分和验证码生成最终的带校验部分的验证码;
步骤2:根据验证码的校验部分对收到的验证码进行校验;
步骤3:根据用户输入的验证信息内容生成验证信息的校验部分,客户端根据用户的输入的验证信息和用户信息及流水号计算验证信息的HMAC作为验证信息的校验部分;
步骤4:根据验证信息的校验部分校验验证信息传输的正确性以及核对验证信息的正确性;
所述步骤1中校验部分是以用户信息、客户端信息或本次活动信息为密钥,通过基于散列函数的消息认证算法来生成的。
2.根据权利要求1所述的方法,其特征在于,所述步骤2包括,将带校验部分的验证码拆分成不带校验部分的验证码和校验部分,并利用校验部分对不带校验部分的验证码进行校验。
3.根据权利要求1所述的方法,其特征在于,所述步骤3包括,根据用户输入的验证信息生成相应的校验部分,然后将验证信息和校验部分一起生成最终的带有校验部分的验证信息。
4.根据权利要求1所述的方法,其特征在于,所述步骤4包括,将带有校验部分的验证信息拆分成不带校验部分的验证信息和相应的校验部分,根据校验部分对不带校验部分的验证信息进行校验。
5.一种提高验证码安全性的系统,其特征在于,包括用于产生带校验的验证码的服务端以及用于校验验证码的客户端;
其中,所述服务端包括:带校验的验证码产生单元、验证信息校验核对单元、通信单元、认证单元、服务单元和安全单元,带校验的验证码产生单元用于产生带有校验部分的验证码;验证信息校验核对单元用于对客户端返回的验证信息进行校验与核对;通信单元用于与客户端通信;服务单元用于响应客户端的服务请求,通过客户端为用户提供服务;认证单元用于用户身份的认证;安全单元用于密钥存储和数据加解密操作,同时对服务端的状态进行监控;
所述客户端包括:通信单元、验证码校验单元、验证码显示单元、用户输入单元、验证信息校验部分产生单元、服务单元和安全单元,通信单元用于与服务端通信;验证码校验单元用于根据验证码的校验部分对所接收到的验证码进行校验;验证码显示单元用于将校验正确的验证码显示给用户;用户输入单元用于接收用户输入个人信息和根据验证码的内容输入的验证信息;验证信息校验部分产生单元用于根据用户输入的验证信息生成相应的校验部分;服务单元用于向服务器发起服务并为用户提供与服务器交互的接口;安全单元用于存储密钥并对数据进行加解密操作,同时检测客户端的安全,客户端根据用户的输入的验证信息和用户信息及流水号计算验证信息的HMAC作为验证信息的校验部分。
6.根据权利要求5所述的系统,其特征在于,所述服务端为应用程序服务器或智能密码钥匙。
CN201010199359.8A 2010-06-12 2010-06-12 一种提高验证码安全性的方法和系统 Active CN102281138B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010199359.8A CN102281138B (zh) 2010-06-12 2010-06-12 一种提高验证码安全性的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010199359.8A CN102281138B (zh) 2010-06-12 2010-06-12 一种提高验证码安全性的方法和系统

Publications (2)

Publication Number Publication Date
CN102281138A CN102281138A (zh) 2011-12-14
CN102281138B true CN102281138B (zh) 2014-05-07

Family

ID=45106337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010199359.8A Active CN102281138B (zh) 2010-06-12 2010-06-12 一种提高验证码安全性的方法和系统

Country Status (1)

Country Link
CN (1) CN102281138B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243159A (zh) * 2014-07-01 2014-12-24 小米科技有限责任公司 业务操作的验证方法、服务器及终端
CN105450592A (zh) 2014-08-05 2016-03-30 阿里巴巴集团控股有限公司 安全校验方法、装置、服务器及终端
CN105450410A (zh) * 2014-08-06 2016-03-30 阿里巴巴集团控股有限公司 一种校验方法和装置
CN105223732B (zh) 2015-10-23 2018-03-16 京东方光科技有限公司 背光源及显示装置
CN106060791B (zh) * 2016-07-05 2021-01-12 Tcl科技集团股份有限公司 一种发送和获取短信验证码的方法和系统
CN106340296B (zh) * 2016-10-20 2019-11-19 努比亚技术有限公司 一种语音验证码保护装置、方法和移动终端
CN108337211A (zh) * 2017-01-19 2018-07-27 北京京东尚科信息技术有限公司 信息验证的方法、装置、电子设备和可读存储介质
CN107483435A (zh) * 2017-08-11 2017-12-15 青岛海尔多媒体有限公司 验证码校验的方法及装置
CN108282470B (zh) * 2018-01-09 2020-11-10 安庆师范大学 一种网络图形验证方法及验证系统
CN108449568A (zh) * 2018-01-31 2018-08-24 苏州科达科技股份有限公司 用于视频会议的身份认证方法及装置
CN114500328A (zh) * 2022-01-20 2022-05-13 深圳市迈睿迈特环境科技有限公司 数据通讯方法、设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1283827A (zh) * 2000-08-18 2001-02-14 郝孟一 通用电子信息网络认证系统及方法
WO2004049716A1 (en) * 2002-11-25 2004-06-10 Conax As Gms sms based authentication system for digital tv
CN1681234A (zh) * 2004-04-10 2005-10-12 鸿富锦精密工业(深圳)有限公司 数据传输的正确性检查系统及方法
CN1866826A (zh) * 2006-06-12 2006-11-22 中国移动通信集团公司 业务下载的方法
CN1949235A (zh) * 2006-04-24 2007-04-18 南京熊猫电子股份有限公司 税控设备软件版本智能升级加密验证方法
CN101267311A (zh) * 2008-04-14 2008-09-17 中国工商银行股份有限公司 一种网上银行防止数据劫持的方法、装置与系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1283827A (zh) * 2000-08-18 2001-02-14 郝孟一 通用电子信息网络认证系统及方法
WO2004049716A1 (en) * 2002-11-25 2004-06-10 Conax As Gms sms based authentication system for digital tv
CN1681234A (zh) * 2004-04-10 2005-10-12 鸿富锦精密工业(深圳)有限公司 数据传输的正确性检查系统及方法
CN1949235A (zh) * 2006-04-24 2007-04-18 南京熊猫电子股份有限公司 税控设备软件版本智能升级加密验证方法
CN1866826A (zh) * 2006-06-12 2006-11-22 中国移动通信集团公司 业务下载的方法
CN101267311A (zh) * 2008-04-14 2008-09-17 中国工商银行股份有限公司 一种网上银行防止数据劫持的方法、装置与系统

Also Published As

Publication number Publication date
CN102281138A (zh) 2011-12-14

Similar Documents

Publication Publication Date Title
CN102281138B (zh) 一种提高验证码安全性的方法和系统
CN106330850B (zh) 一种基于生物特征的安全校验方法及客户端、服务器
CN102300182B (zh) 一种基于短信的身份验证方法、系统和装置
CN108834144B (zh) 运营商码号与账号的关联管理方法与系统
US8627424B1 (en) Device bound OTP generation
CN101170407B (zh) 一种安全地生成密钥对和传送公钥或证书申请文件的方法
CN102164141B (zh) 保护账号安全的方法
CN102006306B (zh) 一种web服务的安全认证方法
CN107888382A (zh) 一种基于区块链的数字身份验证的方法、装置和系统
CN103067402B (zh) 数字证书的生成方法和系统
CN108881310A (zh) 一种注册系统及其工作方法
CN101257489A (zh) 一种保护账号安全的方法
CN1937498A (zh) 一种动态密码认证方法、系统及装置
CN1832401A (zh) 一种保护帐号密码安全的方法
CN101577917A (zh) 一种安全的基于手机的动态密码验证方法
CN101216915B (zh) 安全移动支付方法
CN103795724A (zh) 一种基于异步动态口令技术的保护账户安全的方法
CN111327629B (zh) 身份验证方法、客户端和服务端
CN108965222A (zh) 身份认证方法、系统及计算机可读存储介质
CN101141252A (zh) 一种网络密码认证方法
CN102868702A (zh) 系统登录装置和系统登录方法
CN104125230A (zh) 一种短信认证服务系统以及认证方法
CN104881595B (zh) 基于pin码管理的自助远程解锁方法
CN106911744A (zh) 一种镜像文件的管理方法和管理装置
CN101741561A (zh) 双向硬件认证方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant