CN111835523A - 一种数据请求方法、系统及计算设备 - Google Patents

一种数据请求方法、系统及计算设备 Download PDF

Info

Publication number
CN111835523A
CN111835523A CN202010449172.2A CN202010449172A CN111835523A CN 111835523 A CN111835523 A CN 111835523A CN 202010449172 A CN202010449172 A CN 202010449172A CN 111835523 A CN111835523 A CN 111835523A
Authority
CN
China
Prior art keywords
user
client
signature value
user signature
signature
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
CN202010449172.2A
Other languages
English (en)
Other versions
CN111835523B (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 Cheerbright Technologies Co Ltd
Original Assignee
Beijing Cheerbright Technologies 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 Cheerbright Technologies Co Ltd filed Critical Beijing Cheerbright Technologies Co Ltd
Priority to CN202010449172.2A priority Critical patent/CN111835523B/zh
Publication of CN111835523A publication Critical patent/CN111835523A/zh
Application granted granted Critical
Publication of CN111835523B publication Critical patent/CN111835523B/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/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种数据请求方法,在计算设备中执行,包括:接收客户端基于设备信息对签名算法的获取请求;基于所述设备信息生成相应的签名算法,将签名算法返回至客户端,以便客户端根据所述签名算法和设备信息确定用户签名值;基于所述签名算法和设备信息确定用户签名值,并将用户签名值存储在用户签名值列表中;接收客户端基于所述用户签名值发送的数据请求;以及基于所述用户签名值列表判断所述客户端的用户签名值是否正确,如果正确,则基于所述数据请求向客户端返回数据。本发明一并公开了相应的数据请求系统和计算设备。根据本发明的技术方案,能有效避免因签名算法泄露而导致的恶意数据请求、数据的泄露问题,确保接口的数据安全。

Description

一种数据请求方法、系统及计算设备
技术领域
本发明涉及网络通信技术领域,尤其涉及一种数据请求方法、数据请求系统及计算设备。
背景技术
目前,客户端与服务端最常见的交互便是基于接口的数据请求,服务端通过接口向客户端返回一系列数据展示给用户。在APP开放API接口的设计中,由于大多数接口涉及到用户的个人信息以及产品的敏感数据,所以要对这些接口进行身份验证,为了安全起见让用户暴露的明文密码次数越少越好,然而客户端与服务器的交互在请求之间是无状态的,也就是说,当涉及到用户状态时,每次请求都要带上身份验证信息。
当接口遇到机刷恶意攻击、shell脚本攻击时,服务端只是从网络层进行拦截,例如进行限流、封禁IP等操作,并没有真正的拦截掉这种攻击操作,不能有效扼杀这种攻击行为。
现有技术中,移动端与服务端通过固定的私钥约定的一种加密算法进行加密,通过判断两端算法结果是否一致来确定数据请求是否合法。这种方案,由于移动端与服务端采用统一的加密算法,并基于相同算法因子进行算法统计,难以避免会发生算法的泄露,从而容易导致接口的恶意请求和数据的泄露。而且,更换算法需要用户强制升级才能够进行更换,用户体验不好。
还有一种方案,服务端与客户端采用非对称加密算法交换公私钥文件,客户端保存在本地DB中,采用MD5的方式对非对称加密的算法进行进一步的加密。该方案可以保证接口请求方的安全,但是一旦公私钥泄露,加密算法规则泄露,更换加密算法及公私钥文件时,必须强制用户升级新的版本来适用新的算法,针对旧版本的用户以及服务端提供的旧版本接口无法做到兼容。
为此,需要一种数据请求方法,来解决上述技术方案中存在的问题。
发明内容
为此,本发明提供一种数据请求方法、系统及计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种数据请求方法,在计算设备中执行,包括步骤:接收客户端基于设备信息对签名算法的获取请求;基于所述设备信息生成相应的签名算法,将签名算法返回至客户端,以便客户端根据所述签名算法和设备信息确定用户签名值;基于所述签名算法和设备信息确定用户签名值,并将用户签名值存储在用户签名值列表中;接收客户端基于所述用户签名值发送的数据请求;以及基于所述用户签名值列表判断所述客户端的用户签名值是否正确,如果正确,则基于所述数据请求向客户端返回数据。
可选地,在根据本发明的数据请求方法中,基于所述设备信息生成相应的签名算法的步骤包括:基于所述设备信息构建相应的用户签名字段表,所述用户签名字段表中包括多个用户字段值;从签名算法表中随机获取预定数量的运算符,从用户签名字段表中随机获取相应数量的用户字段值,基于所获取的预定数量的运算符、和相应数量的用户字段值生成签名算法。
可选地,在根据本发明的数据请求方法中,在将用户签名值存储在用户签名值列表中之后,包括步骤:向客户端返回签名许可标识,以便客户端在接收到签名许可标识之后,基于所述用户签名值发送数据请求。
可选地,在根据本发明的数据请求方法中,所述用户签名值列表中的每一项包括一个设备信息以及相应的用户签名值;以及基于所述用户签名值列表判断客户端的用户签名值是否正确的步骤包括:基于所述用户签名值列表确定与所述客户端的设备信息相对应的用户签名值;判断所述客户端的用户签名值是否与基于用户签名值列表确定的用户签名值相同,如果相同,则确定客户端的用户签名值正确。
可选地,在根据本发明的数据请求方法中,所述设备信息包括设备标识、IP地址、请求时间。
可选地,在根据本发明的数据请求方法中,还包括步骤:如果确定所述客户端的用户签名值不正确,则向客户端返回签名错误标识,以便客户端基于设备信息重新请求获取签名算法。
可选地,在根据本发明的数据请求方法中,从签名算法表中随机获取预定数量的运算符的步骤包括:每次从签名算法表中随机获取一个运算符,共获取n次,其中,n为预定数量;从用户签名字段表中随机获取相应数量的用户字段值的步骤包括:每次从用户签名字段表中随机获取一个用户字段值,共获取n+1次。
可选地,在根据本发明的数据请求方法中,3<n<9。
根据本发明的一个方面,提供一种数据请求系统,包括:服务器,适于执行如上所述的方法来对数据请求进行验证;以及一个或多个客户端,与所述服务器通信连接,适于基于设备信息向服务器请求获取签名算法,并适于根据获取的签名算法和所述设备信息确定用户签名值,以便基于所述用户签名值向服务器发送数据请求。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的数据请求方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的数据请求方法。
根据本发明的技术方案,根据本发明的技术方案,客户端需要基于用户签名向服务器请求数据。客户端、服务器分别通过同一签名算法、和客户端的设备信息各自生成用户签名值。通过判断客户端生成的用户签名值是否与服务器生成的用户签名值相同,实现对客户端的数据请求进行验证。其中,签名算法是由服务器根据客户端的设备信息动态、随机生成的,从而,每个客户端用于生成签名的签名算法都是不同的,客户端每次请求获取的签名算法也是随机的、不固定的。基于签名算法的动态、随机生成的不固定性,能够防止签名算法的泄露,有效避免因签名算法泄露而导致的恶意数据请求、数据的泄露问题,确保接口的数据安全。
进一步而言,即便数据接口遭到恶意请求,只需要将相应的用户签名值设置为失效,这样,客户端便会自动重新向服务器请求签名算法、生成新的用户签名值。可见,根据本发明的技术方案,在需要更新用户签名值时,并不需要重新发版,也不需要用户进行任何操作,用户是无感知的,用户体验更好。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的数据请求系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;以及
图3示出了根据本发明一个实施例的数据请求方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的数据请求系统100的示意图。
如图1所示,数据请求系统100包括一个或多个客户端110、服务器200。其中,一个或多个客户端110与服务器200通信连接,例如通过有线或无线的方式网络连接。
客户端110即用户所使用的终端设备,其具体可以是桌面电脑、笔记本电脑等个人计算机,也可以是手机、平板电脑、多媒体设备、智能可穿戴设备等,但不限于此。
服务器200用于向客户端110提供服务,其可以实现为现有技术中的任何一种能够实现为客户端110提供数据请求服务的设备,本发明对服务器的具体种类不作限制。例如,服务器200可以实现为桌面电脑、笔记本电脑、处理器芯片、手机、平板电脑等服务器,但不限于此,也可以是驻留在服务器上的应用程序。
在一个实施例中,客户端110例如是手机、平板电脑等移动终端,客户端110中安装有一个或多个移动应用,其中包括适于与服务器200通信的应用。应用可以利用移动终端提供的移动通信功能而耦接到服务器200,以便与服务器200进行通信,请求从服务器200获取数据。这里,本发明对应用的具体用途不做限制。
在根据本发明的实施例中,客户端110适于基于用户签名向服务器200请求数据。
在一个实施例中,客户端110可以基于设备信息向服务器200请求获取签名算法。设备信息即是客户端110所驻留的移动终端的设备信息,设备信息例如包括移动终端的设备标识、IP地址、本次的请求时间等与移动终端相关联的信息,但不限于此。
服务器200基于客户端110的设备信息随机生成相应的签名算法,并将签名算法返回至客户端110。这样,客户端110便可以根据获取到的签名算法和客户端110的设备信息确定用户签名值。
在一个实施例中,数据请求系统100还包括数据存储装置140,数据存储装置140与服务器200耦接。数据存储装置140可以是驻留于服务器200中的本地数据库,也可以作为分布式数据库例如HBase等设置于多个地理位置处,总之,数据存储装置140用于存储数据,本发明对数据存储装置140的具体部署、配置情况不做限制。服务器200可以与数据存储装置140连接,并获取数据存储装置140中所存储的数据。例如,服务器200可以直接读取数据存储装置140中的数据(在数据存储装置140为服务器200的本地数据库时),也可以通过有线或无线的方式接入互联网,并通过数据接口来获取数据存储装置140中的数据。
在一个实施例中,服务器200在生成与客户端110相对应的签名算法之后,将签名算法存储在与服务器200耦接的数据存储装置140中。
这样,服务器200可以从数据存储装置140中获取签名算法,基于签名算法和客户端110设备信息来确定客户端110的用户签名值。并且,服务器200还将其确定的用户签名值存储在用户签名值列表中。这里,用户签名值列表存储在数据存储装置140中,用户签名值列表中的每一项包括一个客户端110的设备信息以及相应的用户签名值。
在一个实施例中,服务器200在将其计算确定的用户签名值存储在用户签名值列表中之后,会向客户端110返回签名许可标识。客户端110在接收到签名许可标识之后,会基于客户端110确定的用户签名值向服务器200发送数据请求。
服务器200根据用户签名值列表中的相应的用户签名值来判断客户端110发送的数据请求中的用户签名值是否正确,如果正确,则基于客户端110的数据请求向客户端110返回相应的数据。
具体地,服务器200先根据用户签名值列表确定与客户端110的设备信息相对应的用户签名值。进而,服务器200判断客户端110发送的用户签名值是否与其确定的用户签名值相同,如果相同,则确定客户端110发送的用户签名值正确。反之,如果不相同,则判定客户端110发送的用户签名值不正确,说明该用户签名值已被设置为失效或者不存在。应当指出,在数据接口遭到基于签名值的恶意数据请求时,服务器200会将相应签名值设置为失效。
另外,服务器200在确定客户端110发送的用户签名值不正确时,会向客户端110返回签名错误标识。这样,客户端110在收到签名错误标识后,会基于设备信息重新向服务器200请求获取签名算法,以便再次基于签名算法和客户端110的设备标识生成一个新的用户签名值,根据新的用户签名值再次向服务器200发送数据请求。
在一个实施例中,服务器200可以基于客户端110的设备信息构建相应的用户签名字段表。用户签名字段表中包括多个用户字段值,例如,包括客户端110的设备标识(user_imei)、IP地址(user_ip)、请求时间(user_requestDate)等字段。通过从签名算法表中随机获取预定数量的运算符,从用户签名字段表中随机获取相应数量的用户字段值,服务器200可以基于所获取的预定数量的运算符、和相应数量的用户字段值来生成签名算法。
这里,相应数量取决于所获取的运算符的数量(预定数量)。例如,预定数量为n,即是从签名算法表中随机获取n个运算符。那么,相应数量为n+1,即是从用户签名字段表中随机获取n+1个用户字段值。
在一个实施例中,服务器200可以每次从签名算法表中随机获取一个运算符,共获取n次,这样便可以随机获取到n个运算符,且获取到的运算符可以是重复的。相应地,每次从用户签名字段表中随机获取一个用户字段值,共获取n+1次,获取到的运算符也可以是重复的。
在一个实施例中,服务器200适于执行本发明的数据请求方法,本发明的数据请求方法将在下文中详述。
在一个实施例中,本发明的服务器200可以实现为一种计算设备,使得本发明的数据请求方法可以在计算设备中执行。图2示出了根据本发明一个实施例的计算设备200的结构图。如图2所示,在基本的配置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、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。
计算设备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)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,应用222包括执行数据请求方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的数据请求方法300,以便计算设备200通过执行本发明的数据请求方法300来实现控制客户端110的数据请求、对客户端110的数据请求进行验证。
图3示出了根据本发明一个实施例的数据请求方法300的流程图。方法300适于在计算设备(例如前述计算设备200)中执行。计算设备与一个或多个客户端110通信连接。
需要说明的是,根据发明的数据请求方法300,客户端110需要基于用户签名向计算设备200请求数据。
如图3所示,方法300始于步骤S310。
在步骤S310中,接收客户端110基于设备信息对签名算法的获取请求。应当指出,客户端110在向计算设备200发送数据请求之前,先判断客户端110中是否包括与服务器200的数据接口对应的用户签名,如果没有,则客户端110需要先向计算设备200请求获取签名算法,以便基于签名算法来生成用户签名。
这里,客户端110先获取移动终端的设备信息,设备信息例如包括移动终端的设备标识、IP地址、本次的请求时间等与移动终端相关联的信息,但不限于此。进而,基于设备信息向计算设备200请求获取签名算法。
随后,在步骤S320中,计算设备200基于客户端110的设备信息随机生成相应的签名算法,并将签名算法返回至客户端110。这样,客户端110便可以根据获取到的签名算法和客户端110的设备信息来确定用户签名值。
根据一个实施例,计算设备200可以按照以下方法生成签名算法:
首先,基于客户端110在请求获取签名算法时上传的设备信息构建相应的用户签名字段表。用户签名字段表中包括多个用户字段值,例如,包括客户端110的设备标识(user_imei)、IP地址(user_ip)、请求时间(user_requestDate)等字段。
随后,从签名算法表中随机获取预定数量的运算符。需要说明的是,计算设备200中预先配置有签名算法表,签名算法表中包括多种运算符,例如包括+,-,*,/,%等,但不限于此,运算符的具体种类可以由本领域技术人员根据实际情况自行设置。应当指出,本发明对随机获取的运算符的数量和种类均不做具体限制,随机获取的一个或多个运算符可以包括相同种类的运算符。
并且,从用户签名字段表中随机获取相应数量的用户字段值,这里,相应数量取决于所获取的运算符的数量(预定数量)。例如,预定数量为n,即是从签名算法表中随机获取n个运算符。那么,相应数量为n+1,即是从用户签名字段表中随机获取n+1个用户字段值。
进而,基于所获取的预定数量的运算符、和相应数量的用户字段值生成签名算法。
根据一个实施例,可以每次从签名算法表中随机获取一个运算符,共获取n次,这样便可以随机获取到n个运算符,且获取到的运算符可以是重复的。相应地,每次从用户签名字段表中随机获取一个用户字段值,共获取n+1次,获取到的运算符也可以是重复的。这样,所获取的运算符及用户字段值更加多样,不确定性和随机性更强。
在一种实施方式中,n=random(10),且3<n<=9。例如,n=4,获取的4个运算符为(-,+,/,*),获取的5个用户字段值为:
user_imei,user_ip,uer_imei,user_requestDate,user_ip。
则,基于获取的运算符和用户字段值生成的签名算法为:
user_imei-user_ip+uer_imei/user_requestDate*user_ip。
这里,在根据签名算法计算客户端110的签名值时,可以根据客户端110的具体设备信息将每个用户字段值转换成对应的ascii码值进行运算。
根据一个实施例,计算设备200在生成与客户端110相对应的签名算法之后,还将签名算法存储在与计算设备200耦接的数据存储装置140中。
这样,在步骤S330中,计算设备200能根据(存储在数据存储装置140中的)签名算法、和在步骤S310中获取的设备信息来计算确定客户端110的用户签名值。并且,计算设备200还将其确定的用户签名值存储在用户签名值列表中。这里,用户签名值列表存储在数据存储装置140中,用户签名值列表中的每一项包括一个客户端110的设备信息以及相应的用户签名值。
根据一个实施例,计算设备200在将其计算确定的用户签名值存储在用户签名值列表中之后,向客户端110返回签名许可标识。客户端110在接收到签名许可标识之后,会基于客户端110确定的用户签名值向计算设备200发送数据请求。
随后,在步骤S340中,计算设备200接收客户端110基于用户签名值发送的数据请求。这里,客户端110发送的数据请求中的用户签名值是客户端110基于签名算法和设备信息来计算确定的。
最后,在步骤S350中,基于用户签名值列表判断客户端110发送的数据请求中的用户签名值是否正确,如果正确,则基于客户端110的数据请求向客户端110返回相应的数据。
具体地,计算设备200先基于用户签名值列表确定与客户端110的设备信息相对应的用户签名值。基于用户签名值列表确定的用户签名值即是计算设备200之前根据其生成的签名算法和客户端110的设备信息来计算确定的。进而,计算设备200判断客户端110发送的用户签名值是否与其基于用户签名值列表确定的用户签名值相同,如果相同,则确定客户端110发送的用户签名值正确,说明该客户端110的数据请求是正常的,可以向客户端110返回相应的数据。反之,如果不相同,则判定客户端110发送的用户签名值不正确,说明该用户签名值已被设置为失效或者不存在,便不会基于该签名值向客户端110返回数据。应当指出,在数据接口遭到基于签名值的恶意数据请求时,计算设备200会将相应签名值设置为失效。
根据一个实施例,如果确定客户端110发送的用户签名值不正确,计算设备200会向客户端110返回签名错误标识。这样,客户端110在收到签名错误标识后,会基于设备信息重新向计算设备200请求获取签名算法,以便再次基于签名算法和客户端110的设备标识生成一个新的用户签名值,根据新的用户签名值再次向计算设备200发送数据请求。
根据本发明的技术方案,客户端110需要基于用户签名向服务器200请求数据。客户端110、计算设备200分别通过同一签名算法、和客户端110的设备信息各自生成用户签名值。通过判断客户端110生成的用户签名值是否与计算设备200生成的用户签名值相同,实现对客户端的数据请求进行验证。其中,签名算法是由计算设备200根据客户端110的设备信息动态、随机生成的,从而,每个客户端110用于生成签名的签名算法都是不同的,客户端110每次请求获取的签名算法也是随机的、不固定的。基于签名算法的动态、随机生成的不固定性,能够防止签名算法的泄露,有效避免因签名算法泄露而导致的恶意数据请求、数据的泄露问题,确保接口的数据安全。
A8、如A7所述的数据请求方法,其中,3<n<9。
即便数据接口遭到恶意请求,只需要将相应的用户签名值设置为失效,这样,客户端110便会自动重新向计算设备请求签名算法、生成新的用户签名值。可见,根据本发明的技术方案,在需要更新用户签名值时,并不需要重新发版,也不需要用户进行任何操作,用户是无感知的,用户体验更好。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的数据请求方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.一种数据请求方法,在计算设备中执行,包括步骤:
接收客户端基于设备信息对签名算法的获取请求;
基于所述设备信息生成相应的签名算法,将签名算法返回至客户端,以便客户端根据所述签名算法和设备信息确定用户签名值;
基于所述签名算法和设备信息确定用户签名值,并将用户签名值存储在用户签名值列表中;
接收客户端基于所述用户签名值发送的数据请求;以及
基于所述用户签名值列表判断所述客户端的用户签名值是否正确,如果正确,则基于所述数据请求向客户端返回数据。
2.如权利要求1所述的数据请求方法,基于所述设备信息生成相应的签名算法的步骤包括:
基于所述设备信息构建相应的用户签名字段表,所述用户签名字段表中包括多个用户字段值;
从签名算法表中随机获取预定数量的运算符,
从用户签名字段表中随机获取相应数量的用户字段值,
基于所获取的预定数量的运算符、和相应数量的用户字段值生成签名算法。
3.如权利要求1或2所述的数据请求方法,其中,在将用户签名值存储在用户签名值列表中之后,包括步骤:
向客户端返回签名许可标识,以便客户端在接收到签名许可标识之后,基于所述用户签名值发送数据请求。
4.如权利要求1-3任一项所述的数据请求方法,其中,所述用户签名值列表中的每一项包括一个设备信息以及相应的用户签名值;以及
基于所述用户签名值列表判断客户端的用户签名值是否正确的步骤包括:
基于所述用户签名值列表确定与所述客户端的设备信息相对应的用户签名值;
判断所述客户端的用户签名值是否与基于用户签名值列表确定的用户签名值相同,如果相同,则确定客户端的用户签名值正确。
5.如权利要求1-4任一项所述的数据请求方法,其中,所述设备信息包括设备标识、IP地址、请求时间。
6.如权利要求1-5任一项所述的数据请求方法,其中,还包括步骤:
如果确定所述客户端的用户签名值不正确,则向客户端返回签名错误标识,以便客户端基于设备信息重新请求获取签名算法。
7.如权利要求2-6任一项所述的数据请求方法,其中,从签名算法表中随机获取预定数量的运算符的步骤包括:
每次从签名算法表中随机获取一个运算符,共获取n次,其中,n为预定数量;
从用户签名字段表中随机获取相应数量的用户字段值的步骤包括:
每次从用户签名字段表中随机获取一个用户字段值,共获取n+1次。
8.一种数据请求系统,包括:
服务器,适于执行如权利要求1-7任一项所述的方法来对数据请求进行验证;以及
一个或多个客户端,与所述服务器通信连接,适于基于设备信息向服务器请求获取签名算法,并适于根据获取的签名算法和所述设备信息确定用户签名值,以便基于所述用户签名值向服务器发送数据请求。
9.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述数据请求方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述数据请求方法。
CN202010449172.2A 2020-05-25 2020-05-25 一种数据请求方法、系统及计算设备 Active CN111835523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010449172.2A CN111835523B (zh) 2020-05-25 2020-05-25 一种数据请求方法、系统及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010449172.2A CN111835523B (zh) 2020-05-25 2020-05-25 一种数据请求方法、系统及计算设备

