CN115473668A - 一种数据验证方法及装置 - Google Patents

一种数据验证方法及装置 Download PDF

Info

Publication number
CN115473668A
CN115473668A CN202210882409.5A CN202210882409A CN115473668A CN 115473668 A CN115473668 A CN 115473668A CN 202210882409 A CN202210882409 A CN 202210882409A CN 115473668 A CN115473668 A CN 115473668A
Authority
CN
China
Prior art keywords
token
user
server
verification
request
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
Application number
CN202210882409.5A
Other languages
English (en)
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.)
Wuhan Zhongbang Bank Co Ltd
Original Assignee
Wuhan Zhongbang Bank 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 Wuhan Zhongbang Bank Co Ltd filed Critical Wuhan Zhongbang Bank Co Ltd
Priority to CN202210882409.5A priority Critical patent/CN115473668A/zh
Publication of CN115473668A publication Critical patent/CN115473668A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/321Cryptographic 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 involving a third party or a trusted authority
    • H04L9/3213Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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/3247Cryptographic 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 involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Abstract

本申请涉及数据安全领域,公开了一种数据验证方法及装置。主旨在于解决了现有技术中客户端通过登录账号和登录密码来验证用户身份时,存在泄漏及篡改的安全风险问题,主要方案包括管理员添加用户信息,根据用户信息生成唯一的访问连接,并将生成的访问链接推送至用户,用户通过访问链接使用用户名跟密码请求登录,服务端收到请求后验证用户名及密码信息,如验证成功,服务器签发一个token,并将token发送给用户端,用户端将token存放在Cookie里,所述用户信息包括用户名、密码、手机号;用户端每次向服务端请求资源的时上送服务端签发的Token,服务端收到请求,然后去验证请求里面带着的Token,如果验证成功,就向客户端返回请求的数据,否则拒绝。

Description

