CN108900471A - 用于传输数据的服务器、客户端、网络系统及方法 - Google Patents

用于传输数据的服务器、客户端、网络系统及方法 Download PDF

Info

Publication number
CN108900471A
CN108900471A CN201810553287.9A CN201810553287A CN108900471A CN 108900471 A CN108900471 A CN 108900471A CN 201810553287 A CN201810553287 A CN 201810553287A CN 108900471 A CN108900471 A CN 108900471A
Authority
CN
China
Prior art keywords
token
data
server
client
service 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.)
Granted
Application number
CN201810553287.9A
Other languages
English (en)
Other versions
CN108900471B (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.)
Beijing Zhengda Financial Information Service Co Ltd
Original Assignee
Beijing Zhengda Financial Information Service 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 Beijing Zhengda Financial Information Service Co Ltd filed Critical Beijing Zhengda Financial Information Service Co Ltd
Priority to CN201810553287.9A priority Critical patent/CN108900471B/zh
Publication of CN108900471A publication Critical patent/CN108900471A/zh
Application granted granted Critical
Publication of CN108900471B publication Critical patent/CN108900471B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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

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)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种用于传输数据的方法,适于在网络系统中的服务器上执行,网络系统还包括客户端,该方法包括步骤:接收来自客户端的业务请求,业务请求包括令牌、业务数据、以及基于令牌摘要和业务数据生成的加密校验数据;对业务请求中的令牌进行验证;如果业务请求中的令牌验证通过,则获取服务器所存储的对应的令牌摘要;基于业务数据和获取到的令牌摘要生成参考校验数据;对加密校验数据解密得到原始校验数据;比较原始校验数据与参考校验数据是否一致;以及如果原始校验数据与参考校验数据一致,则允许以系统账户来处理业务请求。本发明还公开了对应的服务器、客户端、网络系统和方法。

Description

