CN110399717A - 密钥获取方法和装置、存储介质及电子装置 - Google Patents

密钥获取方法和装置、存储介质及电子装置 Download PDF

Info

Publication number
CN110399717A
CN110399717A CN201811394292.6A CN201811394292A CN110399717A CN 110399717 A CN110399717 A CN 110399717A CN 201811394292 A CN201811394292 A CN 201811394292A CN 110399717 A CN110399717 A CN 110399717A
Authority
CN
China
Prior art keywords
key
client
server
indication field
account
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
CN201811394292.6A
Other languages
English (en)
Other versions
CN110399717B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811394292.6A priority Critical patent/CN110399717B/zh
Publication of CN110399717A publication Critical patent/CN110399717A/zh
Application granted granted Critical
Publication of CN110399717B publication Critical patent/CN110399717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种密钥获取方法和装置、存储介质及电子装置。其中,该方法包括:客户端向服务器发送第一密钥获取请求,第一密钥获取请求中携带有用于登录客户端的目标账号的账号标识;客户端获取服务器响应第一密钥获取请求所生成的第一密钥及与第一密钥相关联的第一密钥指示字段,第一密钥指示字段中携带有加密后与目标账号的账号标识相匹配的密钥信息;客户端利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段,第一密钥指示字段用于在客户端中无法查找到处于有效使用状态的第一密钥的情况下,被客户端发送给服务器以请求再次获取第一密钥。本发明解决了相关技术中密钥获取的安全性低的技术问题。

Description