一种数据验证方法及装置
技术领域
本申请涉及互联网安全技术领域,尤其涉及一种数据验证方法及装置。
背景技术
在互联网应用中,用户登录应用网站时,需要在软件界面输入账号密码,在通过短信验证码来验证并登入时,需要用户手动输入或粘贴验证码到验证码输入框,操作繁琐且验证码存在泄漏及篡改的安全风险。
发明内容
根据本发明实施例提供的方案解决了现有技术中客户端通过登录账号和登录密码来验证用户身份时,存在泄漏及篡改的安全风险问题。
为了解决上述技术问题,本发明采用以下技术手段:
一种数据验证方法,包括以下步骤:
管理员添加用户信息,根据用户信息生成唯一的访问连接,并将生成的访问链接推送至用户,用户通过访问链接使用用户名跟密码请求登录,服务端收到请求后验证用户名及密码信息,如验证成功,服务器签发一个token,并将token发送给用户端,用户端将token 存放在Cookie里,所述用户信息包括用户名、密码、手机号;
用户端每次向服务端请求资源的时上送服务端签发的Token,服务端收到请求,然后去验证请求里面带着的Token,如果验证成功,就向客户端返回请求的数据,否则返回“404”即“无权限访问”。
上述技术方案中,访问连接由域名与token进行拼接,token包括Header、Payload载荷、Signature三部分;
利用行base64加密算法生成令牌的Header,对{’typ’:’JWT’,’alg’:’HS256’}进行 base64编码,得到″eyJOeXAiOiJKV1QiLCJhbGciOiJIUzI1NJJ9″,其中alg表述签名算法,typ表述令牌的类型;
将用户信息及实际需要传递的数据生成json字符串利用HS256算法进行编码得到令牌的Header部分;
将Header、Payload载荷、预先设置的秘钥secret通过算法生成Signature签名。
上述技术方案中,服务端收到请求,然后去验证请求里面带着的Token,具体包括以下步骤:
服务器接收到Token后,从token的Header解析出签名算法;
根据解析出的签名算法对Payload载荷进行解析,得到PAYLOAD载荷部分携带的解析用户信息,解析用户信息与服务器存储库内存储的用户对应的注册信息进行匹配,若匹配成功,则验证通过,若匹配不成功,即不存在与PAYLOAD载荷部分信息匹配信息则返回“404”,即“无权限访问”。
本发明还提供了一种数据验证装置,包括:
访问链接生成模块:管理员添加用户信息,根据用户信息生成唯一的访问连接,并将生成的访问链接推送至用户;
token签发模块:用户通过访问链接使用用户名跟密码请求登录,服务端收到请求后验证用户名及密码信息,如验证成功,服务器签发一个token,并将token发送给用户端,用户端将token存放在Cookie里,所述用户信息包括用户名、密码、手机号;
验证模块:用户端每次向服务端请求资源的时上送服务端签发的Token,服务端收到请求,然后去验证请求里面带着的Token,如果验证成功,就向客户端返回请求的数据,否则返回“404”即“无权限访问”。
上述技术方案中,访问连接由域名与token进行拼接,token包括Header、Payload载荷、Signature三部分;
利用行base64加密算法生成令牌的Header,对{’typ’:’JWT’,’alg’:’HS256’}进行 base64编码,得到″eyJ0eXAiOiJKVlQiLCJhbGciOiJIUzIlNiJ9″,其中alg表述签名算法,typ表述令牌的类型;
将用户信息及实际需要传递的数据生成json字符串利用HS256算法进行编码得到令牌的Header部分;
将Header、Payload载荷、预先设置的秘钥secret通过算法生成Signature签名。
上述技术方案中,服务端收到请求,然后去验证请求里面带着的Token,具体包括以下步骤:
服务器接收到Token后,从token的Header解析出签名算法;
根据解析出的签名算法对Payload载荷进行解析,得到PAYLOAD载荷部分携带的解析用户信息,解析用户信息与服务器存储库内存储的用户对应的注册信息进行匹配,若匹配成功,则验证通过,若匹配不成功,即不存在与PAYLOAD载荷部分信息匹配信息则返回“404”,即“无权限访问”。
因为本发明采用上述技术方案,因此具备以下有益效果:
1、基于json,方便解析,自定义丰富内容、易维护、扩展性强;
2、资源服务器使用JWT可以不依赖认证服务器,即可完成授权;
3、将用户状态分散到了客户端中,可以明显减轻服务端的内存压力,降低服务器查询数据库的次数,可以有效减少性能问题;
4、安全性,临时且唯一保证不能够重复(缓存有效期机制),修改了数据就要重新签发一个,例如payload中有数据被修改,登录链接马上失效,要重新签发一个,可以防止数据被伪造和篡改;
5、兼容性,适用移动端应用,token可以被客户端存储就能够使用,而且token还可以跨语言使用;
6、前后端分离,后端只负责通过暴露的RestApi提供数据,而页面的渲染、路由都由前端完成。因为rest是无状态的,因此也就不会有session记录到服务器端;
具体实施方式
下面将对本申请实施例中的技术方案进行清楚、完整地描述;
根据所述客户端登录账号发起的登录请求依次通过登录请求Header头部,用来声明 token类型和base64自定义加密算法形成第一签名,如{“alg”:“HS256”,“typ”:“JWT”}alg属性表示签名的算法(algorithm),默认是HMAC SHA256(写成HS256);typ 属性表示这个令牌(token)的类型(type),JWT令牌固定写为JWT。
{“alg”:“HS256”,“typ”:“JWT”}base64编码″eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9″。
PAYLOAD载荷部分,主要用于传递信息的载体,包含用户的常用信息例如(手机号码,加密后的密码)部分,用于将Header和Payload编码后的字符串拼接后再用HS256签名算法(Header中alg指明的算法)加密形成第二签名;
Payload部分是一个JSON对象,用来存放实际需要传递的数据:
*’iss’=>’jwt_admin’,//该JWT的签发者
*’iat’=>time(),//签发时间
*’exp’=>time()+7200,//过期时间
*’nbf’=>time()+60,//该时间之前不接收处理该Token
*’sub’=>’www.mano100.cn’,//面向的用户
*’jti’=>md5(uniqid(’JWT’).time())//该Token唯一标识和自定义的信息例如 (手机号、权限、角色)
Signature部分是对header部分+payload部分+密钥(secret)形成的数据签名,防止数据篡改。
在加密的过程中加上secret(密钥),通过加密算法生产,最后得到签名Signature,形成完整的token信息;Signature部分是对header部分+payload部分+密钥(secret) 形成的数据签名,防止数据篡改。
根据所述客户端提交的token通过加密算法的对应解密算法对其token进行解密,解密分为三部分HEAD、PAYLOAD、SIGNATURE。通过生产token令牌的设置的加密方式进行(自定义)加密运算生成,对所述第一签名数据进行验签,验签通过后,通过JWT库生成 JWT,并将生成的所述JWT存储于Redis中;
所述客户端得到授权凭据后,携带账户和密码去授权服务器进行用户身份认证,授权服务器从Redis中获取用户信息进行身份比对,若用户身份合法,授权服务器生成一个JWT,同时生成一个UUID存储在Redis中;
所述服务器对客户端携带访问令牌的请求做出响应;
所述客户端若成功获取资源服务器认证、授权后,服务器向客户端颁发访问令牌,否则返回“404”,即“无权限访问”,流程到此结束;若认证成功,将授权继续执行。
进一步的举例:
所述业务系统用于接收到所述业务请求并生成链接,并将生产链接通过邮件形式发送给用户;
用户通过应用服务器对应的浏览器向用户展示登录页面该登录页面包括登录账号填充处、登录密码填充处和验证码填充处。
用户根据登录页面的填充指示,输入登录信息;登录信息包括:登录账号、登录密码和手机号码,将所述PAYLOAD载荷部分与存储库的注册信息进行匹配;若认证通过后,所述客户端成功获取资源服务器认证、授权后,服务器向客户端颁发访问令牌,供客户端访问,执行登录操作;
客户端通过token验证提交表单,具体包括:
HEADR头部,用来声明token类型和加密的算法生产成的第一签名数据,验证是否一致,若一致,则继续执行。
PAYLOAD载荷部分,用于将Header和Payload编码后的字符串拼接后再用HS256签名算法(Header中alg指明的算法)加密生成第二签名数据,验证是否一致,若一致,则继续执行。
在第一签名和第二签名加密的过程中还需加上secret(密钥),最后得到签名;
为了避免登录信息形成的token在传给服务器端的传输过程中被篡改;
将JWT头部(header)明文{″typ″:″JwT″,″alg″:″自定义加密″},再使用Base64加密生成密文。
获得的密文对应存储库中是否存在。若不存在,说明该用户没有用账号登录,服务器通知前端返回验证失败,流程到此结束。若存在,继续执行;
用户输入的登录账号与生成的所述存储库匹配,则将所述信息传给服务器;进行认证,若不一致,则说明在传输过程中被篡改,则认证失败,服务器通知前端返回验证失败的指示信息,流程到此结束;若一致则服务器访问运营商平台,继续执行;
所述服务器向运营商平台验证所述手机号码是否已加入白名单,并向所述服务器发送相应验证结果,若未加入白名单,则服务器通知前端返回“404”,即“无权限访问”,流程到此结束;若已加入白名单,则服务器访问运营商平台,继续执行;
运营商平台验证成功,则通过短信形式发送验证码至登录账号录入的手机号码中;
应用服务器在确定登录验证码为正确的登录验证码之后,将用户输入的登录信息与存储的注册信息进行匹配;
若存在与用户输入的登录信息匹配注册信息,则执行登录操作;
若不存在与用户输入的登录信息匹配注册信息,则展示登录操作失败的指示信息。

Claims (6)

1.一种数据验证方法,其特征在于包括以下步骤:
管理员添加用户信息,根据用户信息生成唯一的访问连接,并将生成的访问链接推送至用户,用户通过访问链接使用用户名跟密码请求登录,服务端收到请求后验证用户名及密码信息,如验证成功,服务器签发一个token,并将token发送给用户端,用户端将token存放在Cookie里,所述用户信息包括用户名、密码、手机号;
用户端每次向服务端请求资源的时上送服务端签发的Token,服务端收到请求,然后去验证请求里面带着的Token,如果验证成功,就向客户端返回请求的数据,否则返回“404”即“无权限访问”。
2.根据权利要求1所述的一种数据验证方法,其特征在于,访问连接由域名与token进行拼接,token包括Header、Payload载荷、Signature三部分;
利用行base64加密算法生成令牌的Header,对{’typ’:’JWT’,’alg’:’HS256’}进行base64编码,得到″eyJ0eXAiOiJKVlQiLCJhbGciOiJIUzI1NiJ9″,其中alg表述签名算法,typ表述令牌的类型;
将用户信息及实际需要传递的数据生成json字符串利用HS256算法进行编码得到令牌的Header部分;
将Header、Payload载荷、预先设置的秘钥secret通过算法生成Signature签名。
3.根据权利要求1所述的一种数据验证方法,其特征在于,服务端收到请求,然后去验证请求里面带着的Token,具体包括以下步骤:
服务器接收到Token后,从token的Header解析出签名算法;
根据解析出的签名算法对Payload载荷进行解析,得到PAYLOAD载荷部分携带的解析用户信息,解析用户信息与服务器存储库内存储的用户对应的注册信息进行匹配,若匹配成功,则验证通过,若匹配不成功,即不存在与PAYLOAD载荷部分信息匹配信息则返回“404”,即“无权限访问”。
4.一种数据验证装置,其特征在于包括:
访问链接生成模块:管理员添加用户信息,根据用户信息生成唯一的访问连接,并将生成的访问链接推送至用户;
token签发模块:用户通过访问链接使用用户名跟密码请求登录,服务端收到请求后验证用户名及密码信息,如验证成功,服务器签发一个token,并将token发送给用户端,用户端将token存放在Cookie里,所述用户信息包括用户名、密码、手机号;
验证模块:用户端每次向服务端请求资源的时上送服务端签发的Token,服务端收到请求,然后去验证请求里面带着的Token,如果验证成功,就向客户端返回请求的数据,否则返回“404”即“无权限访问”。
5.根据权利要求4所述的一种数据验证装置,其特征在于,访问连接由域名与token进行拼接,token包括Header、Payload载荷、Signature三部分;
利用行base64加密算法生成令牌的Header,对{’typ’:’JWT’,’alg’:’HS256’}进行base64编码,得到″eyJ0eXAiOiJKVlQiLCJhbGciOiJIUzI1NiJ9″,其中alg表述签名算法,typ表述令牌的类型;
将用户信息及实际需要传递的数据生成json字符串利用HS256算法进行编码得到令牌的Header部分;
将Header、Payload载荷、预先设置的秘钥secret通过算法生成Signature签名。
6.根据权利要求4所述的一种数据验证装置,其特征在于,服务端收到请求,然后去验证请求里面带着的Token,具体包括以下步骤:
服务器接收到Token后,从token的Header解析出签名算法;
根据解析出的签名算法对Payload载荷进行解析,得到PAYLOAD载荷部分携带的解析用户信息,解析用户信息与服务器存储库内存储的用户对应的注册信息进行匹配,若匹配成功,则验证通过,若匹配不成功,即不存在与PAYLOAD载荷部分信息匹配信息则返回“404”,即“无权限访问”。
CN202210882409.5A 2022-07-25 2022-07-25 一种数据验证方法及装置 Pending CN115473668A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210882409.5A CN115473668A (zh) 2022-07-25 2022-07-25 一种数据验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210882409.5A CN115473668A (zh) 2022-07-25 2022-07-25 一种数据验证方法及装置