用于传输数据的服务器、客户端、网络系统及方法
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种用于传输数据的服务器、客户端、网络系统及方法。
背景技术
随着网络通信技术的迅速发展、互联网应用的持续深化、所承载信息的日益丰富,互联网已成为人类社会重要的基础设施。其中,网络上的数据传输安全也引起了广泛关注。
现有的通信技术,例如基于HTTPS协议的通信技术,存在中间人攻击的可能。因此,迫切需要一种更先进的、防止数据篡改的数据传输方案。
发明内容
为此,本发明提供一种用于传输数据的方案,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种用于传输数据的方法,适于在网络系统中的服务器上执行,网络系统还包括客户端,服务器允许用户以系统账户进行业务处理,客户端预先存储有由服务器生成的对应于系统账户的令牌和令牌摘要,该方法包括步骤:接收来自客户端的业务请求,业务请求包括令牌、业务数据、以及基于令牌摘要和业务数据生成的加密校验数据;对业务请求中的令牌进行验证;如果业务请求中的令牌验证通过,则获取服务器所存储的对应于该令牌的令牌摘要;基于业务数据和获取到的令牌摘要生成参考校验数据;对加密校验数据解密得到原始校验数据;比较原始校验数据与参考校验数据是否一致;以及如果原始校验数据与参考校验数据一致,则允许以系统账户来处理业务请求。
可选地,在根据本发明的方法中,客户端还预先存储有服务器为客户端创建的会话对应的会话标识,业务请求包括会话标识,获取服务器所存储的对应于令牌的令牌摘要的步骤包括:查找与业务请求中的会话标识对应的会话;获取查找到的会话中包含的令牌摘要。
可选地,在根据本发明的方法中,业务数据包括至少一个业务参数,基于业务数据和获取到的令牌摘要生成参考校验数据的步骤包括:基于业务数据生成特定数据结构,特定数据结构包括有序排列的至少一个键值对,每个键值对对应于一个业务参数;对特定数据结构进行序列化,得到参数字符串;将获取到的令牌摘要和参数字符串进行拼接,得到拼接字符串;使用特定摘要算法,根据拼接字符串计算得到参考校验数据。
可选地,在根据本发明的方法中,特定数据结构为LinkedHashMap。
可选地,在根据本发明的方法中,将获取到的令牌摘要和参数字符串进行拼接的步骤包括:将获取到的令牌摘要拼接至参数字符串的末尾。
可选地,在根据本发明的方法中,业务请求的请求头部中X-SECRET-SIGN字段的内容为加密校验数据。
可选地,在根据本发明的方法中,方法还包括步骤:如果业务请求中的令牌验证不通过、或原始校验数据与所述参考校验数据不一致,则拦截业务请求。
可选地,在根据本发明的方法中,方法还包括步骤:接收来自客户端的登录请求;对登录请求所包含的系统账户进行验证;若系统账户验证通过,则生成对应于系统账户的令牌和令牌摘要,并至少存储令牌摘要;响应于登录请求,将令牌和令牌摘要返回至客户端,以便客户端存储并生成业务请求。
可选地,在根据本发明的方法中,至少存储令牌摘要的步骤包括:至少将令牌摘要存储至服务器为客户端创建的会话中。
可选地,在根据本发明的方法中,服务器与客户端根据HTTPS协议或HTTP协议进行通信。
根据本发明的另一个方面,提供了一种用于传输数据的方法,适于在网络系统中的客户端上执行,网络系统还包括服务器,服务器允许用户以系统账户进行业务处理,该方法包括步骤:生成登录请求并发送至服务器,以便服务器对登录请求所包含的系统账户进行验证,并在系统账户验证通过后生成对应于系统账户的令牌和令牌摘要;接收并存储服务器响应于登录请求而返回的令牌和令牌摘要;基于令牌摘要和业务数据生成原始校验数据;对原始校验数据加密得到加密校验数据;以及基于令牌、业务数据和加密校验数据生成业务请求,并将业务请求发送至服务器,以便服务器基于业务请求所包含的令牌和加密校验数据来判断是否允许以系统账户来处理业务请求。
可选地,在根据本发明的方法中,业务请求还包括对应于服务器为客户端创建的会话的会话标识,以便服务器基于令牌、会话标识和加密校验数据来判断是否允许以系统账户来处理业务请求。
可选地,在根据本发明的方法中,业务请求还包括对应于服务器为客户端创建的会话的会话标识,以便服务器基于令牌、会话标识和加密校验数据来判断是否允许以系统账户来处理业务请求。
可选地,在根据本发明的方法中,业务数据包括至少一个业务参数,基于令牌摘要和业务数据生成原始校验数据的步骤包括:基于业务数据生成特定数据结构,特定数据结构包括有序排列的至少一个键值对,每个键值对对应于一个业务参数;对特定数据结构进行序列化,得到参数字符串;将令牌摘要和参数字符串进行拼接,得到拼接字符串;使用特定摘要算法,根据拼接字符串计算得到原始校验数据。
可选地,在根据本发明的方法中,特定数据结构为LinkedHashMap。
可选地,在根据本发明的方法中,将令牌摘要和参数字符串进行拼接的步骤包括:将令牌摘要拼接至参数字符串的末尾。
可选地,在根据本发明的方法中,业务请求的请求头部中X-SECRET-SIGN字段的内容为加密校验数据。
可选地,在根据本发明的方法中,客户端与服务器根据HTTPS协议或HTTP协议进行通信。
根据本发明的另一个方面,提供了一种服务器,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的用于传输数据的方法的指令。
根据本发明的另一个方面,提供了一种存储程序的可读存储介质,程序包括指令,指令当由服务器执行时,使得服务器执行根据本发明的用于传输数据的方法。
根据本发明的另一个方面,提供了一种客户端,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的用于传输数据的方法的指令。
根据本发明的另一个方面,提供了一种存储程序的可读存储介质,程序包括指令,指令当由客户端执行时,使得客户端执行根据本发明的用于传输数据的方法。
根据本发明的还有一个方面,提供了一种网络系统,包括根据本发明的服务器和根据本发明的客户端。
根据本发明的数据传输方案,在HTTPS协议或HTTP协议的基础上,利用令牌机制进行身份认证或授权。同时,利用令牌摘要和业务数据生成校验数据,进一步防止数据篡改,保证传输过程中数据的完整性。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示例性地示出根据本发明一个实施方式的网络系统100的结构框图;
图2示例性地示出计算设备200的结构框图;
图3示例性地示出根据本发明的一个实施方式的用于传输数据的方法300的流程图;以及
图4示例性地示出根据本发明一个实施方式的用于传输数据的方法400的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示例性示出根据本发明一个实施方式的网络系统100的结构框图。如图1所示,该网络系统100包括至少一个客户端120和服务器140(图1所示客户端120和服务器140的数目仅为示例),客户端120和服务器140可以根据HTTPS协议或者HTTP协议经由互联网进行通信,但不受限于此。
可以理解地,用户预先注册有该网络系统100的系统账户,客户端120和服务器140允许用户以其系统账户进行诸如登录和业务处理之类的操作。
图2示例性示出计算设备200的结构框图。在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器((μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个程序222以及数据224。数据224可以包括可用于执行指令的程序数据228。在一些实施方式中,程序222可以被配置为在操作系统220上由一个或者多个处理器204利用程序数据228执行指令。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
根据本发明的客户端120可以实现为在诸如桌面型计算机和膝上型计算机等等之类的计算设备(如图2所示)中执行处理的程序(如图2所示的计算设备200中的程序222的一种),也可以实现为在移动终端(未示出)中执行处理的客户端程序,或者也可以实现为在上述计算设备或移动终端上通过浏览器来访问的网页程序等。
根据本发明的服务器140则可以实现为诸如文件服务器、数据库服务器、应用程序服务器和网络服务器等等之类的计算设备(如图2所示)、或者该计算设备中执行处理的程序(如图2所示的计算设备200中的程序222的一种)。
下面结合图3对用户在网络系统100中的登录过程进行描述。
图3示出了根据本发明的一个实施方式的用于传输数据的方法300的流程图。用于传输数据的方法300适于在网络系统100中执行,其中,客户端120和服务器140被配置为执行根据本发明的用于传输数据的方法300时,通过相互之间的数据通信来共同完成用于传输数据的方法300的处理。此时分别实现为客户端120和服务器140的一个或多个程序包括用于执行根据本发明的用于传输数据的方法300的指令。
如图3所示,用于传输数据的方法300始于步骤S310。在步骤S310中,客户端120生成登录请求并发送至服务器140。该登录请求请求以用户的系统账户进行登录,并通常可以包括用户的系统账户和诸如传统密码和生物特征密码之类的账户密码。
服务器140接收来自客户端120的登录请求,并在步骤S320中,对登录请求所包含的系统账户进行验证。通常地,可以查找服务器140上是否存储有该系统账户、以及登录请求所包含的账户密码是否与服务器140上对应该系统账户的账户密码一致。若服务器140上存储有该系统账户且登录请求所包含的账户密码与服务器140上对应该系统账户的账户密码一致,则系统账户验证通过,否则系统账户验证不通过。
若系统账户验证不通过,服务器140可以响应于登录请求,向客户端120返回验证失败消息,拒绝用户以系统账户进行登录。若系统账户验证通过,服务器140允许用户以系统账户进行登录,并在步骤S330中,生成对应于该系统账户的令牌(token)和令牌摘要。
具体地,令牌可以使用特定算法基于该系统账户的用户数据来生成,例如可以依照JWT(JSON WEB TOKEN)规范来生成。令牌摘要可以使用CRC32、MD5、SHA1和SHA256之类的摘要算法对令牌进行计算来生成。
可以理解地,令牌基于该系统账户的用户数据生成、令牌摘要基于令牌生成,因此三者之间均存在关联关系。
生成令牌和令牌摘要之后,在步骤S340中,服务器140可以至少存储该令牌摘要。具体地,可以仅存储令牌摘要,也可以同时存储令牌和令牌摘要。需要注意的是,此处的令牌、或令牌和令牌摘要的存储指的是与对应的系统账户相关联地存储。
此外,根据本发明的一个实施方式,服务器140可以至少将令牌摘要存储至服务器140为客户端120创建的会话(session)中。该会话通常是在客户端120初次访问服务器140时由服务器140为该客户端120创建,并具有可唯一标识该会话的会话标识(session id)。具体地,服务器140可以查找登录请求中是否包括会话标识,若登录请求包括会话标识,则表明服务器140已为客户端120创建过会话、客户端120已存储有该会话的会话标识,那么可以直接获取服务器140所存储的与登录请求中的会话标识对应的会话,至少将令牌摘要存储至获取到的会话中。若登录请求不包括会话标识,则服务器140可以为客户端120创建会话和会话标识,至少将令牌摘要存储至创建的会话中。
而后在步骤S350中,服务器140响应于登录请求,将令牌和令牌摘要返回至客户端120。其中,如果登录请求不包括会话标识,则服务器140响应于登录请求,可以将其创建的会话的会话标识和令牌、令牌摘要一起返回至客户端120。
客户端120接收服务器140响应于登录请求而返回的令牌和令牌摘要,并在步骤S360中,存储该令牌和令牌摘要,一般可以存储在浏览器缓存(cookie)或本地存储(localstorage)中。类似地,如果登录请求不包括会话标识、服务器140响应于登录请求返回会话标识,则客户端120除令牌和令牌摘要之外还接收并存储该会话标识。
此外,在上述过程中,服务器140和客户端120还可以协商后续用于加密和解密的密钥。
至此,用户以其系统账户登录成功,服务器140存储有对应于系统账户的令牌摘要和用于解密的密钥,其中,令牌可以存储在服务器140为客户端120创建的会话中。可选地,服务器140还可以存储令牌摘要。
相应地,客户端120存储有对应于系统账户的令牌和令牌摘要、以及用于加密的密钥。可选地,客户端120还可以存储有服务器为客户端120创建的会话的会话标识。
此后,用户可以在网络系统100中以其系统账户进行业务处理。
下面结合图4对用户在网络系统100中的业务处理过程进行描述。
图4示出了根据本发明的一个实施例的用于传输数据的方法400的流程图。用于传输数据的方法400适于在网络系统100中执行,其中,客户端120和服务器140被配置为执行根据本发明的用于传输数据的方法400时,通过相互之间的数据通信来共同完成用于传输数据的方法400的处理。此时分别实现为客户端120和服务器140的一个或多个程序包括用于执行根据本发明的用于传输数据的方法400的指令。
如图4所示,用于传输数据的方法400始于步骤S410。在步骤S410中,客户端120基于其预先存储的令牌摘要和业务数据生成原始校验数据。其中,业务数据可以由用户通过浏览器上显示的图形用户界面来输入,业务数据可以包括至少一个业务参数。
根据本发明的一个实施方式,可以先基于业务数据生成特定数据结构,特定数据结构包括有序排列的至少一个键值对,每个键值对对应于一个业务参数。具体地,将业务参数按照其参数名的自然正序进行排序,而后按顺序循环生成以参数名为键(key)、以参数值为值(value)的键值对放入特定数据结构中。该特定数据结构通常为LinkedHashMap。
例如,如果用户要投资某项产品,则其输入的要传递给服务器140的业务数据包括以下业务参数:产品ID(productId=1001,productId为参数名、1001为参数值)、投资金额(amount=2500.00,amount为参数名、2500.00为参数值)和支付银行卡号(bankcard=6337665722347651,bankcard为参数名、6337665722347651为参数值)。经过排序生成的LinkedHashMap数据结构为{"amount":"2500.00","bankcard":"6337665722347651","productId":"1001"}。
得到特定数据结构之后,可以对该特定数据结构进行序列化,得到参数字符串。再将令牌摘要和该参数字符串进行拼接,得到拼接字符串。通常地,可以将令牌摘要拼接至参数字符串的末尾或开头。
最后,可以使用例如MD5摘要算法之类的特定摘要算法,根据拼接字符串计算得到原始校验数据。
例如,假设令牌摘要为12312ljsdljfaoj121321,LinkedHashMap数据结构为{"amount":"2500.00","bankcard":"6337665722347651","productId":"1001"},在对该数据结构进行序列化后得到的参数字符串末尾拼接该令牌摘要,而后对得到的拼接字符串使用MD5摘要算法进行计算,得到的原始校验数据为a149786fc163094a7a9a827c1132c2fe。
得到原始校验数据之后,在步骤S420中,客户端120对原始校验数据加密得到加密校验数据。具体地,客户端120可以利用预先存储的用于加密的密钥对原始校验数据进行加密。
接着在步骤S430中,客户端120可以根据预先存储的令牌、业务数据和加密校验数据生成业务请求,并将该业务请求发送至服务器140。生成的业务请求可以包括令牌、业务数据和加密校验数据,例如其请求主体为业务数据,其请求头部可以包括令牌和会话标识,请求头部中的X-SECRET-SIGN字段可以包括加密校验数据。可选地,业务请求还可以包括会话标识,会话标识同样位于请求头部。
服务器140接收来自客户端120的业务请求,在步骤S440中,对业务请求中的令牌进行验证。令牌的验证方法包括但不限于,查找服务器140是否存储与业务请求中的令牌匹配的令牌,或者按照生成令牌的特定算法对业务请求中的令牌进行解析、得到用户数据后对用户数据进行验证,或者任何可以实现对令牌的验证的现有技术。
如果业务请求中的令牌验证不通过,则服务器140拦截该业务请求,拒绝处理该业务请求,并向客户端120返回业务拦截消息。
如果业务请求中的令牌验证通过,则服务器140在步骤S450中,获取服务器140所存储的对应于业务请求中令牌的令牌摘要。
一般地,在业务请求中的令牌验证过程中即可以获取到该令牌对应的系统账户,因此可以根据该系统账户获取服务器140所存储的对应的令牌摘要。
根据本发明的另一个实施方式,业务请求可以包括会话标识,那么可以查找服务器140所存储的与业务请求中的会话标识对应的会话,直接获取查找到的会话中包含的令牌摘要。
如果在服务器140中获取不到对应于业务请求中令牌的令牌摘要,则服务器140拦截该业务请求,向客户端120返回业务拦截消息。
获取到服务器140存储的对应的令牌摘要之后,在步骤S460中,服务器140基于业务请求中的业务数据和获取到的令牌摘要生成参考校验数据。参考校验数据的过程与前述客户端120生成原始校验数据的过程相同,此处不再赘述。
接着,在步骤S470中,服务器140对加密校验数据解密得到原始校验数据,在步骤S480中比较原始校验数据与参考校验数据是否一致。具体地,服务器140提取业务请求的请求头部中X-SECRET-SIGN字段的内容,也就是加密校验数据,并利用预先存储的用于解密的密钥对该加密校验数据进行解密。
如果原始校验数据与参考校验数据一致,则在步骤S490中,服务器140允许以令牌或令牌摘要对应的系统账户来处理该业务请求。最后响应于业务请求,将处理结果返回至客户端120。
如果原始校验数据与参考校验数据不一致,则服务器140拦截该业务请求,拒绝处理该业务请求,并向客户端120返回业务拦截消息。
综上,根据本发明的数据传输方案在HTTPS协议或HTTP协议的基础上,利用令牌机制进行身份认证或授权。同时,利用令牌摘要对业务数据进行校验,进一步防止数据篡改,保证传输过程中数据的完整性,有效防止了中间人攻击,避免了因数据篡改导致的财产损失。
应当理解,这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被该机器执行时,该机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的该程序代码中的指令,执行本发明的各种方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明还可以包括:A4、如A3所述的方法,其中,所述特定数据结构为LinkedHashMap。A5、如A3或4所述的方法,其中,所述将获取到的令牌摘要和参数字符串进行拼接的步骤包括:将获取到的令牌摘要拼接至所述参数字符串的末尾。A6、如A1-5中任一项所述的方法,其中,所述业务请求的请求头部中X-SECRET-SIGN字段的内容为所述加密校验数据。A7、如A1所述的方法,其中,所述方法还包括步骤:如果所述业务请求中的令牌验证不通过、或所述原始校验数据与所述参考校验数据不一致,则拦截所述业务请求。A8、如A1-7中任一项所述的方法,其中,所述方法还包括步骤:接收来自所述客户端的登录请求;对所述登录请求所包含的所述系统账户进行验证;若所述系统账户验证通过,则生成对应于所述系统账户的所述令牌和所述令牌摘要,并至少存储所述令牌摘要;响应于所述登录请求,将所述令牌和所述令牌摘要返回至所述客户端,以便所述客户端存储并生成所述业务请求。A9、如A8所述的方法,其中,所述至少存储令牌摘要的步骤包括:至少将所述令牌摘要存储至所述服务器为所述客户端创建的会话中。A10、如A1-9中任一项所述的方法,其中,所述服务器与所述客户端根据HTTPS协议或HTTP协议进行通信。
B13、如B11或12所述的方法,其中,所述业务数据包括至少一个业务参数,所述基于令牌摘要和业务数据生成原始校验数据的步骤包括:基于所述业务数据生成特定数据结构,所述特定数据结构包括有序排列的至少一个键值对,每个键值对对应于一个业务参数;对所述特定数据结构进行序列化,得到参数字符串;将所述令牌摘要和所述参数字符串进行拼接,得到拼接字符串;使用特定摘要算法,根据所述拼接字符串计算得到所述原始校验数据。B14、如B13所述的方法,其中,所述特定数据结构为LinkedHashMap。B15、如B13或14所述的方法,其中,所述将令牌摘要和参数字符串进行拼接的步骤包括:将所述令牌摘要拼接至所述参数字符串的末尾。B16、如B11-15中任一项所述的方法,其中,所述业务请求的请求头部中X-SECRET-SIGN字段的内容为所述加密校验数据。B17、如B11-16中任一项所述的方法,其中,所述客户端与所述服务器根据HTTPS协议或HTTP协议进行通信。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.一种用于传输数据的方法,适于在网络系统中的服务器上执行,所述网络系统还包括客户端,所述服务器允许用户以系统账户进行业务处理,所述客户端预先存储有由所述服务器生成的对应于所述系统账户的令牌和令牌摘要,所述方法包括步骤:
接收来自所述客户端的业务请求,所述业务请求包括所述令牌、业务数据、以及基于所述令牌摘要和所述业务数据生成的加密校验数据;
对所述业务请求中的令牌进行验证;
如果所述业务请求中的令牌验证通过,则获取所述服务器所存储的对应于所述令牌的令牌摘要;
基于所述业务数据和获取到的令牌摘要生成参考校验数据;
对所述加密校验数据解密得到原始校验数据;
比较所述原始校验数据与所述参考校验数据是否一致;以及
如果所述原始校验数据与所述参考校验数据一致,则允许以所述系统账户来处理所述业务请求。
2.如权利要求1所述的方法,其中,所述客户端还预先存储有所述服务器为所述客户端创建的会话对应的会话标识,所述业务请求包括所述会话标识,所述获取服务器所存储的对应于令牌的令牌摘要的步骤包括:
查找与所述业务请求中的所述会话标识对应的会话;
获取查找到的所述会话中包含的令牌摘要。
3.如权利要求1或2所述的方法,其中,所述业务数据包括至少一个业务参数,所述基于业务数据和获取到的令牌摘要生成参考校验数据的步骤包括:
基于所述业务数据生成特定数据结构,所述特定数据结构包括有序排列的至少一个键值对,每个键值对对应于一个业务参数;
对所述特定数据结构进行序列化,得到参数字符串;
将获取到的令牌摘要和所述参数字符串进行拼接,得到拼接字符串;
使用特定摘要算法,根据所述拼接字符串计算得到所述参考校验数据。
4.一种用于传输数据的方法,适于在网络系统中的客户端上执行,所述网络系统还包括服务器,所述服务器允许用户以系统账户进行业务处理,所述方法包括步骤:
生成登录请求并发送至所述服务器,以便所述服务器对所述登录请求所包含的所述系统账户进行验证,并在所述系统账户验证通过后生成对应于所述系统账户的令牌和令牌摘要;
接收并存储所述服务器响应于所述登录请求而返回的所述令牌和所述令牌摘要;
基于所述令牌摘要和业务数据生成原始校验数据;
对所述原始校验数据加密得到加密校验数据;以及
基于所述令牌、所述业务数据和所述加密校验数据生成业务请求,并将所述业务请求发送至所述服务器,以便所述服务器基于所述业务请求所包含的所述令牌和所述加密校验数据来判断是否允许以所述系统账户来处理所述业务请求。
5.如权利要求4所述的方法,其中,所述业务请求还包括对应于所述服务器为所述客户端创建的会话的会话标识,以便所述服务器基于所述令牌、所述会话标识和所述加密校验数据来判断是否允许以所述系统账户来处理所述业务请求。
6.一种服务器,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行如权利要求1-3中任一项所述的用于传输数据的方法的指令。
7.一种存储程序的可读存储介质,所述程序包括指令,所述指令当由服务器执行时,使得所述服务器执行如权利要求1-3中任一项所述的用于传输数据的方法。
8.一种客户端,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行如权利要求4或5所述的用于传输数据的方法的指令。
9.一种存储程序的可读存储介质,所述程序包括指令,所述指令当由客户端执行时,使得所述客户端执行如权利要求4或5所述的用于传输数据的方法。
10.一种网络系统,包括如权利要求6所述的服务器和如权利要求8所述的客户端。
CN201810553287.9A 2018-05-31 2018-05-31 用于传输数据的服务器、客户端、网络系统及方法 Expired - Fee Related CN108900471B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810553287.9A CN108900471B (zh) 2018-05-31 2018-05-31 用于传输数据的服务器、客户端、网络系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810553287.9A CN108900471B (zh) 2018-05-31 2018-05-31 用于传输数据的服务器、客户端、网络系统及方法

Publications (2)

Publication Number Publication Date
CN108900471A true CN108900471A (zh) 2018-11-27
CN108900471B CN108900471B (zh) 2022-02-25

Family

ID=64343925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810553287.9A Expired - Fee Related CN108900471B (zh) 2018-05-31 2018-05-31 用于传输数据的服务器、客户端、网络系统及方法

Country Status (1)

Country Link
CN (1) CN108900471B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787963A (zh) * 2018-12-28 2019-05-21 广州亚信技术有限公司 业务办理方法、装置、计算机设备和存储介质
CN109831446A (zh) * 2019-03-05 2019-05-31 广州虎牙信息科技有限公司 一种请求校验方法、装置、设备和存储介质
CN110708281A (zh) * 2019-08-26 2020-01-17 上海商米科技集团股份有限公司 业务请求处理方法及装置
CN110795709A (zh) * 2019-10-31 2020-02-14 北京达佳互联信息技术有限公司 一种进行业务操作的方法、装置和电子设备及存储介质
CN111161085A (zh) * 2019-11-28 2020-05-15 泰康保险集团股份有限公司 业务请求处理方法、装置、电子设备及计算机可读介质
CN111212042A (zh) * 2019-12-24 2020-05-29 腾讯科技(深圳)有限公司 数据传输方法、装置和系统
CN111565178A (zh) * 2020-04-26 2020-08-21 天津中新智冠信息技术有限公司 业务信息下发方法、装置、服务器、客户端及存储介质
CN111898036A (zh) * 2020-06-24 2020-11-06 方欣科技有限公司 一种行为数据收集处理系统及方法
CN112035822A (zh) * 2020-08-25 2020-12-04 北京锐安科技有限公司 多应用单点登录方法、装置、设备及存储介质
CN112149068A (zh) * 2019-06-27 2020-12-29 北京数安鑫云信息技术有限公司 基于访问的授权校验方法、信息的生成方法及装置、服务器
CN112261008A (zh) * 2020-09-27 2021-01-22 苏州浪潮智能科技有限公司 一种基于临时令牌的鉴权方法、客户端、和服务器
CN114172664A (zh) * 2021-12-07 2022-03-11 北京天融信网络安全技术有限公司 数据加密、数据解密方法、装置、电子设备及存储介质
CN114513350A (zh) * 2022-02-08 2022-05-17 中国农业银行股份有限公司 身份校验方法、系统和存储介质
CN115174229A (zh) * 2022-07-08 2022-10-11 医利捷(上海)信息科技有限公司 一种业务认证方法、系统和电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1909551A (zh) * 2005-08-03 2007-02-07 北京航空航天大学 基于Web服务的数据交换方法
CN1922845A (zh) * 2004-02-23 2007-02-28 弗里塞恩公司 令牌验证系统和方法
CN101534196A (zh) * 2008-03-12 2009-09-16 因特伟特公司 用于安全调用rest api的方法和装置
CN102075522A (zh) * 2010-12-22 2011-05-25 北京航空航天大学 一种结合数字证书和动态密码的安全认证与交易方法
CN103647652A (zh) * 2013-12-20 2014-03-19 北京奇虎科技有限公司 一种实现数据传输的方法、装置和服务器
CN103731272A (zh) * 2014-01-06 2014-04-16 飞天诚信科技股份有限公司 一种身份认证方法、系统及设备
US20150349960A1 (en) * 2014-05-30 2015-12-03 Tokenym Llc Two factor authentication using a protected pin-like passcode
US20160014152A1 (en) * 2012-01-26 2016-01-14 Mcafee, Inc. System and method for innovative management of transport layer security session tickets in a network environment
CN105960776A (zh) * 2014-02-04 2016-09-21 维萨国际服务协会 使用有限使用证书进行令牌验证
CN107689870A (zh) * 2017-08-29 2018-02-13 杭州绿湾网络科技有限公司 客户端鉴权方法和系统
CN107864159A (zh) * 2017-12-21 2018-03-30 有米科技股份有限公司 基于证书及信任链的通信方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1922845A (zh) * 2004-02-23 2007-02-28 弗里塞恩公司 令牌验证系统和方法
CN1909551A (zh) * 2005-08-03 2007-02-07 北京航空航天大学 基于Web服务的数据交换方法
CN101534196A (zh) * 2008-03-12 2009-09-16 因特伟特公司 用于安全调用rest api的方法和装置
CN102075522A (zh) * 2010-12-22 2011-05-25 北京航空航天大学 一种结合数字证书和动态密码的安全认证与交易方法
US20160014152A1 (en) * 2012-01-26 2016-01-14 Mcafee, Inc. System and method for innovative management of transport layer security session tickets in a network environment
CN103647652A (zh) * 2013-12-20 2014-03-19 北京奇虎科技有限公司 一种实现数据传输的方法、装置和服务器
CN103731272A (zh) * 2014-01-06 2014-04-16 飞天诚信科技股份有限公司 一种身份认证方法、系统及设备
CN105960776A (zh) * 2014-02-04 2016-09-21 维萨国际服务协会 使用有限使用证书进行令牌验证
US20150349960A1 (en) * 2014-05-30 2015-12-03 Tokenym Llc Two factor authentication using a protected pin-like passcode
CN107689870A (zh) * 2017-08-29 2018-02-13 杭州绿湾网络科技有限公司 客户端鉴权方法和系统
CN107864159A (zh) * 2017-12-21 2018-03-30 有米科技股份有限公司 基于证书及信任链的通信方法和装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787963A (zh) * 2018-12-28 2019-05-21 广州亚信技术有限公司 业务办理方法、装置、计算机设备和存储介质
CN109831446A (zh) * 2019-03-05 2019-05-31 广州虎牙信息科技有限公司 一种请求校验方法、装置、设备和存储介质
CN112149068A (zh) * 2019-06-27 2020-12-29 北京数安鑫云信息技术有限公司 基于访问的授权校验方法、信息的生成方法及装置、服务器
CN110708281A (zh) * 2019-08-26 2020-01-17 上海商米科技集团股份有限公司 业务请求处理方法及装置
CN110795709A (zh) * 2019-10-31 2020-02-14 北京达佳互联信息技术有限公司 一种进行业务操作的方法、装置和电子设备及存储介质
CN111161085A (zh) * 2019-11-28 2020-05-15 泰康保险集团股份有限公司 业务请求处理方法、装置、电子设备及计算机可读介质
CN111161085B (zh) * 2019-11-28 2023-08-22 泰康保险集团股份有限公司 业务请求处理方法、装置、电子设备及计算机可读介质
CN111212042A (zh) * 2019-12-24 2020-05-29 腾讯科技(深圳)有限公司 数据传输方法、装置和系统
CN111212042B (zh) * 2019-12-24 2021-09-17 腾讯科技(深圳)有限公司 数据传输方法、装置和系统
CN111565178A (zh) * 2020-04-26 2020-08-21 天津中新智冠信息技术有限公司 业务信息下发方法、装置、服务器、客户端及存储介质
CN111565178B (zh) * 2020-04-26 2022-06-14 天津中新智冠信息技术有限公司 业务信息下发方法、装置、服务器、客户端及存储介质
CN111898036A (zh) * 2020-06-24 2020-11-06 方欣科技有限公司 一种行为数据收集处理系统及方法
CN111898036B (zh) * 2020-06-24 2023-10-20 方欣科技有限公司 一种行为数据收集处理系统及方法
CN112035822A (zh) * 2020-08-25 2020-12-04 北京锐安科技有限公司 多应用单点登录方法、装置、设备及存储介质
CN112035822B (zh) * 2020-08-25 2024-08-06 北京锐安科技有限公司 多应用单点登录方法、装置、设备及存储介质
CN112261008A (zh) * 2020-09-27 2021-01-22 苏州浪潮智能科技有限公司 一种基于临时令牌的鉴权方法、客户端、和服务器
CN114172664B (zh) * 2021-12-07 2024-02-09 天融信雄安网络安全技术有限公司 数据加密、数据解密方法、装置、电子设备及存储介质
CN114172664A (zh) * 2021-12-07 2022-03-11 北京天融信网络安全技术有限公司 数据加密、数据解密方法、装置、电子设备及存储介质
CN114513350A (zh) * 2022-02-08 2022-05-17 中国农业银行股份有限公司 身份校验方法、系统和存储介质
CN115174229A (zh) * 2022-07-08 2022-10-11 医利捷(上海)信息科技有限公司 一种业务认证方法、系统和电子设备
CN115174229B (zh) * 2022-07-08 2024-02-27 医利捷(上海)信息科技有限公司 一种业务认证方法、系统和电子设备

Also Published As

Publication number Publication date
CN108900471B (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
CN108900471A (zh) 用于传输数据的服务器、客户端、网络系统及方法
JP6787952B2 (ja) 要求によって供給される鍵を用いたデータセキュリティ
CN104639534B (zh) 网站安全信息的加载方法和浏览器装置
US10454913B2 (en) Device authentication agent
US20210234857A1 (en) Authentication system, authentication method, and application providing method
CN111277573B (zh) 具有密钥的资源定位符
US10331865B2 (en) Increased security using dynamic watermarking
CN110188550B (zh) 一种区块链的数据验证方法和装置
US10270757B2 (en) Managing exchanges of sensitive data
CN104580190B (zh) 安全浏览器的实现方法和安全浏览器装置
CN107251476A (zh) 保密通信管理
US9596263B1 (en) Obfuscation and de-obfuscation of identifiers
WO2022242003A1 (zh) 基于多方授权的登录方法、认证方法、系统及计算设备
US12028458B2 (en) Systems and methods for user identity
CN110910978A (zh) 一种应用于区块链网络的信息处理方法及相关装置
CN109088902A (zh) 注册方法及装置、认证方法及装置
CN107592315B (zh) 用于加密传输数据的客户端、服务器、网络系统及方法
CN108173648A (zh) 基于私钥托管的数字安全处理方法、设备及存储介质
JP2021507615A (ja) パスワード認証のための準同型暗号
CN109815659A (zh) 基于web项目的安全认证方法、装置、电子设备及存储介质
CN109981262A (zh) 一种客户端防暴力破解方法及装置
CN112600667A (zh) 一种密钥协商方法、装置、设备及存储介质
CN113079002B (zh) 数据加密方法、解密方法、密钥管理方法、介质和设备
CN110224989A (zh) 信息交互方法、装置、计算机设备及可读存储介质
CN106557682B (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220225