密钥获取方法和装置、存储介质及电子装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种密钥获取方法和装置、存储介质及电子装置。
背景技术
为了简化与服务器之间的交互过程,很多客户端往往会在数据库中存储一些隐私数据,并对这些隐私数据进行加密,以保证数据的安全性。
目前,客户端通常是使用特定的密钥生成算法,结合一些登录账号信息或登录设备的设备特征来生成密钥,以利用该密钥对数据库中的隐私数据进行加密。然而,上述过程所生成的密钥很容易被逆向解密或经调试破解,使得数据库中的隐私数据被读取泄漏。也就是说,相关技术提供的密钥获取方法存在获取安全性较低的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种密钥获取方法和装置、存储介质及电子装置,以至少解决相关技术中密钥获取的安全性低的技术问题。
根据本发明实施例的一个方面,提供了一种密钥获取方法,包括:客户端向服务器发送第一密钥获取请求,其中,上述第一密钥获取请求中携带有用于登录上述客户端的目标账号的账号标识;上述客户端获取上述服务器响应上述第一密钥获取请求所生成的第一密钥及与上述第一密钥相关联的第一密钥指示字段,其中,上述第一密钥指示字段中携带有加密后与上述目标账号的账号标识相匹配的密钥信息;上述客户端利用上述第一密钥对数据进行加密处理或解密处理,并保存上述第一密钥指示字段,其中,上述第一密钥指示字段用于在上述客户端中无法查找到处于有效使用状态的上述第一密钥的情况下,被上述客户端发送给上述服务器以请求再次获取上述第一密钥。
根据本发明实施例的另一个方面,还提供了一种密钥获取方法,包括:服务器获取客户端发送的第一密钥获取请求,其中,上述第一密钥获取请求中携带有用于登录上述客户端的第一账号的第一账号标识;响应上述第一密钥获取请求,上述服务器生成第一密钥及与上述第一密钥相关联的第一密钥指示字段,其中,上述第一密钥指示字段中携带有加密后与上述第一账号标识相匹配的密钥信息;上述服务器将上述第一密钥及上述第一密钥指示字段发送给上述客户端,其中,在上述客户端无法查找到处于有效使用状态的上述第一密钥的情况下,上述服务器将接收上述客户端所发送的上述第一密钥指示字段以请求再次获取上述第一密钥。
根据本发明实施例的又一方面,还提供了一种密钥获取装置,上述装置中运行在客户端中,上述装置包括:发送单元,用于向服务器发送第一密钥获取请求,其中,上述第一密钥获取请求中携带有用于登录上述客户端的目标账号的账号标识;获取单元,用于获取上述服务器响应上述第一密钥获取请求所生成的第一密钥及与上述第一密钥相关联的第一密钥指示字段,其中,上述第一密钥指示字段中携带有加密后与上述目标账号的账号标识相匹配的密钥信息;处理单元,用于利用上述第一密钥对数据进行加密处理或解密处理,并保存上述第一密钥指示字段,其中,上述第一密钥指示字段用于在上述客户端中无法查找到处于有效使用状态的上述第一密钥的情况下,被上述客户端发送给上述服务器以请求再次获取上述第一密钥。
作为一种可选的示例,上述第一获取单元包括:获取模块,用于获取服务器为目标账号随机生成的第一密钥,及服务器利用第二密钥进行加密处理所得到的第一密钥指示字段,其中,第二密钥为服务器利用与第一密钥相关联的密钥版本信息所生成的密钥。
作为一种可选的示例,上述装置还包括:第二发送单元,用于在客户端中无法查找到处于有效使用状态的第一密钥的情况下,将向服务器发送用于请求再次获取第一密钥的第二密钥获取请求,其中,第二密钥获取请求中携带目标账号的账号标识和所保存的第一密钥指示字段。
作为一种可选的示例,上述装置还包括:第一确定单元,用于在客户端利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段之后,当第一密钥从客户端的内存中被清除的情况下,则确定客户端将无法查找到处于有效使用状态的第一密钥;或者第二确定单元,用于在客户端利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段之后,当第一密钥在客户端的内存中的存储时长已达到有效时长的情况下,第一密钥将从有效使用状态调整为无效使用状态,则确定客户端将无法查找到处于有效使用状态的第一密钥。
作为一种可选的示例,上述处理单元包括:第一处理模块,用于在获取到数据读取指令的情况下,客户端利用第一密钥对所要读取的数据进行解密处理;第二处理模块,用于在获取到数据写入指令的情况下,客户端利用第一密钥对所要写入的数据进行加密处理;清除模块,用于在客户端被指示停止运行的情况下,客户端的内存中所存储的第一密钥将被清除。
根据本发明实施例的又一方面,还提供了一种密钥获取装置,应用于服务器中,包括:第一获取单元,用于获取客户端发送的第一密钥获取请求,其中,上述第一密钥获取请求中携带有用于登录上述客户端的第一账号的第一账号标识;第一生成单元,用于响应上述第一密钥获取请求,生成第一密钥及与上述第一密钥相关联的第一密钥指示字段,其中,上述第一密钥指示字段中携带有加密后与上述第一账号标识相匹配的密钥信息;发送单元,用于将上述第一密钥及上述第一密钥指示字段发送给上述客户端,其中,在上述客户端无法查找到处于有效使用状态的上述第一密钥的情况下,上述服务器将接收上述客户端所发送的上述第一密钥指示字段以请求再次获取上述第一密钥。
作为一种可选的示例,上述第一生成单元包括:第一生成模块,用于为第一账号随机生成第一密钥及与第一密钥相关联的密钥版本信息;第二生成模块,用于利用第一账号标识及密钥版本信息生成第二密钥;处理模块,用于根据利用第二密钥对第一账号的第一账号标识及第一密钥进行加密处理后的处理结果,得到第一密钥指示字段。
作为一种可选的示例,上述处理模块包括:第一确定子模块,用于将与第一密钥相关联的密钥版本信息,作为第一密钥指示子字段;第二确定子模块,用于将处理结果,作为第二密钥指示子字段;组合子模块,用于组合第一密钥指示子字段及第二密钥指示子字段,得到第一密钥指示字段。
作为一种可选的示例,上述装置还包括:第二获取单元,用于在服务器将第一密钥及第一密钥指示字段发送给客户端之后,获取客户端发送的第二密钥获取请求,其中,第二密钥获取请求中携带有客户端中当前存储的第一密钥指示字段及当前用于登录客户端的第二账号的第二账号标识;第三获取单元,用于获取第一密钥指示字段中第一密钥指示子字段所指示的密钥版本信息;第二生成单元,用于第二账号的第二账号标识及第一密钥指示子字段所指示的密钥版本信息生成第三密钥;第四获取单元,用于利用第三密钥对第一密钥指示字段中的第二密钥指示子字段进行解密。
作为一种可选的示例,上述第四获取单元包括:第一确定模块,用于在服务器解密成功的情况下,服务器确定第二账号标识与第一账号标识为相同账号标识,并将为第一账号生成的第一密钥发送给当前使用第二账号标识登录的客户端;第二确定模块,用于在服务器解密失败的情况下,服务器确定第二账号标识与第一账号标识为不同账号标识,则服务器将为第二账号生成第四密钥及与第四密钥相关联的第二密钥指示字段,其中,第二密钥指示字段中携带有加密后与第二账号标识相匹配的密钥信息;服务器将把第四密钥及第二密钥指示字段发送给当前使用第二账号标识登录的客户端。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述密钥获取方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的密钥获取方法。
在本发明实施例中,在客户端向服务器发送第一密钥获取请求之后,客户端将获取到服务器根据第一密钥获取请求所生成的第一密钥及与上述第一密钥相关联的第一密钥指示字段,其中,该第一密钥指示字段中携带有加密后与目标账号的账号标识相匹配的密钥信息。上述客户端将利用上述第一密钥对数据进行加密处理或解密处理,并保存上述第一密钥指示字段,第一密钥指示字段用于在客户端中无法查找到处于有效使用状态的情况下,被客户端发送给服务器以请求再次获取第一密钥。在上述方法中,客户端可以获取到服务器所生成的第一密钥与第一密钥指示字段,并利用该第一密钥对数据进行加密处理或者解密处理,保存用于向服务器请求再次获取第一密钥的第一密钥指示字段。而不再需要客户端结合本地特定的特征来生成密钥信息,从而实现了提高对数据进行加密的安全性,避免所生成的密钥容易被逆向破解的情况,进而解决了相关技术中密钥获取的安全性低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的密钥获取方法的网络环境的示意图;
图2是根据本发明实施例的一种可选的密钥获取方法的流程示意图;
图3是根据本发明实施例的一种可选的密钥获取方法的示意图;
图4是根据本发明实施例的另一种可选的密钥获取方法的示意图;
图5是根据本发明实施例的又一种可选的密钥获取方法的示意图;
图6是根据本发明实施例的又一种可选的密钥获取方法的示意图;
图7是根据本发明实施例的另一种可选的密钥获取方法的流程示意图;
图8是根据本发明实施例的一种可选的密钥获取装置的结构示意图;
图9是根据本发明实施例的另一种可选的密钥获取装置的结构示意图;
图10是根据本发明实施例的一种可选的电子装置的结构示意图。
图11是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种密钥获取方法,可选地,作为一种可选的实施方式,上述密钥获取方法可以但不限于应用于如图1所示的网络环境中。用户102与用户设备104之间可以进行人机交互,用户设备104包括存储器106与处理器108。用户设备104运行有客户端。用户设备104运行的客户端通过步骤S102通过网络向服务器112发送第一密钥获取请求,服务器112包含数据库114与处理引擎116。服务器112在获取到第一密钥获取请求之后,通过步骤S104通过网络向用户设备104返回第一密钥与第一密钥指示字段。用户设备104中运行的客户端可以通过接收到的密钥信息对数据进行加密处理或者解密处理。
需要说明的是,相关技术中,在对数据进行加密的过程中,通常是由客户端根据登陆账号信息或者设备特征来生成密钥,并使用生成的密钥对数据进行加密。然而,若是使用上述方法来对数据进行加密,由于客户端生成的密钥有被解密的风险,因此,上述方法获取到的密钥安全性低。而本方案中,通过客户端向服务器发送第一密钥获取请求,服务器响应第一密钥获取请求并返回给客户端第一密钥与第一密钥指示字段的方法,使得客户端直接获取服务器根据第一密钥获取请求而生成的第一密钥及第一密钥指示字段。客户端不仅可以利用第一密钥执行加密处理或解密处理,还可以利用第一密钥指示字段请求再次获取无法在客户端中查找到的处于有效使用状态的第一密钥,从而达到提高第一密钥获取的安全性,进而避免密钥容易被逆向解密的问题。
可选地,上述用户设备102可以但不限于任何可以运行客户端的设备,例如,手机、平板电脑、笔记本电脑、PC机或其他可手持、佩戴、放置的硬件设备。上述密钥获取方法可以但不限于应用于任何应用程序的客户端上,例如,游戏应用、学习应用、生活应用等的客户端上。上述服务器112可以但不限于任何可以进行数据计算的硬件设备。上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。
可选地,作为一种可选的实施方式,如图2所示,应用于客户端的密钥获取方法包括:
S202,客户端向服务器发送第一密钥获取请求,其中,第一密钥获取请求中携带有用于登录客户端的目标账号的账号标识;
S204,客户端获取服务器响应第一密钥获取请求所生成的第一密钥及与第一密钥相关联的第一密钥指示字段,其中,第一密钥指示字段中携带有加密后与账号标识相匹配的密钥信息;
S206,客户端利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段,其中,第一密钥指示字段用于在客户端中无法查找到处于有效使用状态的第一密钥的情况下,被客户端发送给服务器以请求再次获取第一密钥。
可选地,上述密钥获取方法可以但不限于应用于在客户端的运行过程中需要通过密钥验证的方式来完成运行过程的场景中。例如,在登录客户端的过程中,需要对用户的登录身份识别信息进行密钥验证;又例如,在客户端执行虚拟资源转移的过程中,需要对用户的支付身份识别信息进行密钥验证。诸如上述此类需要对用户的身份识别信息,进行密钥验证方可执行操作的场景都包含在本申请所要保护的范围内,上述仅是示例,本实施例中对此不做任何限定。
以将上述密钥获取方法应用到登录游戏应用的登录过程为例进行说明。
在登录游戏应用的过程中,游戏应用的客户端将发送登录请求(也就是第一密钥获取请求)给游戏应用的服务器,其中,该登录请求中携带有用于登录游戏应用的客户端的目标账号的账号标识。游戏应用的服务器在获取到第一密钥获取请求后,提取其中目标账号的账号标识,并为该目标账号随机生成第一密钥,及与上述第一密钥相关联,且携带有加密后与目标账号的账号标识相匹配的第一密钥指示字段。游戏应用的服务器将该第一密钥与第一密钥指示字段发送给游戏应用的客户端,以使游戏应用的客户端可以利用返回的第一密钥登录游戏应用的客户端,并对游戏应用的客户端中的游戏数据执行加密处理或解密处理;此外,游戏应用的客户端还可以保存游戏应用的服务器所返回第一密钥指示字段,以便于请求再次获取无法在游戏应用的客户端中查找到的处于有效使用状态的第一密钥。也就是说,游戏应用的客户端将不再仅利用本地存储的特征信息来单方生成密钥,而是通过与服务器进行交互,获取服务器为目标账号所生成的密钥,以达到提高密钥获取的安全性的目的,进而相关技术中避免密钥容易被逆向解密的问题。
例如,结合图3所示进行说明。如图3所示,客户端302通过步骤S302向服务器304发送第一密钥获取请求。服务器304在接收到上述第一密钥获取请求之后,通过步骤S304随机生成第一密钥,并使用随机生成的第一密钥及与第一密钥获取请求中携带的目标账号的账号标识来生成第一密钥指示字段。在生成第一密钥指示字段后,服务器304通过步骤S306将生成的第一密钥与第一密钥指示字段返回给客户端302,客户端302保存第一密钥指示字段,并使用接收到的第一密钥进行加密解密处理。
可选地,在本实施例中,在客户端中无法查找到处于有效使用状态的第一密钥的情况下,上述方法还包括:客户端将向服务器发送用于请求再次获取第一密钥的第二密钥获取请求,其中,第二密钥获取请求中携带目标账号的账号标识和所保存的第一密钥指示字段。
也就是说,在第一密钥获取请求之后,若在客户端本地内存中无法查找到处于有效使用状态的第一密钥的情况下,则客户端可以但不限于向服务器发送第二密钥获取请求,该第二密钥获取请求中携带有加密后与目标账号的账号标识相匹配的密钥信息的第一密钥指示字段,以使得服务器可以利用该第一密钥指示字段来重新生成客户端所需的第一密钥,而不再通过客户端单方生成密钥,以避免所生成的密钥易被逆向破解所导致的获取安全性较低的问题。
需要说明的是,在本实施例中,上述第一密钥指示字段可以但不限于为结构ClientKeyEncryptInfo中所包含的字段。结构ClientKeyEncryptInfo用于在客户端和服务器之间进行数据交互时使用。其中,该结构ClientKeyEncryptInfo在本实施例中可以包括但不限于至少两个字段:KeyVersion,用于加密EncryptInfo的密钥生成版本;及Infobuffer,用于保存经过加密的密钥信息EncryptInfo。可选地,上述密钥信息EncryptInfo在本实施例中可以包括但不限于至少两个字段:用户标识ID,及客户端执行加密处理或解密处理所要使用的第一密钥key。
可选地,在本实施例中,客户端向服务器发送第一密钥获取请求可以包括但不限于:
1)在客户端本地内存未存储第一密钥的情况下,客户端向服务器首次发送第一密钥获取请求。
其中,在该情况下的第一密钥获取请求可以但不限于携带有密钥信息为缺省状态的密钥指示字段。例如,这里第一密钥获取请求中携带的密钥指示字段以结构ClientKeyEncryptInfo中的字段为例,这里客户端首次发送的第一密钥获取请求中可以但不限于携带有空的结构ClientKeyEncryptInfo。
2)在客户端本地内存中无法查找到处于有效使用状态的第一密钥的情况下,客户端向服务器发送第一密钥获取请求。
其中,在该情况下的第一密钥获取请求非首次发送,可以但不限于将本地内存中已存储的携带有密钥信息的密钥指示字段配置在上述第一密钥获取请求中,发送给服务器。例如,这里第一密钥获取请求中携带的密钥指示字段仍以结构ClientKeyEncryptInfo为例,这里客户端非首次发送的第一密钥获取请求中可以但不限于携带有被客户端保存在本地内存中的结构ClientKeyEncryptInfo,其中,结构ClientKeyEncryptInfo中携带有加密后的密钥信息EncryptInfo,这里EncryptInfo中携带的用户标识可以为目标账号的账号标识ID-1,及客户端所使用的密钥key。
需要说明的是,在本实施例中,客户端可以为首次向服务器发送第一密钥获取请求,这里首次发送的第一密钥获取请求中将携带有密钥信息处于缺省状态的密钥指示字段,从而使服务器在为目标账号生成第一密钥的同时,将加密后的与目标账号相匹配的密钥信息存入密钥指示字段,以得到第一密钥指示字段,并将该第一密钥指示字段发送回客户端。此外,客户端也可以为非首次向服务器发送的第一密钥获取请求,这里非首次发送的第一密钥获取请求相当于上述实施例中的第二密钥获取请求。也就是说,第一密钥获取请求可以为首次触发的密钥获取请求,也可以为非首次触发的密钥获取请求,而第二密钥获取请求为在第一密钥获取请求之后触发与其相邻的密钥获取请求。
可选地,在本实施例中,上述情况2)客户端在本地内存中无法查找到处于有效使用状态的第一密钥的可以包括但不限于以下情况:
(1)当第一密钥从客户端的内存中被清除的情况下,则确定客户端将无法查找到处于有效使用状态的第一密钥;
(2)当第一密钥在客户端的内存中的存储时长已达到有效时长的情况下,第一密钥将从有效使用状态调整为无效使用状态,则确定客户端将无法查找到处于有效使用状态的第一密钥。
需要说明的是,在本实施例中,上述第一密钥的生命周期可以但不限于与客户端的运行周期相同。也就是说,上述服务器返回的第一密钥将被缓存到内存中,当客户端运行的情况下,则可以从内存中直接读取第一密钥来执行加密处理或解密处理;但当客户端停止运行,如客户端进程被终端设备强制杀死的情况下,则内存的第一密钥也将随之被清除,这里客户端就需要再次发起密钥获取请求,以请求再次获取第一密钥。
此外,在本实施例中,还可以但不限于为第一密钥配置有效时长,当第一密钥在内存中的存储时长达到有效时长的情况下,则视为第一密钥已过期,需将其从有效使用状态调整为无效使用状态。这里客户端在查找不到处于有效使用状态的第一密钥的情况下,也需要再次发起密钥获取请求,以请求再次获取处于有效使用状态的第一密钥。
可选地,在本实施例中,客户端获取服务器响应第一密钥获取请求所生成的第一密钥及与第一密钥相关联的第一密钥指示字段包括:客户端通过授权信道获取服务器发送的第一密钥及第一密钥指示字段,其中,授权信道用于指示客户端与服务器均使用约定交互密钥进行数据交互的通信链路。
需要说明的是,上述授权信道可以但不限于为基于RSA加密算法和AES加密算法,在客户端和服务器之间所建立的用于进行数据交互的可信任信道。其中,该可信任信道可以但不限于通过以下方法建立:
客户端随机生成密钥randmomkey,并将使用RSA公钥加密后的密钥randmomkey发送给服务器,然后,服务器使用RSA私钥解密出上述随机生成的密钥randmomkey。接着,服务器生成用于在与客户端之间的会话中所要使用的新密钥sessionkey。然后,服务器可以用上述随机生成的密钥randmomkey作为AES的密钥来加密新密钥sessionkey,并将加密后的新密钥sessionkey发送给客户端。则客户端和服务器在后续的数据交互中,就可以使用密钥sessionkey作为对称加密的密钥。基于该过程建立的通信链路作为上述所要使用的可信任信道。
这里,在本实施例中基于预先在客户端与服务器之间建立的授权信道,来实现在客户端与服务器之间传输服务器为客户端所生成的第一密钥及第一密钥指示字段,保证了密钥传输渠道的安全性,从而进一步提高了密钥获取的安全性。
可选地,在本实施例中,客户端保存第一密钥指示字段可以包括但不限于通过以下步骤实现:
S1,客户端获取本地保存的密钥指示字段;
S2,客户端比对第一密钥指示字段及本地保存的密钥指示字段;
S3,在第一密钥指示字段与本地保存的密钥指示字段不一致的情况下,客户端将本地存储的本地保存的密钥指示字段替换为第一密钥指示字段。
需要说明的是,在本实施例中,客户端可以但不限于存储有上述本地保存的密钥指示字段。其中,在客户端首次发送密钥获取请求时,该密钥获取请求中所携带的密钥指示字段为上述本地保存的密钥指示字段,且该本地保存的密钥指示字段中缺省密钥信息,即空的密钥指示字段。而在客户端非首次发送密钥获取请求时,该密钥获取请求可以但不限于携带本地保存的密钥指示字段,以使服务器可以根据本地保存的密钥指示字段中的密钥信息来进行验证,确定是否需要重新生成第一密钥。
进一步,客户端在获取到服务器返回的第一密钥指示字段后,可以但不限于与本地保存的密钥指示字段进行比对,在第一密钥指示字段与本地保存的密钥指示字段不同的情况下,表示密钥信息已发生变化,则需将本地保存的密钥指示字段替换为从服务器获取到的第一密钥指示字段。也就是说,客户端通过在本地保存携带有密钥信息的密钥指示字段,以便于在请求再次获取第一密钥时,可以将该密钥指示字段发送给服务器,从而使服务器可以利用客户端发送的密钥指示字段中携带的密钥信息来生成密钥。不再限于由客户端单独生成密钥,而是结合服务器来生成密钥,不仅提高密钥生成的安全性,而且保证了客户端获取密钥的安全性。
通过本实施例,通过客户端向服务器发送第一密钥获取请求,服务器响应第一密钥获取请求并返回给客户端第一密钥与第一密钥指示字段的方法,使得客户端直接获取服务器根据第一密钥获取请求而生成的第一密钥及第一密钥指示字段。客户端不仅可以利用第一密钥执行加密处理或解密处理,还可以利用第一密钥指示字段请求再次获取无法在客户端中查找到的处于有效使用状态的第一密钥,从而达到提高第一密钥获取的安全性,进而避免密钥容易被逆向解密的问题。
作为一种可选的实施方案,客户端获取服务器响应第一密钥获取请求所生成的第一密钥及与第一密钥相关联的第一密钥指示字段包括:
S1,客户端获取服务器为目标账号随机生成的第一密钥,及服务器利用第二密钥进行加密处理所得到的第一密钥指示字段,其中,第二密钥为服务器利用与第一密钥相关联的密钥版本信息所生成的密钥。
可选地,在本实施例中,上述第二密钥可以但不限于为服务器根据第一密钥的密钥版本信息所生成的密钥,用于对第一密钥的密钥信息(如EncryptInfo)进行加密,这里第二密钥可以但不限于用keyforkey表示。
具体结合图4所示示例进行说明。假设服务器在获取到客户端发送的第一密钥获取请求之后,从第一密钥获取请求中提取出目标账号的账号标识ID-1。然后,服务器可以但不限于执行图4所示步骤:通过步骤S402,服务器根据第一密钥获取请求随机生成第一密钥key与第一密钥版本信息KeyVersion,并通过步骤S404,使用第一密钥版本信息KeyVersion与上述账号标识ID-1生成第二密钥keyforkey,服务器通过步骤S406,使用第二密钥keyforkey对密钥信息EncryptInfo进行加密,其中,密钥信息EncryptInfo中携带有目标账号的账号标识ID-1及客户端所使用的密钥key,进而得到携带有加密后的密钥信息EncryptInfo的第一密钥指示字段,如结构ClientKeyEncryptInfo。然后,通过步骤S408,服务器将返回第一密钥与第一密钥指示字段给客户端,以使客户端使用第一密钥进行加密解密,并保存第一密钥指示字段。
通过本实施例,客户端所获取到的第一密钥指示字段为服务器利用第二密钥加密后得到的密钥指示字段,这里第二密钥为服务器利用与第一密钥相关联的密钥版本信息所生成的密钥。也就是客户端结合服务器来生成用于执行加密或解密处理的第一密钥及第一密钥指示字段,将避免密钥容易被逆向解密的问题,进而保证了使用获取到的密钥对数据进行加密解密的安全性。
作为一种可选的实施方案,在客户端中无法查找到处于有效使用状态的第一密钥的情况下,上述方法还包括:
S1,客户端将向服务器发送用于请求再次获取第一密钥的第二密钥获取请求,其中,第二密钥获取请求中携带目标账号的账号标识和所保存的第一密钥指示字段。
具体结合图5所示进行说明,结合图3所示步骤,在客户端302执行保存第一密钥指示字段之后,若如步骤S502确定客户端302中无法查找到处于有效使用状态的第一密钥情况下,则执行步骤S504,向服务器304发送用于请求再次获取第一密钥的第二密钥获取请求,其中,该第二密钥获取请求中将携带有服务器之前以生成且返回的第一密钥指示字段。以便于服务器可以快速解密得到该第一密钥指示字段中的密钥信息,进一步根据该密钥信息快速确定出客户端所要使用的第一密钥。
可选地,在本实施例中,客户端无法查找到处于有效使用状态的第一密钥包括以下之一:
1)当第一密钥从客户端的内存中被清除的情况下,则确定客户端将无法查找到处于有效使用状态的第一密钥;
在本实施例中,上述第一密钥的生命周期可以但不限于与客户端的运行周期相同。也就是说,上述服务器返回的第一密钥将被缓存到内存中,当客户端运行的情况下,则可以从内存中直接读取第一密钥来执行加密处理或解密处理;但当客户端停止运行,如客户端进程被终端设备强制杀死的情况下,则内存的第一密钥也将随之被清除,这里客户端就需要再次发起密钥获取请求(即第二密钥获取请求),以请求再次获取第一密钥。
2)当第一密钥在客户端的内存中的存储时长已达到有效时长的情况下,第一密钥将从有效使用状态调整为无效使用状态,则确定客户端将无法查找到处于有效使用状态的第一密钥。
在本实施例中,还可以但不限于为第一密钥配置有效时长,当第一密钥在内存中的存储时长达到有效时长的情况下,则视为第一密钥已过期,需将其从有效使用状态调整为无效使用状态。这里客户端在查找不到处于有效使用状态的第一密钥的情况下,也需要再次发起密钥获取请求(即第二密钥获取请求),以请求再次获取处于有效使用状态的第一密钥。
通过本实施例,在客户端中无法查找到处于有效使用状态的第一密钥的情况下,客户端将向服务器发送用于携带目标账号的账号标识和所保存的第一密钥指示字段的第二密钥获取请求,以请求再次获取第一密钥。从而使客户端可以结合服务器来生成并获取客户端所需的第一密钥,以保证密钥获取的安全性。
作为一种可选的实施方案,客户端利用第一密钥对数据进行加密处理或解密处理包括:
S1,在获取到数据读取指令的情况下,客户端利用第一密钥对所要读取的数据进行解密处理;
S2,在获取到数据写入指令的情况下,客户端利用第一密钥对所要写入的数据进行加密处理;
S3,其中,在客户端被指示停止运行的情况下,客户端的内存中所存储的第一密钥将被清除。
可选地,在本实施例中,上述客户端被指示停止运行的情况可以包括但不限于:客户端中目标账号退出登录、客户端被终端设备强制杀次(将不再占用CPU)、客户端被卸载等。例如,当客户端中目标账号退出登录后,则客户端内存中所存储的第一密钥也将随之被清除。
具体结合以下示例进行说明。以将上述密钥获取方法应用到游戏应用中为例进行说明。
假设当前角色请求装备游戏道具,游戏应用的客户端获取到数据读取指令用于指示读取该游戏道具的道具数据,则游戏应用的客户端可以但不限于利用上述第一密钥对所要读取的道具数据进行解密处理,以获取上述游戏道具,并将该游戏道具装备到当前角色上。
假设当前角色请求将目标数额的虚拟资源转移到服务器,以交换获取游戏道具。游戏应用的客户端获取到的数据写入指令用于指示将上述获取到的游戏道具的道具数据写入客户端本地。则游戏应用的客户端可以但不限于利用上述第一密钥对所要写入的道具数据进行加密处理,并加密后的游戏道具的道具数据写入客户端本地。
通过本实施例,客户端所要执行的读写操作将依赖于服务器生成并返回的第一密钥,且该第一密钥的生命周期与客户端的停止周期相同,当客户端被停止运行的情况下,第一密钥也将随之被清除,需要再次向服务器请求获取第一密钥。通过上述方式实现客户端结合服务器来生成第一密钥,而不再有客户端单方生成密钥,从而进一步保证密钥获取的安全性。
作为一种可选的实施方案,在客户端向服务器发送第一密钥获取请求之后,还包括:
S1,服务器响应第一密钥获取请求生成第一密钥及密钥版本信息;
S2,服务器利用目标账号的账号标识及密钥版本信息生成第二密钥;
S3,服务器根据利用第二密钥对目标账号的账号标识及第一密钥进行加密处理后的处理结果,得到第一密钥指示字段;
S4,服务器将第一密钥及第一密钥指示字段发送给客户端。
具体结合图6所示对上述客户端与服务器之间通过交互以获取密钥的过程进行说明。
假设客户端602通过与服务器604之间的交互来获取所要使用的密钥。其中,在本示例中,客户端602与服务器604交互所使用的第一密钥指示字段以结构ClientKeyEncryptInfo为例。结构ClientKeyEncryptInfo中包括以下至少两个字段:KeyVersion,用于加密EncryptInfo的密钥生成版本;及Infobuffer,用于保存经过AES加密的密钥信息EncryptInfo。可选地,上述密钥信息EncryptInfo在本示例中包括至少两个字段:目标账号的账号标识ID-1,及客户端所要使用的第一密钥key。具体步骤可以如下:
如步骤S602,客户端602向服务器604发送第一密钥获取请求(假设为首次发送的密钥获取请求)。服务器604将执行步骤S604-S612,先为账号标识ID-1随机生成第一密钥key及密钥版本信息KeyVersion,然后使用密钥版本信息KeyVersion生成第二密钥keyforkey。接着服务器604使用第二密钥keyforkey对携带有以下字段的密钥信息EncryptInfo进行加密:账号标识ID-1与第一密钥key,生成加密后的密钥信息EncryptInfo。并将加密后的密钥信息EncryptInfo序列化,得到第二密钥指示子字段Infobuffer。将密钥版本信息KeyVersion作为第一密钥指示子字段,与第二密钥指示子字段Infobuffer组合,以生成第一密钥指示字段ClientKeyEncryptInfo。最后,服务器604通过步骤S614将上述第一密钥key和第一密钥指示字段ClientKeyEncryptInfo返回客户端602。
客户端602在获取到上述第一密钥key和第一密钥指示字段ClientKeyEncryptInfo之后,执行步骤S616。如S616-1,比对获取到的第一密钥指示字段ClientKeyEncryptInfo与本地保存的密钥指示字段,在二者不同的情况下,将本地保存的密钥指示字段替换为第一密钥指示字段。如步骤S616-2,使用第一密钥key对客户端中的数据进行加密处理或解密处理。然后,客户端602在内存中无法查找处于有效使用状态的第一密钥key的情况下,则执行步骤S618,发送第二密钥获取请求,其中,该第二密钥获取请求中携带有已存储的第一密钥指示字段ClientKeyEncryptInfo。
服务器604在获取到上述第二密钥获取请求之后,执行步骤S620-S624,利用第一密钥指示字段ClientKeyEncryptInfo中的第一密钥指示子字段的密钥版本信息KeyVersion生成第三密钥key’,并使用该第三密钥key’对第一密钥指示字段ClientKeyEncryptInfo中的第二密钥指示子字段Infobuffer进行解密,得到密钥信息EncryptInfo。然后,对密钥信息EncryptInfo中的账号标识ID-2进行身份验证。其中,在验证通过的情况下,则获取之前已生成的第一密钥key;在验证未通过的情况下,重复执行上述步骤S604-S612,以获取新的第四密钥key’,及新的第二密钥指示字段ClientKeyEncryptInfo。最后,执行步骤S626,服务器604将获取到的第一密钥返回给客户端602,或者,服务器604将获取到的第四密钥和第二密钥指示字段返回给客户端602。
通过本实施例,客户端通过与服务器之间的交互,来获取为该客户端所使用的账号随机生成的第一密钥与第一密钥指示字段,而不再由客户端单方生成密钥,从而避免客户端获取的密钥容易被逆向解密的问题,进而保证了密钥获取的安全性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一方面,还提供了一种密钥获取方法。作为一种可选的示例,如图7所示,应用于服务器中的密钥获取方法可以包括:
S702,服务器获取客户端发送的第一密钥获取请求,其中,第一密钥获取请求中携带有用于登录客户端的第一账号的第一账号标识;
S704,响应第一密钥获取请求,服务器生成第一密钥及与第一密钥相关联的第一密钥指示字段,其中,第一密钥指示字段中携带有加密后与第一账号标识相匹配的密钥信息;
S706,服务器将第一密钥及第一密钥指示字段发送给客户端,其中,在客户端无法查找到处于有效使用状态的第一密钥的情况下,服务器将接收客户端所发送的第一密钥指示字段以请求再次获取第一密钥。
可选地,上述密钥获取方法可以但不限于应用于在客户端的运行过程中需要通过密钥验证的方式来完成运行过程的场景中。例如,在登录客户端的过程中,需要对用户的登录身份识别信息进行密钥验证;又例如,在客户端执行虚拟资源转移的过程中,需要对用户的支付身份识别信息进行密钥验证。诸如上述此类需要对用户的身份识别信息,进行密钥验证方可执行操作的场景都包含在本申请所要保护的范围内,上述仅是示例,本实施例中对此不做任何限定。
以将上述密钥获取方法应用到登录游戏应用的登录过程为例进行说明。
在登录游戏应用的过程中,游戏应用的客户端将发送登录请求(也就是第一密钥获取请求)给游戏应用的服务器,其中,该登录请求中携带有用于登录游戏应用的客户端的目标账号的账号标识。游戏应用的服务器在获取到第一密钥获取请求后,提取其中目标账号的账号标识,并为该目标账号随机生成第一密钥,及与上述第一密钥相关联,且携带有加密后与目标账号的账号标识相匹配的第一密钥指示字段。游戏应用的服务器将该第一密钥与第一密钥指示字段发送给游戏应用的客户端,以使游戏应用的客户端可以利用返回的第一密钥登录游戏应用的客户端,并对游戏应用的客户端中的游戏数据执行加密处理或解密处理;此外,游戏应用的客户端还可以保存游戏应用的服务器所返回第一密钥指示字段,以便于请求再次获取无法在游戏应用的客户端中查找到的处于有效使用状态的第一密钥。也就是说,游戏应用的客户端将不再仅利用本地存储的特征信息来单方生成密钥,而是通过与服务器进行交互,获取服务器为目标账号所生成的密钥,以达到提高密钥获取的安全性的目的,进而相关技术中避免密钥容易被逆向解密的问题。
例如,结合图3所示进行说明。如图3所示,客户端302通过步骤S302向服务器304发送第一密钥获取请求。服务器304在接收到上述第一密钥获取请求之后,通过步骤S304随机生成第一密钥,并使用随机生成的第一密钥及与第一密钥获取请求中携带的目标账号的账号标识来生成第一密钥指示字段。在生成第一密钥指示字段后,服务器304通过步骤S306将生成的第一密钥与第一密钥指示字段返回给客户端302,客户端302保存第一密钥指示字段,并使用接收到的第一密钥进行加密解密处理。
可选地,在本实施例中,上述第一密钥指示字段可以但不限于为结构ClientKeyEncryptInfo中所包含的字段。结构ClientKeyEncryptInfo用于在客户端和服务器之间进行数据交互时使用。其中,该结构ClientKeyEncryptInfo在本实施例中可以包括但不限于至少两个字段:KeyVersion,用于加密EncryptInfo的密钥生成版本;及Infobuffer,用于保存经过加密的密钥信息EncryptInfo。可选地,上述密钥信息EncryptInfo在本实施例中可以包括但不限于至少两个字段:用户标识ID,及客户端执行加密处理或解密处理所要使用的第一密钥key。
可选地,服务器在获取到第一密钥获取请求之后,第一密钥获取请求中携带有第一账号的用户标识ID。服务器为第一账号随机生成第一密钥key与第一密钥版本信息KeyVersion,服务器使用KeyVersion与第一账号的ID生成第二密钥,并使用第二密钥加密EncryptInfo,将加密后的EncryptInfo保存到Infobuffer中,并将Infobuffer与KeyVersion保存到ClientKeyEncryptInfo中。服务器将保存有数据的ClientKeyEncryptInfo与第一密钥Key返回给客户端,客户端保存ClientKeyEncryptInfo并使用第一密钥Key进行加密解密。
可选地,由于ClientKeyEncryptInfo结构中包括密钥生成版本KeyVersion与用于保存经过加密的密钥信息EncryptInfo的Infobuffer,因此,在获取到KeyVersion与Infobuffer之后,可以将上述信息存储到ClientKeyEncryptInfo中。
可选地,当服务器将第一密钥及第一密钥指示字段发送给客户端之后,还可以但不限于接收客户端发送的第二密钥获取请求。
可选地,上述服务器可以但不限于在如下情况下接收客户端发送的第二密钥获取请求:
(1)在第一密钥从客户端的内存中被清除的情况下;
(2)在第一密钥在客户端的内存中的存储时长已达到有效时长的情况下。
即,客户端的第一密钥已经无法继续使用,此时,客户端向服务器发送第二密钥获取请求。
可选地,第二密钥获取请求中携带有客户端中存储的第一密钥指示字段与第二账号的第二账号标识。服务器在获取到第一密钥指示字段后,可以但不限于获取第一密钥指示字段中的密钥版本信息,并利用第二账号的标识及密钥版本信息生成第三密钥。服务器使用第三密钥对第一密钥指示字段中的第二密钥指示子字段进行解密。
仍以上述第一密钥指示字段为结构ClientKeyEncryptInfo中所包含的字段为例,服务器在获取到第二密钥获取请求之后,第二密钥获取请求中携带有第二账号的用户标识ID与客户端保存的ClientKeyEncryptInfo,服务器获取ClientKeyEncryptInfo中的密钥版本信息,并使用第二账号的账号ID与密钥版本信息生成第三密钥,然后使用第三密钥解密ClientKeyEncryptInfo中的Infobuffer。若是服务器使用第三密钥能够解密Infobuffer,则说明第二账号的用户标识ID是相同的,第二账号即为第一账号,此时,服务器可以直接将第一密钥返回给客户端。而如果第三密钥无法解密Infobuffer,则说明第二账号与第一账号不同,此时,服务器为第二账号生成第四密钥与第四密钥指示字段,并将第四密钥与第二密钥指示字段发送给客户端,以使客户端使用第四密钥加密解密。
通过本实施例,通过客户端向服务器发送第一密钥获取请求,服务器响应第一密钥获取请求并返回给客户端第一密钥与第一密钥指示字段的方法,使得客户端直接获取服务器根据第一密钥获取请求而生成的第一密钥及第一密钥指示字段。客户端不仅可以利用第一密钥执行加密处理或解密处理,还可以利用第一密钥指示字段请求再次获取无法在客户端中查找到的处于有效使用状态的第一密钥,从而达到提高第一密钥获取的安全性,进而避免密钥容易被逆向解密的问题。
作为一种可选的实施方案,服务器生成第一密钥及与第一密钥相关联的第一密钥指示字段包括:
S1,服务器为第一账号随机生成第一密钥及与第一密钥相关联的密钥版本信息;
S2,服务器利用第一账号标识及密钥版本信息生成第二密钥;
S3,服务器根据利用第二密钥对第一账号的第一账号标识及第一密钥进行加密处理后的处理结果,得到第一密钥指示字段。
可选地,在本实施例中,上述第二密钥可以但不限于为服务器根据第一密钥的密钥版本信息所生成的密钥,用于对第一密钥的密钥信息(如EncryptInfo)进行加密,这里第二密钥可以但不限于用keyforkey表示。
具体结合图4所示示例进行说明。假设服务器在获取到客户端发送的第一密钥获取请求之后,从第一密钥获取请求中提取出目标账号的账号标识ID-1。然后,服务器可以但不限于执行图4所示步骤:通过步骤S402,服务器根据第一密钥获取请求随机生成第一密钥key与第一密钥版本信息KeyVersion,并通过步骤S404,使用第一密钥版本信息KeyVersion与上述账号标识ID-1生成第二密钥keyforkey,服务器通过步骤S406,使用第二密钥keyforkey对密钥信息EncryptInfo进行加密,其中,密钥信息EncryptInfo中携带有目标账号的账号标识ID-1及客户端所使用的密钥key,进而得到携带有加密后的密钥信息EncryptInfo的第一密钥指示字段,如结构ClientKeyEncryptInfo。然后,通过步骤S408,服务器将返回第一密钥与第一密钥指示字段给客户端,以使客户端使用第一密钥进行加密解密,并保存第一密钥指示字段。
通过本实施例,通过服务器为第一账号随机生成第一密钥与第一密钥的密钥版本信息,并利用第一账号标志语蜜月版本信息生成第二密钥以及使用第二密钥对第一账号标识及第一密钥进行加密处理后的处理结果得到第一密钥指示字段,从而可以使服务器结合客户端来生成第一密钥与第一密钥指示字段,避免了客户端容易逆向解密的问题,保证了使用获取到的密钥对数据进行加密解密的安全性。
作为一种可选的实施方案,服务器根据利用第二密钥对第一账号标识及第一密钥进行加密处理后的处理结果,得到第一密钥指示字段包括:
S1,服务器将与第一密钥相关联的密钥版本信息,作为第一密钥指示子字段;
S2,服务器将利用处理结果,作为第二密钥指示子字段;
S3,服务器组合第一密钥指示子字段及第二密钥指示子字段,得到第一密钥指示字段。
可选地,上述第一密钥指示子字段为第一密钥相关联的密钥版本信息KeyVersion,而第二密钥指示子字段为使用第二密钥对第一账号的用户标识ID与第一密钥加密后得到的Infobuffer。服务器将KeyVersion与Infobuffer保存到ClientKeyEncryptInfo中,从而在客户端与服务器之间传递ClientKeyEncryptInfo来完成客户端与服务器之间的密钥的传输。
通过本实施例,通过将第一密钥指示子字段及第二密钥指示子字段组合得到第一密钥指示字段,从而可以在客户端与服务器之间传递第一密钥指示字段,避免了客户端容易逆向解密的问题,保证了使用获取到的密钥对数据进行加密解密的安全性。
作为一种可选的实施方案,在服务器将第一密钥及第一密钥指示字段发送给客户端之后,还包括:
S1,服务器获取客户端发送的第二密钥获取请求,其中,第二密钥获取请求中携带有客户端中当前存储的第一密钥指示字段及当前用于登录客户端的第二账号的第二账号标识;
S2,服务器获取第一密钥指示字段中第一密钥指示子字段所指示的密钥版本信息;
S3,服务器利用第二账号标识及第一密钥指示子字段所指示的密钥版本信息生成第三密钥;
S4,服务器利用第三密钥对第一密钥指示字段中的第二密钥指示子字段进行解密。
仍以上述第一密钥指示字段为结构ClientKeyEncryptInfo中所包含的字段为例,服务器在获取到第二密钥获取请求之后,第二密钥获取请求中携带有第二账号的用户标识ID与客户端保存的ClientKeyEncryptInfo,服务器获取ClientKeyEncryptInfo中的密钥版本信息,并使用第二账号的账号ID与密钥版本信息生成第三密钥,然后使用第三密钥解密ClientKeyEncryptInfo中的Infobuffer。
通过本实施例,通过上述方法生成第三密钥,并使用第三密钥对第二密钥指示子字段进行解密,从而实现了对第一密钥进行保护的效果,提高了使用获取到的第一密钥对数据进行加密与解密的安全性。
作为一种可选的实施方案,服务器利用第三密钥对第一密钥指示字段中的第二密钥指示子字段进行解密包括:
1)在服务器解密成功的情况下,服务器确定第二账号标识与第一账号标识为相同账号标识,并将为第一账号生成的第一密钥发送给当前使用第二账号标识登录的客户端;
2)在服务器解密失败的情况下,服务器确定第二账号标识与第一账号标识为不同账号标识,则服务器将为第二账号生成第四密钥及与第四密钥相关联的第二密钥指示字段,其中,第二密钥指示字段中携带有加密后与第二账号标识相匹配的密钥信息;服务器将把第四密钥及第二密钥指示字段发送给当前使用第二账号标识登录的客户端。
可选地,继续结合上述第一密钥指示字段为结构ClientKeyEncryptInfo中所包含的字段的情况进行说明。若是服务器使用第三密钥能够解密Infobuffer,则说明第二账号的用户标识ID是相同的,第二账号即为第一账号,此时,服务器可以直接将第一密钥返回给客户端。而如果第三密钥无法解密Infobuffer,则说明第二账号与第一账号不同,此时,服务器为第二账号生成第四密钥与第四密钥指示字段,并将第四密钥与第二密钥指示字段发送给客户端,以使客户端使用第四密钥加密解密。
通过本实施例,通过上述方法生成第三密钥,并使用第三密钥对第二密钥指示子字段进行解密,从而实现了对第一密钥进行保护的效果,提高了使用获取到的第一密钥对数据进行加密与解密的安全性。
具体结合图6所示对上述客户端与服务器之间通过交互以获取密钥的过程进行说明。
假设客户端602通过与服务器604之间的交互来获取所要使用的密钥。其中,在本示例中,客户端602与服务器604交互所使用的第一密钥指示字段以结构ClientKeyEncryptInfo为例。结构ClientKeyEncryptInfo中包括以下至少两个字段:KeyVersion,用于加密EncryptInfo的密钥生成版本;及Infobuffer,用于保存经过AES加密的密钥信息EncryptInfo。可选地,上述密钥信息EncryptInfo在本示例中包括至少两个字段:目标账号的账号标识ID-1,及客户端所要使用的第一密钥key。具体步骤可以如下:
如步骤S602,客户端602向服务器604发送第一密钥获取请求(假设为首次发送的密钥获取请求)。服务器604将执行步骤S604-S612,先为账号标识ID-1随机生成第一密钥key及密钥版本信息KeyVersion,然后使用密钥版本信息KeyVersion生成第二密钥keyforkey。接着服务器604使用第二密钥keyforkey对携带有以下字段的密钥信息EncryptInfo进行加密:账号标识ID-1与第一密钥key,生成加密后的密钥信息EncryptInfo。并将加密后的密钥信息EncryptInfo序列化,得到第二密钥指示子字段Infobuffer。将密钥版本信息KeyVersion作为第一密钥指示子字段,与第二密钥指示子字段Infobuffer组合,以生成第一密钥指示字段ClientKeyEncryptInfo。最后,服务器604通过步骤S614将上述第一密钥key和第一密钥指示字段ClientKeyEncryptInfo返回客户端602。
客户端602在获取到上述第一密钥key和第一密钥指示字段ClientKeyEncryptInfo之后,执行步骤S616。如S616-1,比对获取到的第一密钥指示字段ClientKeyEncryptInfo与本地保存的密钥指示字段,在二者不同的情况下,将本地保存的密钥指示字段替换为第一密钥指示字段。如步骤S616-2,使用第一密钥key对客户端中的数据进行加密处理或解密处理。然后,客户端602在内存中无法查找处于有效使用状态的第一密钥key的情况下,则执行步骤S618,发送第二密钥获取请求,其中,该第二密钥获取请求中携带有已存储的第一密钥指示字段ClientKeyEncryptInfo。
服务器604在获取到上述第二密钥获取请求之后,执行步骤S620-S624,利用第一密钥指示字段ClientKeyEncryptInfo中的第一密钥指示子字段的密钥版本信息KeyVersion生成第三密钥key’,并使用该第三密钥key’对第一密钥指示字段ClientKeyEncryptInfo中的第二密钥指示子字段Infobuffer进行解密,得到密钥信息EncryptInfo。然后,对密钥信息EncryptInfo中的账号标识ID-2进行身份验证。其中,在验证通过的情况下,则获取之前已生成的第一密钥key;在验证未通过的情况下,重复执行上述步骤S604-S612,以获取新的第四密钥key’,及新的第二密钥指示字段ClientKeyEncryptInfo。最后,执行步骤S626,服务器604将获取到的第一密钥返回给客户端602,或者,服务器604将获取到的第四密钥和第二密钥指示字段返回给客户端602。
根据本发明实施例的又一个方面,还提供了一种用于实施上述密钥获取方法的密钥获取装置,上述装置运行于客户端中,如图8所示,该装置包括:
(1)第一发送单元802,用于向服务器发送第一密钥获取请求,其中,第一密钥获取请求中携带有用于登录客户端的目标账号的账号标识;
(2)第一获取单元804,用于获取服务器响应第一密钥获取请求所生成的第一密钥及与第一密钥相关联的第一密钥指示字段,其中,第一密钥指示字段中携带有加密后与目标账号的账号标识相匹配的密钥信息;
(3)处理单元806,用于利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段,其中,第一密钥指示字段用于在客户端中无法查找到处于有效使用状态的第一密钥的情况下,被客户端发送给服务器以请求再次获取第一密钥。
可选地,上述密钥获取方法可以但不限于应用于在客户端的运行过程中需要通过密钥验证的方式来完成运行过程的场景中。例如,在登录客户端的过程中,需要对用户的登录身份识别信息进行密钥验证;又例如,在客户端执行虚拟资源转移的过程中,需要对用户的支付身份识别信息进行密钥验证。诸如上述此类需要对用户的身份识别信息,进行密钥验证方可执行操作的场景都包含在本申请所要保护的范围内,上述仅是示例,本实施例中对此不做任何限定。
以将上述密钥获取方法应用到登录游戏应用的登录过程为例进行说明。
在登录游戏应用的过程中,游戏应用的客户端将发送登录请求(也就是第一密钥获取请求)给游戏应用的服务器,其中,该登录请求中携带有用于登录游戏应用的客户端的目标账号的账号标识。游戏应用的服务器在获取到第一密钥获取请求后,提取其中目标账号的账号标识,并为该目标账号随机生成第一密钥,及与上述第一密钥相关联,且携带有加密后与目标账号的账号标识相匹配的第一密钥指示字段。游戏应用的服务器将该第一密钥与第一密钥指示字段发送给游戏应用的客户端,以使游戏应用的客户端可以利用返回的第一密钥登录游戏应用的客户端,并对游戏应用的客户端中的游戏数据执行加密处理或解密处理;此外,游戏应用的客户端还可以保存游戏应用的服务器所返回第一密钥指示字段,以便于请求再次获取无法在游戏应用的客户端中查找到的处于有效使用状态的第一密钥。也就是说,游戏应用的客户端将不再仅利用本地存储的特征信息来单方生成密钥,而是通过与服务器进行交互,获取服务器为目标账号所生成的密钥,以达到提高密钥获取的安全性的目的,进而相关技术中避免密钥容易被逆向解密的问题。
通过本实施例,通过客户端向服务器发送第一密钥获取请求,服务器响应第一密钥获取请求并返回给客户端第一密钥与第一密钥指示字段的方法,使得客户端直接获取服务器根据第一密钥获取请求而生成的第一密钥及第一密钥指示字段。客户端不仅可以利用第一密钥执行加密处理或解密处理,还可以利用第一密钥指示字段请求再次获取无法在客户端中查找到的处于有效使用状态的第一密钥,从而达到提高第一密钥获取的安全性,进而避免密钥容易被逆向解密的问题。
作为一种可选的实施方案,第一获取单元804包括:
(1)获取模块,用于获取服务器为目标账号随机生成的第一密钥,及服务器利用第二密钥进行加密处理所得到的第一密钥指示字段,其中,第二密钥为服务器利用与第一密钥相关联的密钥版本信息所生成的密钥。
通过本实施例,客户端所获取到的第一密钥指示字段为服务器利用第二密钥加密后得到的密钥指示字段,这里第二密钥为服务器利用与第一密钥相关联的密钥版本信息所生成的密钥。也就是客户端结合服务器来生成用于执行加密或解密处理的第一密钥及第一密钥指示字段,将避免密钥容易被逆向解密的问题,进而保证了使用获取到的密钥对数据进行加密解密的安全性。
作为一种可选的实施方案,上述装置还包括:第二发送单元,用于在客户端中无法查找到处于有效使用状态的第一密钥的情况下,将向服务器发送用于请求再次获取第一密钥的第二密钥获取请求,其中,第二密钥获取请求中携带目标账号的账号标识和所保存的第一密钥指示字段。
通过本实施例,在客户端中无法查找到处于有效使用状态的第一密钥的情况下,客户端将向服务器发送用于携带目标账号的账号标识和所保存的第一密钥指示字段的第二密钥获取请求,以请求再次获取第一密钥。从而使客户端可以结合服务器来生成并获取客户端所需的第一密钥,以保证密钥获取的安全性。
作为一种可选的实施方案,上述装置还包括:
1)第一确定单元,用于在客户端利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段之后,当第一密钥从客户端的内存中被清除的情况下,则确定客户端将无法查找到处于有效使用状态的第一密钥;或者
2)第二确定单元,用于在客户端利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段之后,当第一密钥在客户端的内存中的存储时长已达到有效时长的情况下,第一密钥将从有效使用状态调整为无效使用状态,则确定客户端将无法查找到处于有效使用状态的第一密钥。
通过本实施例,客户端所要执行的读写操作将依赖于服务器生成并返回的第一密钥,且该第一密钥的生命周期与客户端的停止周期相同,当客户端被停止运行的情况下,第一密钥也将随之被清除,需要再次向服务器请求获取第一密钥。通过上述方式实现客户端结合服务器来生成第一密钥,而不再有客户端单方生成密钥,从而进一步保证密钥获取的安全性。
作为一种可选的实施方案,处理单元806包括:
(1)第一处理模块,用于在获取到数据读取指令的情况下,客户端利用第一密钥对所要读取的数据进行解密处理;
(2)第二处理模块,用于在获取到数据写入指令的情况下,客户端利用第一密钥对所要写入的数据进行加密处理;
(3)清除模块,用于在客户端被指示停止运行的情况下,客户端的内存中所存储的第一密钥将被清除。
通过本实施例,客户端通过与服务器之间的交互,来获取为该客户端所使用的账号随机生成的第一密钥与第一密钥指示字段,而不再由客户端单方生成密钥,从而避免客户端获取的密钥容易被逆向解密的问题,进而保证了密钥获取的安全性。
据本发明实施例的又一个方面,还提供了一种用于实施上述密钥获取方法的密钥获取装置,上述装置中应用于服务器中,如图9所示,该装置包括:
(1)第一获取单元902,用于获取客户端发送的第一密钥获取请求,其中,第一密钥获取请求中携带有用于登录客户端的第一账号的第一账号标识;
(2)第一生成单元904,用于响应第一密钥获取请求,生成第一密钥及与第一密钥相关联的第一密钥指示字段,其中,第一密钥指示字段中携带有加密后与第一账号标识相匹配的密钥信息;
(3)发送单元906,用于将第一密钥及第一密钥指示字段发送给客户端,其中,在客户端无法查找到处于有效使用状态的第一密钥的情况下,服务器将接收客户端所发送的第一密钥指示字段以请求再次获取第一密钥。
可选地,上述密钥获取方法可以但不限于应用于在客户端的运行过程中需要通过密钥验证的方式来完成运行过程的场景中。例如,在登录客户端的过程中,需要对用户的登录身份识别信息进行密钥验证;又例如,在客户端执行虚拟资源转移的过程中,需要对用户的支付身份识别信息进行密钥验证。诸如上述此类需要对用户的身份识别信息,进行密钥验证方可执行操作的场景都包含在本申请所要保护的范围内,上述仅是示例,本实施例中对此不做任何限定。
以将上述密钥获取方法应用到登录游戏应用的登录过程为例进行说明。
在登录游戏应用的过程中,游戏应用的客户端将发送登录请求(也就是第一密钥获取请求)给游戏应用的服务器,其中,该登录请求中携带有用于登录游戏应用的客户端的目标账号的账号标识。游戏应用的服务器在获取到第一密钥获取请求后,提取其中目标账号的账号标识,并为该目标账号随机生成第一密钥,及与上述第一密钥相关联,且携带有加密后与目标账号的账号标识相匹配的第一密钥指示字段。游戏应用的服务器将该第一密钥与第一密钥指示字段发送给游戏应用的客户端,以使游戏应用的客户端可以利用返回的第一密钥登录游戏应用的客户端,并对游戏应用的客户端中的游戏数据执行加密处理或解密处理;此外,游戏应用的客户端还可以保存游戏应用的服务器所返回第一密钥指示字段,以便于请求再次获取无法在游戏应用的客户端中查找到的处于有效使用状态的第一密钥。也就是说,游戏应用的客户端将不再仅利用本地存储的特征信息来单方生成密钥,而是通过与服务器进行交互,获取服务器为目标账号所生成的密钥,以达到提高密钥获取的安全性的目的,进而相关技术中避免密钥容易被逆向解密的问题。
通过本实施例,通过客户端向服务器发送第一密钥获取请求,服务器响应第一密钥获取请求并返回给客户端第一密钥与第一密钥指示字段的方法,使得客户端直接获取服务器根据第一密钥获取请求而生成的第一密钥及第一密钥指示字段。客户端不仅可以利用第一密钥执行加密处理或解密处理,还可以利用第一密钥指示字段请求再次获取无法在客户端中查找到的处于有效使用状态的第一密钥,从而达到提高第一密钥获取的安全性,进而避免密钥容易被逆向解密的问题。
作为一种可选的实施方案,上述第一生成单元904包括:
(1)第一生成模块,用于为第一账号随机生成第一密钥及与第一密钥相关联的密钥版本信息;
(2)第二生成模块,用于利用第一账号标识及密钥版本信息生成第二密钥;
(3)处理模块,用于根据利用第二密钥对第一账号的第一账号标识及第一密钥进行加密处理后的处理结果,得到第一密钥指示字段。
通过本实施例,通过服务器为第一账号随机生成第一密钥与第一密钥的密钥版本信息,并利用第一账号标志语蜜月版本信息生成第二密钥以及使用第二密钥对第一账号标识及第一密钥进行加密处理后的处理结果得到第一密钥指示字段,从而可以使服务器结合客户端来生成第一密钥与第一密钥指示字段,避免了客户端容易逆向解密的问题,保证了使用获取到的密钥对数据进行加密解密的安全性。
作为一种可选的实施方案,上述处理模块包括:
(1)第一确定子模块,用于将与第一密钥相关联的密钥版本信息,作为第一密钥指示子字段;
(2)第二确定子模块,用于将处理结果,作为第二密钥指示子字段;
(3)组合子模块,用于组合第一密钥指示子字段及第二密钥指示子字段,得到第一密钥指示字段。
通过本实施例,通过将第一密钥指示子字段及第二密钥指示子字段组合得到第一密钥指示字段,从而可以在客户端与服务器之间传递第一密钥指示字段,避免了客户端容易逆向解密的问题,保证了使用获取到的密钥对数据进行加密解密的安全性。
作为一种可选的实施方案,上述装置还包括:
(1)第二获取单元,用于在服务器将第一密钥及第一密钥指示字段发送给客户端之后,获取客户端发送的第二密钥获取请求,其中,第二密钥获取请求中携带有客户端中当前存储的第一密钥指示字段及当前用于登录客户端的第二账号的第二账号标识;
(2)第三获取单元,用于获取第一密钥指示字段中第一密钥指示子字段所指示的密钥版本信息;
(3)第二生成单元,用于第二账号的第二账号标识及第一密钥指示子字段所指示的密钥版本信息生成第三密钥;
(4)第四获取单元,用于利用第三密钥对第一密钥指示字段中的第二密钥指示子字段进行解密。
通过本实施例,通过上述方法生成第三密钥,并使用第三密钥对第二密钥指示子字段进行解密,从而实现了对第一密钥进行保护的效果,提高了使用获取到的第一密钥对数据进行加密与解密的安全性。
作为一种可选的实施方案,上述第四获取单元包括:
(1)第一确定模块,用于在服务器解密成功的情况下,服务器确定第二账号标识与第一账号标识为相同账号标识,并将为第一账号生成的第一密钥发送给当前使用第二账号标识登录的客户端;
(2)第二确定模块,用于在服务器解密失败的情况下,服务器确定第二账号标识与第一账号标识为不同账号标识,则服务器将为第二账号生成第四密钥及与第四密钥相关联的第二密钥指示字段,其中,第二密钥指示字段中携带有加密后与第二账号标识相匹配的密钥信息;服务器将把第四密钥及第二密钥指示字段发送给当前使用第二账号标识登录的客户端。
通过本实施例,通过上述方法生成第三密钥,并使用第三密钥对第二密钥指示子字段进行解密,从而实现了对第一密钥进行保护的效果,提高了使用获取到的第一密钥对数据进行加密与解密的安全性。
根据本发明实施例的又一个方面,还提供了一种用于实施上述密钥获取方法的电子装置,如图10所示,该电子装置包括存储器1002和处理器1004,该存储器1002中存储有计算机程序,该处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,客户端向服务器发送第一密钥获取请求,其中,第一密钥获取请求中携带有用于登录客户端的目标账号的账号标识;
S2,客户端获取服务器响应第一密钥获取请求所生成的第一密钥及与第一密钥相关联的第一密钥指示字段,其中,第一密钥指示字段中携带有加密后与目标账号的账号标识相匹配的密钥信息;
S3,客户端利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段,其中,第一密钥指示字段用于在客户端中无法查找到处于有效使用状态的第一密钥的情况下,被客户端发送给服务器以请求再次获取第一密钥。
可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的密钥获取方法和装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的密钥获取方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1002具体可以但不限于用于存储第一密钥与第一密钥指示字段等信息。作为一种示例,如图10所示,上述存储器1002中可以但不限于包括上述密钥获取装置中的第一发送单元802、第一获取单元804和处理单元806。此外,还可以包括但不限于上述密钥获取装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1006包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1006为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器1008,用于显示所加密的内容;和连接总线1010,用于连接上述电子装置中的各个模块部件。
根据本发明实施例的又一个方面,还提供了一种用于实施上述密钥获取方法的电子装置,如图11所示,该电子装置包括存储器1102和处理器1104,该存储器1102中存储有计算机程序,该处理器1104被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,服务器获取客户端发送的第一密钥获取请求,其中,第一密钥获取请求中携带有用于登录客户端的第一账号的第一账号标识;
S2,响应第一密钥获取请求,服务器生成第一密钥及与第一密钥相关联的第一密钥指示字段,其中,第一密钥指示字段中携带有加密后与第一账号标识相匹配的密钥信息;
S3,服务器将第一密钥及第一密钥指示字段发送给客户端,其中,在客户端无法查找到处于有效使用状态的第一密钥的情况下,服务器将接收客户端所发送的第一密钥指示字段以请求再次获取第一密钥。
可选地,本领域普通技术人员可以理解,图11所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
其中,存储器1102可用于存储软件程序以及模块,如本发明实施例中的密钥获取方法和装置对应的程序指令/模块,处理器1104通过运行存储在存储器1102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的密钥获取方法。存储器1102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1102可进一步包括相对于处理器1104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1102具体可以但不限于用于存储第二密钥、第一账号标识、第二账号标识等信息。作为一种示例,如图11所示,上述存储器1102中可以但不限于包括上述密钥获取装置中的第一获取单元902、第一生成单元904和发送单元906。此外,还可以包括但不限于上述密钥获取装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1106包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1106为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:连接总线1108,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,客户端向服务器发送第一密钥获取请求,其中,第一密钥获取请求中携带有用于登录客户端的目标账号的账号标识;
S2,客户端获取服务器响应第一密钥获取请求所生成的第一密钥及与第一密钥相关联的第一密钥指示字段,其中,第一密钥指示字段中携带有加密后与目标账号的账号标识相匹配的密钥信息;
S3,客户端利用第一密钥对数据进行加密处理或解密处理,并保存第一密钥指示字段,其中,第一密钥指示字段用于在客户端中无法查找到处于有效使用状态的第一密钥的情况下,被客户端发送给服务器以请求再次获取第一密钥。
或者
上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,服务器获取客户端发送的第一密钥获取请求,其中,第一密钥获取请求中携带有用于登录客户端的第一账号的第一账号标识;
S2,响应第一密钥获取请求,服务器生成第一密钥及与第一密钥相关联的第一密钥指示字段,其中,第一密钥指示字段中携带有加密后与第一账号标识相匹配的密钥信息;
S3,服务器将第一密钥及第一密钥指示字段发送给客户端,其中,在客户端无法查找到处于有效使用状态的第一密钥的情况下,服务器将接收客户端所发送的第一密钥指示字段以请求再次获取第一密钥。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (15)