Publications (1)

Publication Number Publication Date
CN115473668A true CN115473668A (zh) 2022-12-13

Family

ID=84366801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210882409.5A Pending CN115473668A (zh) 2022-07-25 2022-07-25 一种数据验证方法及装置

Country Status (1)

Country Link
CN (1) CN115473668A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116992487A (zh) * 2023-09-25 2023-11-03 北京众图识人科技有限公司 脱敏数据的还原方法、装置、终端设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116992487A (zh) * 2023-09-25 2023-11-03 北京众图识人科技有限公司 脱敏数据的还原方法、装置、终端设备及存储介质

Similar Documents

Publication Publication Date Title
US10979427B2 (en) Method and device for authenticating based on authenticating device
WO2021017128A1 (zh) 登录令牌的生成及验证方法、装置和服务器
WO2017041621A1 (zh) 基于认证设备进行注册的方法和设备
CN108600203A (zh) 基于Cookie的安全单点登录方法及其统一认证服务系统
CN109672675B (zh) 一种基于OAuth2.0的密码服务中间件的WEB认证方法
JP2014503094A (ja) サーバとクライアントとの間の通信方法、並びに対応するクライアント、サーバ、及びシステム
CN111275419B (zh) 一种区块链钱包签名确权方法、装置及系统
US11811952B2 (en) Authentication system and working method thereof
CN108322416B (zh) 一种安全认证实现方法、装置及系统
CN110430065B (zh) 一种应用服务调用方法、装置及系统
CN111327629B (zh) 身份验证方法、客户端和服务端
CN110826049B (zh) 基于智慧企业门户的单点登录实现系统
CN111800378A (zh) 一种登录认证方法、装置、系统和存储介质
US11811739B2 (en) Web encryption for web messages and application programming interfaces
CN111147525A (zh) 基于api网关的认证方法、系统、服务器和存储介质
CN112883357A (zh) 无状态登录鉴权方法和装置
CN115473668A (zh) 一种数据验证方法及装置
CN113505353A (zh) 一种认证方法、装置、设备和存储介质
CN112039857B (zh) 一种公用基础模块的调用方法和装置
CN110830493B (zh) 基于智慧企业门户的单点登录实现方法
CN112383401A (zh) 一种提供身份鉴别服务的用户名生成方法及系统
CN116527341A (zh) 一种客户端调用后端接口鉴权授权安全方法
CN112953711B (zh) 数据库安全连接系统及方法
KR20220122224A (ko) 사용자 단말 및 대상 서버에서의 분산 id에 기반한 사용자 통합 인증 방법
CN111984958A (zh) 一种支持vnc双因子的认证方法

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