Publications (2)

Publication Number Publication Date
CN111835523A true CN111835523A (zh) 2020-10-27
CN111835523B CN111835523B (zh) 2023-05-30

Family

ID=72914096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010449172.2A Active CN111835523B (zh) 2020-05-25 2020-05-25 一种数据请求方法、系统及计算设备

Country Status (1)

Country Link
CN (1) CN111835523B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023273693A1 (zh) * 2021-06-30 2023-01-05 北京字节跳动网络技术有限公司 签名算法的动态加载方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106330838A (zh) * 2015-07-01 2017-01-11 阿里巴巴集团控股有限公司 一种动态签名方法及应用该方法的客户端和服务器
CN108965230A (zh) * 2018-05-09 2018-12-07 深圳市中信网安认证有限公司 一种安全通信方法、系统及终端设备
US20200067862A1 (en) * 2018-08-22 2020-02-27 Synchronoss Technologies, Inc. System and method for proof-of-work based on hash mining for reducing spam attacks
CN110888838A (zh) * 2019-10-16 2020-03-17 平安科技(深圳)有限公司 基于对象存储的请求处理方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106330838A (zh) * 2015-07-01 2017-01-11 阿里巴巴集团控股有限公司 一种动态签名方法及应用该方法的客户端和服务器
CN108965230A (zh) * 2018-05-09 2018-12-07 深圳市中信网安认证有限公司 一种安全通信方法、系统及终端设备
US20200067862A1 (en) * 2018-08-22 2020-02-27 Synchronoss Technologies, Inc. System and method for proof-of-work based on hash mining for reducing spam attacks
CN110888838A (zh) * 2019-10-16 2020-03-17 平安科技(深圳)有限公司 基于对象存储的请求处理方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023273693A1 (zh) * 2021-06-30 2023-01-05 北京字节跳动网络技术有限公司 签名算法的动态加载方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111835523B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
US10284372B2 (en) Method and system for secure management of computer applications
US9867043B2 (en) Secure device service enrollment
US20180288617A1 (en) Transferable ownership tokens for discrete, identifiable devices
CN112995131B (zh) 一种页面登录方法、系统及计算设备
JP6736305B2 (ja) 情報処理システム、情報処理装置、サーバ装置、情報処理システムの制御方法、及びプログラム
CN112182550A (zh) 应用程序的授权方法、授权系统、激活装置及计算设备
US9912484B2 (en) Secure neighbor discovery (SEND) using pre-shared key
CN109818959B (zh) 一种远程服务通信方法、服务器和系统
US10511574B2 (en) Methods and apparatuses for utilizing a gateway integration server to enhance application security
US20180288068A1 (en) Methods and apparatuses for improved network communication using a message integrity secure token
CN111651408B (zh) 获取数据的方法、装置、终端及存储介质
CN112311769A (zh) 安全认证的方法、系统、电子设备及介质
CN103368918A (zh) 一种动态口令认证方法、装置及系统
CN113051598B (zh) 文件访问控制方法、文件加密方法及计算设备
CN112153038B (zh) 一种安全登录的方法、装置、验证终端及可读存储介质
CN111835523B (zh) 一种数据请求方法、系统及计算设备
CN111447178B (zh) 一种访问控制方法、系统及计算设备
US20230362018A1 (en) System and Method for Secure Internet Communications
CN111147235B (zh) 对象访问方法、装置、电子设备及机器可读存储介质
US20230179404A1 (en) Hybrid cloud-based security service method and apparatus for security of confidential data
CN113536361B (zh) 一种可信基准库的实现方法、装置及计算设备
US11539711B1 (en) Content integrity processing on browser applications
CN113225348B (zh) 请求防重放校验方法和装置
WO2022193494A1 (zh) 权限控制方法及服务器、终端、存储介质和计算机程序
CN112671843A (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