CN115086428B - 网络请求发送方法、装置与电子设备 - Google Patents
网络请求发送方法、装置与电子设备 Download PDFInfo
- Publication number
- CN115086428B CN115086428B CN202110263763.5A CN202110263763A CN115086428B CN 115086428 B CN115086428 B CN 115086428B CN 202110263763 A CN202110263763 A CN 202110263763A CN 115086428 B CN115086428 B CN 115086428B
- Authority
- CN
- China
- Prior art keywords
- request
- time point
- signature information
- parameters
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012795 verification Methods 0.000 claims abstract description 12
- 230000005540 biological transmission Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000005336 cracking Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
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)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供一种网络请求发送方法、装置与电子设备。网络请求发送方法包括:响应网络请求发送指令,获取请求内容、请求时间点以及与所述请求内容对应的用户私有参数;根据所述请求时间点生成随机识别符;根据所述用户私有参数和预设种类的公有参数生成签名信息,所述预设种类的公有参数至少包括所述随机识别符、所述请求时间点、所述请求内容以及应用账号;将所述签名信息、所述公有参数、所述用户私有参数发送给云服务器,以使所述云服务器根据所述公有参数、所述用户私有参数确定对所述签名信息的验证结果。本公开实施例可以提高云存储环境下高并发业务的信息安全性。
Description
技术领域
本公开涉及网络安全技术领域,具体而言,涉及一种网络请求发送方法、装置与电子设备。
背景技术
JSON网络令牌(JSON Web Token,JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON(JavaScript Object Notation,JavaScript对象符号)的开放标准,是云存储平台常采用的认证方式。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。在JWT的运行过程中,服务器不保存session状态(session是一个会话范围,用来储存用户登陆状态信息),令牌一旦被签发,在到期之前就会始终处于有效状态,无法在使用过程中废止某个令牌或者更改令牌的权限。此外,由于令牌认证默认不加密,无法在使用令牌的过程中传输敏感信息,若要传输敏感信息,需要重新生成原始令牌后再加密一次;由于令牌本身包含了认证信息,一旦泄露,任何人都可以获得该令牌的所有权限,这导致了网络信息安全风险的发生概率较高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种网络请求发送方法、装置与电子设备,用于至少在一定程度上克服由于相关技术的限制和缺陷而导致的云存储平台数据传输过程安全性不足的问题。
根据本公开实施例的第一方面,提供一种网络请求发送方法,包括:响应网络请求发送指令,获取请求内容、请求时间点以及与所述请求内容对应的用户私有参数;根据所述请求时间点生成随机识别符;根据所述用户私有参数和预设种类的公有参数生成签名信息,所述预设种类的公有参数至少包括所述随机识别符、所述请求时间点、所述请求内容以及应用账号;将所述签名信息、所述公有参数、所述用户私有参数发送给云服务器,以使所述云服务器根据所述公有参数、所述用户私有参数确定对所述签名信息的验证结果。
在本公开的一种示例性实施例中,所述根据所述用户私有参数和预设种类的公有参数生成签名信息包括:
拼接所述公有参数和所述用户私有参数以得到第一字符串;
根据所述第一字符串和SM3算法确定所述签名信息。
在本公开的一种示例性实施例中,所述根据所述第一字符串和SM3算法确定所述签名信息包括:
对所述第一字符串进行Base64编码以得到第二字符串;
使用SM3算法对所述第二字符串进行处理以得到第三字符串;
根据所述第三字符串确定所述签名信息。
在本公开的一种示例性实施例中,所述根据所述第三字符串确定所述签名信息包括:
将所述第三字符串作为所述签名信息;或者,
使用应用密钥对所述第三字符串进行HMAC摘要处理以得到所述签名信息。
在本公开的一种示例性实施例中,所述根据所述请求时间点生成随机识别符包括:
根据所述请求时间点与预设时间点的差值确定第一时间戳;
获取所述云终端的设备识别符;
确定所述随机识别符在所述请求时间点内的第一序号;
根据所述第一时间戳、所述设备识别符、所述第一序号生成所述随机识别符。
在本公开的一种示例性实施例中,所述确定所述随机识别符在所述请求时间点内的第一序号包括:
获取所述请求时间点对应的已生成随机识别符的最大序号;
获取所述最大序号的所述已生成随机识别符对应的第二时间戳;
在所述第一时间戳大于等于所述第二时间戳时,对所述最大序号加一以得到所述第一序号;
在所述第一时间戳小于所述第二时间戳时,对所述最大序号对应的起始计数序号加预设值以得到所述第一序号,所述预设值大于1。
在本公开的一种示例性实施例中,所述请求时间点的最小单位为毫秒,所述预设值为512。
根据本公开实施例的第二方面,提供一种网络请求发送装置,包括:数据获取模块,设置为响应网络请求发送指令,获取请求内容、请求时间点以及与所述请求内容对应的用户私有参数;随机识别符生成模块,设置为根据所述请求时间点生成随机识别符;签名信息生成模块,设置为根据所述用户私有参数和预设种类的公有参数生成签名信息,所述预设种类的公有参数至少包括所述随机识别符、所述请求时间点、所述请求内容以及应用账号;数据传输模块,设置为将所述签名信息、所述公有参数、所述用户私有参数发送给云服务器,以使所述云服务器根据所述公有参数、所述用户私有参数确定对所述签名信息的验证结果。
根据本公开的第三方面,提供一种电子设备,包括:存储器;以及耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上述任意一项所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述任意一项所述的网络请求发送方法。
本公开实施例通过根据请求时间点生成随机识别符,根据随机识别符生成签名信息,将签名信息和网络请求的相关信息一起发送给云服务器,可以使云服务器根据对签名信息的验证结果处理网络请求。由于每个网络请求对应一个根据请求时间点生成的随机识别符,因此能够避免数据重复,提高云服务器的请求处理效率和管理能力;由于签名信息包含随机识别符,因此能够有效提高签名信息被破解的难度,提高请求信息的篡改难度,继而提高云存储平台的信息安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是可以应用本发明实施例的网络请求发送方法和网络请求发送装置的示例性云计算系统100的示意图。
图2是本公开示例性实施例中网络请求发送方法的流程图。
图3是本公开一个实施例中步骤S2的子流程图。
图4是本公开一个实施例中随机识别符的示意图。
图5是本公开一个实施例中步骤S23的子流程图。
图6是本公开一个实施例中步骤S3的子流程图。
图7是本公开一个实施例中步骤S32的子流程图。
图8是本公开实施例中SM3算法的示意图。
图9是图7所示实施例中的运算过程示意图。
图10是本公开示例性实施例中一种网络请求发送装置的方框图。
图11是本公开示例性实施例中一种电子设备的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面结合附图对本公开示例实施方式进行详细说明。
图1是可以应用本发明实施例的网络请求发送方法和网络请求发送装置的示例性云计算系统100的示意图。
如图1所示,云计算系统100可以包括多个云终端11,网络12和云服务器13。网络12用以在云终端11和云服务器13之间提供通信链路的介质。网络12可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的云终端、网络和云服务器的数目仅仅是示意性的。根据实现需要,可以设置任意数目的云终端、网络和云服务器。比如云服务器13可以是由多个云服务器组成的云服务器集群等。
用户可以使用云终端11通过网络12与云服务器13交互,以接收或发送消息等。云终端11可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等等。
云计算(cloud computing)是指通过网络以按需、易扩展的方式获得所需资源。广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。在本公开实施例中,云计算系统100可以为一个云存储系统。
在云终端11的运行过程中,通常会向云服务器13发送网络请求,以使云服务器13处理该网络请求并将处理结果返回给云终端。在一些情况下,非法终端会通过获取并篡改这些网络请求来实现各类非法目的。在现有的JWT通讯方式中,令牌易被获取和破解,非法终端可以使用伪造的令牌取得某些权限,进而利用或攻击云服务器以实现非法目的。
图2是本公开示例性实施例中网络请求发送方法的流程图。图2所示的方法可以通过图1所示的云终端11来实现。
参考图2,网络请求发送方法200可以包括:
步骤S1,响应网络请求发送指令,获取请求内容、请求时间点以及与所述请求内容对应的用户私有参数;
步骤S2,根据所述请求时间点生成随机识别符;
步骤S3,根据所述用户私有参数和预设种类的公有参数生成签名信息,所述预设种类的公有参数至少包括所述随机识别符、所述请求时间点、所述请求内容以及应用账号;
步骤S4,将所述签名信息、所述公有参数、所述用户私有参数发送给云服务器,以使所述云服务器根据所述公有参数、所述用户私有参数确定对所述签名信息的验证结果。
本公开实施例通过根据请求时间点生成随机识别符,根据随机识别符生成签名信息,将签名信息和网络请求的相关信息一起发送给云服务器,可以使云服务器根据对签名信息的验证结果处理网络请求。由于每个网络请求对应一个根据请求时间点生成的随机识别符,因此能够避免数据重复,提高云服务器的请求处理效率和管理能力;由于签名信息包含随机识别符,因此能够有效提高签名信息被破解的难度,提高请求信息的篡改难度,继而提高云存储平台的信息安全性。
下面,对网络请求发送方法100的各步骤进行详细说明。
在步骤S1,响应网络请求发送指令,获取请求内容、请求时间点以及与所述请求内容对应的用户私有参数。
网络请求发送指令可以由安装于云终端11的应用程序响应用户操作发送或者主动发送。不同的应用程序对应不同的网络请求发送指令和请求内容、用户私有参数,例如,运营商应用程序可以响应用户的充话费请求生成网络请求发送指令,该网络请求发送指令包括请求内容(对手机号X充话费Y)以及用户私有参数(例如充值密码、支付权限验证)等信息,将该网络请求发送指令发送给云终端11的通讯接口。本公开实施例提供的用于执行网络请求发送方法100的网络请求发送装置可以被安装在通讯接口的发送逻辑之前,用于拦截该网络请求发送指令,并在执行网络请求发送方法100后,对云服务器发送充话费网络请求。本公开实施例不对网络请求发送指令的种类、请求内容的种类以及用户私有参数进行特殊限定。
在本公开一个实施例中,请求时间点的最小单位例如可以为毫秒,以便于后续时间戳的计算(详见图5);在其他实施例中,请求时间点的最小单位也可以为其他单位,本公开不以此为限。
在步骤S2,根据所述请求时间点生成随机识别符。
图3是本公开一个实施例中步骤S2的子流程图。
参考图3,在一个实施例中,步骤S2可以包括:
步骤S21,根据所述请求时间点与预设时间点的差值确定第一时间戳;
步骤S22,获取所述云终端的设备识别符;
步骤S23,确定所述随机识别符在所述请求时间点内的第一序号;
步骤S24,根据所述第一时间戳、所述设备识别符、所述第一序号生成所述随机识别符。
通过使用请求时间点确定第一时间戳和第一序号,再根据第一时间戳、第一序号、设备识别符生成与该网络请求对应的随机识别符,可以在海量网络请求中为每个网络请求生成一个重复可能性非常低的随机识别符,进而提高云服务器对网络请求进行有序管理的能力,避免在海量数据交互过程中出现由于标识符重复而导致的管理混乱。
此外,由于一个网络请求对应的随机识别符仅与其请求时间点、设备发送的网络请求数量、设备有关,与外部环境无关,因此,即使黑客截获该网络请求,破解该网络请求中包含的随机识别符也具有较高难度,无法正确生成符合云服务器验证规则的随机识别符(在使用伪造随机识别符时可以被云服务器迅速发现),从而,本公开实施例可以有效提高云计算系统的信息安全性。
图4是本公开一个实施例中随机识别符的示意图。
参考图4,在一个实施例中,随机识别符例如可以为64位(64bit)。第一位不用,接下来的41位为毫秒级戳(根据请求时间点与预设时间点的差值得到,41位的长度可以使用69年),然后是10位设备识别符(10位的长度最多可支持部署1024个设备,最后12位是当前正在生成的随机识别符在该设备、该毫秒内生成的随机识别符中的第一序号(12位的容量支持每个设备每毫秒产生4096个序号)。
在一些实施例中,10位设备识别符由5位datacenterId(数据中心识别符)和5位workerId(设备识别符)组成,以应对多种局域网配置,在其他实施例中,设备识别符的位数和定义还可以为其他情况,本公开对此不作特殊限制。
图5是本公开一个实施例中步骤S23的子流程图。
参考图5,在一个实施例中,步骤S23可以包括:
步骤S231,获取所述请求时间点对应的已生成随机识别符的最大序号;
步骤S232,获取所述最大序号的所述已生成随机识别符对应的第二时间戳;
步骤S233,在所述第一时间戳大于等于所述第二时间戳时,对所述最大序号加一以得到所述第一序号;
步骤S234,在所述第一时间戳小于所述第二时间戳时,对所述最大序号对应的起始计数序号加预设值以得到所述第一序号,所述预设值大于1。
在一些实施例中,云终端设备会发生时钟倒退的现象,例如服务重启或者网络中断并恢复后,当前系统时间有可能早于服务重启前或网络中断前的系统时间,生成的随机识别符也有可能与之前的随机识别符重复。算法应容忍一定时间范围的时钟倒退,为此,本申请实施例在生成第一序号的过程中,当发现系统出现时钟倒退的现象(当前时间点早于上一次生成时间戳的时间点),即调整第一序号的生成逻辑。
例如,在图4所示实施例中,最后12位相当于一个计数器,可以用来记录同一毫秒内产生的随机识别符的序号,1ms内总共可以记录4096个不重复的序号,每一毫秒的序列号都是从0这个基础序列号开始递增。如果一台主机上的QPS(Query Per Second,每秒查询率)为10000/s,那么其实在一毫秒内只需要记录10个不同的序号,远远不需要达到理论上设定的4096个。因此,本申请发明人设置,可以使用其他4000多个序列号来应对时钟回拨情况。即,一旦发现时钟回拨,则对当前生成的序号加上指定的预设值。比如说设备A系统时间B毫秒内生成的网络请求的第一序号从0开始递增,设置预设值为512,在发现出现第一次时钟回拨时,起始计数序号为0,将第一序号设置为512,使后续新生成的序号从512开始递增;再发生一次时钟回拨时,得知当前起始计数序号为512,则将第一序号设置为1024,使后续新生成的序号从1024开始递增,以此类推,一毫秒可以应对8次时钟回拨。通过以上方法,可以迅速生成唯一的第一序号,在保障第一序号唯一性的同时,避免对第一序号的生成效率产生较大影响。
在步骤S3,根据所述用户私有参数和预设种类的公有参数生成签名信息,所述预设种类的公有参数至少包括所述随机识别符、所述请求时间点、所述请求内容以及应用账号。
图6是本公开一个实施例中步骤S3的子流程图。
参考图6,在一个实施例中,步骤S3可以包括:
步骤S31,拼接所述公有参数和所述用户私有参数以得到第一字符串;
步骤S32,根据所述第一字符串和SM3算法确定所述签名信息。
可以将多种公有参数和用户私有参数按照预设顺序拼接以形成第一字符串,第一字符串的位数不受限制。在本公开实施例中,公有参数至少包括上述随机识别符、请求时间点、请求内容以及应用账号(App Key);用户私有参数在每个网络请求中的具体种类不同,因此在其他实施例中,公有参数和用户私有参数还可以包括其他参数,于此不再一一列举。
在一些实施例中,可以直接在第一字符串位数少于264bit时直接对第一字符串使用SM3算法计算以得到签名信息,但是由于网络请求通常包含大量内容,因此,还需要使用更复杂的处理方式来提高数据安全性。
通过使用包含随机识别符的第一识别符和SM3算法确定签名信息,可以使生成的签名信息具有唯一性和随机性,难以被非法终端劫持并伪造。
图7是本公开一个实施例中步骤S32的子流程图。
参考图7,在一个实施例中,步骤S32可以包括:
步骤S321,对所述第一字符串进行Base64编码以得到第二字符串;
步骤S322,使用SM3算法对所述第二字符串进行处理以得到第三字符串;
步骤S323,根据所述第三字符串确定所述签名信息。
Base64编码是为了解决不可打印字符在网络上传输出现乱码的情况而实施的一种解决方案,基于64个可打印的字符来表示二进制数据。具体转换方法为:第一步,将待转换的字符串每三个字节分为一组,每个字节占8bit,那么共有24个二进制位;第二步,将上面的24个二进制位每6个一组,共分为4组;第三步,在每组前面添加两个0,每组由6个二进制位变为8个二进制位,总共32个二进制位,即四个字节;第四步,根据Base64编码对照表获得这四个字节的值。通过Base64编码转换,第二字符串中的每个字节在对端显示时均不会出现乱码。
接下来,可以对第二字符串使用SM3算法进行处理。SM3(Senior Middle 3)算法是一种散列算法,可用于生成随机数和消息认证码等。SM3算法对输入长度小于264bit的数据,经过填充和迭代压缩,生成长度为256bit的散列值,其中使用了异或、模、模加、移位、与、或、非运算,由填充、迭代过程、消息扩展和压缩函数所构成。
图8是本公开实施例中SM3算法的示意图。
参考图8,输入数据为Lbit的字符串81(L<264),字符串81既可以是上述第一字符串(直接对小于264bit的第一字符串使用SM3算法进行处理),也可以是上述第二字符串。在运行SM3算法时,第一步是填充,使填充后的字符串82的长度是512的整数倍:先在字符串81后加一个1;然后把字符串81的长度用64bit表示(长度数据),放在字符串82的最后;再看现在的数据的长度值离512的整数还差多少个,差K个就填K个0(即K值满足L+K+1=448mod512的最小非负整数),并将这Kbit的0填充在1和64bit的长度数据中间。
接下来,对字符串82按照按照512bit进行分组,如果分成了n组,得到字符串B0、B1……、Bn-1。将原始字符串81和字符串B0、B1……、Bn-1输入CF压缩函数进行迭代压缩,得到最后的杂凑值(哈希值),可以通过以下公式表示:
Vi=CF(Vi-1,Bi-1),1≤i≤n (1)
其中,V0为字符串81,CF为预设压缩函数。如果字符串82被分为n组,那么Vn就是最后得到的杂凑值。当字符串81为上述第二字符串时,Vn为上述第三字符串。
在步骤S323,可以直接将第三字符串作为所述签名信息,或者,使用应用密钥对所述第三字符串进行HMAC摘要处理以得到所述签名信息。
应用密钥(App Secret)通常与应用账号(App Key)配套使用,成对出现。应用账号(App Key)用于传输网络请求中要求的权限,应用密钥(App Secret)用于证明请求端具有使用这个权限的权限。在一些开放式的应用程序中,仅使用应用账号(App Key),但是在一些需要加密的应用请求(例如手机号充值)中,使用应用密钥(App Secret)对网络请求的部分或全部进行加密,以保护终端的权限不被利用或仿制。
HMAC(Hash-based Message Authentication Code,哈希消息认证码)是一种摘要算法,利用密钥和明文对输入数据进行两轮哈希运算。在本公开实施例中,将HMAC摘要处理过程中的密钥设置为应用密钥,将输入数据设置为第三字符串,以得到最终的经过加密的签名信息。
图9是图7所示实施例中的运算过程示意图。
参考图9,在阶段S91,根据用户私有参数和公有参数生成第一字符串;在阶段S92,对第一字符串进行Base64编码以得到第二字符串;在阶段S93,对第二字符串运用SM3算法进行处理以得到第三字符串;在阶段S94,使用应用密钥对第三字符串进行HMAC摘要以生成签名信息。
通过使用图7和图9所示过程生成签名信息,可以极大提高签名信息的唯一性和安全性,增大签名信息的破解难度。
在步骤S4,将所述签名信息、所述公有参数、所述用户私有参数发送给云服务器,以使所述云服务器根据所述公有参数、所述用户私有参数确定对所述签名信息的验证结果。
云服务器在接收到签名信息、公有参数、用户私有参数后,使用与步骤S1~步骤S3相同的流程生成与本次网络请求对应的签名信息,比对接收到的签名信息和自己生成的签名信息,如果两个签名信息一致,说明网络请求在传输过程中没有被篡改,或者该网络请求并非伪造,可以对网络请求进行正常处理;如果两个签名信息不一致,说明网络请求在传输过程中可能被篡改,或者该网络请求为伪造的,拒绝该网络请求。在一些实施例中,还可以通知云终端设备检查网络安全性。
本公开实施例提供的用于云计算高并发环境中的高速加密、鉴权与认证的方法,通过使用云服务器与云终端约定的应用密钥对网络请求进行加密摘要以生成签名信息,可防止网络请求被恶意篡改,保证数据的完整性和可用性。由于通过SM3生成的签名信息均是临时的,每一次请求均需重新获取签名信息,可以避免签名信息泄露带来的安全隐患;通过根据请求时间点生成随机识别符,并将此随机识别符加入网络请求信息中一起进行SM3算法处理,可以避免分布式场景下签名信息发生重复。本公开实施例适用于所有自有平台与第三方平台进行网络请求的场景,保证了源端、目的端网络请求中的数据不被恶意篡改,相较于以往传统的JWT认证方式,可以有效提高网络请求的安全性和效率。
对应于上述方法实施例,本公开还提供一种网络请求发送装置,可以用于执行上述方法实施例。
图10是本公开示例性实施例中一种网络请求发送装置的方框图。
参考图10,网络请求发送装置1000可以包括:
数据获取模块101,设置为响应网络请求发送指令,获取请求内容、请求时间点以及与所述请求内容对应的用户私有参数;
随机识别符生成模块102,设置为根据所述请求时间点生成随机识别符;
签名信息生成模块103,设置为根据所述用户私有参数和预设种类的公有参数生成签名信息,所述预设种类的公有参数至少包括所述随机识别符、所述请求时间点、所述请求内容以及应用账号;
数据传输模块104,设置为将所述签名信息、所述公有参数、所述用户私有参数发送给云服务器,以使所述云服务器根据所述公有参数、所述用户私有参数确定对所述签名信息的验证结果。
在本公开的一种示例性实施例中,签名信息生成模块103设置为:拼接所述公有参数和所述用户私有参数以得到第一字符串;根据所述第一字符串和SM3算法确定所述签名信息。
在本公开的一种示例性实施例中,签名信息生成模块103设置为:对所述第一字符串进行Base64编码以得到第二字符串;使用SM3算法对所述第二字符串进行处理以得到第三字符串;根据所述第三字符串确定所述签名信息。
在本公开的一种示例性实施例中,签名信息生成模块103设置为:将所述第三字符串作为所述签名信息;或者,使用应用密钥对所述第三字符串进行HMAC摘要处理以得到所述签名信息。
在本公开的一种示例性实施例中,随机识别符生成模块102设置为:根据所述请求时间点与预设时间点的差值确定第一时间戳;获取所述云终端的设备识别符;确定所述随机识别符在所述请求时间点内的第一序号;根据所述第一时间戳、所述设备识别符、所述第一序号生成所述随机识别符。
在本公开的一种示例性实施例中,随机识别符生成模块102设置为:获取所述请求时间点对应的已生成随机识别符的最大序号;获取所述最大序号的所述已生成随机识别符对应的第二时间戳;在所述第一时间戳大于等于所述第二时间戳时,对所述最大序号加一以得到所述第一序号;在所述第一时间戳小于所述第二时间戳时,对所述最大序号对应的起始计数序号加预设值以得到所述第一序号,所述预设值大于1。
在本公开的一种示例性实施例中,所述请求时间点的最小单位为毫秒,所述预设值为512。
由于装置1000的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图11来描述根据本发明的这种实施方式的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1110可以执行如本公开实施例所示的方法。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)11201和/或高速缓存存储单元11202,还可以进一步包括只读存储单元(ROM)11203。
存储单元1120还可以包括具有一组(至少一个)程序模块11205的程序/实用工具11204,这样的程序模块11205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1100也可以与一个或多个外部设备1200(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和构思由权利要求指出。
Claims (9)
1.一种网络请求发送方法,其特征在于,由云终端执行,包括:
响应网络请求发送指令,获取请求内容、请求时间点以及与所述请求内容对应的用户私有参数;
根据所述请求时间点生成随机识别符;
根据所述用户私有参数和预设种类的公有参数生成签名信息,所述预设种类的公有参数至少包括所述随机识别符、所述请求时间点、所述请求内容以及应用账号;
将所述签名信息、所述公有参数、所述用户私有参数发送给云服务器,以使所述云服务器根据所述公有参数、所述用户私有参数确定对所述签名信息的验证结果;
其中,所述根据所述请求时间点生成随机识别符包括:
根据所述请求时间点与预设时间点的差值确定第一时间戳;
获取所述云终端的设备识别符;
确定所述随机识别符在所述请求时间点内的第一序号;
根据所述第一时间戳、所述设备识别符、所述第一序号生成所述随机识别符。
2.如权利要求1所述的网络请求发送方法,其特征在于,所述根据所述用户私有参数和预设种类的公有参数生成签名信息包括:
拼接所述公有参数和所述用户私有参数以得到第一字符串;
根据所述第一字符串和SM3算法确定所述签名信息。
3.如权利要求2所述的网络请求发送方法,其特征在于,所述根据所述第一字符串和SM3算法确定所述签名信息包括:
对所述第一字符串进行Base64编码以得到第二字符串;
使用SM3算法对所述第二字符串进行处理以得到第三字符串;
根据所述第三字符串确定所述签名信息。
4.如权利要求3所述的网络请求发送方法,其特征在于,所述根据所述第三字符串确定所述签名信息包括:
将所述第三字符串作为所述签名信息;或者,
使用应用密钥对所述第三字符串进行HMAC摘要处理以得到所述签名信息。
5.如权利要求1所述的网络请求发送方法,其特征在于,所述确定所述随机识别符在所述请求时间点内的第一序号包括:
获取所述请求时间点对应的已生成随机识别符的最大序号;
获取所述最大序号的所述已生成随机识别符对应的第二时间戳;
在所述第一时间戳大于等于所述第二时间戳时,对所述最大序号加一以得到所述第一序号;
在所述第一时间戳小于所述第二时间戳时,对所述最大序号对应的起始计数序号加预设值以得到所述第一序号,所述预设值大于1。
6.如权利要求5所述的网络请求发送方法,其特征在于,所述请求时间点的最小单位为毫秒,所述预设值为512。
7.一种网络请求发送装置,其特征在于,应用于云终端,包括:
数据获取模块,设置为响应网络请求发送指令,获取请求内容、请求时间点以及与所述请求内容对应的用户私有参数;
随机识别符生成模块,设置为根据所述请求时间点生成随机识别符;
签名信息生成模块,设置为根据所述用户私有参数和预设种类的公有参数生成签名信息,所述预设种类的公有参数至少包括所述随机识别符、所述请求时间点、所述请求内容以及应用账号;
数据传输模块,设置为将所述签名信息、所述公有参数、所述用户私有参数发送给云服务器,以使所述云服务器根据所述公有参数、所述用户私有参数确定对所述签名信息的验证结果;
所述随机识别符生成模块设置为:根据所述请求时间点与预设时间点的差值确定第一时间戳;获取所述云终端的设备识别符;确定所述随机识别符在所述请求时间点内的第一序号;根据所述第一时间戳、所述设备识别符、所述第一序号生成所述随机识别符。
8.一种电子设备,其特征在于,包括:
存储器;以及
耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-6任一项所述的网络请求发送方法。
9.一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如权利要求1-6任一项所述的网络请求发送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110263763.5A CN115086428B (zh) | 2021-03-11 | 2021-03-11 | 网络请求发送方法、装置与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110263763.5A CN115086428B (zh) | 2021-03-11 | 2021-03-11 | 网络请求发送方法、装置与电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086428A CN115086428A (zh) | 2022-09-20 |
CN115086428B true CN115086428B (zh) | 2024-06-28 |
Family
ID=83240622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110263763.5A Active CN115086428B (zh) | 2021-03-11 | 2021-03-11 | 网络请求发送方法、装置与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086428B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115829702B (zh) * | 2022-09-28 | 2023-07-25 | 睿智合创(北京)科技有限公司 | 一种云端信贷服务的用户报文传输方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111262889A (zh) * | 2020-05-06 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 一种云服务的权限认证方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9800561B2 (en) * | 2014-11-06 | 2017-10-24 | Intel Corporation | Secure sharing of user annotated subscription media with trusted devices |
CN109413105A (zh) * | 2018-12-12 | 2019-03-01 | 深圳市丰巢科技有限公司 | 一种网络请求处理方法、装置、计算机设备及存储介质 |
CN111541542B (zh) * | 2019-12-31 | 2023-09-15 | 远景智能国际私人投资有限公司 | 请求的发送和验证方法、装置及设备 |
-
2021
- 2021-03-11 CN CN202110263763.5A patent/CN115086428B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111262889A (zh) * | 2020-05-06 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 一种云服务的权限认证方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115086428A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965230B (zh) | 一种安全通信方法、系统及终端设备 | |
CN110336774B (zh) | 混合加密解密方法、设备及系统 | |
CN109150499B (zh) | 动态加密数据的方法、装置、计算机设备和存储介质 | |
WO2021012574A1 (zh) | 多重签名方法、签名中心、介质及电子设备 | |
WO2020163083A1 (en) | System and method for hardening security between web services using protected forwarded access tokens | |
CN112131316B (zh) | 应用于区块链系统的数据处理方法及装置 | |
CN105873031B (zh) | 基于可信平台的分布式无人机密钥协商方法 | |
CN110177099B (zh) | 基于非对称加密技术的数据交换方法、发送终端和介质 | |
CN113114654B (zh) | 一种终端设备接入安全认证方法、装置及系统 | |
CN112689014B (zh) | 一种双全工通信方法、装置、计算机设备和存储介质 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
CN108964893A (zh) | 一种密钥处理方法、装置、设备和介质 | |
CN115473655B (zh) | 接入网络的终端认证方法、装置及存储介质 | |
CN114553590A (zh) | 数据传输方法及相关设备 | |
CN114785524B (zh) | 电子印章生成方法、装置、设备和介质 | |
CN113742709A (zh) | 信息的处理方法、装置、可读介质和电子设备 | |
CN114448605A (zh) | 加密密文校验方法、系统、设备及计算机可读存储介质 | |
CN111865869B (zh) | 基于随机映射的注册、认证方法及装置、介质及电子设备 | |
CN110266653B (zh) | 一种鉴权方法、系统及终端设备 | |
CN114844688A (zh) | 数据传输方法、装置、设备及计算机存储介质 | |
CN115086428B (zh) | 网络请求发送方法、装置与电子设备 | |
CN116866029B (zh) | 随机数加密数据传输方法、装置、计算机设备及存储介质 | |
CN113343269B (zh) | 一种加密方法及装置 | |
JP2024510461A (ja) | 接続回復力のある多要素認証 | |
CN110958285B (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 |