1.一种密钥获取方法,其特征在于,包括:
客户端向服务器发送第一密钥获取请求,其中,所述第一密钥获取请求中携带有用于登录所述客户端的目标账号的账号标识;
所述客户端获取所述服务器响应所述第一密钥获取请求所生成的第一密钥及与所述第一密钥相关联的第一密钥指示字段,其中,所述第一密钥指示字段中携带有加密后与所述目标账号的账号标识相匹配的密钥信息;
所述客户端利用所述第一密钥对数据进行加密处理或解密处理,并保存所述第一密钥指示字段,其中,所述第一密钥指示字段用于在所述客户端中无法查找到处于有效使用状态的所述第一密钥的情况下,被所述客户端发送给所述服务器以请求再次获取所述第一密钥。
2.根据权利要求1所述的方法,其特征在于,所述客户端获取所述服务器响应所述第一密钥获取请求所生成的第一密钥及与所述第一密钥相关联的第一密钥指示字段包括:
所述客户端获取所述服务器为所述目标账号随机生成的所述第一密钥,及所述服务器利用第二密钥进行加密处理所得到的所述第一密钥指示字段,其中,所述第二密钥为所述服务器利用与所述第一密钥相关联的密钥版本信息所生成的密钥。
3.根据权利要求1所述的方法,其特征在于,在所述客户端中无法查找到处于所述有效使用状态的所述第一密钥的情况下,所述方法还包括:
所述客户端将向所述服务器发送用于请求再次获取所述第一密钥的第二密钥获取请求,其中,所述第二密钥获取请求中携带所述目标账号的账号标识和所保存的所述第一密钥指示字段。
4.根据权利要求3所述的方法,其特征在于,在所述客户端利用所述第一密钥对数据进行加密处理或解密处理,并保存所述第一密钥指示字段之后,还包括:
当所述第一密钥从所述客户端的内存中被清除的情况下,则确定所述客户端将无法查找到处于所述有效使用状态的所述第一密钥;或者
当所述第一密钥在所述客户端的内存中的存储时长已达到有效时长的情况下,所述第一密钥将从所述有效使用状态调整为无效使用状态,则确定所述客户端将无法查找到处于所述有效使用状态的所述第一密钥。
5.根据权利要求1所述的方法,其特征在于,所述客户端利用所述第一密钥对数据进行加密处理或解密处理包括:
在获取到数据读取指令的情况下,所述客户端利用所述第一密钥对所要读取的数据进行解密处理;
在获取到数据写入指令的情况下,所述客户端利用所述第一密钥对所要写入的数据进行加密处理;
其中,在所述客户端被指示停止运行的情况下,所述客户端的内存中所存储的所述第一密钥将被清除。
6.根据权利要求2所述的方法,其特征在于,在所述客户端向服务器发送第一密钥获取请求之后,还包括:
所述服务器响应所述第一密钥获取请求生成所述第一密钥及所述密钥版本信息;
所述服务器利用所述目标账号的账号标识及所述密钥版本信息生成所述第二密钥;
所述服务器根据利用所述第二密钥对所述目标账号的账号标识及所述第一密钥进行加密处理后的处理结果,得到所述第一密钥指示字段;
所述服务器将所述第一密钥及所述第一密钥指示字段发送给所述客户端。
7.一种密钥获取方法,其特征在于,还包括:
服务器获取客户端发送的第一密钥获取请求,其中,所述第一密钥获取请求中携带有用于登录所述客户端的第一账号的第一账号标识;
响应所述第一密钥获取请求,所述服务器生成第一密钥及与所述第一密钥相关联的第一密钥指示字段,其中,所述第一密钥指示字段中携带有加密后与所述第一账号标识相匹配的密钥信息;
所述服务器将所述第一密钥及所述第一密钥指示字段发送给所述客户端,其中,在所述客户端无法查找到处于有效使用状态的所述第一密钥的情况下,所述服务器将接收所述客户端所发送的所述第一密钥指示字段以请求再次获取所述第一密钥。
8.根据权利要求7所述的方法,其特征在于,所述服务器生成第一密钥及与所述第一密钥相关联的第一密钥指示字段包括:
所述服务器为所述第一账号随机生成所述第一密钥及与所述第一密钥相关联的密钥版本信息;
所述服务器利用所述第一账号标识及所述密钥版本信息生成第二密钥;
所述服务器根据利用所述第二密钥对所述第一账号标识及所述第一密钥进行加密处理后的处理结果,得到所述第一密钥指示字段。
9.根据权利要求8所述的方法,其特征在于,所述服务器根据利用所述第二密钥对所述第一账号标识及所述第一密钥进行加密处理后的处理结果,得到所述第一密钥指示字段包括:
所述服务器将与所述第一密钥相关联的所述密钥版本信息,作为第一密钥指示子字段;
所述服务器将所述处理结果,作为第二密钥指示子字段;
所述服务器组合所述第一密钥指示子字段及所述第二密钥指示子字段,得到所述第一密钥指示字段。
10.根据权利要求9所述的方法,其特征在于,在所述服务器将所述第一密钥及所述第一密钥指示字段发送给所述客户端之后,还包括:
所述服务器获取所述客户端发送的第二密钥获取请求,其中,所述第二密钥获取请求中携带有所述客户端中当前存储的所述第一密钥指示字段及当前用于登录所述客户端的第二账号的第二账号标识;
所述服务器获取所述第一密钥指示字段中所述第一密钥指示子字段所指示的所述密钥版本信息;
所述服务器利用所述第二账号标识及所述第一密钥指示子字段所指示的所述密钥版本信息生成第三密钥;
所述服务器利用所述第三密钥对所述第一密钥指示字段中的所述第二密钥指示子字段进行解密。
11.根据权利要求10所述的方法,其特征在于,所述服务器利用所述第三密钥对所述第一密钥指示字段中的所述第二密钥指示子字段进行解密包括:
在所述服务器解密成功的情况下,所述服务器确定所述第二账号标识与所述第一账号标识为相同账号标识,并将为所述第一账号生成的所述第一密钥发送给当前使用所述第二账号标识登录的所述客户端;
在所述服务器解密失败的情况下,所述服务器确定所述第二账号标识与所述第一账号标识为不同账号标识,则所述服务器将为所述第二账号生成第四密钥及与所述第四密钥相关联的第二密钥指示字段,其中,所述第二密钥指示字段中携带有加密后与所述第二账号标识相匹配的密钥信息;所述服务器将把所述第四密钥及所述第二密钥指示字段发送给当前使用所述第二账号标识登录的所述客户端。
12.一种密钥获取装置,运行于客户端中,其特征在于,包括:
第一发送单元,用于向服务器发送第一密钥获取请求,其中,所述第一密钥获取请求中携带有用于登录所述客户端的目标账号的账号标识;
第一获取单元,用于获取所述服务器响应所述第一密钥获取请求所生成的第一密钥及与所述第一密钥相关联的第一密钥指示字段,其中,所述第一密钥指示字段中携带有加密后与所述目标账号的账号标识相匹配的密钥信息;
处理单元,用于利用所述第一密钥对数据进行加密处理或解密处理,并保存所述第一密钥指示字段,其中,所述第一密钥指示字段用于在所述客户端中无法查找到处于有效使用状态的所述第一密钥的情况下,被所述客户端发送给所述服务器以请求再次获取所述第一密钥。
13.一种密钥获取装置,应用于服务器中,其特征在于,包括:
第一获取单元,用于获取客户端发送的第一密钥获取请求,其中,所述第一密钥获取请求中携带有用于登录所述客户端的第一账号的第一账号标识;
第一生成单元,用于响应所述第一密钥获取请求,生成第一密钥及与所述第一密钥相关联的第一密钥指示字段,其中,所述第一密钥指示字段中携带有加密后与所述第一账号标识相匹配的密钥信息;
发送单元,用于将所述第一密钥及所述第一密钥指示字段发送给所述客户端,其中,在所述客户端无法查找到处于有效使用状态的所述第一密钥的情况下,所述服务器将接收所述客户端所发送的所述第一密钥指示字段以请求再次获取所述第一密钥。
14.一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至6或7至11任一项中所述的方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至6或7至11任一项中所述的方法。
CN201811394292.6A 2018-11-21 2018-11-21 密钥获取方法和装置、存储介质及电子装置 Active CN110399717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811394292.6A CN110399717B (zh) 2018-11-21 2018-11-21 密钥获取方法和装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811394292.6A CN110399717B (zh) 2018-11-21 2018-11-21 密钥获取方法和装置、存储介质及电子装置

