CN111818032B - 基于云平台的数据处理方法、装置及计算机程序 - Google Patents

基于云平台的数据处理方法、装置及计算机程序 Download PDF

Info

Publication number
CN111818032B
CN111818032B CN202010615081.1A CN202010615081A CN111818032B CN 111818032 B CN111818032 B CN 111818032B CN 202010615081 A CN202010615081 A CN 202010615081A CN 111818032 B CN111818032 B CN 111818032B
Authority
CN
China
Prior art keywords
key
data
server
encryption
encryptor
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
CN202010615081.1A
Other languages
English (en)
Other versions
CN111818032A (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 CN202010615081.1A priority Critical patent/CN111818032B/zh
Publication of CN111818032A publication Critical patent/CN111818032A/zh
Priority to PCT/CN2021/094022 priority patent/WO2022001418A1/zh
Application granted granted Critical
Publication of CN111818032B publication Critical patent/CN111818032B/zh
Priority to US17/851,878 priority patent/US20220329422A1/en
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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

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

基于云平台的数据处理方法、装置及计算机程序
技术领域
本申请实施例涉及互联网技术领域,涉及但不限于一种基于云平台的数据处理方法、装置及计算机程序。
背景技术
数据加密处理是计算机系统对信息进行保护的一种最可靠的办法,它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
相关技术中,对数据进行加密的方法通常是通过加密机来实现,客户端通过加密机厂商提供的软件开发工具包(SDK,Software Development Kit)与加密机进行通信。密钥在加密机内部生成和存储,客户端开始加密时,把敏感信息通过超文本传输安全协议(https,Hypertext Transfer Protocol Secure),传入到加密机进行加解密。
但是,相关技术中采用加密机的方法配置成本高,资源无法得到合理的利用,且开发周期长,需要加密机的使用者基于加密机厂商的SDK进行程序的开发。
发明内容
本申请实施例提供一种基于云平台的数据处理方法、装置及计算机程序,通过数据处理系统中的处理服务器、加密机服务器和加密机三者之间的交互,实现了任意用户均可通过处理服务器使用到加密机,从而降低了使用加密机的成本,并缩短使用加密机的程序的开发周期,提高了用户体验。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种基于云平台的数据处理方法,所述方法包括:
处理服务器接收客户端发送的数据加密请求,所述数据加密请求中包括待加密数据和第一密钥标识;
将所述第一密钥标识发送给数据处理系统中的加密机服务器,以使所述加密机服务器从加密机中获取与所述第一密钥标识对应的根密钥,并对所述根密钥进行加密,生成主密钥;
接收所述加密机服务器发送的所述主密钥;
对所述主密钥进行加密,生成数据密钥;
通过所述数据密钥对所述待加密数据进行加密,得到加密后的数据。
本申请实施例提供一种基于云平台的数据处理方法,所述方法包括:
加密机服务器接收处理服务器发送的密钥获取请求,所述密钥获取请求中包括第一密钥标识;
从加密机中获取与所述第一密钥标识对应的根密钥;
对所述根密钥进行加密,生成主密钥;
将所述主密钥发送给所述处理服务器,以使得所述处理服务器根据所述主密钥生成数据密钥,并通过所述数据密钥对待加密数据进行加密。
本申请实施例提供一种基于云平台的数据处理装置,包括:
第一接收模块,用于接收客户端发送的数据加密请求,所述数据加密请求中包括待加密数据和第一密钥标识;
第一发送模块,用于将所述第一密钥标识发送给数据处理系统中的加密机服务器,以使所述加密机服务器从加密机中获取与所述第一密钥标识对应的根密钥,并对所述根密钥进行加密,生成主密钥;
第二接收模块,用于接收所述加密机服务器发送的所述主密钥;
第一密钥加密模块,用于对所述主密钥进行加密,生成数据密钥;
数据加密模块,用于通过所述数据密钥对所述待加密数据进行加密,得到加密后的数据。
本申请实施例提供一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;其中,
计算机设备的处理器从所述计算机可读存储介质中读取所述计算机指令,
所述处理器用于执行所述计算机指令,实现上述的方法。
本申请实施例提供一种基于云平台的数据处理设备,包括:
存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现上述的方法。
本申请实施例具有以下有益效果:通过数据处理系统中的处理服务器向加密机服务器发送第一密钥标识,加密机服务器从加密机中获取与第一密钥标识对应的根密钥,并对根密钥进行加密生成主密钥,处理服务器对主密钥进行加密生成数据密钥,从而通过数据密钥对待加密数据进行加密。如此,通过数据处理系统中处理服务器、加密机服务器和加密机三者之间的交互,实现了通过数据处理系统中的处理服务器即可使用到加密机,从而能够保证任意用户均可通过处理服务器使用到加密机,降低了使用加密机的成本,并缩短使用加密机的程序的开发周期,提高了用户体验。
附图说明
图1是相关技术中采用加密机进行数据加密的数据加密系统的结构示意图;
图2A是本申请实施例提供的数据处理系统的一个可选的架构示意图;
图2B是本申请实施例提供的数据处理系统应用于区块链系统的一个可选的结构示意图;
图2C是本申请实施例提供的区块结构的一个可选的示意图;
图2D是本申请实施例提供的数据处理系统的一个可选的架构示意图;
图2E是本申请实施例提供的数据处理系统的一个可选的架构示意图;
图2F是本申请实施例提供的数据处理系统的一个可选的架构示意图;
图3是本申请实施例提供的KMS服务器的结构示意图;
图4是本申请实施例提供的数据处理方法的一个可选的流程示意图;
图5是本申请实施例提供的数据处理方法的一个可选的流程示意图;
图6是本申请实施例提供的数据处理方法的一个可选的流程示意图;
图7是本申请实施例提供的数据处理方法的一个可选的流程示意图;
图8是本申请实施例提供的数据处理方法的一个可选的流程示意图;
图9是本申请实施例提供的数据处理方法的一个可选的流程示意图;
图10是本申请实施例提供的KMS服务开通的界面图;
图11是本申请实施例提供的控制台创建密钥界面的示意图;
图12是本申请实施例提供的数据处理系统的总模块图;
图13是本申请实施例提供的多租户密钥管理系统整体架构图;
图14是本申请实施例提供的数据处理方法的实现过程示意图;
图15是本申请实施例提供的多级密钥管理体系的关系图;
图16是本申请实施例提供的CMKey产生流程图;
图17是本申请实施例提供的加密机交互的时序图;
图18是本申请实施例提供的信封加密使用场景下的数据加密和解密过程示意图;
图19是本申请实施例提供的多密码机厂商兼容架构图;
图20是本申请实施例提供的密钥管理系统的关键要点图;
图21是本申请实施例中提供的多租户密钥管理系统的使用流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在解释本申请实施例之前,首先对本申请中涉及到的专业名词进行解释:
1)云计算:是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。包括计算和存储等能力。
2)腾讯云:是一种用于提供云计算、大数据、人工智能服务、以及定制化行业解决方案的云产品,或者,是一种用于提供提供云服务器、云主机和数据库等云计算的云产品。本申请基于云平台的数据处理方法,至少可以应用于腾讯云产品中,通过腾讯云实现本申请实施例的基于云平台的数据处理方法。
3)密钥管理系统(KMS,Key Management System):是一款安全管理类服务,可以让用户在该系统中创建和管理密钥,并且,该系统能够保护密钥的保密性、完整性和可用性,满足用户多应用多业务的密钥管理需求,符合监管和合规要求。
4)硬件安全模块(HSM,Hardware Security Module):是一种专门用于密钥存储和加解密的设备或者硬件模块,也可以称为加密机。
5)PKCS#11:是公钥加密标准中的一份子,由RSA实验室发布,它为加密令牌定义了一组与平台无关的API,例如,硬件安全模块和智能卡。
为了更好地理解本申请实施例中提供的数据处理方法,首先对相关技术中的数据处理方法进行说明:
近几年来,云计算正在成为信息技术产业发展的战略重点,全球的信息技术企业都在纷纷向云计算转型。传统的加密方式面临诸多问题:一方面,密钥保存问题,国内和国际上的加密算法,一般算法都是公开的,关键问题在于密钥的安全性;另一方面,随机数的安全问题,本地服务器产生的是伪随机数,作为基础的加密密钥,这个可能被猜测和攻击。
为了解决传统加密方式的问题,有资历的厂商会购买加密机(也称硬件安全模块,HSM),来做密钥的产生和保存,这样就解决了上述的两个问题,并且,国家在合规方面,也有使用HSM的规定。目前的很多金融公司,都是采用这种方式。
图1是相关技术中采用加密机进行数据加密的数据加密系统的结构示意图,如图1所示,数据加密系统中包括加密机101和用户的客户端102,其中客户端102是使用到密钥的客户端。客户端102通过加密机101厂商提供的SDK 103,与加密机101进行通信。密钥在加密机101内部生成和存储,客户端102开始加密时,把敏感信息通过https 104协议,传入到加密机101进行加密和解密,这样就可以保证信息的安全性。
相关技术中的方案虽然解决了加密场景的安全性问题,但是只适合一些大厂商使用,存在以下问题:一方面,配置成本高,资源无法得到合理的利用。加密机本身的成本很高,只有一些大企业才能够负担的起;另一方面,使用成本高,开发周期长,需要自己基于厂商的SDK,进行程序的开发,在每个客户机环境,还需要配置厂商的SDK运行环境;再一方面,架构不灵活,无法应对多变的需求,因为国内的合规和国外的合规有很大的差异性,国内的标准基于国家的密码体系,而国际上遵循美国国家标准与技术研究院(NIST,NationalInstitute of Standards and Technology)所发布联邦信息处理标准(FIPS,FederalInformation Processing Standards)标准,当客户发展国际业务时,需要开发兼容两套标准的系统,才能满足需求。
基于相关技术所存在的上述问题,本申请实施例提供一种数据处理方法,通过加密机使用云上多租户的密钥管理方案,可以解决以上问题,根据用户的业务量大小,实现动态扩容,其中,方法应用于数据处理系统,数据处理系统中至少包括处理服务器、加密机服务器和加密机。通过处理服务器向加密机服务器发送第一密钥标识,加密机服务器从加密机中获取与第一密钥标识对应的根密钥,并对根密钥进行加密生成主密钥,处理服务器对主密钥进行加密生成数据密钥,从而通过数据密钥对待加密数据进行加密。如此,通过数据处理系统中处理服务器、加密机服务器和加密机三者之间的交互,实现了通过数据处理系统中的处理服务器即可使用到加密机,从而能够保证任意用户均可通过处理服务器使用到加密机,降低了使用加密机的成本,并缩短使用加密机的程序的开发周期,提高了用户体验。
下面说明本申请实施例提供的数据处理设备的示例性应用,本申请实施例提供的数据处理设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能机器人、电子书阅读器等任意的具有计算和数据处理能力的终端,也可以实施为服务器。下面,将说明数据处理设备实施为服务器时的示例性应用。
参见图2A,图2A是本申请实施例提供的数据处理系统10的一个可选的架构示意图。在一些实施例中,上述处理服务器可以是KMS服务器,加密机服务器可以是HSM服务器。为支撑任意一种数据处理应用(例如邮箱APP),数据处理系统10中包括终端100、网络200、KMS服务器300、HSM服务器400和加密机500。其中,终端100上运行邮箱APP,用户可以在邮箱APP的客户端上阅读邮件或者编辑邮件并发送,当用户在终端100上发送邮件时,需要对邮件内容进行加密,因此可以采用本申请实施例提供的方法,通过网络200向KMS服务器300发送数据加密请求,数据加密请求中包括待加密数据(可以是邮件或者邮件中的附件)和第一密钥标识,KMS服务器300将第一密钥标识发送给HSM服务器400,HSM服务器400从HSM加密机500中获取与第一密钥标识对应的根密钥,并对根密钥进行加密,生成主密钥;HSM服务器400将主密钥发送给KMS服务器300,KMS服务器300对主密钥进行加密,生成数据密钥;并通过数据密钥对待加密数据进行加密,得到加密后的数据,并将加密后的数据发送给终端100。在终端100的当前界面100-1上,可以显示所编辑的邮件,并且在完成加密后,在当前界面100-1上,还可以显示“已加密”字样,用于提醒用户已经完成邮件的加密过程。
本申请实施例涉及的数据处理系统10也可以是区块链系统的分布式系统201,参见图2B,图2B是本申请实施例提供的数据处理系统10应用于区块链系统的一个可选的结构示意图,其中,所述分布式系统201可以是由多个节点202(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端203形成的分布式节点,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
需要说明的是,在分布式系统201中,每一节点202对应一终端100、KMS服务器和HSM服务器中的任意一个,在每一节点202,会收集该节点202的数据。举例来说,对于终端100,可以收集终端100上所运行的客户端的待加密数据和加密后的数据,对于KMS服务器,可以收集KMS服务器上所生成的数据密钥,对于HSM服务器,可以收集HSM服务器上所得到的根密钥和/或主密钥,即收集整个数据加密过程中的数据和密钥。或者,在一些实施例中,数据密钥包括密钥密文和密钥明文,在收集密钥的过程中,可以仅收集密钥密文。
本申请实施例中,通过收集这些数据和密钥,并将这些数据和密钥上链存储,能够保证在后续数据处理过程中,可以从区块链系统中直接获取到所存储的密钥,根据所存储的密钥为后续数据加密过程和数据解密过程提供加密和解密的密钥,通过对所存储的密钥进行加密或解密处理,得到对应的应用于后续数据处理的新的密钥。
本申请实施例中,在该区块链系统中,每一数据和密钥均会被记录下来,且不可更改,并且,随着用户在终端100上进一步的操作,KMS服务器会产生新的数据密钥,因此会存在数据和密钥的更新,那么,区块链中所存储的数据也会发生更新。因此,通过本申请实施例中的区块链系统,能够及时地对密钥进行更新,从而使得后续在数据加密和数据解密时,能够提供新的密钥,避免由于密钥丢失所造成的安全问题。
参见图2B示出的区块链系统中各节点的功能,下面对区块链系统中各节点涉及的功能进行详细介绍:
1)路由,节点具有的基本功能,用于支持节点之间的通信。节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。例如,应用实现的业务包括:2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币。2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
4)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
参见图2C,图2C是本申请实施例提供的区块结构(Block Structure)的一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
在一些实施例中,数据处理系统10中还可以包括多个KMS服务器、多个HSM服务器和多个加密机,也就是说,数据处理系统10至少由终端、KMS服务器集群、HSM服务器集群和加密机集群组成。图2D是本申请实施例提供的数据处理系统10的一个可选的架构示意图,如图2D所示,数据处理系统10包括终端100、KMS服务器集群301、HSM服务器集群401和加密机集群501。
请继续参照图2D,通过集群的方式,部署KMS服务器、加密机和HSM服务器,可以遵循多地多中心的方式,也就是说,KMS服务器集群301、HSM服务器集群401和加密机集群501均可以是多个,多个不同的集群可以分别部署于不同的地方,且同一个地方可以有多个机房。
数据处理系统10中的终端100面向用户,用户可以在终端100上安装任意需要进行数据加密和数据解密的应用程序,在需要进行数据加密或数据解密时,通过终端向KMS服务器集群301中的任意一个KMS服务器发送数据加密请求或数据解密请求。
需要说明的是,KMS服务器集群中的每个服务器具有同等效用,即通过KMS服务器集群301中的任一KMS服务器均可以实现对终端100的数据的加密或解密,因此,可以采用特定的方式在KMS服务器集群301中确定出一个KMS服务器,作为对终端100的数据加密请求进行响应的目标KMS服务器(如图2D中椭圆粗虚线圈中的KMS服务器即为确定出的目标KMS服务器)。
在另一些实施例中,KMS服务器集群301可以是多个,即存在被部署于多个地方的KMS服务器集群301,那么在对终端100的数据加密请求进行响应的时候,可以首先采用特定的方式在多个KMS服务器集群301中确定出一个KMS服务器集群301,作为对终端100的数据加密请求进行响应的目标KMS服务器集群(如图2D中椭圆粗虚线圈中的KMS服务器集群即为确定出的目标KMS服务器集群);然后,在目标KMS服务器集群中,确定出一个KMS服务器作为目标KMS服务器。
在一些实施例中,HSM服务器是与加密机进行交互的服务器,每一HSM服务器对应至少一个加密机,HSM服务器用于从加密机中获取根密钥。
图2E是本申请实施例提供的数据处理系统10的一个可选的架构示意图,如图2E所示,在一些实施例中,数据处理系统10中还包括容灾HSM服务器集群402,容灾HSM服务器集群402用于当每一HSM服务器集群的业务需求总量均大于特定阈值时,将容灾HSM服务器集群确定为目标HSM服务器集群,也就是说,通过容灾HSM服务器集群402对数据处理系统10进行冗余容灾处理。对应地,容灾HSM服务器集群402对应至少一个容灾加密机502,当容灾HSM服务器集群402进行冗余容灾处理时,从容灾加密机502获取根密钥。
图2F是本申请实施例提供的数据处理系统10的一个可选的架构示意图,如图2F所示,在一些实施例中,数据处理系统10中还包括冷备加密机503,冷备加密机503用于当数据处理系统中的每一HSM服务器对应的加密机中的数据均丢失时,可以从冷备加密机503中获取根密钥。
参见图3,图3是本申请实施例提供的KMS服务器300的结构示意图,图3所示的KMS服务器300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。KMS服务器300中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统340。
处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器350中的一种基于云平台的数据处理装置354,该基于云平台的数据处理装置354可以是KMS服务器300中的一种数据处理装置,其可以是程序和插件等形式的软件,包括以下软件模块:第一接收模块3541、第一发送模块3542、第二接收模块3543、第一密钥加密模块3544和数据加密模块3545,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的基于云平台的数据处理方法还可以采用HSM服务器400来实现,HSM服务器400(图中未示出)也可以包括:至少一个处理器、终端存储器、至少一个网络接口和用户接口。存储在HSM服务器400的存储器中的数据处理装置可以是HSM服务器400中的一种数据处理装置,该数据处理装置也可以采用软件方式实现,该数据处理装置可以是HSM服务器400中的一种数据处理装置,其可以是程序和插件等形式的软件,包括以下软件模块:第三接收模块、获取模块、第二密钥加密模块和第二发送模块,这些模块也是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
在又一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
在一些实施例中,本申请实施例提供的数据处理方法还可以采用云技术实现,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”,“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
下面将结合本申请实施例提供的处理服务器和云技术的示例性应用和实施,说明本申请实施例提供的数据处理方法。参见图4,图4是本申请实施例提供的数据处理方法的一个可选的流程示意图,将结合图4示出的步骤进行说明。
步骤S401,处理服务器接收客户端发送的数据加密请求。
这里,处理服务器可以是KMS服务器,客户端是处理服务器对应的客户端,用户可以通过客户端向处理服务器发送数据加密请求。本申请实施例中,用户通过客户端与处理服务器进行交互,即可实现自主的创建和管理密钥,并通过处理服务器保护密钥的保密性、完整性和可用性,满足用户多应用多业务的密钥管理需求。
在一些实施例中,数据加密请求中包括待加密数据和第一密钥标识。数据加密请求用于请求获取到第一密钥标识对应的数据密钥,并采用数据密钥对待加密数据进行加密。
步骤S402,处理服务器将第一密钥标识发送给加密机服务器,以使加密机服务器从加密机中获取与第一密钥标识对应的根密钥,并对根密钥进行加密,生成主密钥。
这里,加密机服务器可以是HSM服务器,HSM服务器是与加密机(即HSM)对应的服务器,用于对加密机进行控制和对处理服务器(例如KMS服务器)进行服务响应。
本申请实施例中,将第一密钥标识发送给HSM服务器可以是将第一密钥标识封装于密钥获取请求中,向HSM服务器发送密钥获取请求,HSM服务器对密钥获取请求进行解析,得到第一密钥标识,并根据第一密钥标识在加密机中获取对应的根密钥。在HSM服务器从对应的加密机中获取到根密钥之后,HSM服务器对根密钥进行加密,得到主密钥。需要说明的是,根密钥存储于加密机中,对用户是不可见的。
步骤S403,处理服务器接收加密机服务器发送的主密钥。
这里,加密机服务器从加密机中获取与第一密钥标识对应的根密钥,并对根密钥进行加密,生成主密钥,并且,在生成主密钥之后,将所生成的主密钥发送给处理服务器,以使得处理服务器根据加密机服务器所生成的主密钥进一步生成用于进行数据加密的数据密钥。
在一些实施例中,处理服务器与加密机服务器之间可以通过无线通信方式进行数据传输,处理服务器和加密机服务器可以被部署于不同的位置,加密机服务器通过无线通信方式,将主密钥发送给处理服务器。在另一些实施例中,处理服务器与加密机服务器之间还可以通过有线通信方式进行数据传输,处理服务器和加密机服务器可以被部署于同一位置,加密机服务器通过有线通信方式,将主密钥发送给处理服务器。
在一些实施例中,加密机服务器与加密机之间也既可以采用无线通信方式进行数据传输,也可以采用有线通信方式进行数据传输。
步骤S404,处理服务器对主密钥进行加密,生成数据密钥。
这里,当加密机服务器对根密钥加密得到主密钥之后,将主密钥发送给处理服务器,然后,处理服务器对主密钥进行进一步加密,生成数据密钥。
需要说明的是,加密机服务器对根密钥进行加密的过程可以采用任意一种加密方式来实现,处理服务器对主密钥进行加密的过程也可以采用任意一种加密方式来实现,本申请实施例对加密机服务器对根密钥的加密过程和处理服务器对主密钥的加密过程不做限定。
步骤S405,通过数据密钥对待加密数据进行加密,得到加密后的数据。
本申请实施例中,在得到数据密钥之后,将数据密钥作为用户加密的密钥,实现对待加密数据的加密过程。需要说明的是,本申请实施例中获取的数据密钥不仅包括密钥明文还包括密钥密文,其中,密钥明文用于数据加密使用,密钥密文用于存储,以便于后续根据第一密钥标识可以在数据库中直接查找到密钥密文,从而能够基于查找到的密钥密文进行数据解密过程。
本申请实施例提供的数据处理方法,通过数据处理系统中的处理服务器向加密机服务器发送第一密钥标识,加密机服务器从加密机中获取与第一密钥标识对应的根密钥,并对根密钥进行加密生成主密钥,处理服务器对主密钥进行加密生成数据密钥,从而通过数据密钥对待加密数据进行加密。如此,通过数据处理系统中处理服务器、加密机服务器和加密机三者之间的交互,实现了通过数据处理系统中的处理服务器即可使用到加密机,从而能够保证任意用户均可通过处理服务器使用到加密机,降低了使用加密机的成本,并缩短使用加密机的程序的开发周期,提高了用户体验。
在一些实施例中,数据处理方法应用于数据处理系统中,其中,数据处理系统中至少包括KMS服务器、HSM服务器和加密机,图5是本申请实施例提供的数据处理方法的一个可选的流程示意图,如图5所示,方法包括以下步骤:
步骤S501,KMS服务器接收客户端发送的数据加密请求。
这里,数据加密请求中包括待加密数据和第一密钥标识。数据加密请求用于请求对待加密数据进行加密处理。本申请实施例中,由于对待加密数据进行加密处理时需要用到数据密钥,即需要通过数据密钥对待加密数据实现加密处理,因此,在实现加密处理之前,还需要确定出数据密钥。
步骤S502,KMS服务器根据第一密钥标识生成密钥获取请求,密钥获取请求中包括第一密钥标识。
这里,密钥获取请求用于向HSM服务器请求获取与第一密钥标识对应的密钥,即请求获取主密钥,其中,主密钥是对根密钥进行加密后所得到的。
本申请实施例中,KMS服务器生成密钥获取请求,可以是将第一密钥标识封装于密钥获取请求中,然后将密钥获取请求发送给数据处理系统中的加密机服务器。
步骤S503,KMS服务器将密钥获取请求发送给HSM服务器。
这里,HSM服务器在接收到密钥获取请求之后,解析密钥获取请求,得到密钥获取请求中封装的第一密钥标识。
步骤S504,HSM服务器从HSM中获取与第一密钥标识对应的根密钥。
这里,HSM服务器首先对密钥获取请求进行解析,得到第一密钥标识,再从HSM中获取与第一密钥标识对应的根密钥。
需要说明的是,HSM服务器可以对应一个或多个HSM。如果HSM服务器对应多个HSM,HSM服务器在获取到第一密钥标识之后,可以先确定与第一密钥标识对应的根密钥存储于哪个HSM中,以确定出目标HSM,然后向目标HSM发送根密钥获取请求,请求从目标HSM中获取根密钥。
在一些实施例中,当第一密钥标识对应的根密钥存储于多个HSM中时,HSM服务器可以在多个HSM中随机确定出一个HSM作为目标HSM,或者,将处于空闲状态的HSM确定为目标HSM,或者,确定出每一HSM当前的待处理的根密钥获取请求的数量,将具有最小根密钥获取请求数量的HSM确定为目标HSM。
步骤S505,HSM服务器对根密钥进行加密,生成主密钥。
这里,主密钥是对根密钥进行加密后所得到的。由于根密钥对于用户来说是完全隔离的,用户不能得到根密钥的原文,因此,在请求获取与第一密钥标识对应的密钥时,是HSM服务器先获取到根密钥,然后对根密钥进行加密得到主密钥,再将主密钥发给KMS服务器。
步骤S506,HSM服务器将主密钥发送给KMS服务器。
这里,HSM服务器可以通过无线通信方式或者有线通信方式,将主密钥发送给KMS服务器。
步骤S507,KMS服务器对主密钥进行加密,生成数据密钥。
需要说明的是,HSM服务器对根密钥进行加密的过程可以采用任意一种加密方式来实现,KMS服务器对主密钥进行加密的过程也可以采用任意一种加密方式来实现,本申请实施例对HSM服务器对根密钥的加密过程和KMS服务器对主密钥的加密过程不做限定。
步骤S508,KMS服务器通过数据密钥对待加密数据进行加密,得到加密后的数据。
本申请实施例提供的数据处理方法,通过KMS服务器、HSM服务器和加密机三端交互,实现了用户在KMS服务器对应的客户端上即可使用加密机,从加密机中获取到根密钥,并进一步根据根密钥得到最终的数据密钥,实现对待加密数据的加密,即实现了通过数据处理系统中的KMS服务器即可使用到加密机,从而能够保证任意用户均可通过KMS服务器使用到加密机,降低了使用加密机的成本,并缩短使用加密机的程序的开发周期,提高了用户体验。另外,由于并不是直接使用获取到的根密钥进行数据加密,而是分别采用HSM服务器和KMS服务器,对根密钥进行两次加密处理过程,从而使得最终所得到的数据密钥的安全性更高,对数据加密过程更加安全可靠。
在一些实施例中,数据处理方法应用于数据处理系统中,其中,数据处理系统中至少包括KMS服务器、多个HSM服务器集群和加密机集群,图6是本申请实施例提供的数据处理方法的一个可选的流程示意图,如图6所示,以HSM服务器集群中包括两个HSM服务器集群(如图6中HSM服务器集群A1和HSM服务器集群A2)为例进行说明,其中,方法包括以下步骤:
步骤S601,KMS服务器接收客户端发送的数据加密请求。
这里,数据加密请求中包括待加密数据和第一密钥标识。
步骤S602,KMS服务器根据第一密钥标识生成密钥获取请求,密钥获取请求中包括第一密钥标识。
需要说明的是,步骤S601和步骤S602与上述步骤S501和步骤S502相同,本申请实施例不再赘述。
步骤S603,KMS服务器获取HSM服务器集群A1当前的业务需求总量A11。
这里,HSM服务器集群A1中包括多个HSM服务器,同一个HSM服务器集群中的全部HSM服务器可以被部署于同一地区,也可以被部署于不同地区。
业务需求总量是指HSM服务器集群中的全部HSM服务器的业务需求量之和,其中,业务需求量可以是密钥请求业务或数据加密业务等任意一种业务对应的数量。
步骤S604,KMS服务器获取HSM服务器集群A2当前的业务需求总量A21。其中,业务需求总量A11小于业务需求总量A21。
HSM服务器集群A2是不同于HSM服务器集群A1的另一HSM服务器集群,HSM服务器集群A2中也包括多个HSM服务器。
步骤S605,KMS服务器将具有最小业务需求总量的HSM服务器集群A1,确定为目标HSM服务器集群。
这里,KMS服务器比较每一HSM服务器集群的业务需求总量,并将具有最小业务需求总量的HSM服务器集群确定为目标HSM服务器集群。本申请实施例中以HSM服务器集群A1具有最小业务需求总量为例进行说明。
步骤S606,将目标HSM服务器集群中的任一HSM服务器确定为目标HSM服务器。
这里,由于目标HSM服务器集群是具有最小业务需求总量的HSM服务器集群,因此,HSM服务器集群中的HSM服务器当前的业务需求量较小,可以在目标HSM服务器集群中,确定一个HSM服务器作为用于响应当前的数据加密请求的目标HSM服务器。本申请实施例中,可以在目标HSM服务器集群中,随机选择一个HSM服务器作为目标HSM服务器,也可以按照预设的选择策略在目标HSM服务器集群中选择一个HSM服务器作为目标HSM服务器。
步骤S607,将第一密钥标识发送给目标HSM服务器A12。
本申请以选择出的目标HSM服务器A12为例进行说明,其中,目标HSM服务器A12作为当前用于对数据加密请求进行响应处理的HSM服务器,因此,KMS服务器将第一密钥标识发送给目标HSM服务器A12。
步骤S608,目标HSM服务器A12从与自身对应的HSM中获取与第一密钥标识对应的根密钥。
本申请实施例中,每一HSM服务器对应至少一个HSM,用于对所对应的HSM进行管理和调度,实现从对应的HSM中获取根密钥。
步骤S609,目标HSM服务器A12对根密钥进行加密,生成主密钥。
这里,主密钥是对根密钥进行加密后所得到的。由于根密钥对于用户来说是完全隔离的,用户不能得到根密钥的原文,因此,在请求获取与第一密钥标识对应的密钥时,是目标HSM服务器A12从自身对应的HSM中先获取到根密钥,然后对根密钥进行加密得到主密钥,再将主密钥发给KMS服务器。
步骤S610,目标HSM服务器A12将主密钥发送给KMS服务器。
步骤S611,KMS服务器对主密钥进行加密,生成数据密钥。
步骤S612,KMS服务器通过数据密钥对待加密数据进行加密,得到加密后的数据。
需要说明的是,步骤S609至步骤S612与上述步骤S505至步骤S508相同,本申请实施例不再赘述。
本申请实施例提供的数据处理方法,应用于具有多个HSM服务器集群和加密机集群的数据处理系统,并且,可以在多个HSM服务器集群中选择出具有最小业务需求总量的HSM服务器集群,并从该HSM服务器集群选择出目标HSM服务器。如此,实现了在多个HSM服务器集群之间的负载均衡,使得数据处理系统中的多个HSM服务器之间能够更加稳定高效的实现对数据的加密处理。
本申请实施例中,对于数据处理系统来说,多个HSM服务器集群可以被部署于任意地区,每个地区部署的HSM服务器集群中包括多个HSM服务器,如此,形成一个巨大的HSM服务器网络,从而能够实现对不同数据加密请求的快速响应,提高用户体验。
在一些实施例中,数据处理方法应用于数据处理系统中,其中,数据处理系统中至少包括KMS服务器、多个HSM服务器集群、加密机集群和容灾HSM服务器集群,基于图6,图7是本申请实施例提供的数据处理方法的一个可选的流程示意图,如图7所示,以HSM服务器集群中包括两个HSM服务器集群(如图7中HSM服务器集群A1和HSM服务器集群A2)和一个容灾HSM服务器集群A3为例进行说明,其中,在步骤S604之后,步骤S605可以通过以下步骤实现:
步骤S701,当每一HSM服务器集群的业务需求总量均大于第二阈值时,KMS服务器将容灾HSM服务器集群确定为目标HSM服务器集群。
这里,当每一HSM服务器集群的业务需求总量均大于第二阈值时,表明当前HSM服务器集群的业务需求总量均较大,负载较高,不能有效对数据加密请求进行处理,因此,启动容灾HSM服务器集群进行数据处理,以实现负载均衡和容灾。
对应地,步骤S606可以通过以下步骤实现:
步骤S702,确定目标HSM服务器集群中的每一HSM服务器当前的业务需求量。
在一种实现方式中,步骤S703,将具有最小业务需求量的HSM服务器,确定为目标HSM服务器。
在另一种实现方式中,步骤S704,在业务需求量小于第一阈值的至少两个HSM服务器中,将任意一个HSM服务器确定为目标HSM服务器。
请继续参照图7,在一些实施例中,数据处理系统中的加密机集群中还包括冷备HSM。对应地,步骤S608包括以下步骤:
步骤S705,当每一HSM服务器对应的HSM中的数据均丢失时,目标HSM服务器A12从冷备HSM中获取与第一密钥标识对应的根密钥。
这里,冷备HSM是相对于正常的HSM来说的,冷备HSM平时不上电,锁在一个安全的柜子里,万一所有加密机中的数据都丢失了,则可以从冷备加密机中恢复,如此,能够保证系统在任何情况下都能稳定的运行,避免大量数据丢失所造成的系统崩溃。
在一些实施例中,数据密钥包括密钥明文和密钥密文。基于图5,图8是本申请实施例提供的数据处理方法的一个可选的流程示意图,如图8所示,步骤S508可以通过以下步骤实现:
步骤S801,KMS服务器通过密钥明文对待加密数据进行加密,得到加密后的数据。
在一些实施例中,方法还可以包括以下步骤:
步骤S802,KMS服务器按照第一预设格式,对密钥密文进行序列化处理,得到处理后的密钥密文。
这里,序列化处理是指将对象的状态信息转换为可以存储或传输的形式的过程,在序列化期间,对象将其当前状态写入到临时或持久性存储区。序列化处理使其他代码可以查看或修改那些不序列化便无法访问的对象实例数据。
本申请实施例中,通过序列化处理,使得密钥密文具有第一预设格式,从而满足内存的存储要求。
步骤S803,KMS服务器将处理后的密钥密文、和密钥密文与第一密钥标识之间的对应关系,存储于内存中。
本申请实施例中,将密钥密文与第一密钥标识之间的对应关系也存储于内存中,可以便于后续在查找密钥密文时,根据密钥标识,通过该对应关系即可快速的找到密钥密文。
在其他实施例中,还可以将密钥密文、和密钥密文与第一密钥标识之间的对应关系存储于区块链系统中。
请继续参照图8,在一些实施例中,方法还包括以下的解密步骤:
步骤S804,KMS服务器获取数据解密请求,数据解密请求中包括待解密数据和第二密钥标识。
这里,密钥解密请求用于请求对待解密数据进行解密处理。当用户需要对已经加密的数据(即待解密数据)进行加密处理时,用户通过客户端向KMS服务器发送数据解密请求。
本申请实施例中,通过客户端对应的KMS系统不仅可以实现数据加密过程,也可以实现数据解密过程。
步骤S805,KMS服务器在内存中获取与第二密钥标识对应的目标密钥密文。
这里,对待加密数据进行加密处理时,是通过密钥明文进行加密,并将密钥明文对应的密钥密文存储于内存中,因此,在对待解密数据进行解密时,是通过所获取的密钥密文来进一步执行进行数据解密。本申请实施例中,对于经过加密处理后得到的待解密数据,可以采用与加密处理时的密钥明文对应的密钥密文进一步执行解密,那么,此时目标密钥密文的第二密钥标识与密钥明文对应的第一密钥标识相同或相对应。
在另一些实施例中,可以并不是用户自己预先进行数据加密处理,因此,用户并不确定密钥明文对应的第一密钥标识,那么,此时目标密钥密文对应的第二密钥标识可以是用户根据待解密数据所确定的。
步骤S806,KMS服务器对目标密钥密文进行解密,得到与密钥标识对应的目标密钥明文。
本申请实施例中,所获取的密钥密文并不能直接用于数据的加密和解密处理,需要对密钥密文进行解密之后得到密钥明文,通过密钥明文才能够实现数据的解密处理。
在一些实施例中,在得到目标密钥明文之后,还可以采用目标密钥明文对数据进行加密处理,本申请实施例对所得到的目标密钥明文的作用不做限定。
步骤S807,KMS服务器通过目标密钥明文对待解密数据进行解密,得到解密后的数据。
这里,响应于用户通过客户端发送的数据解密请求,通过所得到的目标密钥明文对待解密数据进行解密,得到解密后的数据。
本申请实施例提供的数据处理方法,还可以实现对数据的解密处理,由于可以通过数据处理系统中KMS服务器、HSM服务器和加密机三者之间的交互,实现了通过数据处理系统中的KMS服务器即可使用到加密机,完成数据解密处理过程,从而能够保证任意用户均可通过KMS服务器使用到加密机进行数据解密,降低了使用加密机的成本,并缩短使用加密机的程序的开发周期,提高了用户体验。
基于图5,图9是本申请实施例提供的数据处理方法的一个可选的流程示意图,如图9所示,步骤S505可以通过以下步骤实现:
步骤S901,HSM服务器将根密钥加载到内存中。
这里,将根密钥加载到内存中可以是将根密钥存储于内存中,如此,在后续对根密钥进行加密的过程中,可以避免根密钥的丢失。
步骤S902,在内存中对根密钥进行加密,得到加密密文。
这里,可以采用任意一种加密算法或加密方式对根密钥进行加密,得到加密密文。在一些实施例中,可以采用安全传输层协议(TLS,Transport Layer Security)来实现HSM与HSM服务器之间的通信,其中,TLS协议能够用于在两个通信应用程序之间提供保密性和数据完整性,从而保证将根密钥从HSM加载到内存中的过程中,能够保证根密钥的保密性和数据完整性。
步骤S903,对加密密文进行文本包装处理,得到密钥字符串。
这里,可以使用wrap包装函数对加密密文进行文本包装处理,其中,文本包装处理是指将加密密文包装成具有特定格式的字符串,本申请实施例中,对加密密文进行文本包装处理,得到具有特定格式的密钥字符串。
步骤S904,将密钥字符串确定为主密钥。
在一些实施例中,由于数据加密系统中的加密机可能来自于不同的厂商,因此,对于同一个数据加密系统中的不同类型的加密机需要进行适配处理,以使得用户采用不同的加密机均可以完成对同一待加密数据的加密处理和对同一待解密数据的解密处理,其中,适配处理过程包括以下步骤(即在步骤S505之前,方法还可以包括以下步骤):
步骤S905,通过适配器对每一HSM发送的根密钥进行格式转换,得到具有第二预设格式的根密钥;其中,第二预设格式是HSM服务器输出的统一格式。
本申请实施例中,每一加密机对应一个适配器,或者每一HSM服务器对应一个适配器,通过适配器对HSM发送的根密钥进行格式转换,使得转换后的第二预设格式为统一的格式。
本申请实施例中,每一HSM服务器还提供一适配服务,该适配服务对应于一个适配器,通过该适配器实现该适配服务。
对应地,步骤S505还可以通过以下步骤实现:步骤S906,对第二预设格式的根密钥进行加密,生成主密钥。
本申请实施例提供的数据处理方法,通过适配器对不同类型的加密机的根密钥进行格式转换,使得即使采用不同的加密机也可以输出统一第二预设格式的根密钥,从而能够保证多种适配器之间的兼容性,使得通过一个数据处理系统即可为更多具有不同需求的用户提供服务,满足了用户的业务多样性需求,提高用户体验。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供一种数据处理方法,基于腾讯云平台,提出一种多租户的密钥安全管理方案,通过在腾讯云平台上开通KMS服务,从而改变了传统加密机的使用方式,解决了传统使用加密机成本昂贵,开发周期长,无法动态扩容,普通用户使用不起的问题,还可以解决传统加密方式的安全问题。
在产品侧,如图10所示,是本申请实施例提供的KMS服务开通的界面图,用户需要在腾讯云的官网开通KMS服务,通过点击开通界面1000上的立即选购按钮1001进行服务开通。
图11是本申请实施例提供的控制台创建密钥界面的示意图,如图11所示,用户进入自己的控制台界面1100创建密钥,其中,在国内地区创建的密钥,符合国家的密码局合规;在国外地区创建的密钥,符合FIPS的合规。用户可以通过点击地区选择按钮1101选择需要开通的地区。
在技术侧,用户可以通过云API3.0对接公有云的多租户密钥管理系统,密钥管理系统通过加密机适配服务,使得最终能够访问到各个不同地区的加密机,通过加密机来保障业务敏感信息的安全。图12是本申请实施例提供的数据处理系统的总模块图,如图12所示,数据处理系统中包括多租户的密钥管理系统1201、加密机适配服务1202和加密机1203。其中,加密机是一种特殊的机器,生产符合国家和国际的标准,加密机有如下的优点来保障密钥的安全:加密机是定制的机器,从机器出厂时,结构和软件就固定了,不支持第三方应用软件的安装,可以避免因第三方软件版本太低带来的安全风险;加密机不同于普通服务器,禁用了大部分端口,只开放特定端口,减少因端口开放不当,而导致机器被入侵的风险;加密机独有的安全防护体系,当N次(例如,N等于10)登录失败,即启动自毁流程,把机器中存储的所有密钥都删除,黑客无法通过暴力破解手段来盗取密钥;加密机限定通信方式为https,需要双向证书认证,这些在加密机入场初始化时,就已经设置好,通过配置登录白名单,黑客无法使用其他机器登录加密机;密钥只存在加密机中,即使通过双向协议的认证,也无法获取密钥的原文。因此,使用加密机,可以保障用户密钥的安全性。
图13是本申请实施例提供的多租户密钥管理系统整体架构图,如图13所示,通过集群的方式,部署加密机和加密机服务器,遵循两地三中心的灾备部署方式。其中,多租户密钥管理系统整体包括:KMS服务器集群131、HSM服务器集群132、加密机集群133,其中,HSM服务器集群132中包括HSM服务器集群1、HSM服务器集群2和HSM冗余容灾服务器集群3,加密机集群133中包括主HSM1、主HSM2、容灾HSM和冷备HSM,HSM服务器集群1通过SDK与主HSM1进行通信,HSM服务器集群2通过SDK与主HSM2进行通信,HSM冗余容灾服务器集群3通过SDK与容灾HSM进行通信。冷备加密机是一种特殊设备,平时不上电,锁在一个安全的柜子了,万一所有加密机中的数据都丢失了,可以从冷备加密机中恢复。
加密机对接常规服务器,向KMS提供接口级的一致性服务。KMS服务器集群131通过nginx(一种高性能的HTTP和反向代理web服务器)连接KMS服务器1或KMS服务器2。
KMS管理数据库(DB,database)中的数据,使用加密机服务的功能,实现密钥轮换和管理功能,基于DNS或https进行直接请求,通过云API3.0接口134,采用L5(level 5,即第5级响应的最低优先级设备)和域名系统协议(DNS,Domain Name Server)实现负载均衡和容灾,并向页面和SDK提供接口响应。
告警模块135用于监控整个系统的运行状态,有异常实现秒级通知。
腾讯云访问管理服务(CAM,Cloud Access Management)136提供细粒度的鉴权服务,可以根据用户的不同子账号,授予不同权限,实现权限隔离。
云审计服务(CloudAudit)137提供审计功能,保障所有对系统的关键操作,都有迹可循。
计量和开通服务138,根据用户动态扩容的需求,实现不同的计费机制,满足用户不同级别的使用需求。
数据库139中包括主要云数据库(CDB master,Cloud database master)和从属云数据库(CDB slave,Cloud database slave)。数据库139基于虚拟IP(VIP,Virtual IP)实现对KMS服务器集群131提供数据存储服务。
在一些实施例中,多租户密钥管理系统中还包括:密钥轮换服务140,用于实现对密钥的轮换;计划删除服务141,用于对系统中的计划进行删除;KMS数据备份服务142,用于对数据进行备份;冷备份数据库143,用于对数据进行冷备份,其中冷备份数据库143中也包括CDB master和CDB slave;消息中心144,用于发送各种消息,例如提醒消息或者请求消息。
以下针对上述的多租户密钥管理系统的关键技术,做细节的分析。
图14是本申请实施例提供的数据处理方法的实现过程示意图,如图14所示,多租户密钥管理系统1401可以用于信封加密场景1402,多租户密钥管理系统1401对接多个密码机HSM1、HSM2……HSMn,且多个密码机之间兼容。本申请实施例提出的多级密钥的管理体系,基于多级密钥管理体系(即多租户密钥管理系统1401),衍生出用户基于信封加密的使用场景,最后为了系统更好的运行,提出了多厂商兼容的加密机使用方案。
本申请实施例中,在多级密钥管理体系中,满足信封加密场景。如图15所示,是本申请实施例提供的多级密钥管理体系的关系图,其中,横向第一层1501的调用关系是:在公有云的每个地区配置密码机151,分配响应的密码机服务器(HSM Server)152来封装与密码机151之间的调用,且屏蔽不同密码机的差异性,提供一致的接口,供KMS服务器153调用。用户在客户端154上,通过云API3.0的标准,使用KMS服务器153提供的服务,通过云API3.0的接口层,屏蔽了地域的差异,用户无论在任何地域,只需访问API3.0的域名,就能够调用到相同地域的KMS服务器153,来提供服务。
KMS服务器153保存了与用户相关的信息,以及用户创建的密钥索引和密文,对用户提供无差别的接口,实现用户密钥的生命周期管理,以及个性化的密钥管理策略,用户可以创建不同的子账号,分配不同的密钥管理策略,实现权限的分离,提高密钥的安全性。
在解释图15中的横向第二层1501的调用关系之前,首先要说明的是:图15中的Domainkey和Rootkey 155表示不同系统里面的根密钥,CMkey 156表示用户的主密钥,Datakey和DEK 157均表示数据密钥。其中,Datakey/DEK 157的生成使用了CMkey 156,CMkey 156的生成使用了Domainkey/Rootkey 155。本申请实施例中,Domainkey/Rootkey155存储于加密机中,所以是受最高规格的保护的,即通过加密机在保护Domainkey/Rootkey 155;然后,通过Domainkey/Rootkey 155加密就生成CMkey 156,即生成主密钥,主密钥存储于KMS加密机之间的数据库DB中。本申请实施例中,用户不能获取到主密钥的原文的,当用户要做一些加密的操作时,可以根据主密钥生成Datakey/DEK157,用户拿到的就是这个Datakey/DEK 157,用这个Datakey/DEK 157去进行一些加解密的操作。因此,用户不能获取到CMkey和Domainkey的原文,Domainkey对于用户来说是完全隔离的;对于CMkey,用户只知道它的ID,通过CMkey的ID来获取最终用于数据加密的Datakey/DEK 157。
下面对图15中的横向第二层的调用关系进行说明:密码机初始化时,在里面创建DomainKey/RootKey,DomainKey/RootKey受密码机的保护,可以预防暴力攻击或者窃取,外界无法直接看到DomainKey/RootKey的原文,有很高的安全性。密码机服务器(HSM Server)152使用加密机创建密钥,并且用DomainKey加密密钥,生成CMKey,提供给KMS管理,KMS实现了密钥的管理,以及密钥的轮换功能。用户向KMS服务器请求生成DataKey,DataKey由CMKey进行加密后产生,用户获得DataKey的原文和密文,原文用于数据本地的加解密,只存在于内存,把DataKey的密文,按照一定格式序列化后保存在本地,需要用到时,把加密后的密钥,使用KMS服务进行解密,用解密后的DataKey原文,解密内存中的数据。
需要说明的是,加密机里面保存的是Domainkey,它的原文是在加密机里面,会利用Domainkey来加密生成主密钥,主密钥用户也看不到,只能拿到主密钥的ID,主密钥会对DataKey进行加密,DataKey实际上就是重新生成的密钥,是另外的一个密钥,DataKey是会给到用户那边,所以DataKey的原文是会给到用户。本申请实施例中,DataKey实际上是一个明文,密钥是一串比如128位的字符串,使用这个CMkey去加密得到DataKey。
对于图15中纵向的关系,DomainKey由加密机管理,持久化保存,备份在专门的机器里面;CMKey由HSM Service调用加密机产生,和用户的信息一起存储在KMS的数据库DB中,由KMS管理其生命周期;DataKey的明文和密文给到用户,进行本地的加解密。
以下以CMKey的产生过程为例,来解释说明加密机的三级密钥管理体系,图16是本申请实施例提供的CMKey产生流程图,如图16所示,方法包括以下步骤:
步骤S1601,用户登陆多租户密钥管理系统。
如果登陆失败的话,结束流程,如果登陆成功,执行步骤S1602。
步骤S1602,获取会话ID。
步骤S1603,在加密机中加载与会话ID对应的Domainkey。
如果加载失败的话,结束流程,如果加载成功,执行步骤S1604。
步骤S1604,在加密机的内存中生成CMKey。
步骤S1605,对CMKey进行文本包装处理(Wrap),得到CMKey的字符串。
本申请实施例中,为了遵循密钥隔离的安全性需求,不能直接使用密钥,需要先向加密机登陆,并且获取正确的会话(Session)之后,才能调用加密机的接口,在加密机内部加载密钥,实现对外的加解密服务。而CMKey的明文,也是不能出现于加密机外部,所以需要在加密机内部文本包装出CMKey的密文,存储在KMS的数据库中,进行密钥的生命周期管理。
为了更好的理解与加密机交互的过程,以下是加密机交互的时序图为例进行说明,其中,加密机交互的过程遵循国际的PKCS#11标准。如图17所示,方法包括以下步骤:
步骤S1701,HSM服务器在加密机中完成登陆。
步骤S1702,登陆成功后,加密机向HSM服务器返回登陆成功消息。
步骤S1703,HSM服务器向加密机发送空闲槽位获取请求(例如,发送GetSlotList消息),以获取加密机中当前空闲的槽位。
步骤S1704,加密机向HSM服务器返回空闲槽位的ID。
步骤S1705,HSM服务器创建会话,将所创建的会话发送给加密机。
步骤S1706,加密机向HSM服务器返回会话ID。
步骤S1707,HSM服务器向加密机发送密钥获取请求,密钥获取请求中包括密钥标识(KeyLabel)。
步骤S1708,加密机向HSM服务器返回根密钥,并将密钥标识对应的根密钥加载到内存中。
步骤S1709,HSM服务器向加密机发送密钥生成请求。
步骤S1710,加密机获取根密钥的句柄(Handle),并根据根密钥的Handle向HSM服务器发送CMKey。
步骤S1711,HSM服务器向加密机发送文本包装请求。
步骤S1712,加密机对CMKey进行文本包装处理,得到CMKey的字符串,并将CMKey的字符串返回给HSM服务器。
至此,完成了HSM服务器与加密机之间交互的整个过程,结束会话。
从图17可以看出,输入的条件DomainKey的密钥标识,而输出的是根密钥的句柄,从而保证整个CMKey的产生过程,DomainKey的明文只存在加密机的内存中。
在基于多级密钥的信封加密场景中,由于所有的服务,最终都要面对用户,给用户提供便捷的服务,是做架构的唯一标准。那么,基于上述的多层密钥体系,则需要进一步解决加密机密钥存储成本昂贵的问题。
图18是本申请实施例提供的信封加密使用场景下的数据加密和解密过程示意图,如图18所示,KMS以生成的CMKey作为重要资源,通过的CMKey,获取DEK(或Datakey)的明文和密文。
用户根据实际业务场景,在业务加密场景中,在步骤S181中,在内存中通过DEK明文181来对本地的业务数据182进行加密,得到加密数据183;然后,在步骤S182中,将DEK密文184和密文的业务数据落盘。
在业务解密场景中,在步骤S183中,需通过KMS 185来解密DEK密文186;然后,在步骤S184中,通过解密出来的DEK明文187在内存中解密。
用户使用DEK明文,需要向KMS请求获取,业务数据加解密都在本地完成,这样,一方面降低了网络的通信成本,另一方面提高了加解密的效率。
在一些实施例中,还可以进行多密码机产品的兼容,实现国内外合规标准的支持。根据国家合规要求,国内的产品需要使用国密算法(sm系列)进行加解密的操作,而发展海外业务时,国外遵循NIST所发布FIPS标准,意味着国内和国外要对接不同的密码机厂商。这里,假设对接国内的密码机厂商为A厂商和B厂商,国外的密码机厂商为C厂商和D厂商,则其基础的结构图如图19所示,是本申请实施例提供的多密码机厂商兼容架构图。
请参照图19,各个厂商的密码机为基础层,虽然对外提供的都是PKCS#11标准接口191,但是实现的方式差别较大,导致在使用流程上,有很大的差别。为了封装这些差别,对外提供一致的功能服务,采用了软件设计模式的适配器模式,即通过创建不同的适配器,如图19中的适配器A、适配器B、适配器C和适配器D,来对外提供统一的API/标准(Proto)192。
图20是本申请实施例提供的密钥管理系统的关键要点图,如图20所示,包括:密钥安全保护201、生命周期管理202、密钥分发策略203和可靠稳定保障204。其中,密钥与加密数据分离;密钥管理与系统运维分离;密钥生成、存储安全性、可靠性认证;从密钥生成到密钥销毁全流程自动化管控;访问授权、访问审计、加密/解密等自动化管控;系统是否可用、加密数据能否可用依赖于密钥的完整性及可用性;密钥存储、服务、接入系统高可用、高可靠性保障;围绕密钥管理的数据安全管理策略制定;云、混合云、多云环境密钥管理策略;多系统密钥访问关系等。
由于一个完善的后台系统,除了业务的功能之外,还需要具备鉴权、日志、审计、计费和监控等功能,因此,本申请实施例在部署时遵循两地三中心的原则,实现负载均衡。使用云平台的多租户密钥管理系统,需要遵循一定的使用规范和步骤,图21是本申请实施例中提供的多租户密钥管理系统的使用流程示意图,如图21所示,包括以下步骤:
步骤S2101,开通腾讯云账户。
步骤S2102,开通多租户密钥管理服务,并创建主密钥。
步骤S2103,下载与该多租户密钥管理服务对应的SDK。
步骤S2104,将SDK集成到开发环境。
步骤S2105,使用主密钥创建用户密钥(对应上述的数据密钥)。
步骤S2106,采用用户密钥加解密本地数据(即待加密数据或待解密数据)。
本申请实施例中,多租户密钥管理系统基于腾讯云提供服务,需要用户提前开通腾讯云账户,购买KMS服务,然后下载KMS对外提供的SDK,并且基于腾讯云的开发框架,准备好本地的开发环境,通过密钥管理系统创建用户密钥,实现本地数据的加解密。其中,关键接口包括生成数据密钥和解密数据对应的接口。
在生成数据密钥时,接口名称为:GenerateDataKey;接口请求域名为:kms.tencentcloudapi.com;默认接口请求频率限制为:100次/秒;注意事项:需提前在控制台创建主密钥。
在解密数据时,接口名称为:Decrypt;接口请求域名为:kms.tencentcloudapi.com;默认接口请求频率限制为:300次/秒;输出参数为:解密后的明文。本申请实施例中,由于该解密后的明文的字段是base64(一种编码解码工具)编码的,为了得到原始明文,调用方需要进行base64解码。
本申请实施例提供的数据处理方法,通过实现一种传统加密机适配云平台多租户的密钥管理系统,为用户降低了使用密钥的门槛,用户可以根据需要创建不同数量的密钥,节约了密码机使用成本。并且,用户不用自己编写代码,去和不同厂商的密码机交互,减少了使用难度,可以专注于业务开发。通过KMS对密钥的管理,实现了多租户用户的隔离,保证不同用户的密钥的安全性。
需要说明的是,近年来敏感数据泄漏的事件时有发生,而保证数据不泄漏的方法,除了加强服务器的防护之外,还需要对敏感数据进行加密,而密钥的安全保存就是必要的功能。但是传统加密机的使用门槛非常高,要降低这个使用门槛,只能采用本申请实施例提供的技术方案,总体流程无法替代。
下面继续说明本申请实施例提供的基于云平台的数据处理装置354实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器350的基于云平台的数据处理装置354中的软件模块可以是KMS服务器300中的数据处理装置,包括:
第一接收模块3541,用于接收客户端发送的数据加密请求,所述数据加密请求中包括待加密数据和第一密钥标识;第一发送模块3542,用于将所述第一密钥标识发送给数据处理系统中的加密机服务器,以使所述加密机服务器从加密机中获取与所述第一密钥标识对应的根密钥,并对所述根密钥进行加密,生成主密钥;第二接收模块3543,用于接收所述加密机服务器发送的所述主密钥;第一密钥加密模块3544,用于对所述主密钥进行加密,生成数据密钥;数据加密模块3545,用于通过所述数据密钥对所述待加密数据进行加密,得到加密后的数据。
在一些实施例中,所述数据处理系统中包括:多个加密机服务器集群;所述装置还包括:第一确定模块,用于确定每一加密机服务器集群当前的业务需求总量;第二确定模块,用于将具有最小业务需求总量的加密机服务器集群,确定为目标加密机服务器集群;第三确定模块,用于将所述目标加密机服务器集群中的任一加密机服务器确定为目标加密机服务器;对应地,所述第一发送模块还用于将所述第一密钥标识发送给所述目标加密机服务器。
在一些实施例中,所述第三确定模块还用于:确定所述目标加密机服务器集群中的每一加密机服务器当前的业务需求量;将具有最小业务需求量的加密机服务器,确定为所述目标加密机服务器;或者,在所述业务需求量小于第一阈值的至少两个加密机服务器中,将任意一个加密机服务器确定为所述目标加密机服务器。
在一些实施例中,所述数据处理系统中还包括:容灾加密机服务器集群,所述装置还包括:第四确定模块,用于当每一所述加密机服务器集群的所述业务需求总量均大于第二阈值时,将所述容灾加密机服务器集群确定为所述目标HSM服务器集群。
在一些实施例中,所述数据处理系统中还包括:冷备加密机;所述装置还包括:根密钥获取模块,用于当所述数据处理系统中的每一加密机服务器对应的加密机中的数据均丢失时,从所述冷备加密机中获取与所述第一密钥标识对应的根密钥。
在一些实施例中,所述数据密钥包括密钥明文;所述数据加密模块还用于:通过所述密钥明文对所述待加密数据进行加密,得到所述加密后的数据。
在一些实施例中,所述数据密钥还包括密钥密文;所述装置还包括:序列化处理模块,用于按照第一预设格式,对所述密钥密文进行序列化处理,得到处理后的密钥密文;存储模块,用于将所述处理后的密钥密文、和所述密钥密文与所述第一密钥标识之间的对应关系,存储于内存中。
在一些实施例中,所述装置还包括:第二获取模块,用于获取数据解密请求,所述数据解密请求中包括待解密数据和第二密钥标识;第三获取模块,用于在所述内存中获取与所述第二密钥标识对应的目标密钥密文;密钥解密模块,用于对所述目标密钥密文进行解密,得到与所述密钥标识对应的目标密钥明文;数据解密模块,用于通过所述目标密钥明文对所述待解密数据进行解密,得到解密后的数据。
在一些实施例中,所述第一发送模块还用于:将所述第一密钥标识封装于密钥获取请求中;将所述密钥获取请求发送给数据处理系统中的加密机服务器,以使得所述加密机服务器对所述密钥获取请求进行解析,得到所述第一密钥标识。
在一些实施例中,所述装置还包括处理模块,用于将所述根密钥加载到内存中;在所述内存中对所述根密钥进行加密,得到加密密文;对所述加密密文进行文本包装处理,得到密钥字符串;将所述密钥字符串确定为所述主密钥。
在一些实施例中,所述装置还包括适配模块,用于通过适配器对每一所述加密机发送的所述根密钥进行格式转换,得到具有第二预设格式的根密钥;其中,所述第二预设格式是所述加密机服务器输出的统一格式;所述处理模块还用于对所述第二预设格式的根密钥进行加密,生成所述主密钥。
在另一些实施例中,还包括存储在HSM服务器中的基于云平台的数据处理装置(图中未示出),包括:第三接收模块,用于接收KMS服务器发送的密钥获取请求,所述密钥获取请求中包括第一密钥标识;获取模块,用于从HSM中获取与所述第一密钥标识对应的根密钥;第二密钥加密模块,用于对所述根密钥进行加密,生成主密钥;第二发送模块,用于将所述主密钥发送给所述KMS服务器,以使得所述KMS服务器根据所述主密钥生成数据密钥,并通过所述数据密钥对待加密数据进行加密。
在一些实施例中,所述第二密钥加密模块还用于:将所述根密钥加载到内存中;在所述内存中对所述根密钥进行加密,得到加密密文;对所述加密密文进行文本包装处理,得到密钥字符串;将所述密钥字符串确定为所述主密钥。
在一些实施例中,所述装置还包括:格式转换模块,用于对每一所述HSM发送的所述根密钥进行格式转换,得到具有第二预设格式的根密钥;其中,所述第二预设格式是所述HSM服务器输出的统一格式;对应地,所述第二密钥加密模块还用于:对所述第二预设格式的根密钥进行加密,生成所述主密钥。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的基于云平台的数据处理方法。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4示出的方法。
在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(FRAM,Ferromagnetic Random Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read Only Memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,Compact Disk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (10)

1.一种基于云平台的数据处理方法,其特征在于,所述方法包括:
处理服务器接收数据处理系统中的客户端发送的数据加密请求,所述数据加密请求中包括待加密数据和第一密钥标识;
将所述第一密钥标识发送给数据处理系统中的加密机服务器,以使所述加密机服务器从加密机中获取与所述第一密钥标识对应的根密钥,并对所述根密钥进行加密,生成主密钥;
接收所述加密机服务器发送的所述主密钥;
对所述主密钥进行加密,生成包括密钥明文的数据密钥;
通过所述密钥明文对所述待加密数据进行加密,得到加密后的数据,并将所述加密后的数据发送给所述客户端,以使所述客户端提示已完成加密;
将所述第一密钥标识发送给所述数据处理系统中具有最小业务需求总量的加密机服务器集群中的任一加密机服务器;
当所述数据处理系统中的每一加密机服务器对应的加密机中的数据均丢失时,将所述数据处理系统中的冷备加密机上电,并从所述冷备加密机中获取与所述第一密钥标识对应的根密钥;
对所述根密钥进行加密,得到加密密文,对所述加密密文进行文本包装处理,得到密钥字符串,将所述密钥字符串确定为所述主密钥。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述加密机服务器集群中的每一加密机服务器当前的业务需求量;
将具有最小业务需求量的加密机服务器,确定为目标加密机服务器;
或者,
在所述业务需求量小于第一阈值的至少两个加密机服务器中,将任意一个加密机服务器确定为所述目标加密机服务器。
3.根据权利要求1所述的方法,其特征在于,所述数据处理系统中还包括:容灾加密机服务器集群,所述方法还包括:
当每一所述加密机服务器集群的所述业务需求总量均大于第二阈值时,将所述容灾加密机服务器集群确定为目标加密机服务器集群。
4.根据权利要求1所述的方法,其特征在于,所述数据密钥还包括密钥密文;所述方法还包括:
按照第一预设格式,对所述密钥密文进行序列化处理,得到处理后的密钥密文;
将所述处理后的密钥密文、和所述密钥密文与所述第一密钥标识之间的对应关系,存储于内存中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取数据解密请求,所述数据解密请求中包括待解密数据和第二密钥标识;
在所述内存中获取与所述第二密钥标识对应的目标密钥密文;
对所述目标密钥密文进行解密,得到与所述密钥标识对应的目标密钥明文;
通过所述目标密钥明文对所述待解密数据进行解密,得到解密后的数据。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述将所述第一密钥标识发送给所述数据处理系统中的加密机服务器,包括:
所述处理服务器将所述第一密钥标识封装于密钥获取请求中;
将所述密钥获取请求发送给数据处理系统中的加密机服务器,以使得所述加密机服务器对所述密钥获取请求进行解析,得到所述第一密钥标识。
7.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
通过适配器对每一所述加密机发送的所述根密钥进行格式转换,得到具有第二预设格式的根密钥;其中,所述第二预设格式是所述加密机服务器输出的统一格式;
所述加密机服务器对所述根密钥进行加密,生成主密钥,包括:通过所述加密机服务器对所述第二预设格式的根密钥进行加密,生成所述主密钥。
8.一种基于云平台的数据处理装置,其特征在于,包括:
第一接收模块,用于接收数据处理系统中的客户端发送的数据加密请求,所述数据加密请求中包括待加密数据和第一密钥标识;
第一发送模块,用于将所述第一密钥标识发送给数据处理系统中的加密机服务器,以使所述加密机服务器从加密机中获取与所述第一密钥标识对应的根密钥,并对所述根密钥进行加密,生成主密钥;
第二接收模块,用于接收所述加密机服务器发送的所述主密钥;
第一密钥加密模块,用于对所述主密钥进行加密,生成包括密钥明文的数据密钥;
数据加密模块,用于通过所述密钥明文对所述待加密数据进行加密,得到加密后的数据,并将所述加密后的数据发送给所述客户端,以使所述客户端提示已完成加密;
确定模块,用于将所述第一密钥标识发送给所述数据处理系统中具有最小业务需求总量的加密机服务器集群中的任一加密机服务器;
根密钥获取模块,用于当所述数据处理系统中的每一加密机服务器对应的加密机中的数据均丢失时,将所述数据处理系统中的冷备加密机上电,并从所述冷备加密机中获取与所述第一密钥标识对应的根密钥;
处理模块,用于对所述根密钥进行加密,得到加密密文,对所述加密密文进行文本包装处理,得到密钥字符串,将所述密钥字符串确定为所述主密钥。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的基于云平台的数据处理方法。
10.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器配置为执行所述计算机程序时实现权利要求1至7任一项所述的基于云平台的数据处理方法。
CN202010615081.1A 2020-06-30 2020-06-30 基于云平台的数据处理方法、装置及计算机程序 Active CN111818032B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010615081.1A CN111818032B (zh) 2020-06-30 2020-06-30 基于云平台的数据处理方法、装置及计算机程序
PCT/CN2021/094022 WO2022001418A1 (zh) 2020-06-30 2021-05-17 数据处理方法、装置、计算机程序及存储介质
US17/851,878 US20220329422A1 (en) 2020-06-30 2022-06-28 Data processing method, apparatus, computer program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010615081.1A CN111818032B (zh) 2020-06-30 2020-06-30 基于云平台的数据处理方法、装置及计算机程序

Publications (2)

Publication Number Publication Date
CN111818032A CN111818032A (zh) 2020-10-23
CN111818032B true CN111818032B (zh) 2021-09-07

Family

ID=72855074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010615081.1A Active CN111818032B (zh) 2020-06-30 2020-06-30 基于云平台的数据处理方法、装置及计算机程序

Country Status (3)

Country Link
US (1) US20220329422A1 (zh)
CN (1) CN111818032B (zh)
WO (1) WO2022001418A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111818032B (zh) * 2020-06-30 2021-09-07 腾讯科技(深圳)有限公司 基于云平台的数据处理方法、装置及计算机程序
CN112436936B (zh) * 2020-11-11 2022-11-01 安徽量安通信息科技有限公司 一种具备量子加密功能的云存储方法及系统
CN112737779B (zh) * 2020-12-30 2023-04-21 深圳市宝能投资集团有限公司 一种密码机服务方法、装置、密码机及存储介质
CN113111365B (zh) * 2021-04-22 2024-04-09 广州市人心网络科技有限公司 一种基于信封加密的在线心理咨询隐私数据保护方法、存储介质及系统
CN113676318B (zh) * 2021-07-15 2024-02-27 北京思特奇信息技术股份有限公司 密钥轮换不影响原密码加解密的方法
CN113688015A (zh) * 2021-08-25 2021-11-23 深圳华远云联数据科技有限公司 告警通知方法、装置、服务器及存储介质
CN114358773A (zh) * 2021-12-29 2022-04-15 中国农业银行股份有限公司 数据加解密方法、装置、设备和介质
CN114172650B (zh) * 2022-02-14 2022-05-17 北京安盟信息技术股份有限公司 一种云计算环境下多用户密钥安全隔离方法及系统
CN114553510B (zh) * 2022-02-14 2022-11-04 重庆长安汽车股份有限公司 一种业务密钥分发系统、方法及可读存储介质
CN114650131B (zh) * 2022-03-17 2024-09-27 北京中交兴路信息科技有限公司 一种密钥管理方法及系统
CN114640445A (zh) * 2022-03-21 2022-06-17 中国电力科学研究院有限公司 Hsm密钥管理系统及方法、设备及存储介质
US11997191B2 (en) * 2022-03-23 2024-05-28 Blue Space Information Technology Co., Ltd. System and method for protecting secret data items using multiple tiers of encryption and secure element
US20230336339A1 (en) * 2022-04-18 2023-10-19 Dell Products L.P. Automatic key cleanup to better utilize key table space
CN115102709A (zh) * 2022-05-06 2022-09-23 东信和平科技股份有限公司 认证加解密方法、系统、设备及存储介质
CN115225272A (zh) * 2022-09-20 2022-10-21 北方健康医疗大数据科技有限公司 基于国产商用密码算法的大数据灾备系统、方法和设备
CN115529130B (zh) * 2022-11-25 2023-04-25 无锡沐创集成电路设计有限公司 数据处理方法、终端、服务器、系统、设备、介质和产品
CN117234798B (zh) * 2023-09-03 2024-01-30 国网江苏省电力有限公司信息通信分公司 一种面向电力领域的企业级数据备份恢复方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905384A (zh) * 2019-02-19 2019-06-18 北京深思数盾科技股份有限公司 数据迁移方法及系统
CN110120869A (zh) * 2019-03-27 2019-08-13 上海隔镜信息科技有限公司 密钥管理系统及密钥服务节点
CN111132150A (zh) * 2019-12-31 2020-05-08 中科曙光国际信息产业有限公司 一种保护数据的方法、装置、存储介质和电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101442404B (zh) * 2008-12-30 2013-02-06 北京中企开源信息技术有限公司 一种许可证多级管理系统及方法
US20100174878A1 (en) * 2009-01-06 2010-07-08 Crawford Communications Systems and Methods for Monitoring Archive Storage Condition and Preventing the Loss of Archived Data
CN101593389B (zh) * 2009-07-01 2012-04-18 中国建设银行股份有限公司 一种用于pos终端的密钥管理方法和系统
CN101753203B (zh) * 2010-01-22 2013-03-13 华为技术有限公司 微波通信中发送、接收业务的方法,终端及系统结构
EP2775656A1 (en) * 2013-03-04 2014-09-10 Thomson Licensing Device for generating an encrypted key and method for providing an encrypted key to a receiver
US9887836B1 (en) * 2014-09-26 2018-02-06 Amazon Technologies, Inc. Unified management of cryptographic keys using virtual keys and referrals
CN105634730B (zh) * 2015-12-29 2019-03-12 中国建设银行股份有限公司 一种金融ic卡密钥管理系统
CN107124271B (zh) * 2017-04-28 2020-12-04 成都梆梆信息技术咨询服务有限公司 一种数据加密、解密方法和设备
CN107786328A (zh) * 2017-09-01 2018-03-09 深圳市金立通信设备有限公司 一种生成密钥的方法、服务节点设备及计算机可读介质
CN108123800B (zh) * 2017-12-19 2021-06-15 腾讯科技(深圳)有限公司 密钥管理方法、装置、计算机设备及存储介质
SG10201903114RA (en) * 2019-04-08 2020-11-27 Mastercard International Inc Methods and systems for facilitating microservices for cryptographic operations
CN110061983B (zh) * 2019-04-09 2020-11-06 苏宁云计算有限公司 一种数据处理方法及系统
CN111818032B (zh) * 2020-06-30 2021-09-07 腾讯科技(深圳)有限公司 基于云平台的数据处理方法、装置及计算机程序

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905384A (zh) * 2019-02-19 2019-06-18 北京深思数盾科技股份有限公司 数据迁移方法及系统
CN110120869A (zh) * 2019-03-27 2019-08-13 上海隔镜信息科技有限公司 密钥管理系统及密钥服务节点
CN111132150A (zh) * 2019-12-31 2020-05-08 中科曙光国际信息产业有限公司 一种保护数据的方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
WO2022001418A1 (zh) 2022-01-06
CN111818032A (zh) 2020-10-23
US20220329422A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
CN111818032B (zh) 基于云平台的数据处理方法、装置及计算机程序
CN109450910B (zh) 基于区块链的数据共享方法、数据共享网络及电子设备
CN109525671B (zh) 基于区块链的数据存储方法、电子设备及存储介质
Wang et al. A secure cloud storage framework with access control based on blockchain
EP4120114A1 (en) Data processing method and apparatus, smart device and storage medium
CN109144961B (zh) 授权文件共享方法及装置
CN109120639B (zh) 一种基于区块链的数据云存储加密方法及系统
WO2019179537A2 (en) System and method for implementing a resolver service for decentralized identifiers
US20190036895A1 (en) Data distribution over nodal elements
CN110417750B (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
CN102932136B (zh) 用于管理加密密钥的系统和方法
CN111541725B (zh) 区块链一体机及其密码加速卡、密钥管理方法和装置
CN111066020A (zh) 用于创建去中心化标识的系统和方法
CN111095327A (zh) 用于验证可验证声明的系统和方法
CN111108521A (zh) 实现基于区块链的工作流
US10623186B1 (en) Authenticated encryption with multiple contexts
US20140195804A1 (en) Techniques for secure data exchange
US11367065B1 (en) Distributed ledger system for electronic transactions
CN103384196A (zh) 安全数据解析方法和系统
CN111125781B (zh) 一种文件签名方法、装置和文件签名验证方法、装置
CN112053274B (zh) 政务区块链网络的构建向导方法及装置
CN111865897A (zh) 一种云服务的管理方法及装置
WO2022252356A1 (zh) 数据处理方法、装置、电子设备及介质
Yasmin et al. Decentralized Entrance Power with Secret Endorsement of Data Stored in Clouds
shaher Alslman et al. Exchanging digital documents using blockchain technology

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030709

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant