CN108076021B - 业务处理方法和装置 - Google Patents

业务处理方法和装置 Download PDF

Info

Publication number
CN108076021B
CN108076021B CN201611018871.1A CN201611018871A CN108076021B CN 108076021 B CN108076021 B CN 108076021B CN 201611018871 A CN201611018871 A CN 201611018871A CN 108076021 B CN108076021 B CN 108076021B
Authority
CN
China
Prior art keywords
key
agent module
key agent
module
type
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
Application number
CN201611018871.1A
Other languages
English (en)
Other versions
CN108076021A (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 CN201611018871.1A priority Critical patent/CN108076021B/zh
Priority to PCT/CN2017/091903 priority patent/WO2018028359A1/zh
Publication of CN108076021A publication Critical patent/CN108076021A/zh
Application granted granted Critical
Publication of CN108076021B publication Critical patent/CN108076021B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种业务处理方法和装置。其中,该方法包括:获取第一信息,其中,所述第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;检测所述第一信息是否符合预定类型切换条件,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块出现漏洞;在检测出所述第一信息符合所述预定类型切换条件的情况下,通过第二类型的密钥代理模块执行所述业务模块的密文处理请求。本发明解决了现有技术中在对业务进行加解密时密钥的稳定性较低的技术问题。

Description

业务处理方法和装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种业务处理方法和装置。
背景技术
现有技术中,在对业务进行加密时,所使用的加密方式主要包括三种:方式一、直接在代码或者配置文件里面编写固定的密钥;方式二、在共享内存中直接以明文保存或加密保存的方式保存密钥;方式三、密钥保存在特殊管理人员所管理的服务器上,业务可以定期地通过网络在该服务器中调用并获取密钥。
现有技术中提供了一种通过代理模块进行加解密的方式,当有业务需要进行加密时,可以通过业务模块向密钥代理模块发送携带有待加密数据的密文处理请求。密钥代理模块在获取到密文处理请求之后,将从拉取到的密钥列表中获取目标密钥,然后,使用目标密钥对待加密的数据进行加密,得到加密后的数据,最后,密钥代理模块将加密后的数据发送给业务模块。
在上述方案中,使用Agent加解密代替业务进程直接加解密,一旦Agent出BUG就可能导致所有加解密操作全部失败,给业务造成重大损失。
其中,BUG可能给是Agent在实践中不断支持新需求而产生的变更而引入的,也可能是一个相当隐晦,极难被触发的BUG(甚至可能是操作系统内核BUG)最终被触发导致的,或者由于本硬件服务器上的其它业务大量占用CPU导致本业务Agent加解密请求大量超时。一旦出现上述问题会导致加解密操作失败。
针对上述的在对业务进行加解密时密钥的稳定性较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种业务处理方法和装置,以至少解决现有技术中在对业务进行加解密时密钥的稳定性较低的技术问题。
根据本发明实施例的一个方面,提供了一种业务处理方法,包括:获取第一信息,其中,所述第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;检测所述第一信息是否符合预定类型切换条件,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块出现漏洞;在检测出所述第一信息符合所述预定类型切换条件的情况下,通过第二类型的密钥代理模块执行所述业务模块的密文处理请求。
根据本发明实施例的一个方面,还提供了一种业务处理方法,包括:第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果;第二类型的密钥代理模块接收并执行所述业务模块的密文处理请求,其中,所述业务模块用于在基于所述执行结果生成的第一信息符合所述预定类型切换条件的情况下,向所述第二类型的密钥代理模块发送密文处理请求,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块出现漏洞。
根据本发明实施例的另一方面,还提供了一种业务处理方法,包括:密钥代理模块获取执行密文处理请求的执行结果;所述密钥代理模块检测所述执行结果是否符合预定模式切换条件,其中,符合所述预定模式切换条件表示确定所述密钥代理模块中出现了漏洞;若检测出所述执行结果符合预定模式切换条件,则所述密钥代理模块向业务模块发送指示信息,其中,所述指示信息用于指示所述业务模块切换到通过所述业务模块执行所述密文处理请求的模式。
根据本发明实施例的另一方面,还提供了一种业务处理装置,包括:第一获取单元,用于获取第一信息,其中,所述第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;第一检测单元,用于检测所述第一信息是否符合预定类型切换条件,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块出现漏洞,也即,符合所述预定类型切换条件表示所述第一类型的密钥代理模块无法稳定执行所述密文处理请求;第一执行单元,用于在检测出所述第一信息符合所述预定类型切换条件的情况下,通过第二类型的密钥代理模块执行所述业务模块的密文处理请求。
根据本发明实施例的另一方面,还提供了一种业务处理装置,包括:第一处理单元,设置在第一类型的密钥代理模块中,用于接收并执行业务模块的密文处理请求,得到执行结果;第一处理单元,设置在第二类型的密钥代理模块中,用于接收并执行所述业务模块的密文处理请求,其中,所述业务模块用于在基于所述执行结果生成的第一信息符合所述预定类型切换条件的情况下,向所述第二类型的密钥代理模块发送密文处理请求,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块出现漏洞。
根据本发明实施例的另一方面,还提供了一种业务处理装置,包括:第一获取单元,用于获取执行密文处理请求的执行结果;第一检测单元,用于检测所述执行结果是否符合预定模式切换条件,其中,符合所述预定模式切换条件表示确定所述密钥代理模块中出现了漏洞;第一发送单元,用于若检测出所述执行结果符合预定模式切换条件,则向业务模块发送指示信息,其中,所述指示信息用于指示所述业务模块切换到通过所述业务模块执行所述密文处理请求的模式。
在本发明实施例中,获取第一信息,其中,第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;检测第一信息是否符合预定类型切换条件;在检测出第一信息符合预定类型切换条件的情况下,通过第二类型的密钥代理模块执行业务模块的密文处理请求,在上述实施例中,可以根据第一类型的密钥代理处理模块执行密文处理请求的结果来确定是否符合预定类型切换条件,在符合切换条件的情况下,不再通过第一类型的密钥代理处理模块执行密文处理请求,而是通过第二类型的密钥代理处理模块执行密文处理请求,在该方案中,可以在第一类型的密钥代理处理模块无法继续稳定的执行密文处理请求,则将切换第二类型的密钥代理模块,以稳定处理密文处理请求,解决了现有技术中,在对业务进行加解密时密钥的稳定性较低的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的业务处理方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的业务处理方法的流程图;
图3是根据本发明实施例的一种可选的业务处理方法的原理图;
图4是根据本发明实施例的另一种可选的业务处理方法的流程图;
图5是根据本发明实施例的另一种可选的业务处理方法的流程图;
图6是根据本发明实施例的一种可选的业务处理装置的示意图;以及
图7是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种业务处理的方法实施例。可选地,在本实施例中,上述业务处理方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的业务处理方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的业务处理方法也可以是由安装在其上的客户端来执行。
图1中示出的硬件环境系统的主要工作原理是:在本发明实施例中,密钥代理模块安装在终端104中。当有业务需要进行加密时,可以通过业务模块向密钥代理模块发送携带有待加密数据的密文处理请求。密钥代理模块在获取到密文处理请求之后,将从拉取到的密钥列表中获取目标密钥,然后,使用目标密钥对待加密的数据进行加密,得到加密后的数据,最后,密钥代理模块将加密后的数据发送给业务模块。在该示例中,密文处理请求为将待加密数据加密为密文数据的请求。解密数据与上述实施例中的加密方式相似,在此不再赘述。
需要说明的是,在本发明实施例中,密钥列表为密钥代理模块在首次开启时,从服务器104(例如,密钥服务器)中所拉取得到的密钥列表。
图2是根据本发明实施例的一种可选的业务处理方法的流程图,如图2所示,应用于业务模块,该方法可以包括以下步骤:
步骤S202:获取第一信息,其中,第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;
步骤S204:检测第一信息是否符合预定类型切换条件;
步骤S206:在检测出第一信息符合预定类型切换条件的情况下,通过第二类型的密钥代理模块执行业务模块的密文处理请求。
通过上述实施例,获取第一信息,其中,第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;检测第一信息是否符合预定类型切换条件;在检测出第一信息符合预定类型切换条件的情况下,通过第二类型的密钥代理模块执行业务模块的密文处理请求,在上述实施例中,可以根据第一类型的密钥代理处理模块执行密文处理请求的结果来确定是否符合预定类型切换条件,在符合切换条件的情况下,不再通过第一类型的密钥代理处理模块执行密文处理请求,而是通过第二类型的密钥代理处理模块执行密文处理请求,在该方案中,可以在第一类型的密钥代理处理模块无法继续稳定的执行密文处理请求,则将切换第二类型的密钥代理模块,以稳定处理密文处理请求,解决了现有技术中,在对业务进行加解密时密钥的稳定性较低的问题。
在步骤S202的技术方案中,密文处理请求可以为加密请求或解密请求,该第一类型的密钥代理模块执行密文处理请求的执行结果,可以存储在共享内存中,业务模块可以从共享内存中读取该执行结果,并统计该执行结果得到第一信息。
密钥代理模块执行密文处理请求可以通过如下方式实现(以加密过程为例):
密钥代理模块接收业务模块发送的密文处理请求,其中,所述密文处理请求中携带有待加密的数据。
在本发明实施例中,密钥代理模块(以下均称为密钥Agent)可以采用单进程多线程的方式实现;业务模块用于向密钥Agent发送密文处理请求,其中,密钥Agent行业业务模块处于同一个物理单机中。
具体地,当有业务需要进行加密时,业务模块可以向密钥Agent发送携带待加密的数据的密文处理请求;密钥Agent在获取到密文处理请求之后,根据密文处理请求在密钥列表中获取目标密钥。
在本发明实施例中,当密钥代理模块Agent重启时,密钥Agent会向密钥服务器拉取密钥列表。需要说明的是,密钥Agent仅在重新启动时,向密钥服务器拉取密钥列表,在启动后的其他时间内不再拉取密钥列表。
密钥Agent在获取到业务模块发送的密文处理请求之后,就可以在预先拉取的密钥列表中获取目标密钥,其中,该目标密钥用于对待加密的数据进行加密。
在本发明实施例中,密钥Agent在从密钥列表中获取到目标密钥之后,就可以对使用目标密钥对待加密的数据进行加密。
在本发明实施例中,密钥代理模块在使用目标密钥对待加密的数据进行加密,得到加密之后的数据之后,就可以将加密后的数据发送给业务模块。
可选地,在密钥代理模块接收业务模块发送的密文处理请求之前,还可以通过密钥代理模块将第一公钥发送给密钥服务器,并从密钥服务器接收第二公钥,其中,密钥代理模块上具有一对第一公钥和第一私钥,密钥服务器上具有一对第二公钥和第二私钥;密钥代理模块向密钥服务器发送密钥列表拉取请求;密钥代理模块接收密钥服务器发送的加密后的密钥列表,其中,加密后的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的;密钥代理模块使用密钥代理模块侧的第二通讯密钥对加密后的密钥列表进行解密,得到密钥列表,其中,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的,第一通讯密钥与第二通讯密钥相同。
在本发明实施例中,在密钥Agent接收密文处理请求之前,需要从密钥服务器拉取密钥列表,其中,由于从密钥服务器拉取到的密钥列表为加密之后的密钥列表。因此,密钥Agent需要对拉取到的密钥列表进行解密。
在本发明实施例中,密钥Agent拉取到的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,那么密钥代理模块在对密钥列表进行解密时,需使用与第一通讯密钥相同的第二通讯密钥对密钥列表进行解密。其中,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的。第一公钥和第二公钥是密钥Agent在向密钥服务器发送密钥列表的拉取请求之前,生成的一对公钥pubkey和密钥prikey;第一私钥和第二私是密钥服务器生成的一对公钥pubkey和密钥prikey。
需要说明的是,由于第一通讯密钥根据第一公钥和第二私钥生成得到的,第二通讯密钥是根据第一私钥和第二公钥生成得到的。因此,在密钥代理模块向密钥服务器发送密钥列表拉取请求之前,密钥Agent和密钥服务器之间需要交换双方的公钥和密钥。在交换之后,密钥代理模块就可以在向密钥服务器发送密钥列表拉取请求之后,生成用于对密钥列表进行解密的第二通讯密钥,密钥服务器也可以生成用于对密钥列表进行加密的第一通讯密钥。
其中,交换双方的公钥和密钥具体为:Agent将第一公钥发送给密钥服务器SVR,然后,Agent从密钥服务器SVR中接收第二公钥,交换之后,Agent就可以使用第一私钥和第二公钥加密后的密钥列表进行解密。
需要说明的是,在本发明实施例中,Agent和密钥服务器在进行密钥交换时,可以采用密钥交换协议(即,ECDH协议)交换双方的pubkey和各自的prikey。
通过上述描述可知,本发明中的密钥列表使用第一公钥和第二私钥进行加密,并使用第一私钥和第二公钥进行解密。然而,在现有技术中,网络上传递的只有Agent和密钥服务器的公钥pubkey,因此,采用本发明中的加密方式,即使被tcp dump也反推不出密钥,这样就避免了内网抓包导致的密钥泄漏的现象发生。
进一步可选地,为了防止密钥SVR/密钥Agent间的中间人攻击,SVR应该用私钥将ECDH公钥签名,并在Agent部署公钥验证此签名,因为SVR是专人管理的高密级服务器,很难从那里窃取私钥,也就有效的在Agent防止了他人伪造SVR回包。
密钥Agent在从密钥服务器中拉取到密钥列表,并对密钥列表进行解密之后,密钥Agent需要验证业务进程的合法性,其中,业务进程为待加密的数据所表示的进程。
在本发明的另一个可选的实施方式中,密钥代理模块将第一公钥发送给密钥服务器,并从密钥服务器接收第二公钥包括:在密钥代理模块重启时,密钥代理模块将加密后的第一公钥发送给密钥服务器,其中,加密后的第一公钥是使用约定密钥对第一公钥进行加密得到的;密钥代理模块从密钥服务器接收加密后的第二公钥,其中,加密后的第二公钥是使用约定密钥对第二公钥进行加密得到的;密钥代理模块使用约定密钥对加密后的第二公钥进行解密,得到第二公钥;其中,约定密钥被设置为仅在密钥代理模块重启时使用。
需要说明的是,当密钥Agent重启时,在密钥Agent向密钥服务器发送第一公钥时,需使用约定密钥对第一公钥进行加密,并将使用约定密钥加密之后的第一公钥发送给密钥服务器,其中,密钥服务器在获取到第一公钥之后,就可以使用约定密钥进行解密。相同地,密钥服务器在向密钥Agent发送第二公钥时,也使用约定密钥对第二公钥进行加密,并将加密之后的第二公钥发送至密钥Agent,其中,密钥Agent在接收到加密之后的第二公钥之后,就可以使用约定密钥对第二公钥进行解密。
需要说明的是,在本发明实施例中,只有在密钥Agent重启时才会使用“约定密钥”对第一公钥和第二公钥进行加密,并互相传输。也就是说,只有密钥Agent的维护者在变更密钥Agent时重启进程才是唯一合法使用约定密钥的时机,其它任何情形都是非法使用。例如,密钥Agent的维护者在密钥Agent重启时,使用了约定密钥获取密钥列表,在此之后,如果其他使用者再次使用约定密钥获取密钥列表时,表明该使用者为滥用者。因此,在本发明实施例中,仅在密钥Agent重启时才会使用一次“约定密钥”的设置,能够快速并有效地检测出滥用者。
由于从密钥服务器中获取到的密钥列表为加密的密钥列表,因此密钥Agent在拉取到密钥列表之后,需要对密钥列表进行解密。
可选地,在密钥代理模块接收业务模块发送的密文处理请求之前,还可以通过密钥代理模块获取业务进程的进程PID,其中,业务进程为业务模块发送待加密的数据的进程,然后,密钥代理模块对业务进程和进程PID进行合法性校验;以及在合法性校验通过的情况下,密钥代理模块从密钥列表中获取目标密钥。
在本发明实施例中,在对业务模块中待加密的数据所表示的业务进程进行加密之前,首先需要确定该业务进程的合法性。在对业务进程的合法性进行确定时,可以通过密钥Agent获取业务进程的进程PID,然后,通过密钥Agent对进程PID和业务进程的合法性进行校验。如果进程PID和业务进程的校验结果为合法时,即校验通过的情况下,密钥代理模块就可以从密钥列表中获取目标密钥,并通过该目标密钥对待加密的数据进行加密。
需要说明的是,在本发明实施例中,密钥代理模块可以获取业务模块通过套接字SCM_RIGHTS传输的业务进程被内核所认证的进程PID,其中,套接字SCM_RIGHTS适用于unixdomain socket。
进一步地,上述密钥代理模块对业务进程和进程PID进行合法性校验,具体为如下步骤:
步骤S1,密钥代理模块获取与进程PID对应的进程全路径;
步骤S2,密钥代理模块判断进程全路径是否属于预先从密钥服务器获取到的合法路径中的路径;
步骤S3,在判断出进程全路径属于合法路径中的路径的情况下,密钥代理模块对业务进程进行MD5校验操作,得到第一MD5校验结果;在判断出进程全路径不属于合法路径中的路径的情况下,判断出合法性校验不通过;
步骤S4,密钥代理模块判断第一MD5校验结果是否与预先获取的与业务进程对应的第二MD5校验结果相同;
步骤S5,若第一MD5校验结果与第二MD5校验结果相同,则判断出合法性校验通过;若第一MD5校验结果与第二MD5校验结果不同,则判断出合法性校验不通过。
可选地,在密钥代理模块对业务进程和进程PID进行合法性校验通过的情况下,密钥代理模块获取业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据,然后,密钥代理模块生成第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据,最后,密钥代理模块将第二文件描述符传输给业务模块。
在校验业务进程合法性通过的情况下,需要密钥代理模块和业务模块之间交换文件描述符。具体地,密钥代理模块可以首先获取业务模块的第一文件描述符,在获取到第一文件描述符之后,密钥代理模块就可以对业务模块发送的数据进行识别为合法数据。到此为止,业务模块已向密钥代理模块交换文件描述符,那么就需要密钥代理模块向业务模块交换文件描述符。此时,密钥代理模块可以将生成的第二文件描述符传输给业务模块,业务模块在接收到第二文件描述符之后,就可以对密钥代理模块发送的数据进行识别为合法数据。
在本发明实施例中,第一文件描述符和第二文件描述符对应共享内存中存储数据的数据块,其中,共享内存用于存储密文处理请求的待加密的数据和加密之后的待检加密的数据,将在下述实施例中进行详细描述。例如,当业务模块在共享内存存储待加密的数据时,是在第一文件描述符在共享内存中所对应的区域内存储待加密的数据。存储待加密的数据之后,密钥代理模块就能够获知业务模块在共享内存存储了待加密的数据,然后,密钥代理模块就会去该区域内获取待加密的数据。
需要说明的是,在本发明实施例中,可以一次性交换多个文件描述符eventfd,不够用时再次通过校验交换更多eventfd,这样就能明显减少校验请求的数目,发明人通过测试发现linux系统下一次性能交换的最大fd数目是255。在密钥代理模块和业务模块完成文件描述符的交换之后,就可以接收业务模块发送的密文处理请求,以对密文处理请求中的待加密的数据进行加密。
进一步地,在密钥代理模块对业务进程和进程PID进行合法性校验通过的情况下,密钥代理模块还可以为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。
具体地,在密钥代理模块对业务进程和进程PID进行合法性校验通过的情况下,密钥代理模块可以在交换文件描述符之后,为第一文件描述符设定目标权限,其中,设定的目标权限包括:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。
在密钥代理模块对第一文件描述符设置完成目标权限之后,密钥代理模块就可以根据接收到的密文处理请求对待加密的数据进行加密,然后,将加密之后的数据发送给业务模块。
其中,密钥代理模块接收业务模块发送的密文处理请求包括:密钥代理模块从共享内存中获取业务模块存入的待加密的数据;以及密钥代理模块将加密后的数据发送给业务模块包括:密钥代理模块将加密后的数据存入到共享内存中,以使得业务模块从共享内存中获取加密后的数据。
业务模块在向密钥代理模块发送密文处理请求时,会将密文处理请求存入到共享内存中。在此之后,密钥代理模块就可以从共享内存中获取已存储的待加密的数据。相同地,当密钥代理模块使用目标密钥对待加密的数据的进行加密处理之后,还可以将加密处理之后的待加密的数据同样存入共享内存中。使得业务模块可以从共享内存中获取加密后的数据。
通过上述描述可知,在本发明实施例中,密钥代理模块已预先为第一文件描述符设置目标权限,在此情况下,如果合法性校验通过,那么密钥代理模块从密钥列表中获取目标密钥,具体为:在目标权限包括允许密钥代理模块对业务模块请求的待加密的数据进行加密时,密钥代理模块从密钥列表中获取目标密钥包。
需要说明的是,由于目标权限可以为仅允许密钥代理模块对业务模块请求的待解密的数据进行解密或者允许密钥代理模块对业务模块请求的待加密的数据进行加密。因此,密钥代理模块只有在确定出目标权限为允许密钥代理模块对业务模块请求的待加密的数据进行加密时,才可以从密钥列表中获取目标密钥,并使用获取到的目标密钥对待加密的数据进行加密。
在本发明实施例的一个可选实施方式中,密钥代理模块获取业务进程的进程PID包括:密钥代理模块在非root运行模式下通过unix域套接字获取业务进程的进程PID;或者密钥代理模块将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。
在本发明实施例中,进程PID是通过unix域套接字中的套接字SCM_RIGHTS传输。由于unix域套接字传递准确进程PID的前提是非root模式运行的进程,因此,在传递进程PID之前,必须对本机root模式的需求进行审批。也即,需要在非root运行模式下通过unix域套接字获取业务进程的进程PID(进程标识)。进一步地,还可以通过密钥代理模块将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。
综上,在本发明实施例中,通过密钥Agent间接加解密待加密的数据;同时,业务模块和密钥Agent之间的通讯可以是任何标准linux IPC通讯手段,包括但不限于管道,unixsocket pair,本地磁盘文件等,本方案采取的linux eventfd是效率最高,最适合于海量加解密请求的选择。本方法通过充分利用现代linux操作系统内核提供的标准机制来实现加解密程序,既提高了密钥的安全性,同时又最大限度的减少了加解密性能损失,确保在实践中的有效性。
下面将结合具体实施例对本发明提供的业务加密的方法进行说明。
图3是根据本发明实施例的一种可选的业务处理方法的流程图,如图3所示,密钥Agent(即密钥代理模块)和业务模块处于同一个物理单机中。
在本发明实施例中,在密钥Agent重启时,密钥Agent使用约定密钥对第一公钥进行加密,并将加密之后的第一公钥发送至密钥服务器,密钥代理模块还可以接收密钥服务器发送的已加密的第二公钥,其中,第二公钥也采用约定密钥进行加密。密钥Agent在获取到第二公钥之后,使用约定密钥对第二公钥进行解密,密钥服务器在获取到第一公钥之后,也使用约定密钥对第一公钥进行解密。
接下来,密钥Agent就可以向密钥服务器发送密钥列表的拉取请求,密钥服务器在接收到密钥拉取请求之后,将向密钥Agent传输加密后的密钥列表,其中,加密后的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的。密钥Agent在接收到加密之后的密钥列表之后,就可以使用与第一通讯密钥相同的第二通讯密钥进行解密,其中,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的。
需要说明的是,在本发明实施例中,只有在密钥Agent重启时才会使用“约定密钥”对第一公钥和第二公钥进行加密,并互相传输。
也就是说,只有Agent的维护者在变更Agent时重启进程才是唯一合法使用约定密钥的时机,其它任何情形都是非法使用。例如,Agent的维护者在Agent重启时,使用了约定密钥获取密钥列表,在此之后,如果其他使用者再次使用约定密钥获取密钥列表时,表明该使用者为滥用者。因此,在本发明实施例中,仅在密钥Agent重启时才会使用一次“约定密钥”的设置,能够快速并有效地检测出滥用者。
由于网络上传递的只有各自的公钥pubkey,然而,本发明实施例中提供的业务加密是使用第一私钥和第二公钥对加密后的密钥列表进行解密,因此,即使密钥列表被tcpdump也不会反推出密钥,这就避免了内网抓包导致的密钥泄漏的现象出现。
需要说明的是,在本发明实施例中,还可以保护密钥Agent和密钥服务器的内存。具体地,可以直接把密钥Agent和密钥服务器的二进制strip掉(即,删除一切调试信息),然后再把密钥Agent和密钥服务器的代码安全隔离保存起来,这么一来gdb几乎成了瞎子,至少想简单修改变量是不可能了。
在对密钥列表进行解密之后,密钥Agent需要对业务进程和业务进程的PID合法性进行校验。如图4所示,业务模块首先建立unix域套接字,并建立第一文件描述符,然后,使用unix域套接字中的套接字SCM_RIGHTS将第一文件描述符传输至密钥Agent,以及利用套接字SCM_CREDENTIA向密钥Agent传输进程被内核所认证的进程PID。其中,SCM_RIGHTS和SCM_CREDENTIA均适用于unix domain socket,SCM_RIGHTS用于将一个进程中的描述符传输到另一个进程中,这种方法可以让一些只能在亲缘进程间通信的IPC扩展到非亲缘进程(如linux eventfd);SCM_CREDENTIA用于传输进程被内核所认证的进程PID。
发明人通过相关实验发现,在尝试过的所有方法(例如,异步IO,本地网络socket,unix域套接字,管道,边缘触发,一次recv/send多个请求,eventfd)和看到的所有文档中,加密效率仅次于共享内存的IPC,并明显快过管道和通常的unix域套接字,更不用提网络socket,实用性最好。
此时,在获取到进程PID之后,就可以对业务进程和进程PID的合法性进行校验,具体校验过程在上述步骤S1至步骤S5中进行详细描述,此处不再赘述。
进一步地,在合法性校验通过的情况下,密钥代理模块还可以向业务模块发送第一文件描述符eventfda,密钥代理模块在获取到第一文件描述符eventfda之后,将生成第二文件描述符eventfdb,并将第二文件描述符eventfdb发送至业务模块,以实现密钥代理模块和业务模块之间文件描述符的交换。
进一步地,在合法性校验通过的情况下,密钥代理模块还可以为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。
接下来,业务模块就可以向第一文件描述符eventfda在共享内存中对应的空间中进行写数据的操作,即,将待加密的数据写入第一文件描述符eventfda在共享内存中对应的区域中(write eventfda)。在写入之后,密钥代理模块就能够获知业务模块写入了数据,此时,密钥代理模块将从共享内存中读取待加密的数据(即,读第二文件描述符,readeventfdb),并读取之前为第一文件描述符eventfda配置的目标权限。
最后,在目标权限包括允许密钥代理模块对所述业务模块请求的待加密的数据进行加密时,密钥代理模块就可以从密钥列表中获取目标密钥,进而,密钥代理模块就可以根据获取到的目标密钥对待加密的数据进行密文处理请求。
需要说明的是,在本发明实施例中,只能通过eventfd直接传递8Bytes的数据,所以请求包(即,请求对待加密的数据进行加密的数据包)/响应包(即,已完成加密的待加密的数据的数据包)的主体会保存在共享内存中。
进一步地需要说明的是,把密钥保存在共享内存中是不安全,但是,把明文和密文保存在共享内存确是安全的。因为eventfd的8Byte可用来传输关键部分,这样攻击者就不能获取完整的密钥信息。
进一步地,如果SCM_CREDENTIA传递的PID出现错误时,表明此时sendmsg会返回-1,errno会被设置为3(表示进程不存在)或1(表示伪造其它进程)。
即:#define ESRCH 3/*No such process*/
#define EPERM 1/*Operation not permitted*/
进一步地,unix域套接字传递准确进程PID的前提是非root模式运行的进程,所以必须对密钥Agent的root模式的需求进行审批。
密钥代理模块还可以将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的所述进程PID。
下面将就具体实施例对本发明实施例进行说明。
假设,测试环境为以下环境:
机器:空闲机器、48核@2.6GHZ;
业务进程:60进程,4700协程,仅和Agent打交道;
密钥Agent:10进程;其中,业务进程和密钥Agent均自由运行,没有设置CPU优先级。
测试方式:
空服务:没有任何逻辑,测试网络框架本身的基础效率;
本地解密:直接解密微信票据;
票据=主票+从票;
主票:AES+非对称加密,16Bytes;
从票:对称加密+非对称加密,12Bytes;
密钥Agent解密:直接解密微信票据;
票据=主票+从票;
主票:AES加密,16Bytes;
从票:对称加密,12Bytes;
说明:由于密钥Agent大幅度强化了密钥安全,因此不再需要非对称加密。
压力测试结果:(整体CPU峰值)。
通过测试可知,5台外部测试机对测试业务的请求均达到约30W/S,其中,空服务为17%、本地解密为31%-33%、Agent解密为33%-34%。
8台外部测试机对测试业务的请求均达到约40W/S,其中,空服务为27-28%、本地解密为55%-56%、Agent解密为60%-61%。
由此可见,在极端情形下,密钥Agent方式相对于现有业务直接验证票据的方式增加的额外CPU负载很轻,极具实战价值。
在一个可选的实施例中,在获取第一信息之前,方法还可以包括:向第一类型的密钥代理模块发送密文处理请求;获取第一类型的密钥代理模块执行密文处理请求的执行结果,可选地,可以从共享内存中读取该执行结果。
在该实施例中,系统中可以运行双密钥代理模块,该双密钥代理模块可以为两种类型的密钥代理模块,可选地,该两种类型为第一类型和第二类型,其中,第一类型的密钥代理模块为开发型develop密钥代理模块,第二类型的密钥代理模块为稳定型stable密钥代理模块,稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
可选地,该稳定型stable密钥代理模块为已经确定为可以正确运行一段时间的密钥代理模块,而开发型develop密钥代理模块则为未确定出在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
根据本申请的上述实施例,获取第一信息可以包括:基于执行结果统计第一类型的密钥代理模块执行密文处理请求的成功率,其中,第一信息包括成功率。
可选地,将第一类型的密钥代理模块执行密文处理请求的总数作为分母,将第一类型的密钥代理模块执行密文处理请求的成功的总数作为分子,计算成功率。
在一个可选的实施例中,预定类型切换条件包括成功率低于第一预定阈值,检测第一信息是否符合预定类型切换条件可以包括:检测成功率是否低于第一预定阈值;若检测出成功率低于第一预定阈值,则确定第一信息符合预定类型切换条件;若检测出成功率不低于第一预定阈值,则确定第一信息不符合预定类型切换条件。
通过上述实施例,业务模块优先通过develop的密钥代理模块(即第一类型的密钥代理模块)执行加解密的操作,并在本地直接监控develop的密钥代理模块执行密文处理请求的成功率,当成功率跌到预先配置的第一预定阈值(例如,98%)以下时,则自动切换到第二类型的密钥代理模块执行密文处理请求,可以保证整个系统处理密文处理请求的稳定性。
根据本申请的上述实施例,在获取第一信息之前,方法还可以包括:在对系统中的密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为第一类型的密钥代理模块;若在预定时间段内均检测出第一类型的密钥代理模块执行密文处理请求的正确率高于预定正确率,则将第一类型的密钥代理模块记录为第二类型的密钥代理模块。
可选地,可以对已经设置好的密钥代理模块经过充分测试,且缓慢在网络中运行,在确定密钥代理模块可以正确执行足够长的时间(比如2个月)的情况下,则可以将该密钥代理模块记录为stable类型,若系统中的双密钥代理模块均符合该条件(如正确执行足够长的时间),则系统内的密钥代理模块均可以被记录为stable类型。
需要说明的是,在需要对Agent进行变更时,变更后的Agent的类型记录为develop类型。
在采用双Agent的方式来运行的实施例中,若该双Agent为双stable Agent,则业务模块选取修改时间较晚的stable Agent,在需要进行变更的时候,变更后的stableAgent变为develop Agent。
在一个可选的实施例中,若该双Agent为双stable Agent,则在需进行变更时,对文件修改时间较旧(即修改时间较早)的stable Agent进行变更。
在develop Agent运行期间,若需要变更,则继续发布该develop Agent。进一步地,只有当develop Agent在无任何变更的情况下,正确执行足够长的时间(比如2个月)可以将其类型设置为stable Agent(即第二类型的密钥代理模块)。
可选地,在获取第一信息之前,方法还可以包括:在系统中的第一类型的密钥代理模块正在运行的过程中,若需对密钥代理模块中的文件进行更新,则对第一类型的密钥代理模块中的文件进行更新。
在上述实施例中,在第一类型的密钥代理模块(即develop Agent)运行期间,如果还需要进行变更,则继续发布此develop Agent,当develop Agent在无任何变更的情况下,可以正确执行足够长的时间(比如2个月)可以将其类型设置为stable Agent(即第二类型的密钥代理模块)。
需要说明的是,通过第二类型的密钥代理模块执行业务模块请求的密文处理请求包括:若系统中包括多个第二类型的密钥代理模块(如两个),则从多个第二类型的密钥代理模块中获取更新时间最晚的第二类型的密钥代理模块,通过更新时间最晚的第二类型的密钥代理模块执行密文处理请求。
根据本申请的上述实施例,若系统中的密钥代理模块均被设置为第二类型的密钥代理模块,则业务模块可以从两个stable Agent中选取文件修改时间较新的Agent,业务模块可以使用该文件修改时间较新(即修改时间较晚)的Agent进行加解密的操作。
根据本发明的上述实施例,在通过第二类型的密钥代理模块执行业务模块的密文处理请求之后,方法还包括:在接收到输入的切换指令之后,响应于切换指令,通过第一类型的密钥代理模块执行密文处理请求。
在上述实施例中,输入的切换指令为人工输入的指令。在业务模块从developAgent切换到stable Agent之后,通过手工恢复成使用develop Agent的方式,这样可以在人工100%确认develop Agent的问题已经修复的情况下继续使用develop Agent,从而可以避免因为随意进行stable类型到develop类型的切换,而使得业务进一步蒙受损失。
通过上述实施例,通过业务模块进行容灾处理,可以在系统升级的情况下,保证加解密正常进行,并且在系统有bug的时候,可以及时切换不同类型的密钥代理模块执行密文处理请求,保证了系统的稳定性。
可选地,在通过密钥代理模块执行密文处理请求的过程中,方法还包括:在密钥代理模块对业务进程进行合法性校验之后,在合法性校验通过的情况下,业务模块向密钥代理模块发送第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;获取密钥代理模块生成的多个第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据。
可选地,在获取密钥代理模块生成的多个第二文件描述符之后,方法还包括:将获取到的多个第二文件描述符保存至队列中;依序利用队列中存储的第二文件描述符与密钥代理模块进行通信。
可选地,多个第二文件描述符的数目与密钥代理模块中用于执行密文处理请求的线程数目相对应。
在该实施例中,业务以线程为单位,各自独立同Agent交换描述符,并以队列的方式独立管理描述符,线程之间互不干扰。每个业务线程独立的通过了Agent校验过身份后,一次交换出多个第二文件描述符(例如,Agent加解密线程数目的整数倍),Agent端将描述符完全均匀的分配给各Agent加解密线程(因此每个线程管理的描述符数目相等),从而可以实现业务的负载均衡。
例如,密钥代理模块获取业务模块发送的100个第一文件描述符,然后密钥代理模块生成100个第二文件描述符,并将该100个第二文件描述符传输给业务模块,100个第一文件描述符和100个第二文件描述符一一配对得到100组描述符,密钥代理模块将该100组描述符平均分配给10个加解密线程可以通过如下方式试下:第一组描述符分配给加解密线程1,第二组描述符分配给加解密线程2,……,第十组描述符分配给加解密线程10,第十一组描述符分配给加解密线程1,第十二组描述符分配给加解密线程2,以此类推,第一百组描述符分配给加解密线程10。
在上述实施例中,每个业务线程将交换出来的多个描述符保存到自身的线程级队列中,业务线程每次加解密请求就从队列首取描述符来和Agent通讯,通讯完成后将描述符放回队列尾;如果从队列首取描述符是发现队列为空,就再次按上述的方法交换出更多描述符。
通过上述实施例,极大的减少了身份认证的次数,由于身份认证的身份校验的MD5(或者其它HASH算法)计算效率较低,这样可以不必每个请求都验证身份;每个业务线程都极其均匀的访问各Agent线程,完全避免各Agent线程负载不均匀的问题,均衡利用多CPU的资源;业务和Agent之间的各加解密请求处理高度独立,不用加请求级的锁来保证资源独占,提高并发吞吐能力。
在另一个可选的实施例中,通过密钥代理模块进行容灾处理。图5示出了一种可选的实施例,如图5所示,该实施例可以通过如下步骤实现:
步骤S502:密钥代理模块获取执行密文处理请求的执行结果;
步骤S504:密钥代理模块检测执行结果是否符合预定模式切换条件;
步骤S506:若检测出执行结果符合预定模式切换条件,则密钥代理模块向业务模块发送指示信息,其中,指示信息用于指示业务模块切换到通过业务模块执行密文处理请求的模式。
可选地,若检测出执行结果不符合预定模式切换条件,则继续运行在由密钥代理模块执行密文处理请求的模式。
通过上述实施例,密钥代理模块获取执行密文处理请求的执行结果;密钥代理模块检测执行结果是否符合预定模式切换条件;若检测出执行结果符合预定模式切换条件,则密钥代理模块向业务模块发送指示信息,其中,指示信息用于指示业务模块切换到通过业务模块执行密文处理请求的模式。在上述实施例中,密钥代理模块检测其执行密文处理请求的执行结果是否符合预定模式切换条件,若符合预定模式切换条件,则确定该密钥代理模块无法继续稳定执行密文处理请求,则转换模式,以使得业务模块可以自行执行密文处理请求,以解决现有技术中在对业务数据进行加解密时无法稳定运行的问题,实现了系统的稳定运行。
可选地,业务模块在切换到本地加解密模式后(即业务模块切换到通过业务模块执行密文处理请求的模式),通过手工(如接收人工输入的恢复指令)才能恢复成使用Agent的方式(业务此时自动清理密钥M),这是为了人工100%确认问题已经修复,不会进一步因为随意切换使得业务进一步蒙受损失,通过该实施例,可以最小的安全性损失最大限度的保障业务正常运行。
在上述实施例中,密钥代理模块执行密文处理请求的方式与上述实施例中所述的方式一致,在此不再赘述。
在一个可选的实施例中,Agent在每次拉取最新密钥列表时,由密钥服务器SVR生成一个随机密钥M(即密钥数据)返回给Agent,Agent将密钥列表使用M加密后保存到某块共享内存N中。
可选地,在通过业务线程获取密钥代理模块的密钥数据之前,方法还包括:通过业务线程生成通信管道的第一端描述符和第二端描述符,其中,第一端描述符用于密钥代理模块将业务模块发送的数据识别为合法数据,第二端描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;通过通信管道将第二端描述符传输给密钥代理模块。
业务线程独立生成两个管道描述符,分别为读端描述符和写端描述符(如上述的第一端描述符和第二端描述符),业务线程在身份校验时把写端传递给Agent,Agent若是校验身份通过,则保留该写端,此时业务线程将自己持有的写端关闭,此时业务线程持有管道读端,Agent持对应该线程的管道写端。
进一步地,业务在执行加解密请求时,将请求时间A填入请求包中(例如,可以将时间精确到毫秒)。
可选地,密钥代理模块获取执行密文处理请求的执行结果包括:密钥代理模块在执行完密文处理请求之后,基于密文处理请求中的请求时间与当前时间,判断执行当前的密文处理请求是否超时;若判断出执行当前的密文处理请求超时,则密钥代理模块确定执行当前的密文处理请求失败;密钥代理模块基于执行失败的密文处理请求的数量,统计密钥代理模块执行密文处理请求的成功率,执行结果包括成功率。
可选地,密钥代理模块检测执行结果是否符合预定模式切换条件包括:密钥代理模块检测成功率是否低于第二预定阈值;若检测出执行密文处理请求的成功率是否低于第二预定阈值,则确定执行结果符合预定模式切换条件。
可选地,Agent在完成执行请求并且将结果数据写入共享内存和通信的描述符缓冲之后,判断当前时间(精确到毫秒),设业务设定的加解密超时为B ms,则如果当前时间同时间A的时差C超过(B-x)ms时,就将此请求标记为失败,当成功率跌到实现配置的第二预定阈值(比如98%)以下时,自动通过各管道写端将密钥M发送到所有业务线程。可选地,x可以为3。
进一步可选地,密钥代理模块向业务模块发送指示信息包括:密钥代理模块向业务模块发送密钥数据,其中,密钥数据用于解密共享内存中存储的密钥列表,得到解密后的密钥列表,业务模块还用于通过解密后的密钥列表执行密文处理请求。
需要说明的是,业务模块通过业务线程获取密钥代理模块的密钥数据包括:通过业务线程周期性从通信管道的读端读取数据;若从通信管道的读端读取到数据,则确定获取到密钥数据。
在该示例中,业务线程周期性(比如3秒)判断自己的管道读端是否有数据可读,一旦读出数据,则认为是密钥M,然后每次都使用M来解密N内存中的密钥列表获取加解密请求的密钥,从容退化成业务线程本地加解密模式,完全忽略Agent。
可选地,在密钥代理模块接收并执行业务模块的密文处理请求之前,方法还包括:在对密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为第一类型的密钥代理模块;在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之后,方法还包括:若在预定时间段内均检测出第一类型的密钥代理模块执行密文处理请求的正确率高于预定正确率,则将第一类型的密钥代理模块记录为第二类型的密钥代理模块。
可选地,在第一类型的密钥代理模块执行业务模块的密文处理请求的过程中,方法还包括:若需对密钥代理模块中的文件进行更新,则对第一类型的密钥代理模块中的文件进行更新。
可选地,密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
可选地,通信管道还用于检测业务模块、以及密钥代理模块是否重启。
在上述实施例中,管道(即上述的通信管道)还是Agent和业务互相判断对方是否重启的有力工具,业务线程可以和Agent再多传送一次管道描述符,此时业务持有写端,Agent持有读端,一旦业务进程关闭,Agent立刻能通过epoll_wait()的EPOLLHUP错误发现,然后立刻启动清理,防止资源泄露;而业务则可以通过由请求触发,当加解密请求超时时,通过写入管道写端写入一个字节,如果Agent重启,则会返回EPIPE,此时也能立刻触发资源清理,并重新和新启动的Agent验证身份。
通过上述实施例,在Agent(如第二类型的密钥代理模块)的BUG(也就是长期潜伏的隐晦BUG)被意外触发时或者本硬件服务器资源绝对不足时,可以采取以牺牲一定安全性的方法来维持业务继续正常运行,即在保证业务正常的前提下,尽可能减少安全性的损失。
具体地,由Agent来判断是否进入容灾模式;Agent本身的安全防护(root运行,难以被调试等特性)远多于一般业务,平时正常时业务依然不持有密钥,也不能通过简单DUMP加密的密钥列表共享内存N来盗取密钥列表,提高了安全性;进一步地,由Agent判断容灾模式十分合理,由于双方通信的描述符是共享的,只要Agent将回包数据写入了通讯共享内存和通信描述符的缓冲区,业务线程就一定能无条件读出来,且Agent还预留了3毫秒给业务来读取结果,时间十分充足,业务这样都还超时的话,证明其它部分耗时太长,性能问题和Agent关系不大;这种方式就避免了非共享描述符的问题,即业务和Agent使用不同的描述符来通信,Agent将结果写入己方的描述符缓冲区之后,还要依赖内核将此数据“搬运”到业务描述符的缓冲区中,否则业务依旧读取不到结果,这样由Agent来控制容灾开启就不见得合理了。
3进一步需要说明的是即使处于管道容灾模式,N依旧保持加密状态,还是不能通过简单DUMP加密的密钥列表共享内存N来盗取密钥列表,而必须趁机以攻击业务的方式(如调试业务)获取M,然后才能盗取到密钥列表,架设恶意者想通过容灾模式盗取密钥列表,也得闹出比较大的动静才行,即至少在一台物理单机上制造业务故障或者趁着故障来盗取,由于此时业务有问题,比较引人注目,对其风险较高。
可选地,在通过第一类型的密钥代理模块或第二类型的密钥代理模块执行密文处理请求的过程中,方法还包括:通过业务线程获取密钥代理模块的密钥数据,其中,密钥代理模块用于在检测出执行密文处理请求的成功率低于第二预定阈值的情况下,发送密钥数据;利用密钥数据解密共享内存中存储的密钥列表,得到解密后的密钥列表;利用解密后的密钥列表通过业务模块执行密文处理请求。
可选地,密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
在一个可选的实施例中,业务处理方法还可以应用在密钥代理模块所在的系统中,该方案可以通过如下方式实现:第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果;第二类型的密钥代理模块接收并执行业务模块的密文处理请求,其中,业务模块用于在基于执行结果生成的第一信息符合预定类型切换条件的情况下,向第二类型的密钥代理模块发送密文处理请求。
可选地,第一类型的密钥代理模块为开发型密钥代理模块,第二类型的密钥代理模块为稳定型密钥代理模块,稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
可选地,在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之前,方法还包括:在对系统中的密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为第一类型的密钥代理模块;在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之后,方法还包括:若在预定时间段内均检测出第一类型的密钥代理模块执行密文处理请求的正确率高于预定正确率,则将第一类型的密钥代理模块记录为第二类型的密钥代理模块。
可选地,在第一类型的密钥代理模块执行业务模块的密文处理请求的过程中,方法还包括:若需对密钥代理模块中的文件进行更新,则对第一类型的密钥代理模块中的文件进行更新。
可选地,在密钥代理模块执行密文处理请求的过程中,方法还包括:密钥代理模块检测执行密文处理请求的成功率是否低于第二预定阈值;若检测出执行密文处理请求的成功率是否低于第二预定阈值,则向业务模块发送密钥数据,其中,密钥数据用于解密共享内存中存储的密钥列表,得到解密后的密钥列表,业务模块还用于通过解密后的密钥列表执行密文处理请求。
可选地,在密钥代理模块检测执行密文处理请求的成功率是否低于第二预定阈值之前,方法还包括:密钥代理模块在执行完密文处理请求之后,基于密文处理请求中的请求时间与当前时间,判断执行当前的密文处理请求是否超时;若判断出执行当前的密文处理请求超时,则确定执行当前的密文处理请求失败;基于执行失败的密文处理请求的数量,统计密钥代理模块执行密文处理请求的成功率。
可选地,在密钥代理模块检测执行密文处理请求的成功率是否低于第二预定阈值之前,方法还包括:接收通过业务线程传输的通信管道的第二端描述符,其中,业务线程用于生成第一端描述符和第二端描述符,其中,第一端描述符用于密钥代理模块将业务模块发送的数据识别为合法数据,第二端描述符用于业务模块将密钥代理模块发送的数据识别为合法数据。
可选地,向业务模块发送密钥数据包括:通过各个业务线程的通信管道的写端,发送密钥数据。
可选地,在通过密钥代理模块执行密文处理请求的过程中,方法还包括:在密钥代理模块对业务进程进行合法性校验之后,在合法性校验通过的情况下,密钥代理模块接收业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;密钥代理模块生成多个第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;密钥代理模块向业务模块传输多个第二文件描述符。
可选地,多个第二文件描述符的数目与密钥代理模块中用于执行密文处理请求的线程数目相对应。
可选地,密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述业务处理方法的业务处理装置。图6是根据本发明实施例的一种可选的业务处理装置的示意图,如图6所示,该装置可以包括:
第一获取单元61,用于获取第一信息,其中,第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;
第一检测单元63,用于检测第一信息是否符合预定类型切换条件,其中,符合预定类型切换条件表示第一类型的密钥代理模块无法稳定执行密文处理请求的配置;
第一执行单元65,用于在检测出第一信息符合预定类型切换条件的情况下,通过第二类型的密钥代理模块执行业务模块的密文处理请求。
可选地,第一处理单元,用于在获取第一信息之前,向第一类型的密钥代理模块发送密文处理请求;获取第一类型的密钥代理模块执行密文处理请求的执行结果;第一获取单元包括:基于执行结果统计第一类型的密钥代理模块执行密文处理请求的成功率,其中,第一信息包括成功率。
可选地,,预定类型切换条件包括成功率低于第一预定阈值,检测单元具体用于:检测成功率是否低于第一预定阈值;若检测出成功率低于第一预定阈值,则确定第一信息符合预定类型切换条件;若检测出成功率不低于第一预定阈值,则确定第一信息不符合预定类型切换条件。
可选地,,第一类型的密钥代理模块为开发型密钥代理模块,第二类型的密钥代理模块为稳定型密钥代理模块,稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
可选地,第二处理单元,用于在获取第一信息之前,在对系统中的密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为第一类型的密钥代理模块;若在预定时间段内均检测出第一类型的密钥代理模块执行密文处理请求的正确率高于预定正确率,则将第一类型的密钥代理模块记录为第二类型的密钥代理模块。
可选地,第三处理单元,用于在获取第一信息之前,在系统中的第一类型的密钥代理模块正在运行的过程中,若需对密钥代理模块中的文件进行更新,则对第一类型的密钥代理模块中的文件进行更新。
可选地,第一执行单元包括:若系统中包括多个第二类型的密钥代理模块,则从多个第二类型的密钥代理模块中获取更新时间最晚的第二类型的密钥代理模块,通过更新时间最晚的第二类型的密钥代理模块执行密文处理请求。
可选地,第四处理单元,用于在通过第二类型的密钥代理模块执行业务模块的密文处理请求之后,在接收到输入的切换指令之后,响应于切换指令,通过第一类型的密钥代理模块执行密文处理请求。
可选地,第五处理单元,用于在通过第一类型的密钥代理模块或第二类型的密钥代理模块执行密文处理请求的过程中,通过业务线程获取密钥代理模块的密钥数据,其中,密钥代理模块用于在检测出执行密文处理请求的成功率低于第二预定阈值的情况下,发送密钥数据;利用密钥数据解密共享内存中存储的密钥列表,得到解密后的密钥列表;利用解密后的密钥列表通过业务模块执行密文处理请求。
可选地,第六处理单元,用于在通过业务线程获取密钥代理模块的密钥数据之前,通过业务线程生成通信管道的第一端描述符和第二端描述符,其中,第一端描述符用于密钥代理模块将业务模块发送的数据识别为合法数据,第二端描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;通过通信管道将第二端描述符传输给密钥代理模块。
可选地,,通过业务线程获取密钥代理模块的密钥数据包括:通过业务线程周期性从通信管道的读端读取数据;若从通信管道的读端读取到数据,则确定获取到密钥数据。
可选地,通信管道还用于检测业务模块、以及密钥代理模块是否重启。
可选地,第七处理单元,用于在通过密钥代理模块执行密文处理请求的过程中,在密钥代理模块对业务进程进行合法性校验之后,在合法性校验通过的情况下,业务模块向密钥代理模块发送第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;获取密钥代理模块生成的多个第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据。
可选地,第七处理单元,用于在获取密钥代理模块生成的多个第二文件描述符之后,将获取到的多个第二文件描述符保存至队列中;依序利用队列中存储的第二文件描述符与密钥代理模块进行通信。
可选地,多个第二文件描述符的数目与密钥代理模块中用于执行密文处理请求的线程数目相对应。
可选地,密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
在一个可选地的实施例中,该装置应用在密钥代理模块中,该装置包括:第一处理单元,设置在第一类型的密钥代理模块中,用于接收并执行业务模块的密文处理请求,得到执行结果;第一处理单元,设置在第二类型的密钥代理模块中,用于接收并执行业务模块的密文处理请求,其中,业务模块用于在基于执行结果生成的第一信息符合预定类型切换条件的情况下,向第二类型的密钥代理模块发送密文处理请求。
可选地,第一类型的密钥代理模块为开发型密钥代理模块,第二类型的密钥代理模块为稳定型密钥代理模块,稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
可选地,第三处理单元,用于在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之前,在对系统中的密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为第一类型的密钥代理模块;在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之后,若在预定时间段内均检测出第一类型的密钥代理模块执行密文处理请求的正确率高于预定正确率,则将第一类型的密钥代理模块记录为第二类型的密钥代理模块。
可选地,更新单元,用于在第一类型的密钥代理模块执行业务模块的密文处理请求的过程中,若需对密钥代理模块中的文件进行更新,则对第一类型的密钥代理模块中的文件进行更新。
可选地,检测单元,用于在密钥代理模块执行密文处理请求的过程中,密钥代理模块检测执行密文处理请求的成功率是否低于第二预定阈值;若检测出执行密文处理请求的成功率是否低于第二预定阈值,则向业务模块发送密钥数据,其中,密钥数据用于解密共享内存中存储的密钥列表,得到解密后的密钥列表,业务模块还用于通过解密后的密钥列表执行密文处理请求。
可选地,第四处理单元,用于在密钥代理模块检测执行密文处理请求的成功率是否低于第二预定阈值之前,密钥代理模块在执行完密文处理请求之后,基于密文处理请求中的请求时间与当前时间,判断执行当前的密文处理请求是否超时;若判断出执行当前的密文处理请求超时,则确定执行当前的密文处理请求失败;基于执行失败的密文处理请求的数量,统计密钥代理模块执行密文处理请求的成功率。
可选地,第六处理单元,用于在密钥代理模块检测执行密文处理请求的成功率是否低于第二预定阈值之前,接收通过业务线程传输的通信管道的第二端描述符,其中,业务线程用于生成第一端描述符和第二端描述符,其中,第一端描述符用于密钥代理模块将业务模块发送的数据识别为合法数据,第二端描述符用于业务模块将密钥代理模块发送的数据识别为合法数据。
可选地,向业务模块发送密钥数据包括:通过各个业务线程的通信管道的写端,发送密钥数据。
可选地,通信管道还用于检测业务模块、以及密钥代理模块是否重启。
可选地,第六处理单元,用于在通过密钥代理模块执行密文处理请求的过程中,在密钥代理模块对业务进程进行合法性校验之后,在合法性校验通过的情况下,密钥代理模块接收业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;密钥代理模块生成多个第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;密钥代理模块向业务模块传输多个第二文件描述符。
可选地,多个第二文件描述符的数目与密钥代理模块中用于执行密文处理请求的线程数目相对应。
可选地,密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
在一个可选的实施例中,业务处理装置应用在密钥代理模块中,该装置包括:第一获取单元,用于获取执行密文处理请求的执行结果;第一检测单元,用于检测执行结果是否符合预定模式切换条件,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块出现漏洞,也即,所述第一类型的密钥代理模块无法稳定执行密文处理请求;第一发送单元,用于若检测出执行结果符合预定模式切换条件,则向业务模块发送指示信息,其中,指示信息用于指示业务模块切换到通过业务模块执行密文处理请求的模式。
可选地,第一获取单元用于:密钥代理模块在执行完密文处理请求之后,基于密文处理请求中的请求时间与当前时间,判断执行当前的密文处理请求是否超时;若判断出执行当前的密文处理请求超时,则密钥代理模块确定执行当前的密文处理请求失败;密钥代理模块基于执行失败的密文处理请求的数量,统计密钥代理模块执行密文处理请求的成功率,执行结果包括成功率。
可选地,第一检测单元用于:密钥代理模块检测成功率是否低于第二预定阈值;若检测出执行密文处理请求的成功率是否低于第二预定阈值,则确定执行结果符合预定模式切换条件。
可选地,第一发送单元用于包括:密钥代理模块向业务模块发送密钥数据,其中,密钥数据用于解密共享内存中存储的密钥列表,得到解密后的密钥列表,业务模块还用于通过解密后的密钥列表执行密文处理请求。
可选地,密钥代理模块包括第一类型的密钥代理模块和第二类型的密钥代理模块,其中,第一类型的密钥代理模块为开发型密钥代理模块,第二类型的密钥代理模块为稳定型密钥代理模块,稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
可选地,第一处理单元,用于在密钥代理模块接收并执行业务模块的密文处理请求之前,在对密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为第一类型的密钥代理模块;在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之后,方法还包括:若在预定时间段内均检测出第一类型的密钥代理模块执行密文处理请求的正确率高于预定正确率,则将第一类型的密钥代理模块记录为第二类型的密钥代理模块。
可选地,第二处理单元,用于在第一类型的密钥代理模块执行业务模块的密文处理请求的过程中,若需对密钥代理模块中的文件进行更新,则对第一类型的密钥代理模块中的文件进行更新。
可选地,密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例3
根据本发明实施例,还提供了一种用于实施上述业务处理方法的服务器或终端。
图7是根据本发明实施例的一种终端的结构框图,如图7所示,该终端可以包括:一个或多个(图中仅示出一个)处理器701(如上述实施例中的密钥代理模块)、存储器703、以及传输装置705(如上述实施例中的发送装置),如图7所示,该终端还可以包括输入输出设备707。
其中,存储器703可用于存储软件程序以及模块,如本发明实施例中的业务处理方法和装置对应的程序指令/模块,处理器701通过运行存储在存储器703内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的业务处理方法。存储器703可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器703可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置705用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置705包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置705为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器703用于存储应用程序。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤:获取第一信息,其中,第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;检测第一信息是否符合预定类型切换条件,其中,符合预定类型切换条件表示确定第一类型的密钥代理模块出现漏洞;在检测出第一信息符合预定类型切换条件的情况下,通过第二类型的密钥代理模块执行业务模块的密文处理请求。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤在获取第一信息之前,向第一类型的密钥代理模块发送密文处理请求;获取第一类型的密钥代理模块执行密文处理请求的执行结果;获取第一信息包括:基于执行结果统计第一类型的密钥代理模块执行密文处理请求的成功率,其中,第一信息包括成功率。
可选地,预定类型切换条件包括成功率低于第一预定阈值,处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤:检测成功率是否低于第一预定阈值;若检测出成功率低于第一预定阈值,则确定第一信息符合预定类型切换条件;若检测出成功率不低于第一预定阈值,则确定第一信息不符合预定类型切换条件。
可选地,第一类型的密钥代理模块为开发型密钥代理模块,第二类型的密钥代理模块为稳定型密钥代理模块,稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,在获取第一信息之前,在对系统中的密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为第一类型的密钥代理模块;若在预定时间段内均检测出第一类型的密钥代理模块执行密文处理请求的正确率高于预定正确率,则将第一类型的密钥代理模块记录为第二类型的密钥代理模块。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,在获取第一信息之前,在系统中的第一类型的密钥代理模块正在运行的过程中,若需对密钥代理模块中的文件进行更新,则对第一类型的密钥代理模块中的文件进行更新。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,若系统中包括多个第二类型的密钥代理模块,则从多个第二类型的密钥代理模块中获取更新时间最晚的第二类型的密钥代理模块,通过更新时间最晚的第二类型的密钥代理模块执行密文处理请求。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,在通过第二类型的密钥代理模块执行业务模块的密文处理请求之后,在接收到输入的切换指令之后,响应于切换指令,通过第一类型的密钥代理模块执行密文处理请求。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,在通过第一类型的密钥代理模块或第二类型的密钥代理模块执行密文处理请求的过程中,通过业务线程获取密钥代理模块的密钥数据,其中,密钥代理模块用于在检测出执行密文处理请求的成功率低于第二预定阈值的情况下,发送密钥数据;利用密钥数据解密共享内存中存储的密钥列表,得到解密后的密钥列表;利用解密后的密钥列表通过业务模块执行密文处理请求。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,在通过业务线程获取密钥代理模块的密钥数据之前,通过业务线程生成通信管道的第一端描述符和第二端描述符,其中,第一端描述符用于密钥代理模块将业务模块发送的数据识别为合法数据,第二端描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;通过通信管道将第二端描述符传输给密钥代理模块。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,通过业务线程周期性从通信管道的读端读取数据;若从通信管道的读端读取到数据,则确定获取到密钥数据。
可选地,通信管道还用于检测业务模块、以及密钥代理模块是否重启。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,在通过密钥代理模块执行密文处理请求的过程中,在密钥代理模块对业务进程进行合法性校验之后,在合法性校验通过的情况下,业务模块向密钥代理模块发送第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;获取密钥代理模块生成的多个第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,在获取密钥代理模块生成的多个第二文件描述符之后,将获取到的多个第二文件描述符保存至队列中;依序利用队列中存储的第二文件描述符与密钥代理模块进行通信。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,多个第二文件描述符的数目与密钥代理模块中用于执行密文处理请求的线程数目相对应。
可选的,密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果;第二类型的密钥代理模块接收并执行业务模块的密文处理请求,其中,业务模块用于在基于执行结果生成的第一信息符合预定类型切换条件的情况下,向第二类型的密钥代理模块发送密文处理请求,其中,符合预定类型切换条件表示确定第一类型的密钥代理模块出现漏洞。
可选的,第一类型的密钥代理模块为开发型密钥代理模块,第二类型的密钥代理模块为稳定型密钥代理模块,稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,密钥代理模块获取执行密文处理请求的执行结果;密钥代理模块检测执行结果是否符合预定模式切换条件,其中,符合预定模式切换条件表示确定密钥代理模块出现漏洞;
若检测出执行结果符合预定模式切换条件,则密钥代理模块向业务模块发送指示信息,其中,指示信息用于指示业务模块切换到通过业务模块执行密文处理请求的模式。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,密钥代理模块获取执行密文处理请求的执行结果包括:密钥代理模块在执行完密文处理请求之后,基于密文处理请求中的请求时间与当前时间,判断执行当前的密文处理请求是否超时;若判断出执行当前的密文处理请求超时,则密钥代理模块确定执行当前的密文处理请求失败;密钥代理模块基于执行失败的密文处理请求的数量,统计密钥代理模块执行密文处理请求的成功率,执行结果包括成功率。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,密钥代理模块检测执行结果是否符合预定模式切换条件包括:密钥代理模块检测成功率是否低于第二预定阈值;若检测出执行密文处理请求的成功率是否低于第二预定阈值,则确定执行结果符合预定模式切换条件。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤,密钥代理模块向业务模块发送密钥数据,其中,密钥数据用于解密共享内存中存储的密钥列表,得到解密后的密钥列表,业务模块还用于通过解密后的密钥列表执行密文处理请求。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行业务处理方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
获取第一信息,其中,第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果;检测第一信息是否符合预定类型切换条件,其中,符合预定类型切换条件表示确定第一类型的密钥代理模块出现漏洞;在检测出第一信息符合预定类型切换条件的情况下,通过第二类型的密钥代理模块执行业务模块的密文处理请求。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (40)

1.一种业务处理方法,其特征在于,包括:
获取第一信息,其中,所述第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果,所述密文处理请求为业务模块向所述密钥代理模块发送的加密请求或解密请求;
检测所述第一信息是否符合预定类型切换条件,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块出现漏洞;
在检测出所述第一信息符合所述预定类型切换条件的情况下,通过第二类型的密钥代理模块执行业务模块的密文处理请求。
2.根据权利要求1所述的方法,其特征在于,
在获取第一信息之前,所述方法还包括:向所述第一类型的密钥代理模块发送密文处理请求;获取所述第一类型的密钥代理模块执行密文处理请求的执行结果;
获取第一信息包括:基于所述执行结果统计所述第一类型的密钥代理模块执行密文处理请求的成功率,其中,所述第一信息包括所述成功率。
3.根据权利要求2所述的方法,其特征在于,所述预定类型切换条件包括成功率低于第一预定阈值,检测所述第一信息是否符合预定类型切换条件包括:
检测所述成功率是否低于所述第一预定阈值;
若检测出所述成功率低于所述第一预定阈值,则确定所述第一信息符合所述预定类型切换条件;
若检测出所述成功率不低于所述第一预定阈值,则确定所述第一信息不符合所述预定类型切换条件。
4.根据权利要求1所述的方法,其特征在于,所述第一类型的密钥代理模块为开发型密钥代理模块,所述第二类型的密钥代理模块为稳定型密钥代理模块,所述稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
5.根据权利要求4所述的方法,其特征在于,在获取第一信息之前,所述方法还包括:
在对系统中的密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为所述第一类型的密钥代理模块;
若在预定时间段内均检测出所述第一类型的密钥代理模块执行所述密文处理请求的正确率高于预定正确率,则将所述第一类型的密钥代理模块记录为第二类型的密钥代理模块。
6.根据权利要求1所述的方法,其特征在于,在获取第一信息之前,所述方法还包括:
在系统中的第一类型的密钥代理模块正在运行的过程中,若需对密钥代理模块中的文件进行更新,则对所述第一类型的密钥代理模块中的文件进行更新。
7.根据权利要求1所述的方法,其特征在于,通过第二类型的密钥代理模块执行所述业务模块请求的密文处理请求包括:
若系统中包括多个第二类型的密钥代理模块,则从多个第二类型的密钥代理模块中获取更新时间最晚的第二类型的密钥代理模块,通过所述更新时间最晚的第二类型的密钥代理模块执行所述密文处理请求。
8.根据权利要求1所述的方法,其特征在于,在通过第二类型的密钥代理模块执行所述业务模块的密文处理请求之后,所述方法还包括:
在接收到输入的切换指令之后,响应于所述切换指令,通过所述第一类型的密钥代理模块执行密文处理请求。
9.根据权利要求1所述的方法,其特征在于,在通过第一类型的密钥代理模块或第二类型的密钥代理模块执行所述密文处理请求的过程中,所述方法还包括:
通过业务线程获取所述密钥代理模块的密钥数据,其中,所述密钥代理模块用于在检测出执行所述密文处理请求的成功率低于第二预定阈值的情况下,发送所述密钥数据;
利用所述密钥数据解密共享内存中存储的密钥列表,得到解密后的密钥列表;
利用所述解密后的密钥列表通过业务模块执行所述密文处理请求。
10.根据权利要求9所述的方法,其特征在于,在通过业务线程获取所述密钥代理模块的密钥数据之前,所述方法还包括:
通过所述业务线程生成通信管道的第一端描述符和第二端描述符,其中,所述第一端描述符用于所述密钥代理模块将所述业务模块发送的数据识别为合法数据,所述第二端描述符用于所述业务模块将所述密钥代理模块发送的数据识别为合法数据;
通过所述通信管道将所述第二端描述符传输给所述密钥代理模块。
11.根据权利要求10所述的方法,其特征在于,通过业务线程获取所述密钥代理模块的密钥数据包括:
通过所述业务线程周期性从所述通信管道的读端读取数据;
若从所述通信管道的读端读取到数据,则确定获取到所述密钥数据。
12.根据权利要求10所述的方法,其特征在于,所述通信管道还用于检测所述业务模块、以及所述密钥代理模块是否重启。
13.根据权利要求1所述的方法,其特征在于,在通过密钥代理模块执行所述密文处理请求的过程中,所述方法还包括:
在所述密钥代理模块对业务进程进行合法性校验之后,在所述合法性校验通过的情况下,所述业务模块向所述密钥代理模块发送第一文件描述符,其中,所述第一文件描述符用于所述密钥代理模块将所述业务模块发送的数据识别为合法数据;
获取所述密钥代理模块生成的多个第二文件描述符,其中,所述第二文件描述符用于所述业务模块将所述密钥代理模块发送的数据识别为合法数据。
14.根据权利要求13所述的方法,其特征在于,在获取所述密钥代理模块生成的多个第二文件描述符之后,所述方法还包括:
将获取到的所述多个第二文件描述符保存至队列中;
依序利用所述队列中存储的第二文件描述符与所述密钥代理模块进行通信。
15.根据权利要求13所述的方法,其特征在于,所述多个第二文件描述符的数目与所述密钥代理模块中用于执行所述密文处理请求的线程数目相对应。
16.根据权利要求1至15中任意一项所述的方法,其特征在于,所述密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
17.一种业务处理方法,其特征在于,包括:
第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果,所述密文处理请求为业务模块向所述密钥代理模块发送的加密请求或解密请求;
第二类型的密钥代理模块接收并执行所述业务模块的密文处理请求,其中,所述业务模块用于在基于所述执行结果生成的第一信息符合预定类型切换条件的情况下,向所述第二类型的密钥代理模块发送密文处理请求,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块出现漏洞。
18.根据权利要求17所述的方法,其特征在于,所述第一类型的密钥代理模块为开发型密钥代理模块,所述第二类型的密钥代理模块为稳定型密钥代理模块,所述稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
19.根据权利要求17所述的方法,其特征在于,
在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之前,所述方法还包括:在对系统中的密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为所述第一类型的密钥代理模块;
在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之后,所述方法还包括:若在预定时间段内均检测出所述第一类型的密钥代理模块执行所述密文处理请求的正确率高于预定正确率,则将所述第一类型的密钥代理模块记录为第二类型的密钥代理模块。
20.根据权利要求17所述的方法,其特征在于,在所述第一类型的密钥代理模块执行所述业务模块的密文处理请求的过程中,所述方法还包括:
若需对密钥代理模块中的文件进行更新,则对所述第一类型的密钥代理模块中的文件进行更新。
21.根据权利要求17所述的方法,其特征在于,在密钥代理模块执行所述密文处理请求的过程中,所述方法还包括:
所述密钥代理模块检测执行所述密文处理请求的成功率是否低于第二预定阈值;
若检测出执行所述密文处理请求的成功率是否低于第二预定阈值,则向所述业务模块发送密钥数据,
其中,所述密钥数据用于解密共享内存中存储的密钥列表,得到解密后的密钥列表,所述业务模块还用于通过所述解密后的密钥列表执行所述密文处理请求。
22.根据权利要求21所述的方法,其特征在于,在所述密钥代理模块检测执行所述密文处理请求的成功率是否低于第二预定阈值之前,所述方法还包括:
所述密钥代理模块在执行完所述密文处理请求之后,基于所述密文处理请求中的请求时间与当前时间,判断执行当前的所述密文处理请求是否超时;
若判断出执行当前的所述密文处理请求超时,则确定执行当前的所述密文处理请求失败;
基于执行失败的密文处理请求的数量,统计所述密钥代理模块执行所述密文处理请求的成功率。
23.根据权利要求21所述的方法,其特征在于,在所述密钥代理模块检测执行所述密文处理请求的成功率是否低于第二预定阈值之前,所述方法还包括:
接收通过业务线程传输的通信管道的第二端描述符,其中,所述业务线程用于生成第一端描述符和第二端描述符,其中,所述第一端描述符用于所述密钥代理模块将所述业务模块发送的数据识别为合法数据,所述第二端描述符用于所述业务模块将所述密钥代理模块发送的数据识别为合法数据。
24.根据权利要求23所述的方法,其特征在于,向所述业务模块发送密钥数据包括:
通过各个所述业务线程的通信管道的写端,发送所述密钥数据。
25.根据权利要求23所述的方法,其特征在于,所述通信管道还用于检测所述业务模块、以及所述密钥代理模块是否重启。
26.根据权利要求17所述的方法,其特征在于,在通过密钥代理模块执行所述密文处理请求的过程中,所述方法还包括:
在所述密钥代理模块对业务进程进行合法性校验之后,在所述合法性校验通过的情况下,所述密钥代理模块接收所述业务模块发送的第一文件描述符,其中,所述第一文件描述符用于所述密钥代理模块将所述业务模块发送的数据识别为合法数据;
所述密钥代理模块生成多个第二文件描述符,其中,所述第二文件描述符用于所述业务模块将所述密钥代理模块发送的数据识别为合法数据;
所述密钥代理模块向所述业务模块传输多个所述第二文件描述符。
27.根据权利要求26所述的方法,其特征在于,所述多个第二文件描述符的数目与所述密钥代理模块中用于执行所述密文处理请求的线程数目相对应。
28.根据权利要求17至27中任意一项所述的方法,其特征在于,所述密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
29.一种业务处理方法,其特征在于,包括:
密钥代理模块获取执行密文处理请求的执行结果,所述密文处理请求为业务模块向所述密钥代理模块发送的加密请求或解密请求;
所述密钥代理模块检测所述执行结果是否符合预定模式切换条件,其中,符合所述预定模式切换条件表示确定所述密钥代理模块出现漏洞;
若检测出所述执行结果符合预定模式切换条件,则所述密钥代理模块向业务模块发送指示信息,其中,所述指示信息用于指示所述业务模块切换到通过所述业务模块执行所述密文处理请求的模式。
30.根据权利要求29所述的方法,其特征在于,密钥代理模块获取执行密文处理请求的执行结果包括:
所述密钥代理模块在执行完所述密文处理请求之后,基于所述密文处理请求中的请求时间与当前时间,判断执行当前的所述密文处理请求是否超时;
若判断出执行当前的所述密文处理请求超时,则所述密钥代理模块确定执行当前的所述密文处理请求失败;
所述密钥代理模块基于执行失败的密文处理请求的数量,统计所述密钥代理模块执行所述密文处理请求的成功率,所述执行结果包括所述成功率。
31.根据权利要求30所述的方法,其特征在于,所述密钥代理模块检测所述执行结果是否符合预定模式切换条件包括:
所述密钥代理模块检测所述成功率是否低于第二预定阈值;
若检测出执行所述密文处理请求的成功率是否低于第二预定阈值,则确定所述执行结果符合所述预定模式切换条件。
32.根据权利要求29所述的方法,其特征在于,所述密钥代理模块向业务模块发送指示信息包括:
所述密钥代理模块向所述业务模块发送密钥数据,其中,所述密钥数据用于解密共享内存中存储的密钥列表,得到解密后的密钥列表,所述业务模块还用于通过所述解密后的密钥列表执行所述密文处理请求。
33.根据权利要求29所述的方法,其特征在于,所述密钥代理模块包括第一类型的密钥代理模块和第二类型的密钥代理模块,其中,所述第一类型的密钥代理模块为开发型密钥代理模块,所述第二类型的密钥代理模块为稳定型密钥代理模块,所述稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
34.根据权利要求33所述的方法,其特征在于,
在密钥代理模块接收并执行业务模块的密文处理请求之前,所述方法还包括:在对密钥代理模块中的文件进行更新之后,将执行了更新操作的密钥代理模块记录为所述第一类型的密钥代理模块;
在第一类型的密钥代理模块接收并执行业务模块的密文处理请求,得到执行结果之后,所述方法还包括:若在预定时间段内均检测出所述第一类型的密钥代理模块执行所述密文处理请求的正确率高于预定正确率,则将所述第一类型的密钥代理模块记录为第二类型的密钥代理模块。
35.根据权利要求33所述的方法,其特征在于,在所述第一类型的密钥代理模块执行所述业务模块的密文处理请求的过程中,所述方法还包括:
若需对密钥代理模块中的文件进行更新,则对所述第一类型的密钥代理模块中的文件进行更新。
36.根据权利要求29至35中任意一项所述的方法,其特征在于,所述密文处理请求包括:用于将待加密数据加密为密文数据的请求和/或用于将密文数据解密为解密数据的请求。
37.一种业务处理装置,其特征在于,包括:
第一获取单元,用于获取第一信息,其中,所述第一信息用于表示第一类型的密钥代理模块执行密文处理请求的执行结果,所述密文处理请求为业务模块向所述密钥代理模块发送的加密请求或解密请求;
第一检测单元,用于检测所述第一信息是否符合预定类型切换条件,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块中出现了漏洞;
第一执行单元,用于在检测出所述第一信息符合所述预定类型切换条件的情况下,通过第二类型的密钥代理模块执行所述业务模块的密文处理请求。
38.一种业务处理装置,其特征在于,包括:
第一处理单元,设置在第一类型的密钥代理模块中,用于接收并执行业务模块的密文处理请求,得到执行结果,所述密文处理请求为业务模块向所述密钥代理模块发送的加密请求或解密请求;
第一处理单元,设置在第二类型的密钥代理模块中,用于接收并执行所述业务模块的密文处理请求,其中,所述业务模块用于在基于所述执行结果生成的第一信息符合预定类型切换条件的情况下,向所述第二类型的密钥代理模块发送密文处理请求,其中,符合所述预定类型切换条件表示确定所述第一类型的密钥代理模块中出现了漏洞。
39.根据权利要求38所述的装置,其特征在于,所述第一类型的密钥代理模块为开发型密钥代理模块,所述第二类型的密钥代理模块为稳定型密钥代理模块,所述稳定型密钥代理模块为在预定时间段内、执行密文处理请求的正确率高于预定正确率的密钥代理模块。
40.一种业务处理装置,其特征在于,包括:
第一获取单元,用于获取执行密文处理请求的执行结果,所述密文处理请求为业务模块向所述密钥代理模块发送的加密请求或解密请求;
第一检测单元,用于检测所述执行结果是否符合预定模式切换条件,其中,符合所述预定模式切换条件表示确定密钥代理模块出现漏洞;
第一发送单元,用于若检测出所述执行结果符合预定模式切换条件,则向业务模块发送指示信息,其中,所述指示信息用于指示所述业务模块切换到通过所述业务模块执行所述密文处理请求的模式。
CN201611018871.1A 2016-08-08 2016-11-18 业务处理方法和装置 Active CN108076021B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201611018871.1A CN108076021B (zh) 2016-11-18 2016-11-18 业务处理方法和装置
PCT/CN2017/091903 WO2018028359A1 (zh) 2016-08-08 2017-07-05 业务处理方法、装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611018871.1A CN108076021B (zh) 2016-11-18 2016-11-18 业务处理方法和装置

Publications (2)

Publication Number Publication Date
CN108076021A CN108076021A (zh) 2018-05-25
CN108076021B true CN108076021B (zh) 2020-06-16

Family

ID=62160258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611018871.1A Active CN108076021B (zh) 2016-08-08 2016-11-18 业务处理方法和装置

Country Status (1)

Country Link
CN (1) CN108076021B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110602121B (zh) * 2019-09-20 2021-06-08 腾讯科技(深圳)有限公司 一种网络密钥获取方法、装置和计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103200230A (zh) * 2013-03-01 2013-07-10 南京理工大学常熟研究院有限公司 基于可移动代理的漏洞扫描方法
WO2014138883A1 (en) * 2013-03-13 2014-09-18 Jumpto Media Inc. Secure network communication
CN104268488A (zh) * 2006-02-28 2015-01-07 塞尔蒂卡姆公司 用于产品注册的系统和方法
CN105162586A (zh) * 2015-09-21 2015-12-16 北京元心科技有限公司 一种在使用D-Bus的智能设备中进行安全通讯的方法和系统
CN105515760A (zh) * 2015-12-09 2016-04-20 小米科技有限责任公司 信息加密方法、信息解密方法及信息加解密系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271106A1 (en) * 2006-05-19 2007-11-22 Lee David H System and method for secure internet channeling agent

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268488A (zh) * 2006-02-28 2015-01-07 塞尔蒂卡姆公司 用于产品注册的系统和方法
CN103200230A (zh) * 2013-03-01 2013-07-10 南京理工大学常熟研究院有限公司 基于可移动代理的漏洞扫描方法
WO2014138883A1 (en) * 2013-03-13 2014-09-18 Jumpto Media Inc. Secure network communication
CN105162586A (zh) * 2015-09-21 2015-12-16 北京元心科技有限公司 一种在使用D-Bus的智能设备中进行安全通讯的方法和系统
CN105515760A (zh) * 2015-12-09 2016-04-20 小米科技有限责任公司 信息加密方法、信息解密方法及信息加解密系统

Also Published As

Publication number Publication date
CN108076021A (zh) 2018-05-25

Similar Documents

Publication Publication Date Title
CN111708991B (zh) 服务的授权方法、装置、计算机设备和存储介质
US20200106775A1 (en) Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium
CN110621014B (zh) 一种车载设备及其程序升级方法、服务器
CN104836784B (zh) 一种信息处理方法、客户端和服务器
CN108270739B (zh) 一种管理加密信息的方法及装置
US11831753B2 (en) Secure distributed key management system
CN108173644A (zh) 数据传输加密方法、装置、存储介质、设备及服务器
CN110891062B (zh) 密码更改方法、服务器及存储介质
JP2009087035A (ja) 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム、暗号管理サーバ装置、ソフトウェアモジュール管理装置、ソフトウェアモジュール管理プログラム
CN104715183A (zh) 一种虚拟机运行时的可信验证方法和设备
CN110362984B (zh) 多设备运行业务系统的方法及装置
CN112669104A (zh) 租赁设备的数据处理方法
CN108418679B (zh) 一种多数据中心下处理密钥的方法、装置及电子设备
CN117240625A (zh) 一种涉及防篡改的数据处理方法、装置及电子设备
CN111585995A (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
CN105187410A (zh) 一种应用的自升级方法及其系统
WO2018028359A1 (zh) 业务处理方法、装置、存储介质及电子装置
CN105183584A (zh) 一种应用的云备份方法及其系统
CN108076021B (zh) 业务处理方法和装置
CN111064723B (zh) 一种基于备份系统的空中下载升级方法及系统
CN115618366B (zh) 用于服务器的验证方法及装置
CN113791872B (zh) 基于云计算的认证方法及系统
CN114745115A (zh) 一种信息传输方法、装置、计算机设备及存储介质
CN117121435A (zh) 连接弹性多因素认证
CN107516044A (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