CN113541971B - 基于密钥替换和心跳检验的数据托管方法、装置及设备 - Google Patents
基于密钥替换和心跳检验的数据托管方法、装置及设备 Download PDFInfo
- Publication number
- CN113541971B CN113541971B CN202111090053.3A CN202111090053A CN113541971B CN 113541971 B CN113541971 B CN 113541971B CN 202111090053 A CN202111090053 A CN 202111090053A CN 113541971 B CN113541971 B CN 113541971B
- Authority
- CN
- China
- Prior art keywords
- public key
- data
- data hosting
- client
- hosting server
- 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
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例中提供了一种基于密钥替换和心跳检验的数据托管方法、装置及设备,旨在检测和防范黑客对数据托管服务的攻击行为。其中,数据托管方法包括:接收公钥替换请求,提取出公钥替换请求携带的公钥,并利用提取出的公钥替换数据托管服务器预先保存的公钥;接收数据托管请求,利用数据托管服务器最新保存的公钥对数据托管请求携带的签名信息进行验证,在验证通过的情况下,对数据托管请求携带的待托管数据进行托管处理;接收周期性的心跳信息,利用数据托管服务器最新保存的公钥对心跳信息携带的签名信息进行验证,在验证失败的情况下,确定数据托管服务器受到攻击。
Description
技术领域
本申请涉及数据托管技术领域,具体地,涉及一种基于密钥替换和心跳检验的数据托管方法、装置及设备。
背景技术
相关技术中,用户在自身存储能力有限的情况下,会考虑将自身业务数据托管至专门提供数据托管服务的服务器,也可称为数据托管平台。或者在政策或者行业规则的约束下,用户需要将数据托管至规定的服务器。数据托管的常规手段是:客户端利用自身私钥对待托管数据进行签名,并将待托管数据和签名文件上传给服务器。服务器接收到待托管数据和签名文件后,利用客户端私钥进行验签,在验签通过的情况下,才进行后续的数据托管处理。
然而现有的数据托管方法的安全性偏低,主要体现于当客户端私钥被黑客盗取后,黑客可以借用客户端私钥,伪造数据托管请求,将一些非法数据托管至服务器,导致服务器的存储资源被黑客非法侵占。
发明内容
本申请实施例中提供了一种基于密钥替换和心跳检验的数据托管方法、装置及设备,旨在检测和防范黑客对数据托管服务的攻击行为。
根据本申请实施例的第一个方面,提供了一种基于密钥替换和心跳检验的数据托管方法,所述方法应用于数据托管服务器,所述方法包括:
接收公钥替换请求,提取出所述公钥替换请求携带的公钥,并利用提取出的公钥替换所述数据托管服务器预先保存的公钥;
接收数据托管请求,利用所述数据托管服务器最新保存的公钥对所述数据托管请求携带的签名信息进行验证,在验证通过的情况下,对所述数据托管请求携带的待托管数据进行托管处理;
接收周期性的心跳信息,利用所述数据托管服务器最新保存的公钥对所述心跳信息携带的签名信息进行验证,在验证失败的情况下,确定所述数据托管服务器受到攻击。
根据本申请实施例的第二个方面,提供了一种基于密钥替换和心跳检验的数据托管装置,所述装置应用于数据托管服务器,所述装置包括:
公钥替换模块,用于接收公钥替换请求,提取出所述公钥替换请求携带的公钥,并利用提取出的公钥替换所述数据托管服务器预先保存的公钥;
数据托管模块,用于接收数据托管请求,利用所述数据托管服务器最新保存的公钥对所述数据托管请求携带的签名信息进行验证,在验证通过的情况下,对所述数据托管请求携带的待托管数据进行托管处理;
心跳检验模块,用于接收周期性的心跳信息,利用所述数据托管服务器最新保存的公钥对所述心跳信息携带的签名信息进行验证,在验证失败的情况下,确定所述数据托管服务器受到攻击。
根据本申请实施例的第三个方面,提供了一种电子设备,所述电子设备包括:处理器、存储器以及总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行上述数据托管方法。
采用本申请实施例中提供的数据托管方法、装置或者电子设备,客户端生成新的公私钥对后,可以向数据托管服务器提出公钥替换请求,从而使得数据托管服务器保存最新的公钥。通过生成新的公私钥对,可以降低因旧私钥使用时间过长而被黑客破解的可能性,提高数据托管安全性。并且当数据托管服务器接收到数据托管请求后,利用最新保存的公钥对数据托管请求携带的签名信息进行验证,在验证通过的情况下,才对数据托管请求携带的待托管数据进行托管处理。此外,客户端还周期性地向数据托管服务器发送心跳信息,并利用最新生成的私钥对心跳信息进行签名。数据托管服务器接收到心跳信息后,利用最新保存的公钥对心跳信息携带的签名信息进行验证。如果验证失败,则说明最新保存的公钥不正常,或者说明接收到的心跳信息不正常,从而确定数据托管服务器受到攻击。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一实施例提出的基于密钥替换和心跳检验的数据托管方法的流程示意图;
图2是本申请一实施例提出的待托管数据的处理流程示意图;
图3是本申请一实施例提出的基于密钥替换和心跳检验的数据托管方法的流程示意图;
图4是本申请一实施例提出的基于密钥替换和心跳检验的数据托管装置的结构示意图;
图5是本申请一实施例提供的电子设备的结构框图。
具体实施方式
在实现本申请的过程中,发明人发现,数据托管的常规手段是:客户端利用自身私钥对待托管数据进行签名,并将待托管数据和签名文件上传给服务器。服务器接收到待托管数据和签名文件后,利用客户端私钥进行验签,在验签通过的情况下,才进行后续的数据托管处理。然而现有的数据托管方法的安全性偏低,主要体现于当客户端私钥被黑客盗取后,黑客可以借用客户端私钥,伪造数据托管请求,将一些非法数据托管至服务器,导致服务器的存储资源被黑客非法侵占。
针对上述问题,本申请实施例中提供了一种数据托管方法、装置或者电子设备,客户端生成新的公私钥对后,可以向数据托管服务器提出公钥替换请求,从而使得数据托管服务器保存最新的公钥。通过生成新的公私钥对,可以降低因旧私钥使用时间过长而被黑客破解的可能性,提高数据托管安全性。并且当数据托管服务器接收到数据托管请求后,利用最新保存的公钥对数据托管请求携带的签名信息进行验证,在验证通过的情况下,才对数据托管请求携带的待托管数据进行托管处理。此外,客户端还周期性地向数据托管服务器发送心跳信息,并利用最新生成的私钥对心跳信息进行签名。数据托管服务器接收到心跳信息后,利用最新保存的公钥对心跳信息携带的签名信息进行验证。如果验证失败,则说明最新保存的公钥不正常,或者说明接收到的心跳信息不正常,从而确定数据托管服务器受到攻击。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
参考图1,图1是本申请一实施例提出的基于密钥替换和心跳检验的数据托管方法的流程示意图,该数据托管方法应用于数据托管服务器。如图1所示,该数据托管方法包括以下步骤:
S110:接收公钥替换请求,提取出公钥替换请求携带的公钥,并利用提取出的公钥替换数据托管服务器预先保存的公钥。
本申请中,数据托管服务器在利用提取出的公钥替换预先保存的公钥后,提取出的公钥就成为数据托管服务器最新保存的公钥。
本申请在应用期间,客户端生成新的公私钥对后,可以向数据托管服务器提出公钥替换请求,从而使得数据托管服务器保存最新的公钥。通过生成新的公私钥对,可以降低因旧私钥使用时间过长而被黑客破解的可能性,提高数据托管安全性。
在一些可能的实施方式中,为了提高公钥替换的安全性,数据托管服务器在替换公钥时,具体包括以下子步骤:利用数据托管服务器预先保存的公钥,对公钥替换请求携带的签名信息进行验证;在验证通过的情况下,利用提取出的公钥替换数据托管服务器预先保存的公钥。
本申请在应用期间,客户端在需要替换非对称密钥(即公私钥对)时,可以生成一对新的私钥和公钥,然后生成公钥替换请求,公钥替换请求中携带新公钥。客户端利用旧私钥对公钥替换请求进行签名,得到公钥替换请求的签名信息。客户端将公钥替换请求和签名信息一并发送给数据托管服务器。数据托管服务器接收到公钥替换请求和签名信息后,利用已经保存的公钥对签名信息进行验证,如果验证通过,则数据托管服务器利用公钥替换请求携带的新公钥,替换数据托管服务器中已经保存的公钥。如果验证不通过,则数据托管服务器不执行公钥替换操作。需要说明的是,上述应用场景中,在数据托管服务器没有受到黑客攻击的情况下,数据托管服务器已经保存的公钥和客户端的旧私钥是一对非对称密钥。
在一些可能的实施方式中,当数据托管服务器利用预先保存的公钥,对公钥替换请求携带的签名信息进行验证时,如果验证失败,则说明数据托管服务器预先保存的公钥是黑客在盗取客户端私钥后冒充客户端更换的非法公钥。或者说明数据托管服务器当前接收到的公钥替换请求时黑客发起的,该黑客没有获取到客户端的私钥,黑客随意利用一个私钥对该公钥替换请求进行了签名。数据托管服务器为了进一步确认实际情况到底是上述两种情况中的哪种情况,可以向客户端的邮箱发送提示邮件,提示邮件中携带有数据托管服务器当前保存的公钥。
客户端与其邮箱关联,当客户端对应的邮箱接收到提示邮件后,客户端从邮箱中读取出提示邮件,并从提示邮件中读取出公钥。客户端将读取的公钥与自身最新生成的公钥进行对比,如果两者一致,则客户端生成相应的反馈信息,该反馈信息表征客户端确认提示邮件携带的公钥为客户端最新生成的公钥。如果两者不一致,则客户端生成另一种反馈信息,该反馈信息表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥。
客户端在生成反馈信息后,向数据托管服务器发送反馈邮件,该反馈邮件中携带客户端生成的反馈信息。此外,如果客户端否认提示邮件携带的公钥为客户端最新生成的公钥,则客户端在发送的反馈邮件中,还可以携带客户端最新生成的公钥。如此,当数据托管服务器接收到反馈邮件,并根据反馈信息得知客户端否认提示邮件携带的公钥为客户端最新生成的公钥时,则说明数据托管服务器当前保存的公钥是黑客更换的非法公钥。因此,数据托管服务器可以从反馈邮件中读取出公钥,并利用该公钥替换掉当前保存的公钥。
S120:接收数据托管请求,利用数据托管服务器最新保存的公钥对数据托管请求携带的签名信息进行验证,在验证通过的情况下,对数据托管请求携带的待托管数据进行托管处理。
在一些可能的实施方式中,数据托管服务器在对待托管数据进行托管处理时,具体包括以下子步骤:从数据托管请求中提取出多份待托管数据,并将提取出的多份待托管数据进行合并,得到合并后的待托管数据;利用数据托管服务器的私钥对合并后的待托管数据进行解密,从而得到待托管数据的明文;对待托管数据的明文进行解压操作,得到解压后的待托管数据;对解压后的待托管数据进行格式校验和完整性校验,在格式校验和完整性校验均通过的情况下,对解压后的待托管数据进行托管处理。
本申请在应用期间,客户端在进行数据托管期间,首先对待托管数据进行压缩,得到压缩后的待托管数据;然后利用数据托管服务器的公钥,对压缩后的待托管数据进行加密,得到加密后的待托管数据;接着判断加密后的待托管数据是否超出了预设数据量(例如预设数据量为1G),如果超过,则将加密后的待托管数据拆分成多份,每份待托管数据的数据量小于预设数据量;再根据多份待托管数据生成数据托管请求,数据托管请求中携带多份待托管数据;最后利用客户端最新生成的私钥,对数据托管请求进行签名,得到签名数据,再将数据托管请求和签名数据一并发送给数据托管服务器。
参考图2,图2是本申请一实施例提出的待托管数据的处理流程示意图。如图2所示,数据托管服务器在处理待托管数据时的步骤顺序,与客户端在处理待托管数据时的步骤顺序相反。具体地,数据托管服务器在接收到数据托管请求和签名数据之后,首先利用最新保存的公钥,对签名数据进行验证,如果验证出错,则数据托管服务器终止数据托管处理,如果验证通过,则服务器对数据托管请求中的多份待托管数据进行分卷合并,得到合并后的待托管数据。
接着,数据托管服务器利用自身私钥,对合并后的待托管数据进行解密,如果解密错误,则数据托管服务器终止数据托管处理,如果能正常解密,则数据托管服务器对解密后的待托管数据进行解压。
如果解压错误,则数据托管服务器终止数据托管处理,如果能正常解压,则数据托管服务器对解压后的待托管数据进行格式校验。
如果解压后的待托管数据存在格式错误,则数据托管服务器终止数据托管处理,如果解压后的待托管数据通过格式校验,则数据托管服务器对解压后的待托管数据进行数据完整性校验。
如果完整性校验出错,即待托管数据缺失关键数据,则数据托管服务器终止数据托管处理,如果完整性校验通过,则数据托管服务器进行业务处理,包括生成处理结果日志、通知第三方、现场清理、备份等,从而完成数据托管。
S130:接收周期性的心跳信息,利用数据托管服务器最新保存的公钥对心跳信息携带的签名信息进行验证,在验证失败的情况下,确定数据托管服务器受到攻击。
本申请在应用期间,客户端可以周期性地向数据托管服务器发送心跳信息,例如客户端每10分钟向数据托管服务器发送一个心跳信息。客户端每次发送心跳信息之前,会利用客户端最新生成的私钥对心跳信息进行签名,从而得到心跳信息的签名信息,然后客户端将心跳信息及其签名信息一并发送给数据托管服务器。
对于数据托管服务器而言,数据托管服务器接收到心跳信息和签名信息后,数据托管服务器并不能确定该心跳信息和签名信息到底是来自于客户端,还是来自于黑客。但是数据托管服务器可以利用最新保存的公钥,对签名信息进行验证。如果验证通过,则数据托管服务器默认其暂时未受到攻击。如果验证失败,则说明最新保存的公钥不正常,最新保存的公钥可能是黑客的公钥;或者说明接收到的心跳信息不正常,该心跳信息是黑客发送的。总而言之,如果验证失败,则数据托管服务器确定其受到了攻击。
可见,通过执行上述步骤S110至S130,数据托管服务器可以有效检测出黑客对数据托管服务的攻击行为。
参考图3,图3是本申请一实施例提出的基于密钥替换和心跳检验的数据托管方法的流程示意图,该数据托管方法应用于数据托管服务器。如图3所示,该数据托管方法包括以下步骤:
S301:接收公钥替换请求,提取出公钥替换请求携带的公钥,并利用提取出的公钥替换数据托管服务器预先保存的公钥。
具体实施方式可参见上述步骤S110的具体实施方式,为避免重复,在此不做赘述。
S302:将数据托管服务器最新保存的公钥的状态初始化为未使用状态。
S303:接收数据托管请求,判断数据托管服务器最新保存的公钥的状态是否为未使用状态。
S304:在状态为已使用状态的情况下,拒绝对数据托管请求进行处理。
S305:在状态为未使用状态的情况下,利用数据托管服务器最新保存的公钥对数据托管请求携带的签名信息进行验证。
本申请中,数据托管服务器保存的公钥具有状态属性,如果公钥已经被用于验证数据托管请求的签名信息,并且验证通过,则该公钥的状态应更新为已使用状态,否则应保持为未使用状态。通过为公钥设置状态属性,目的是约束客户端每次托管数据之前,必须要生成一对新的私钥和公钥,并且需要利用新公钥替换数据托管服务器保存的旧公钥。
S306:在验证通过的情况下,对数据托管请求携带的待托管数据进行托管处理。
S307:在对待托管数据进行托管处理之后,将数据托管服务器最新保存的公钥的状态更新为已使用状态。
此外,如图3所示,该数据托管方法包括以下步骤:
S308:接收周期性的心跳信息,利用数据托管服务器最新保存的公钥对心跳信息携带的签名信息进行验证。
S309:在验证失败的情况下,确定数据托管服务器受到攻击。
S310:在确定数据托管服务器受到攻击之后,判断数据托管服务器最新保存的公钥的状态是否为已使用状态。
S311:在状态为已使用状态的情况下,向客户端对应的邮箱发送提示邮件,提示邮件携带有数据托管服务器最新保存的公钥。
本申请中,如果数据托管服务器最新保存的公钥的状态是已使用状态,则说明数据托管服务器在上一次更换公钥之后,数据托管服务器利用更换后的新公钥执行过数据托管业务。然而由于上一次更换后的新公钥有可能是黑客生成的公钥,因此上一次数据托管业务也有可能是黑客发起的。为了验证上一次数据托管业务是否是黑客发起的,本申请中,数据托管服务器向客户端对应的邮箱发送提示邮件。其中,客户端的邮箱可以是客户端在注册期间所预留的邮箱。
S312:接收客户端对应的邮箱发送的反馈邮件,并从反馈邮件中读取反馈信息。
本申请中,反馈信息用于表征客户端确认提示邮件携带的公钥为客户端最新生成的公钥,或者用于表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥。
本申请在应用期间,客户端与其邮箱关联,当客户端对应的邮箱接收到提示邮件后,客户端从邮箱中读取出提示邮件,并从提示邮件中读取出公钥。客户端将读取的公钥与自身最新生成的公钥进行对比,如果两者一致,则客户端生成相应的反馈信息,该反馈信息表征客户端确认提示邮件携带的公钥为客户端最新生成的公钥。如果两者不一致,则客户端生成另一种反馈信息,该反馈信息表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥。客户端在生成反馈信息后,向数据托管服务器发送反馈邮件,该反馈邮件中携带客户端生成的反馈信息。
其中,客户端可以设计成一种具有邮件收发功能的客户端,从而实现邮件的接收、读取和发送。
在一些可能的实施方式中,如果反馈信息是第一预设字符,例如“1”,则表示客户端确认提示邮件携带的公钥为客户端最新生成的公钥。如果反馈信息是第二预设字符,例如“0”,则表示客户端否认提示邮件携带的公钥为客户端最新生成的公钥。数据托管服务器通过读取反馈信息的字符,从而识别反馈信息所表征的含义。
S313:如果反馈信息表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥,则删除最新托管的数据,并将最新保存的公钥还原为上一次保存的公钥。
本申请中,如果反馈信息表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥,则证明上一次更换后的新公钥的确是黑客生成的公钥,而上一次数据托管业务也的确是黑客发起的。因此为了挽回损失,避免黑客非法侵占数据托管服务器的存储资源,数据托管服务器将最新托管的数据(即上一次托管的数据)删除。此外,数据托管服务器还将最新保存的公钥还原为上一次保存的公钥。
S314:如果反馈信息表征客户端确认提示邮件携带的公钥为客户端最新生成的公钥,则不删除最新托管的数据,且不将最新保存的公钥还原为上一次保存的公钥。
本申请中,如果反馈信息表征客户端确认提示邮件携带的公钥为客户端最新生成的公钥。则证明上一次更换后的新公钥是客户端生成的公钥,且上一次数据托管业务是客户端发起的,也证明最新接收到的心跳信息是黑客发送的。
需要说明的是,由于邮件的防篡改能力比较强,因此本申请中,数据托管服务器与客户端之间通过邮件通信,来验证上一次更换后的新公钥是否是黑客生成的公钥,具有更高的安全性。
需要说明的是,如图3所示,在经过步骤S310的判断步骤之后,如果确认公钥的状态是否为未使用状态。则数据托管服务器可以暂时不用响应,并结束此次的心跳检验流程。其原因在于:(1)如果此次心跳信息是黑客利用自身私钥(非客户端私钥)签名并发送的,则服务器不响应该心跳信息是可以的。(2)如果此次心跳信息是客户端发送的,并且黑客已经预先盗取了客户端私钥,并冒充客户端替换了数据托管服务器保存的公钥,则客户端今后在进行公钥替换时,数据托管服务器通过执行上述步骤S110或者S301的具体实施方式,与客户端往来邮件,从而可以删除黑客的非法公钥,并回复客户端的合法公钥。
此外,在一些可能的实施方式中,如果客户端否认提示邮件携带的公钥为客户端最新生成的公钥,则客户端在发送的反馈邮件中,还可以携带客户端最新生成的公钥。如此,当数据托管服务器接收到反馈邮件,并根据反馈信息得知客户端否认提示邮件携带的公钥为客户端最新生成的公钥时,数据托管服务器可以从反馈邮件中读取出公钥,并利用该公钥替换掉最新保存的公钥。
或者,在一些可能的实施方式中,数据托管服务器每次执行完公钥替换后,会对被替换的公钥进行暂时存储,公钥暂时存储的存储时间超过心跳信息的发送周期。数据托管服务器需要将最新保存的公钥还原为上一次保存的公钥时,可以从暂时存储的公钥中获取上一次保存的公钥,并利用获取的公钥替换最新保存的公钥。
上述实施方式中,假设心跳信息的发送周期为10分钟,公钥暂时存储的存储时间为15分钟。如果某个暂存的公钥已经存储了15分钟,则数据托管服务器会删除该公钥,从而节约数据托管服务器的存储资源。并且由于数据托管服务器可以在心跳周期内检测到黑客攻击行为,又由于公钥暂时存储的存储时间超过了心跳周期,因此数据托管服务器检测到黑客攻击行为时,暂存的公钥还没有被删除。如此,数据托管服务器可以从暂时存储的公钥中获取上一次保存的公钥,并利用获取的公钥替换最新保存的公钥。
以上,本申请通过实施例介绍了数据托管方法。以下,本申请结合黑客的攻击场景,说明本申请的数据托管方法防范黑客攻击的原理。
第一种攻击方式:
黑客盗取了客户端的当前私钥S1,黑客在向数据托管服务器发起数据托管请求之前,生成新私钥S2和新公钥G2。黑客还生成公钥替换请求,该公钥替换请求携带新公钥G2,黑客利用客户端的当前私钥S1对公钥替换请求进行签名,得到签名信息。黑客将公钥替换请求和签名信息发送给数据托管服务器。
数据托管服务器在接收到公钥替换请求和签名信息后,首先利用旧公钥G1(即客户端当前私钥S1对应的公钥)对签名信息进行验证。在验签通过的情况下,利用新公钥G2替换旧公钥G1。数据托管服务器在成功替换公钥后,将新公钥G2的状态初始化为未使用状态,并反馈公钥已经替换成功。
黑客得知公钥替换成功后,生成数据托管请求,该数据托管请求携带有黑客待托管的非法数据。黑客利用新私钥S2对数据托管请求进行签名,得到签名信息。黑客将数据托管请求和签名信息发送给数据托管服务器。
数据托管服务器在接收到数据托管请求后,确认新公钥G2的状态为未使用状态。则数据托管服务器利用新公钥G2对数据托管请求的签名信息进行验证,在验证通过后,数据托管服务器对数据托管请求携带的非法数据执行托管处理,并且将新公钥G2的状态更新为已使用状态。
如前所述,客户端会周期性地生成心跳信息,并利用客户端的当前私钥S1对心跳信息进行签名,得到心跳信息的签名信息,客户端将心跳信息及其签名信息发送给数据托管服务器。当数据托管服务器接收到客户端发送的心跳信息和签名信息后,利用最新保存的公钥G2对签名信息进行验证,发现验证失败,则数据托管服务器得知其收到黑客攻击。如此,数据托管服务器通过执行上述步骤S310至S314,从而能删除黑客托管的非法数据,避免数据托管服务器的存储资源被黑客非法侵占。
第二种攻击方式:
黑客盗取了客户端的当前私钥S1。黑客在向数据托管服务器发起数据托管请求之前,不会生成新公钥和新私钥,也不会请求数据托管服务器替换其当前保存的公钥G1。
黑客直接生成数据托管请求,该数据托管请求携带有黑客待托管的非法数据。黑客利用私钥S1对数据托管请求进行签名,得到签名信息。黑客将数据托管请求和签名信息发送给数据托管服务器。
数据托管服务器在接收到数据托管请求后,确认公钥G1的状态为已使用状态,因此数据托管服务器确定当前接收的数据托管请求是黑客发起的,从而不处理处理该数据托管请求。
需要说明的是,在正常情况下,当客户端请求数据托管服务器利用公钥G1替换掉公钥G0之后,客户端会立即发起数据托管请求,从而使得待托管数据在数据托管服务器中被托管。而数据托管服务器一旦托管数据后,会将G1的状态更新为已使用状态。因此数据托管服务器在接收到黑客发送的数据托管请求时,公钥G1的状态通常会是已使用状态。
参考图4,图4是本申请一实施例提出的基于密钥替换和心跳检验的数据托管装置的结构示意图,该装置应用于数据托管服务器。如图4所示,该装置包括:
公钥替换模块401,用于接收公钥替换请求,提取出公钥替换请求携带的公钥,并利用提取出的公钥替换数据托管服务器预先保存的公钥。
数据托管模块402,用于接收数据托管请求,利用数据托管服务器最新保存的公钥对数据托管请求携带的签名信息进行验证,在验证通过的情况下,对数据托管请求携带的待托管数据进行托管处理。
心跳检验模块403,用于接收周期性的心跳信息,利用数据托管服务器最新保存的公钥对心跳信息携带的签名信息进行验证,在验证失败的情况下,确定数据托管服务器受到攻击。
在一些可能的实施方式中,数据托管模块402具体用于:从数据托管请求中提取出多份待托管数据,并将提取出的多份待托管数据进行合并,得到合并后的待托管数据;利用数据托管服务器的私钥对合并后的待托管数据进行解密,从而得到待托管数据的明文;对待托管数据的明文进行解压操作,得到解压后的待托管数据;对解压后的待托管数据进行格式校验和完整性校验,在格式校验和完整性校验均通过的情况下,对解压后的待托管数据进行托管处理。
在一些可能的实施方式中,公钥替换模块401具体用于:利用数据托管服务器预先保存的公钥,对公钥替换请求携带的签名信息进行验证;在通过的情况下,利用提取出的公钥替换数据托管服务器预先保存的公钥。
在一些可能的实施方式中,数据托管模块402具体用于:判断数据托管服务器最新保存的公钥的状态是否为未使用状态;在状态为未使用状态的情况下,利用数据托管服务器最新保存的公钥对数据托管请求携带的签名信息进行验证。
在一些可能的实施方式中,如图4所示,数据托管装置还包括公钥状态更新模块404,在数据托管模块402对数据托管请求携带的待托管数据进行托管处理之后,公钥状态更新模块404用于将数据托管服务器最新保存的公钥的状态更新为已使用状态。
在一些可能的实施方式中,如图4所示,数据托管装置还包括公钥状态初始化模块405,在公钥替换模块401利用提取出的公钥替换数据托管服务器预先保存的公钥之后,公钥状态初始化模块405用于将数据托管服务器最新保存的公钥的状态初始化为未使用状态。
在一些可能的实施方式中,如图4所示,数据托管装置还包括:
公钥状态判断模块406,用于在心跳检验模块403确定数据托管服务器受到攻击之后,判断所述数据托管服务器最新保存的公钥的状态是否为已使用状态;
邮件发送模块407,用于在状态为已使用状态的情况下,向客户端对应的邮箱发送提示邮件,提示邮件携带有数据托管服务器最新保存的公钥;
邮件接收模块408,用于接收客户端对应的邮箱发送的反馈邮件,并从反馈邮件中读取反馈信息,反馈信息用于表征客户端确认提示邮件携带的公钥为客户端最新生成的公钥,或者用于表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥;
服务修复模块409,如果反馈信息表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥,则服务修复模块409用于删除最新托管的数据,并将最新保存的公钥还原为上一次保存的公钥。
在一些可能的实施方式中,如果反馈信息表征客户端确认提示邮件携带的公钥为客户端最新生成的公钥,则服务修复模块409不删除最新托管的数据,且不将最新保存的公钥还原为上一次保存的公钥。
在一些可能的实施方式中,如图4所示,数据托管装置还包括:
公钥暂存模块410,用于对被替换的公钥进行暂时存储,公钥暂时存储的存储时间超过心跳信息的发送周期。
服务修复模块409具体用于:从暂时存储的公钥中获取上一次保存的公钥,并利用获取的公钥替换最新保存的公钥。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
参考图5,图5是本申请一实施例提供的电子设备的结构框图,该电子设备500包括处理器510以及存储器520以及一个或多个应用程序,其中一个或多个应用程序被存储在存储器520中并被配置为由一个或多个处理器510执行,一个或多个程序配置用于执行上述基于密钥替换和心跳检验的数据托管方法。
本申请中的电子设备500可以包括一个或多个如下部件:处理器510、存储器520、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器520中并被配置为由一个或多个处理器510执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器510可以包括一个或者多个处理核。处理器510利用各种接口和线路连接整个电子设备500内的各个部分,通过运行或执行存储在存储器520内的指令、程序、代码集或指令集,以及调用存储在存储器520内的数据,执行电子设备500的各种功能和处理数据。可选地,处理器510可以采用数字信号处理(DigitalSignalProcessing,DSP)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、可编程逻辑阵列(ProgrammableLogicArray,PLA)中的至少一种硬件形式来实现。处理器510可集成中央处理器(CentralProcessingUnit,CPU)、图像处理器(GraphicsProcessingUnit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器510中,单独通过一块通信芯片进行实现。
存储器520可以包括随机存储器(RandomAccessMemory,RAM),也可以包括只读存储器(Read-OnlyMemory)。存储器520可用于存储指令、程序、代码、代码集或指令集。存储器520可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等。存储数据区还可以存储电子设备500在使用中所创建的数据等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种基于密钥替换和心跳检验的数据托管方法,其特征在于,所述方法应用于数据托管服务器,所述方法包括:
接收公钥替换请求,提取出所述公钥替换请求携带的公钥,并利用提取出的公钥替换所述数据托管服务器预先保存的公钥;
接收数据托管请求,利用所述数据托管服务器最新保存的公钥对所述数据托管请求携带的签名信息进行验证,在验证通过的情况下,对所述数据托管请求携带的待托管数据进行托管处理;
接收周期性的心跳信息,利用所述数据托管服务器最新保存的公钥对所述心跳信息携带的签名信息进行验证,在验证失败的情况下,确定所述数据托管服务器受到攻击;
其中,所述利用所述数据托管服务器最新保存的公钥对所述数据托管请求携带的签名信息进行验证,包括:判断所述数据托管服务器最新保存的公钥的状态是否为未使用状态;在所述状态为未使用状态的情况下,利用所述数据托管服务器最新保存的公钥对所述数据托管请求携带的签名信息进行验证;
在验证通过且对所述数据托管请求携带的待托管数据进行托管处理之后,所述方法还包括:将所述数据托管服务器最新保存的公钥的状态更新为已使用状态;
在确定所述托管服务器受到攻击,所述方法还包括:判断所述数据托管服务器最新保存的公钥的状态是否为已使用状态;在所述状态为已使用状态的情况下,向客户端对应的邮箱发送提示邮件,所述提示邮件携带有所述数据托管服务器最新保存的公钥;接收所述客户端对应的邮箱发送的反馈邮件,并从所述反馈邮件中读取反馈信息,所述反馈信息用于表征所述客户端确认所述提示邮件携带的公钥为所述客户端最新生成的公钥,或者用于表征所述客户端否认所述提示邮件携带的公钥为所述客户端最新生成的公钥;如果所述反馈信息表征所述客户端否认所述提示邮件携带的公钥为所述客户端最新生成的公钥,则删除最新托管的数据,并将最新保存的公钥还原为上一次保存的公钥。
2.根据权利要求1所述的方法,其特征在于,所述对所述数据托管请求携带的待托管数据进行托管处理,包括:
从所述数据托管请求中提取出多份待托管数据,并将提取出的多份待托管数据进行合并,得到合并后的待托管数据;
利用所述数据托管服务器的私钥对所述合并后的待托管数据进行解密,从而得到待托管数据的明文;
对所述待托管数据的明文进行解压操作,得到解压后的待托管数据;
对所述解压后的待托管数据进行格式校验和完整性校验,在格式校验和完整性校验均通过的情况下,对所述解压后的待托管数据进行托管处理。
3.根据权利要求1所述的方法,其特征在于,所述利用提取出的公钥替换所述数据托管服务器预先保存的公钥,包括:
利用所述数据托管服务器预先保存的公钥,对所述公钥替换请求携带的签名信息进行验证;
在验证通过的情况下,利用提取出的公钥替换所述数据托管服务器预先保存的公钥。
4.根据权利要求1所述的方法,其特征在于,在利用提取出的公钥替换所述数据托管服务器预先保存的公钥之后,所述方法还包括:
将所述数据托管服务器最新保存的公钥的状态初始化为未使用状态。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述反馈信息表征所述客户端确认所述提示邮件携带的公钥为所述客户端最新生成的公钥,则不删除最新托管的数据,且不将最新保存的公钥还原为上一次保存的公钥。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对被替换的公钥进行暂时存储,公钥暂时存储的存储时间超过所述心跳信息的发送周期;
所述将最新保存的公钥还原为上一次保存的公钥,包括:
从暂时存储的公钥中获取上一次保存的公钥,并利用获取的公钥替换最新保存的公钥。
7.一种基于密钥替换和心跳检验的数据托管装置,其特征在于,所述装置应用于数据托管服务器,所述装置包括:
公钥替换模块,用于接收公钥替换请求,提取出所述公钥替换请求携带的公钥,并利用提取出的公钥替换所述数据托管服务器预先保存的公钥;
数据托管模块,用于接收数据托管请求,利用所述数据托管服务器最新保存的公钥对所述数据托管请求携带的签名信息进行验证,在验证通过的情况下,对所述数据托管请求携带的待托管数据进行托管处理;
心跳检验模块,用于接收周期性的心跳信息,利用所述数据托管服务器最新保存的公钥对所述心跳信息携带的签名信息进行验证,在验证失败的情况下,确定所述数据托管服务器受到攻击;
其中,所述数据托管模块具体用于:判断数据托管服务器最新保存的公钥的状态是否为未使用状态;在状态为未使用状态的情况下,利用数据托管服务器最新保存的公钥对数据托管请求携带的签名信息进行验证;
所述装置还包括公钥状态更新模块,在数据托管模块对数据托管请求携带的待托管数据进行托管处理之后,所述公钥状态更新模块用于将数据托管服务器最新保存的公钥的状态更新为已使用状态;
所述装置还包括:
公钥状态判断模块,用于在心跳检验模块确定数据托管服务器受到攻击之后,判断所述数据托管服务器最新保存的公钥的状态是否为已使用状态;
邮件发送模块,用于在状态为已使用状态的情况下,向客户端对应的邮箱发送提示邮件,提示邮件携带有数据托管服务器最新保存的公钥;
邮件接收模块,用于接收客户端对应的邮箱发送的反馈邮件,并从反馈邮件中读取反馈信息,反馈信息用于表征客户端确认提示邮件携带的公钥为客户端最新生成的公钥,或者用于表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥;
服务修复模块,如果反馈信息表征客户端否认提示邮件携带的公钥为客户端最新生成的公钥,则所述服务修复模块用于删除最新托管的数据,并将最新保存的公钥还原为上一次保存的公钥。
8.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器以及总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111090053.3A CN113541971B (zh) | 2021-09-17 | 2021-09-17 | 基于密钥替换和心跳检验的数据托管方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111090053.3A CN113541971B (zh) | 2021-09-17 | 2021-09-17 | 基于密钥替换和心跳检验的数据托管方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113541971A CN113541971A (zh) | 2021-10-22 |
CN113541971B true CN113541971B (zh) | 2021-12-14 |
Family
ID=78093369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111090053.3A Active CN113541971B (zh) | 2021-09-17 | 2021-09-17 | 基于密钥替换和心跳检验的数据托管方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113541971B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214638B1 (en) * | 2006-09-26 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Using multiple certificates to distribute public keys |
CN103595530B (zh) * | 2012-08-17 | 2017-04-26 | 华为技术有限公司 | 软件密钥更新方法和装置 |
CN105515768B (zh) * | 2016-01-08 | 2017-07-21 | 腾讯科技(深圳)有限公司 | 一种更新密钥的方法、装置和系统 |
CN110049043B (zh) * | 2019-04-17 | 2021-07-27 | 江苏全链通信息科技有限公司 | 基于区块链的服务器日志监控方法和系统 |
CN112713996B (zh) * | 2020-12-15 | 2023-05-12 | 中国联合网络通信集团有限公司 | 基于区块链的故障验证方法、服务器和终端 |
-
2021
- 2021-09-17 CN CN202111090053.3A patent/CN113541971B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113541971A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218260B (zh) | 一种基于可信任环境的认证保护系统及方法 | |
US8533829B2 (en) | Method for monitoring managed device | |
CN111404696A (zh) | 协同签名方法、安全服务中间件、相关平台及系统 | |
US8341616B2 (en) | Updating digitally signed active content elements without losing attributes associated with an original signing user | |
TW201324225A (zh) | 用於電子裝置之暫時安全開機流程之系統與方法 | |
CN105516135B (zh) | 用于账号登录的方法和装置 | |
CN104753674A (zh) | 一种应用身份的验证方法和设备 | |
CN112987942B (zh) | 键盘输入信息的方法、装置、系统、电子设备和存储介质 | |
CN111130798A (zh) | 一种请求鉴权方法及相关设备 | |
CN109981677B (zh) | 一种授信管理方法及装置 | |
EP4037250A1 (en) | Message transmitting system with hardware security module | |
CN106533678B (zh) | 一种基于多重签名的登录方法及其系统 | |
CN110851837B (zh) | 一种基于可信计算的自助设备、其安全管理系统及方法 | |
CN113541971B (zh) | 基于密钥替换和心跳检验的数据托管方法、装置及设备 | |
CN108989298B (zh) | 一种设备安全监控方法、装置及计算机可读存储介质 | |
CN115543404A (zh) | Sdk的修复方法、装置、终端、设备、系统及介质 | |
WO2017197689A1 (zh) | 一种sim卡处理方法、装置、终端及esam芯片 | |
CN114244620A (zh) | 一种板卡入网验证方法、装置及板卡控制中心 | |
US20230043031A1 (en) | Information processing apparatus and information processing method, authentication device and authentication method, authentication system, authentication method in authentication system, and computer program | |
CN107172106B (zh) | 安全信息交互方法和系统 | |
JP6692406B2 (ja) | 設備認証方法及び設備認証システム | |
CN115146284A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN114650175B (zh) | 一种验证方法及装置 | |
CN114584556B (zh) | 文件传输方法和装置 | |
CN111698299B (zh) | Session对象复制方法、装置、分布式微服务架构及介质 |
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 |