Publications (2)

Publication Number Publication Date
CN110399717A true CN110399717A (zh) 2019-11-01
CN110399717B CN110399717B (zh) 2023-03-14

Family

ID=68322197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811394292.6A Active CN110399717B (zh) 2018-11-21 2018-11-21 密钥获取方法和装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN110399717B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787514A (zh) * 2020-06-28 2020-10-16 海尔优家智能科技(北京)有限公司 设备控制数据的获取方法及装置、存储介质、电子装置
CN112003879A (zh) * 2020-10-22 2020-11-27 腾讯科技(深圳)有限公司 用于虚拟场景的数据传输方法、计算机设备及存储介质
CN112468303A (zh) * 2020-11-17 2021-03-09 天津南大通用数据技术股份有限公司 一种加强数据库网络通信安全性的方法、装置及存储介质
CN112564901A (zh) * 2020-12-08 2021-03-26 浙江三维万易联科技有限公司 密钥的生成方法和系统、存储介质及电子装置
CN113489706A (zh) * 2021-06-30 2021-10-08 北京达佳互联信息技术有限公司 一种数据处理方法、装置、系统、设备及存储介质
CN113973000A (zh) * 2020-07-25 2022-01-25 华为技术有限公司 一种预共享密钥psk的处理方法及装置
CN115119202A (zh) * 2022-06-30 2022-09-27 长城汽车股份有限公司 一种密钥生成的方法、装置、存储介质及车辆
CN116011000A (zh) * 2023-03-27 2023-04-25 北京信安世纪科技股份有限公司 访问方法、装置、及计算设备
CN117195276A (zh) * 2023-11-08 2023-12-08 荣耀终端有限公司 一种数据保护方法及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929307A (zh) * 2014-04-02 2014-07-16 天地融科技股份有限公司 密码输入方法、智能密钥设备以及客户端装置
US20150121491A1 (en) * 2013-10-31 2015-04-30 Tencent Technology (Shenzhen) Company Limited System and method of authenticating user account login request messages
CN104601532A (zh) * 2013-10-31 2015-05-06 腾讯科技(深圳)有限公司 一种登录账户的方法及装置
CN106658493A (zh) * 2016-10-17 2017-05-10 东软集团股份有限公司 密钥管理方法、装置和系统
CN108833607A (zh) * 2018-06-12 2018-11-16 腾讯科技(深圳)有限公司 物理地址获取方法、装置及可读介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150121491A1 (en) * 2013-10-31 2015-04-30 Tencent Technology (Shenzhen) Company Limited System and method of authenticating user account login request messages
CN104601532A (zh) * 2013-10-31 2015-05-06 腾讯科技(深圳)有限公司 一种登录账户的方法及装置
CN103929307A (zh) * 2014-04-02 2014-07-16 天地融科技股份有限公司 密码输入方法、智能密钥设备以及客户端装置
CN106658493A (zh) * 2016-10-17 2017-05-10 东软集团股份有限公司 密钥管理方法、装置和系统
CN108833607A (zh) * 2018-06-12 2018-11-16 腾讯科技(深圳)有限公司 物理地址获取方法、装置及可读介质

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787514B (zh) * 2020-06-28 2024-03-22 海尔优家智能科技(北京)有限公司 设备控制数据的获取方法及装置、存储介质、电子装置
CN111787514A (zh) * 2020-06-28 2020-10-16 海尔优家智能科技(北京)有限公司 设备控制数据的获取方法及装置、存储介质、电子装置
CN113973000A (zh) * 2020-07-25 2022-01-25 华为技术有限公司 一种预共享密钥psk的处理方法及装置
CN112003879A (zh) * 2020-10-22 2020-11-27 腾讯科技(深圳)有限公司 用于虚拟场景的数据传输方法、计算机设备及存储介质
CN112468303A (zh) * 2020-11-17 2021-03-09 天津南大通用数据技术股份有限公司 一种加强数据库网络通信安全性的方法、装置及存储介质
CN112564901B (zh) * 2020-12-08 2023-08-25 三维通信股份有限公司 密钥的生成方法和系统、存储介质及电子装置
CN112564901A (zh) * 2020-12-08 2021-03-26 浙江三维万易联科技有限公司 密钥的生成方法和系统、存储介质及电子装置
CN113489706B (zh) * 2021-06-30 2023-10-10 北京达佳互联信息技术有限公司 一种数据处理方法、装置、系统、设备及存储介质
CN113489706A (zh) * 2021-06-30 2021-10-08 北京达佳互联信息技术有限公司 一种数据处理方法、装置、系统、设备及存储介质
CN115119202A (zh) * 2022-06-30 2022-09-27 长城汽车股份有限公司 一种密钥生成的方法、装置、存储介质及车辆
CN116011000A (zh) * 2023-03-27 2023-04-25 北京信安世纪科技股份有限公司 访问方法、装置、及计算设备
CN117195276A (zh) * 2023-11-08 2023-12-08 荣耀终端有限公司 一种数据保护方法及电子设备
CN117195276B (zh) * 2023-11-08 2024-04-16 荣耀终端有限公司 一种数据保护方法及电子设备

Also Published As

Publication number Publication date
CN110399717B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
CN110399717A (zh) 密钥获取方法和装置、存储介质及电子装置
CN106161359B (zh) 认证用户的方法及装置、注册可穿戴设备的方法及装置
CN110049016B (zh) 区块链的数据查询方法、装置、系统、设备及存储介质
US10122713B2 (en) Method and device for the secure authentication and execution of programs
CN109165957A (zh) 基于区块链的发票数据报销方法、系统及相关设备
CN109067528A (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
CN110502887A (zh) 电子支付方法和装置
CN106452770B (zh) 一种数据加密方法、解密方法、装置和系统
CN104715187A (zh) 用于认证电子通信系统中的节点的方法和装置
CN110198295A (zh) 安全认证方法和装置及存储介质
US8977847B1 (en) Distributed challenge-response authentication
Lin et al. A cloud-based authentication protocol for RFID supply chain systems
CN107172001B (zh) 网站代理服务器的控制方法及装置、密钥代理服务器
CN111131416A (zh) 业务服务的提供方法和装置、存储介质、电子装置
CN103310169A (zh) 一种保护sd卡数据的方法和保护系统
CN108768963A (zh) 可信应用与安全元件的通信方法和系统
CN107465665A (zh) 一种基于指纹识别技术的文件加解密方法
CN109492424A (zh) 数据资产管理方法、数据资产管理装置及计算机可读介质
CN114070614A (zh) 身份认证方法、装置、设备、存储介质和计算机程序产品
CN117240625B (zh) 一种涉及防篡改的数据处理方法、装置及电子设备
CN110380859A (zh) 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统
CN109409109A (zh) 网络服务中的数据处理方法、装置、处理器及服务器
US10396989B2 (en) Method and server for providing transaction keys
CN108322886A (zh) 终端定位数据的鉴权方法和装置
CN114157425B (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