CN115964720A - 基于FaaS平台的机密计算方法、装置、设备及介质 - Google Patents
基于FaaS平台的机密计算方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115964720A CN115964720A CN202211735215.9A CN202211735215A CN115964720A CN 115964720 A CN115964720 A CN 115964720A CN 202211735215 A CN202211735215 A CN 202211735215A CN 115964720 A CN115964720 A CN 115964720A
- Authority
- CN
- China
- Prior art keywords
- function
- secret
- confidential
- information
- target
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 89
- 230000006870 function Effects 0.000 claims description 699
- 238000000034 method Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 147
- 238000013508 migration Methods 0.000 description 20
- 230000005012 migration Effects 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 17
- 238000012795 verification Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000011084 recovery Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003924 mental process Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
Abstract
本公开提供了一种基于FaaS平台的机密计算方法、装置、设备及介质,涉及数据处理领域,具体涉及可信计算处理领域。具体实现方案为:接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数;通过运行在机密设备上的所述目标机密函数,根据所述机密函数调用信息对所述客户端进行客户鉴权,并在客户鉴权通过时,对所述机密函数调用信息中加密信息进行解密,并处理解密得到的有效调用信息;通过所述目标机密函数,采用所述客户端对应的客户密钥对处理结果进行加密,并反馈给所述客户端。本公开实施例可以提高数据安全。
Description
技术领域
本公开涉及数据处理领域,具体涉及可信计算处理领域,尤其涉及一种基于FaaS平台的机密计算方法、装置、设备及介质。
背景技术
近年来随着大数据、云计算等的快速发展,越来越多的数据在云环境下进行存储、共享和计算,数据的隐私安全也被推到风口浪尖。
可信执行环境(Trusted execution environment,即TEE)基于硬件安全的CPU实现了基于内存隔离的安全计算。
发明内容
本公开提供了一种基于FaaS平台的机密计算方法、装置、设备及介质。
根据本公开的一方面,提供了一种基于FaaS平台的机密计算方法,包括:
接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数;
通过运行在机密设备上的所述目标机密函数,根据所述机密函数调用信息对所述客户端进行客户鉴权,并在客户鉴权通过时,对所述机密函数调用信息中加密信息进行解密,以及处理解密得到的有效调用信息;
通过所述目标机密函数,采用所述客户端对应的客户密钥对处理结果进行加密,并反馈给所述客户端。
根据本公开的另一方面,提供了一种基于FaaS平台的机密计算方法,包括:
获取有效调用信息;
对所述有效调用信息进行加密,得到加密信息,并根据所述加密信息生成机密函数调用信息,并发送至FaaS平台,以使所述机密函数调用信息指向的目标机密函数,在对客户端客户鉴权通过时,解密所述加密信息并处理所述有效调用信息,所述目标机密函数运行在机密设备上;
获取所述FaaS平台发送的反馈信息,并采用客户密钥进行解密,得到所述目标机密函数的处理结果。
根据本公开的一方面,提供了一种基于FaaS平台的机密计算装置,包括:
函数调用模块,用于接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数;
运行在机密设备上的目标机密函数,用于,根据所述机密函数调用信息对所述客户端进行客户鉴权,并在客户鉴权通过时,对所述机密函数调用信息中加密信息进行解密,以及处理解密得到的有效调用信息;
所述目标机密函数,用于通过所述目标机密函数,采用所述客户端对应的客户密钥对处理结果进行加密,并反馈给所述客户端。
函数调用信息获取模块,用于获取有效调用信息;
根据本公开的另一方面,提供了一种基于FaaS平台的机密计算装置,包括:
机密调用信息生成模块,用于对所述有效调用信息进行加密,得到加密信息,并根据所述加密信息生成机密函数调用信息,并发送至FaaS平台,以使所述机密函数调用信息指向的目标机密函数,在对客户端客户鉴权通过时,解密所述加密信息并处理所述有效调用信息,所述目标机密函数运行在机密设备上;
反馈结果解密模块,用于获取所述FaaS平台发送的反馈信息,并采用客户密钥进行解密,得到所述目标机密函数的处理结果。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的人工智能的数据处理方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开任一实施例所述的人工智能的数据处理方法。
根据本公开的另一方面,提供了一种计算机程序对象,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任一实施例所述的人工智能的数据处理方法。
本公开实施例可以提高数据安全。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例公开的一种基于FaaS平台的机密计算方法的流程图;
图2是根据本公开实施例公开的另一种基于FaaS平台的机密计算方法的流程图;
图3是根据本公开实施例公开的另一种基于FaaS平台的机密计算方法的流程图;
图4是根据本公开实施例公开的另一种基于FaaS平台的机密计算方法的流程图;
图5是根据本公开实施例公开的一种基于FaaS平台的机密计算方法的场景图;
图6是根据本公开实施例公开的一种基于FaaS平台的机密计算方法的信令图;
图7是根据本公开实施例公开的一种基于FaaS平台的机密计算装置的结构示意图;
图8是根据本公开实施例公开的一种基于FaaS平台的机密计算装置的结构示意图;
图9是用来实现本公开实施例的基于FaaS平台的机密计算方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例公开的一种基于FaaS平台的机密计算方法的流程图,本实施例可以适用于FaaS平台实现机密计算的情况。本实施例方法可以由基于FaaS平台的机密计算装置来执行,该装置可采用软件和/或硬件的方式实现,并具体配置于具有一定数据运算能力的电子设备中,该电子设备可以是服务器设备。
函数即服务(Function as a Service)是云计算服务的一种类型,在FaaS平台上用户可以开发、运行和管理自己的应用,而不需要关注和维护应用运行的基础设施,服务提供方按需提供计算资源。FaaS是一种Serverless(无服务器)的具体实现方式。FaaS能够提供良好的扩缩容,根据调用请求,自动扩缩容计算资源,利于控制成本,使用灵活;用户只需要专注于应用,大大提高了生产效率。
在FaaS平台中,用户可以发布函数,平台部署用户所发布的函数,用户还可以通过平台提供的对外接口,调用部署的函数,进行计算处理。
S101、接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数。
客户端与FaaS平台系统进行交互。FaaS为客户端提供服务。机密函数调用信息用于调用FaaS平台中处于可信执行环境中(Trusted execution environment,TEE)的机密函数。机密函数用于运行在TEE中。FaaS平台中包括至少两类函数,一类是普通函数,在普通环境中运行,普通环境与TEE不同,一类是机密函数,在TEE中运行。此外,还可以根据需要设定其他类函数。其中,在TEE运行的函数,可以保护使用中的数据(data in use)。
机密函数调用信息用于指向目标机密函数并调用该目标机密函数进行相应处理。目标机密函数为机密函数调用信息指向的机密函数,也是客户端想要调用的机密函数。
S102、通过运行在机密设备上的所述目标机密函数,根据所述机密函数调用信息对所述客户端进行客户鉴权,并在客户鉴权通过时,对所述机密函数调用信息中加密信息进行解密,以及处理解密得到的有效调用信息。
机密函数运行在机密设备上。通常,基于硬件安全的中央处理器(centralprocessing unit,CPU)实现了基于内存隔离的安全计算,可在保证计算效率的前提下完成隐私保护的计算。相应的,机密设备为机密函数所处的硬件设备。可以配置多个机密设备,一个机密设备可以部署有至少一个机密函数。
机密函数调用信息还包括客户端的权限信息,可以根据机密函数调用信息进行客户鉴权,即校验客户端是否有权限调用目标机密函数。客户鉴权通过,表明客户端有权限调用目标机密函数。
机密函数调用信息还包括有加密信息,加密信息的加密所使用的密钥,通过FaaS和客户端事先约定。对加密信息进行解密,得到有效调用信息。有效调用信息用于指示目标机密函数执行的处理操作。
S103、通过所述目标机密函数,采用所述客户端对应的客户密钥对处理结果进行加密,并反馈给所述客户端。
客户密钥用于对处理结果进行加密,目标机密函数对处理结果进行加密,并将加密的处理结果反馈给客户端。实现在目标机密函数与客户端之间的传输过程中,传输的数据均为加密数据。客户端对应的客户密钥,是FaaS和客户端事先约定。客户端可以加密的处理结果进行解密。
根据本公开的技术方案,通过接收客户端的机密函数调用信息,在机密设备上运行指向的目标机密函数,通过目标机密函数对客户端进行鉴权,以及对机密函数调用信息进行解密和处理,并将处理结果进行加密和反馈,可以在FaaS平台上通过运行在机密设备上的目标机密函数,实现在可信执行环境中对数据进行处理,提高数据处理安全,并且对客户端进行鉴权以及对传输数据进行双向加密,提高数据传输安全,实现在FaaS平台中可信处理数据和传输数据,提高FaaS平台的数据安全。
图2是根据本公开实施例公开的另一种基于FaaS平台的机密计算方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。目标机密函数具体化为:管理机密函数或计算机密函数,基于FaaS平台的机密计算方法优化为:通过第一管理机密函数,生成函数密钥;通过所述第一管理机密函数,根据所述函数密钥,生成平台认证信息,发送至所述客户端,以使所述客户端在根据所述平台认证信息确定平台鉴权通过时,从中获取所述函数密钥,对所述有效调用信息进行加密生成加密信息,并确定机密函数调用信息,以及发送至所述客户端。相应的,对所述机密函数调用信息中加密信息进行解密,具体化为:通过所述目标机密函数,从所述第一管理机密函数处获取函数密钥,对所述机密函数调用信息中加密信息进行解密。
目标机密函数包括管理机密函数和计算机密函数。
其中,管理机密函数用于提供校验信息和密钥信息,并为计算机密函数提供管理功能。计算机密函数用于在TEE中进行执行计算任务,提供机密计算的服务。实际上,管理机密函数也可以偶尔被调用执行一些计算任务。但计算机密函数更加适用于执行大部分的计算任务。
S201、通过第一管理机密函数,生成函数密钥。
第一管理机密函数用于生成函数密钥,并提供给客户端,以使客户端根据函数密钥加密传输数据,使得传输至机密函数的数据是保密的。第一管理机密函数运行在机密设备上。第一管理机密函数运行的机密设备和目标机密函数运行的机密设备可以相同也可以不同。函数密钥可以是非对称密钥,函数密钥包括函数公钥和函数私钥,其中,函数私钥由第一管理机密函数保存,函数公钥用于发送给客户端。函数密钥可以与客户端对应,或者至少一个客户端对应同一个函数密钥。
S202、通过所述第一管理机密函数,根据所述函数密钥,生成平台认证信息,发送至所述客户端,以使所述客户端在根据所述平台认证信息确定平台鉴权通过时,从中获取所述函数密钥,对所述有效调用信息进行加密生成加密信息,并确定机密函数调用信息,以及发送至所述客户端。
平台认证信息用于客户端对第一管理机密函数进行鉴权,平台认证信息中携带函数密钥。客户端根据平台认证信息对发送平台认证信息的第一管理机密函数进行平台鉴权。在客户端确定平台鉴权通过时,客户端可以从平台认证信息中提取出函数密钥,具体是提取出函数公钥,对有效调用信息进行加密。其中,有效调用信息用于客户端调用目标机密函数执行计算任务。有效调用信息为客户端实际发给目标机密函数的有效信息,以控制目标机密函数提供相应功能。客户端采用函数密钥对有效调用信息进行加密,得到加密信息。加密信息用于生成机密函数调用信息,机密函数调用信息携带有加密信息,传输至目标机密函数,目标机密函数采用函数密钥对加密信息进行解密,具体是采用函数私钥对加密信息进行解密。目标机密函数对解密得到的有效调用信息进行处理,得到客户端所需的处理结果。示例性的,加密信息添加权限信息,生成机密函数调用信息。权限信息用于作为客户端的身份信息,用于目标机密函数进行客户鉴权。示例性的,权限信息可以包括签名和证书等。
S203、接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数。所述目标机密函数包括管理机密函数或计算机密函数。
S204、通过运行在机密设备上的所述目标机密函数,根据所述机密函数调用信息对所述客户端进行客户鉴权,并在客户鉴权通过时,从所述第一管理机密函数处获取函数密钥,对所述机密函数调用信息中加密信息进行解密,以及处理解密得到的有效调用信息。
有效调用信息中还可以携带调用时间戳,目标机密函数在解密得到有效调用信息时,可以对调用时间戳进行校验。在校验通过时,处理有效调用信息;在校验不通过时,不处理有效调用信息,可以反馈失败的处理结果。
可选的,根据所述机密函数调用信息对所述客户端进行客户鉴权,包括:通过所述目标机密函数,根据所述机密函数调用信息中客户证书,查询所述客户端的签发者证书;通过所述目标机密函数,根据所述客户端的签发者证书,对所述机密函数调用信息中加密信息的签名进行校验;所述客户证书的签名通过所述客户端的客户私钥生成。
签发者证书是权威的第三方提供客户端的身份证明信息。机密函数调用信息中携带有客户证书,客户证书上有签发者证书的标识信息。目标机密函数根据签发者证书的标识信息,去权威的第三方处,查询客户端的签发者证书。如果查询不到,则确定客户端鉴权不通过。客户端预先生成客户密钥对,包括客户公钥和客户私钥,客户端根据客户私钥生成的签名。目标机密函数可以根据签发者证书对加密上的签名进行验签,在验签通过时,表明客户端的来源合法且有效,确定客户鉴权通过;在验签不通过时,表明客户端的来源不合法且有效,确定客户鉴权不通过。此外,客户端还可以在签名时携带签名时间戳,目标机密函数还可以根据签名时间戳结合签名共同校验,以确定客户端鉴权成功或失败。
通过对签发证书对客户端进行鉴权,可以精准校验客户端身份,并提高机密函数的调用安全性。
S205、通过所述目标机密函数,采用所述客户端对应的客户密钥对处理结果进行加密,并反馈给所述客户端。
客户端在机密函数调用信息中添加有校验值(nonce),即客户端根据权限信息、校验值和有效调用信息,生成机密函数调用信息。目标机密函数对处理结果和校验值进行加密,并反馈给客户端。客户端接收到该加密信息,并进行解密,得到处理结果和校验值。客户端对校验值进行校验,即与预存的校验值进行比较是否相同,如果相同,则客户端确定处理结果的合法且正确,可以对处理结果进行后续处理。
可选的,基于FaaS平台的机密计算方法,还包括:通过所述第一管理机密函数获取所述第一管理机密函数关联的待迁移的机密数据;通过所述第一管理机密函数,获取所述第一管理机密函数所在的主用机密设备的设备密钥,并对所述待迁移的机密数据进行解密,得到待迁移内容,所述待迁移内容包括密钥数据;通过所述第一管理机密函数,将所述待迁移内容发送至运行在备用机密设备的第三管理机密函数;通过所述第三管理机密函数,采用所述备用机密设备的设备密钥对所述待迁移内容进行加密,并将加密后的待迁移内容在所述备用机密设备中落盘存储。
实际上,TEE中有些落盘加密文件的密钥是与某个机密设备绑定,在其他机密设备上无法进行解密。存在移机(live migration)和灾备(冗余备份)的场景,需要对落盘加密的数据进行迁移。
机密数据为落盘在机密设备的需要保密的数据。机密数据采用设备密钥加密后得到的数据。设备密钥与机密数据落盘的机密设备对应。待迁移内容包括密钥数据。密钥数据为机密函数在运行过程中使用的密钥,密钥数据可以包括前述的函数密钥和客户密钥,具体包括函数公钥、函数私钥和客户公钥等。待迁移内容还可以包括校验数据、机密函数的日志信息和机密函数的统计信息等,其中,校验数据可以是与校验过程相关的信息,例如校验数据可以包括客户端的证书序列号、签发者证书序列号、签发者证书内容和机密设备的TEEID等。统计信息可以包括机密函数的调用次数等。数据迁移是指从一个主用机密设备向至少一个备用机密设备传输数据存储。可以将某个主用机密设备运行的全部管理机密函数关联的机密数据,迁移到至少一个备用机密设备中。
一个主用机密设备中可以部署有至少一个管理机密函数,针对每个管理机密函数关联的机密数据,采用主用机密设备对应的设备密钥进行解密,得到该管理机密函数的待迁移内容。该主用机密设备中管理机密函数可以将至少一个管理机密函数(至少包括自身)的待迁移内容发送至备用机密设备中管理机密函数。针对每个接收到待迁移内容的备用机密设备中管理机密函数,该备用机密设备中管理机密函数,获取该备用机密设备的设备密钥对该待迁移内容进行加密。将加密后的待迁移内容在该备用机密设备上进行落盘存储。在本公开实施例中,第一管理机密函数部署在主用机密设备中,且用于向备用机密设备传输待迁移内容。第三管理机密函数部署在备用机密设备中,且用于接收主用机密设备传输的待迁移内容,并落盘存储。其中,第三管理机密函数用于接收第一管理机密函数传输的待迁移内容。
此外,在落盘存储之前,备用机密设备中管理机密函数还需要对待迁移内容进行校验。示例性的,主用机密设备中管理机密函数在发送待迁移内容时,附加该主用机密设备的软件保护扩展(Software Guard Extensions,SGX)信息。备用机密设备中管理机密函数对该主用机密设备的SGX信息进行校验,在SGX信息校验通过时,将加密后的待迁移内容在该备用机密设备上进行落盘存储。在SGX信息校验不通过时,不存储加密后的待迁移内容。
此外,还可以增加重复性校验。在SGX信息校验通过时,备用机密设备中管理机密函数检测本地是否存储有与待迁移内容相同的数据,如果没有则落盘存储。如果有则丢弃。备用机密设备中管理机密函数将是否落盘存储的结果反馈给主用机密设备中管理机密函数。
主用机密设备部署的管理机密函数可以在首次迁移数据之后,周期性将更新数据发送至备用机密设备中落盘存储。每次存储过程几乎与首次存储过程相同。备用机密设备中管理机密函数记录数据迁移日志,在非首次存储过程中,备用机密设备中管理机密函数在SGX信息校验通过之后,根据数据迁移日志,检测本地是否存储有与待迁移内容相同的数据,即检测本次是否更新;在确定不存在相同数据,即需要更新时,将本次更新的待迁移内容进行落盘存储,并同时在数据迁移日志中记录本次更新的待迁移内容相关的信息。
相应的,主用机密设备部署的管理机密函数记录数据迁移日志,该数据迁移日志记录有落盘成功的备选机密设备和落盘失败的备选机密设备。针对某次更新落盘失败的备选机密设备,在下一次更新时,主用机密设备部署的管理机密函数将历史落盘失败对应的待迁移内容以及本次更新的待迁移内容共同发送至该备选机密设备。此外,主用机密设备部署的管理机密函数在检测到某个备选机密设备连续落盘失败的次数达到预设次数阈值(如5次),则将备选机密设备剔除,在后续更新中,不在将更新的待迁移内容发送至该机密设备。
通过经过数据迁移的同步操作之后,同步后的机密设备上部署的函数可以作为迁移后的管理机密函数,并且能够运行于其他机密设备上。可以进行不同集群间的数据迁移,也可以在集群内部达到冗余备份的目的。并且主备之间的通信基于TEE远程认证的安全通道,可以确保信息传输在TEE内发生,并且确保所有数据落盘加密,能够支持热迁移和灾备等场景,提高机密计算系统的稳定性和容错性。
根据本公开的技术方案,通过FaaS中部署到机密设备上运行的管理函数预先发送给客户端携带函数密钥的平台认证信息,使得客户端获取函数密钥,实现对有效调用信息进行加密,从而提高从客户端到目标机密函数的传输路径中传输数据的传输安全,同时客户端还可以根据平台认证信息进行平台鉴权,实现客户端侧的鉴权,并结合平台侧的鉴权,实现双向鉴权,构建双向鉴权安全通道,进一步提高机密计算的数据传输安全。
图3是根据本公开实施例公开的另一种基于FaaS平台的机密计算方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。基于FaaS平台的机密计算方法优化为:接收函数发布指令,获取待发布的所述目标机密函数,以及所述目标机密函数的保密属性信息;在所述目标机密函数的保密属性信息为机密函数的情况下,获取所述函数发布指令指向的机密设备,将所述目标机密函数发布在所述指向的机密设备上,以使所述目标机密函数在所述指向的机密设备上运行;所述机密设备通过所述FaaS平台中设备管理模块添加。
S301、接收函数发布指令,获取待发布的所述目标机密函数,以及所述目标机密函数的保密属性信息。
机密函数通过发布指令部署到机密设备上。在目标机密函数部署之后,可以通过FaaS平台的对外接口向客户端提供服务。函数发布指令用于发布机密函数。函数发布指令包括机密函数的内容,以及机密函数需要部署的机密设备。保密属性信息用于指示发布的函数是否为机密函数,也即用于指示发布的函数是否需要部署到机密设备上。保密属性信息包括普通函数或机密函数等。保密属性信息为普通函数,则该发布的函数不是机密函数,不需要部署到机密设备上,不需要TEE级别的环境运行。保密属性信息为机密函数,则该发布的函数是机密函数,需要部署到机密设备上,需要在TEE环境中运行。
现有的FaaS平台具有函数发布功能。而本公开实施例中在该函数发布功能的基础上,为发布的函数增加一个选项供发布用户选择,该选项为保密属性信息,即用户通过保密属性信息选择发布的函数是否为机密函数。
S302、在所述目标机密函数的保密属性信息为机密函数的情况下,获取所述函数发布指令指向的机密设备,将所述目标机密函数发布在所述指向的机密设备上,以使所述目标机密函数在所述指向的机密设备上运行;所述机密设备通过所述FaaS平台中设备管理模块添加。
函数发布指令指向的机密设备是部署目标机密函数的机密设备。目标机密函数发布在机密设备上,目标机密函数在机密设备上运行,从而目标机密函数在TEE中运行。
设备管理模块用于管理机密设备。用户可以通过FaaS平台的设备管理模块,增删改查机密设备。在添加机密设备之后,机密函数的发布用户可以选择已添加的机密设备发布机密函数。
实际上,FaaS平台的类型不同,添加机密环境和功能,需要针对不同的FaaS平台进行适配。在一个具体的例子中,在k8s集群中添加设备管理模块daemonset,用于识别管理和控制机密计算设备,该机密计算设备为机密计算提供硬件支持。具体的,针对k8s(kubernetes,容器集群管理系统)的FaaS平台(例如openfaas或knative等),由于k8s使用pod运行机密计算应用,通过deployment进行控制。当用户在FaaS平台上申请创建函数后,k8s集群中将出现函数的deployment。在k8s集群中添加设备管理模块daemonset(守护进程集),让pod能够识别机密计算控制设备,然后通过修改函数部署的deployment,用于申请资源。其中,为了提高稳定性,将机密计算函数需要依赖的其他进程(针对SGX设备,其他进程为aesmd),以容器的形式,一起放到pod中,以分散对依赖进程的并发调用。
S303、接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数。
S304、通过运行在机密设备上的所述目标机密函数,根据所述机密函数调用信息对所述客户端进行客户鉴权,并在客户鉴权通过时,对所述机密函数调用信息中加密信息进行解密,以及处理解密得到的有效调用信息。
S305、通过所述目标机密函数,采用所述客户端对应的客户密钥对处理结果进行加密,并反馈给所述客户端。
可选的,所述处理解密得到的有效调用信息,包括:通过所述目标机密函数,向第二管理机密函数请求所述目标机密函数的调用权限;通过所述第二管理机密函数,查询所述目标机密函数对应的调用上限值和调用次数,并确定所述目标机密函数是否具有调用权限,并反馈给所述目标机密函数;在确定所述目标机密函数具有调用权限的情况下,通过所述目标机密函数,处理解密得到的有效调用信息。
第一管理机密函数与第二管理机密函数相同也可以不同。调用权限用于检测目标机密函数是否可以被调用,执行计算任务。机密函数设置有调用上限值,调用上限值可以通过发布该机密函数的用户确定。第二管理机密函数用于记录机密函数的标识信息与调用上限值和调用次数之间的对应关系,以及用于实时更新机密函数的调用次数。机密函数的标识信息可以包括:客户端的证书序列号、签发者证书序列号或者是设备的TEE ID等。
目标机密函数向第二管理机密函数请求目标机密函数的调用权限,具体是将目标机密函数的标识信息发送给第二管理机密函数。第二管理机密函数根据目标机密函数的标识信息,查询目标机密函数对应的调用上限值和调用次数。在目标机密函数的调用次数小于调用上限值时,目标机密函数可以被调用执行计算任务,确定目标机密函数具有调用权限;在目标机密函数的调用次数大于等于调用上限值时,目标机密函数无法被调用无法执行计算任务,确定目标机密函数不具有调用权限。第二管理机密函数将目标机密函数是否具有调用权限的信息,反馈给目标机密函数。在具有调用权限时,目标机密函数处理有效调用信息。在不具有调用权限时,目标机密函数不处理有效调用信息,以及确定处理结果失败等。
在第二管理机密函数将目标机密函数具有调用权限的信息,反馈给目标机密函数之后,第二管理机密函数可以更新该目标机密函数的调用次数,例如,调用次数加1。
此外,目标机密函数可以通过单独的上报线程,向第二管理机密函数请求调用权限。该单独的上报线程与目标机密函数关联的已有的线程或处理有效调用信息的线程相互独立。该单独的上报线程不影响目标机密函数本身执行的任务。
通过设置机密函数的调用权限,FaaS可以安全可信控制并获取客户对平台的使用情况,并根据使用情况,对平台服务进行有效控制,提高函数控制灵活性,并且在TEE内的统计信息,可以实现统计信息本身无法被外界篡改,提高统计信息的安全。
可选的,基于FaaS平台的机密计算方法方法,还包括:通过所述第二管理机密函数,接收到所述目标机密函数的调用次数查询请求,并查询对应的调用查询结果;通过所述第二管理机密函数,采用所述第二管理机密函数所在的机密设备的设备密钥,对所述调用查询结果进行签名,并反馈给查询方。
实际上,管理机密函数还可以对外提供机密函数的调用次数的信息。在本公开实施例中,查询方可以单独请求第二管理机密函数,获取目标机密函数的调用次数。目标机密函数的调用次数查询请求用于获取该目标机密函数的调用次数。调用查询结果为该目标机密函数的调用次数。第二管理机密函数所在的机密设备的设备密钥用于对调用查询结果进行签名,以标识管理机密函数的身份信息。第二管理机密函数对调用查询结果进行签名,并形成远程认证报告,发送至查询方。查询方校验远程认证报告的管理机密函数真实可信合法时,解析得到目标机密函数的调用次数。
通过对外提供调用次数查询功能,并通过签名校验,查询方可以获取到真实可信的统计信息,提高调用次数的统计真实可靠性。
根据本公开的技术方案,通过在FaaS平台中配置设备管理模块添加机密设备,并在发布函数时增加保密属性信息,为发布用户增加发布机密函数的选项,并通过函数发布指令选择部署机密函数的机密设备,实现在FaaS平台上增加TEE环境,并实现机密计算功能,通过避免修改源代码,将机密计算函数部署到FaaS平台,解决了机密计算函数无服务的基础功能,可以灵活部署机密计算函数,实现自动扩缩容,按需使用,提高机密函数的功能灵活性和可控性。
图4是根据本公开实施例公开的另一种基于FaaS平台的机密计算方法的流程图,本实施例可以适用于客户端请求FaaS平台的机密计算服务的情况。本实施例方法可以由基于FaaS平台的机密计算装置来执行,该装置可采用软件和/或硬件的方式实现,并具体配置于具有一定数据运算能力的电子设备中,该电子设备可以是客户端设备,客户端设备例如手机、平板电脑、车载终端和台式电脑等。
S401、获取有效调用信息。
客户端根据用户指令,确定调用目标机密函数、传参和时间戳等信息,客户端根据前述信息生成有效调用信息。
S402、对所述有效调用信息进行加密,得到加密信息,并根据所述加密信息生成机密函数调用信息,并发送至FaaS平台,以使所述机密函数调用信息指向的目标机密函数,在对客户端客户鉴权通过时,解密所述加密信息并处理所述有效调用信息,所述目标机密函数运行在机密设备上。
客户端对有效调用信息进行加密,并采用客户私钥进行签名,以及添加签名时间戳。将添加签名后的加密信息,结合标识值和证书,确定为机密函数调用信息。
S403、获取所述FaaS平台发送的反馈信息,并采用客户密钥进行解密,得到所述目标机密函数的处理结果。
反馈信息为FaaS针对机密函数调用信息的处理结果。反馈信息经过客户公钥加密,客户端采用客户私钥进行解密,得到处理结果。客户端可以对处理结果进行后续处理,例如显示或计算等。
可选的,基于FaaS平台的机密计算方法,还包括:接收所述FaaS平台中第一管理机密函数发送的平台认证信息;根据所述平台认证信息对所述第一管理机密函数进行平台鉴权;在平台鉴权通过时,提取所述平台认证信息中的函数密钥;所述对所述有效调用信息进行加密,得到加密信息,包括:采用所述函数密钥,对所述有效调用信息进行加密,得到加密信息。
平台认证信息用于客户端对发送该平台认证信息的管理机密函数进行平台鉴权。平台鉴权可以是指客户端校验管理机密函数的身份合法性。在平台鉴权通过时,客户端确定平台认证信息的来源可靠且合法,从平台认证信息中提取函数密钥,具体是函数公钥,并采用函数公钥对有效调用信息进行加密,得到加密信息。对加密信息进一步处理,得到机密函数调用信息。
通过客户端在平台鉴权通过时,从平台认证信息中提取函数密钥对有效调用信息进行加密,并生成机密函数调用信息传输至FaaS平台进行处理,可以实现客户端对FaaS的鉴权,并加密传输数据,提高数据传输安全。
根据本公开的技术方案,通过客户端生成机密函数调用信息,并发送至FaaS平台,以使FaaS平台中在机密设备上运行指向的目标机密函数,通过目标机密函数对客户端进行鉴权,以及对机密函数调用信息进行解密和处理,并将处理结果进行加密和反馈,可以在FaaS平台上通过运行在机密设备上的目标机密函数,实现在可信执行环境中对数据进行处理,提高数据处理安全,并且对客户端进行鉴权以及对传输数据进行双向加密,提高数据传输安全,实现在FaaS平台中可信处理数据和传输数据,提高FaaS平台的数据安全。
图5是根据本公开的技术方案提供的一种基于FaaS平台的机密计算方法的场景图。如图5所示,该基于FaaS平台的机密计算方法包括:
函数发布用户在FaaS平台的k8s中设置设备管理模块,用于添加和管理机密设备,以及在FaaS平台的k8s中为发布的函数添加保密属性信息,以支持发布机密函数的功能,从而实现添加机密计算功能。函数发布用户通过FaaS平台的对外接口FaaS Gateway,输入函数发布指令,从而可以通过设置发布的函数的保密属性信息为机密函数,并指定发布的机密设备,从而实现在指定高的机密设备上部署机密函数。FaaS平台接收函数发布指令,获取待发布的函数,以及函数的保密属性信息;在该函数的保密属性信息为机密函数的情况下,获取函数发布指令指向的预先添加的机密设备,将该函数发布在所述指向的机密设备上,以使该函数在所述指向的机密设备上运行。在这之前,函数发布用户可以通过k8s的设备管理模块daemonset,添加机密设备,并通过修改函数部署的deployment,为该机密设备申请资源。
其中,机密函数包括管理机密函数和计算机密函数,机密函数运行在机密设备上,实现机密函数运行在可信域中。同时,管理机密函数所需的数据(待迁移内容)可以进行备份,从而得到管理机密函数副本,从而实现可信域的迁移。管理机密函数、计算机密函数和管理机密函数副本在可信域里面运行。管理机密函数、计算机密函数和管理机密函数副本之间的传输通道为基于远程认证的安全信道。计算机密函数分布式分布在k8s集群中。
在客户端调用机密函数之前,FaaS平台的第一管理机密函数生成函数公钥和函数私钥,并将函数公钥嵌入到经过签名的远程认证报告(平台认证信息)中,并向客户端发送。客户端接收到远程认证报告,并进行平台鉴权。具体是在确认第一管理机密函数位于TEE并且没有被篡改时,确定平台鉴权通过,客户端使用远程认证报告中的函数公钥对有效调用信息进行加密,为防止中间人攻击,有效调用信息中需要带调用时间戳,实现对数据的加密操作。
客户端对上述加密信息使用客户私钥进行签名,为防止中间人攻击,签名需要带签名时间戳,然后与自己的客户证书和校验值nonce,生成机密函数调用信息,一并发送给FaaS平台。
客户端向FaaS平台的对外接口FaaS Gateway发送机密函数调用信息。机密函数调用信息通过对外接口FaaS Gateway发送至FaaS implementation,并转发至目标机密函数,管理机密函数或者是计算机密函数。
目标机密函数启动时通过基于远程认证的安全信道向第一管理机密函数获取函数公钥对应的函数私钥,并从客户端的证书签发机构(Certification Authority,CA)获取签发者证书。
目标机密函数接收到机密函数调用信息,通过客户端的证书,查询对应的签发者证书,并对客户端进行客户鉴权,具体是检测客户端的来源是否合法,是否有效等。在来源合法,在有效期内,且没有被吊销,确定客户鉴权通过,此时采用函数私钥对加密信息进行解密,校验调用时间戳。在调用时间戳校验通过时,对解密得到的有效调用信息进行函数逻辑处理。在结果处理完之后,目标机密函数通过密钥交互或者客户公钥对客户端发送的校验值nounce和处理结果加密,并反馈给客户端。
客户端接收到反馈信息,并进行解密,对校验值进行校验,在校验通过时,对处理结果进行后续处理。
通过在多client(客户端)对多server(函数)的服务模式下,构建了基于远程认证(TEE级别)的安全信道,任一client发送的请求,可以在任一server进行鉴权、解密并进行处理,传输过程中,数据的机密性和完整性得到保护。
FaaS平台还具有集群调用统计及授权的功能。FaaS平台的统计功能可以通过界面显示,一方面,在云上场景,用户很难相信平台提供的调用次数等数据的真实性,另一方面,在私有化场景,FaaS平台提供方需要安全可信控制并获取客户对平台的使用情况,并根据使用情况,对平台服务进行有效控制。
函数发布用户可以预置不同计算机密函数可以调用的上限值,并由管理机密函数进行增删改查。如果没有上限,则可以设置一个无限大的数字。计算机密函数的标识可以是客户端的证书序列号,也可以签发者的证书序列号。对于单实例的管理机密函数,还可以限制所处机密设备的TEE ID。为了防止上限值被恶意篡改,函数发布用户对上限值进行签名,在管理机密函数中保存相应的公钥,用于验证上限值的真实性。
计算机密函数启动过程中启动单独的上报线程,以不影响对调用请求(机密函数调用信息)的处理。上报线程通过安全信道向管理机密函数获取自己是否可以执行,如果管理机密函数注册有该计算机密函数ID,并且剩余次数不为零,则可以执行;然后计算机密函数定期向管理机密函数上报本实例已经调用次数,并请求是否可以继续执行。对于无法连接管理机密函数的情况,管理机密函数视为不允许继续执行,以防止对信道的dos攻击。
管理机密函数将上报次数,从该计算机密函数总调用次数配额中减去,如果大于零,返回可以继续执行,否则返回无法继续执行。
管理机密函数提供接口,可以返回当前集群中的调用情况,调用情况需要使用TEE密钥签名,形成远程认证报告。客户端获取远程认证报告,并校验远程认证报告来自真实的管理机密函数后,解析得到当前集群中调用情况。
通过提出TEE安全级别的调用统计,统计信息本身无法被外界篡改,并通过TEE的远程认证报告的形式,可信的提供信息,统计的使用者利用远程认证,确保使用者得到的数据为真实TEE内数据。
实际上,TEE中有些落盘加密文件的密钥是与机密设备绑定的,在其他机密设备上无法进行解密。对于移机(live migration)和灾备(冗余备份)的场景,需要迁移落盘加密数据。由于计算机密函数为分布式部署,数据不落盘,只需为管理机密函数实现数据迁移功能。
具体如图6所示。管理机密函数所处的机密设备为主用机密设备,相对于该管理机密设备,可以迁移相应数据,形成该管理机密函数的至少一个副本,管理机密函数副本所处的机密设备为备用机密设备,将各管理机密函数副本和所处的备用机密设备,形成备份列表。主用机密设备上的该管理机密函数向备用机密设备上的管理机密函数副本传输待迁移内容,例如,前述第一管理机密函数向第三管理机密函数传输待迁移内容。针对首次数据迁移,该管理机密函数采用主用机密设备的设备密钥对落盘的机密数据进行解密,得到待迁移内容。该管理机密函数向管理机密函数副本发送待迁移内容。该管理机密函数可选是否向管理机密函数副本发送SGX信息。在发送SGX信息时,管理机密函数副本对SGX信息进行校验,校验通过时,采用备用机密设备的设备密钥对待迁移内容进行加密,并落盘存储。在不发送SGX信息时,管理机密函数副本直接加密落盘存储待迁移内容。在落盘存储之前,还需检测是否本地已存在相同数据,如果存在,则不落盘存储,确定返回值失败,否则落盘存储,并确定返回值成功。管理机密函数副本向管理机密函数发送返回值。管理机密函数在确定返回值失败时,将管理机密函数副本从备份列表中删除,即管理机密函数副本不再作为管理机密函数的副本,以后也不进行备份更新。
在首次数据迁移之后,周期性循环进行更新数据的迁移。管理机密函数向管理机密函数副本发送更新的待迁移内容,减少冗余,可以只发送更新的内容。同样可选是否发送SGX信息进行校验。管理机密函数副本在SGX校验通过时,或者无需校验时,解析数据迁移日志,并根据数据迁移日志,检测本地是否有相同数据,从而判断是否落盘存储本次更新数据。管理机密函数副本发送返回值。管理机密函数接收到返回值。在所有的管理机密函数副本都返回失败,则向运维人员进行告警,例如,通过短信通知方式告警。在部分管理机密函数副本返回失败,将失败的管理机密函数副本和相应的备用机密设备,记录到失败日志中。并将本次更新数据添加到下次更新的数据中一次合并发送,即下次合并发送历史备份失败的待迁移内容和当前更新的待迁移内容。在失败日志中检测到某个管理机密函数副本连续五次失败,则将该管理机密函数副本和相应的备用机密设备从备份列表中剔除,以后不再向该备用机密设备迁移数据。
同步后的管理机密函数副本可以作为迁移后的管理机密函数,并且能够运行于其他机密设备上。可以进行不同集群间的数据迁移,也可以在集群内部达到冗余备份的目的。主备之间的通信基于TEE远程认证的安全通道,确保信息传输在TEE内发生,所有数据落盘加密。本公开实施例提供一种分布式serverless机密计算函数的数据迁移方法,能够支持热迁移和灾备等场景。
根据本公开的实施例,图7是本公开实施例中的基于FaaS平台的机密计算装置的结构图,本公开实施例适用于FaaS平台实现机密计算的情况。该装置采用软件和/或硬件实现,并具体配置于具备一定数据运算能力的电子设备中。
如图7所示的一种基于FaaS平台的机密计算装置700,包括:函数调用模块701和目标机密函数702。其中,
函数调用模块701,用于接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数;
运行在机密设备上的目标机密函数702,用于,根据机密函数调用信息对客户端进行客户鉴权,并在客户鉴权通过时,对机密函数调用信息中加密信息进行解密,以及处理解密得到的有效调用信息;
目标机密函数702,用于通过目标机密函数,采用客户端对应的客户密钥对处理结果进行加密,并反馈给客户端。
根据本公开的技术方案,通过接收客户端的机密函数调用信息,在机密设备上运行指向的目标机密函数,通过目标机密函数对客户端进行鉴权,以及对机密函数调用信息进行解密和处理,并将处理结果进行加密和反馈,可以在FaaS平台上通过运行在机密设备上的目标机密函数,实现在可信执行环境中对数据进行处理,提高数据处理安全,并且对客户端进行鉴权以及对传输数据进行双向加密,提高数据传输安全,实现在FaaS平台中可信处理数据和传输数据,提高FaaS平台的数据安全。
进一步的,目标机密函数包括管理机密函数或计算机密函数,装置包括:第一管理机密函数,用于生成函数密钥;第一管理机密函数,用于根据函数密钥,生成平台认证信息,发送至客户端,以使客户端在根据平台认证信息确定平台鉴权通过时,从中获取函数密钥,对有效调用信息进行加密生成加密信息,并确定机密函数调用信息,以及发送至客户端;目标机密函数702,用于从第一管理机密函数处获取函数密钥,对机密函数调用信息中加密信息进行解密。
进一步的,目标机密函数702,用于向第二管理机密函数请求目标机密函数的调用权限;第二管理机密函数,用于查询目标机密函数对应的调用上限值和调用次数,并确定目标机密函数是否具有调用权限,以及反馈给目标机密函数;目标机密函数702,用于在确定目标机密函数具有调用权限的情况下,处理解密得到的有效调用信息。
进一步的,第二管理机密函数,用于接收到目标机密函数的调用次数查询请求,并查询对应的调用查询结果;第二管理机密函数,用于采用第二管理机密函数所在的机密设备的设备密钥,对调用查询结果进行签名,并反馈给查询方。
进一步的,基于FaaS平台的机密计算装置,还包括:第一管理机密函数,用于获取第一管理机密函数关联的待迁移的机密数据;第一管理机密函数,用于获取第一管理机密函数所在的主用机密设备的设备密钥,并对待迁移的机密数据进行解密,得到待迁移内容,待迁移内容包括密钥数据;第一管理机密函数,用于将待迁移内容发送至运行在备用机密设备的第三管理机密函数;第三管理机密函数,用于采用备用机密设备的设备密钥对待迁移内容进行加密,并将加密后的待迁移内容在备用机密设备中落盘存储。
进一步的,基于FaaS平台的机密计算装置,还包括:函数发布模块,用于接收函数发布指令,获取待发布的目标机密函数,以及目标机密函数的保密属性信息;函数部署模块,用于在目标机密函数的保密属性信息为机密函数的情况下,获取函数发布指令指向的机密设备,将目标机密函数发布在指向的机密设备上,以使目标机密函数在指向的机密设备上运行;机密设备通过FaaS平台中设备管理模块添加。
上述基于FaaS平台的机密计算装置可执行本公开任意实施例所提供的基于FaaS平台的机密计算方法,具备执行基于FaaS平台的机密计算方法相应的功能模块和有益效果。
根据本公开的实施例,图8是本公开实施例中的基于FaaS平台的机密计算装置的结构图,本公开实施例适用于客户端请求FaaS平台的机密计算服务的情况。该装置采用软件和/或硬件实现,并具体配置于具备一定数据运算能力的电子设备中。
如图8所示的一种基于FaaS平台的机密计算装置800,包括:函数调用信息获取模块801、机密调用信息生成模块802和反馈结果解密模块803。其中,
函数调用信息获取模块801,用于获取有效调用信息;
机密调用信息生成模块802,用于对有效调用信息进行加密,得到加密信息,并根据加密信息生成机密函数调用信息,并发送至FaaS平台,以使机密函数调用信息指向的目标机密函数,在对客户端客户鉴权通过时,解密加密信息并处理有效调用信息,目标机密函数运行在机密设备上;
反馈结果解密模块803,用于获取FaaS平台发送的反馈信息,并采用客户密钥进行解密,得到目标机密函数的处理结果。
根据本公开的技术方案,通过客户端生成机密函数调用信息,并发送至FaaS平台,以使FaaS平台中在机密设备上运行指向的目标机密函数,通过目标机密函数对客户端进行鉴权,以及对机密函数调用信息进行解密和处理,并将处理结果进行加密和反馈,可以在FaaS平台上通过运行在机密设备上的目标机密函数,实现在可信执行环境中对数据进行处理,提高数据处理安全,并且对客户端进行鉴权以及对传输数据进行双向加密,提高数据传输安全,实现在FaaS平台中可信处理数据和传输数据,提高FaaS平台的数据安全。
进一步的,基于FaaS平台的机密计算装置,还包括:还包括:认证信息接收模块,用于接收FaaS平台中第一管理机密函数发送的平台认证信息;平台鉴权模块,用于根据平台认证信息对第一管理机密函数进行平台鉴权;函数密钥提取模块,用于在平台鉴权通过时,提取平台认证信息中的函数密钥;机密调用信息生成模块802,包括:调用信息加密单元,用于采用函数密钥,对有效调用信息进行加密,得到加密信息。
上述基于FaaS平台的机密计算装置可执行本公开任意实施例所提供的基于FaaS平台的机密计算方法,具备执行基于FaaS平台的机密计算方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序对象。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性区域图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如基于FaaS平台的机密计算方法。例如,在一些实施例中,基于FaaS平台的机密计算方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的基于FaaS平台的机密计算方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于FaaS平台的机密计算方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准对象(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或区域图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (19)
1.一种基于FaaS平台的机密计算方法,包括:
接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数;
通过运行在机密设备上的所述目标机密函数,根据所述机密函数调用信息对所述客户端进行客户鉴权,并在客户鉴权通过时,对所述机密函数调用信息中加密信息进行解密,以及处理解密得到的有效调用信息;
通过所述目标机密函数,采用所述客户端对应的客户密钥对处理结果进行加密,并反馈给所述客户端。
2.根据权利要求1所述的方法,其中,所述目标机密函数包括管理机密函数或计算机密函数,所述方法还包括:
通过第一管理机密函数,生成函数密钥;
通过所述第一管理机密函数,根据所述函数密钥,生成平台认证信息,发送至所述客户端,以使所述客户端在根据所述平台认证信息确定平台鉴权通过时,从中获取所述函数密钥,对所述有效调用信息进行加密生成加密信息,并确定机密函数调用信息,以及发送至所述客户端;
所述对所述机密函数调用信息中加密信息进行解密,包括:
通过所述目标机密函数,从所述第一管理机密函数处获取所述函数密钥,对所述机密函数调用信息中加密信息进行解密。
3.根据权利要求1所述的方法,其中,所述处理解密得到的有效调用信息,包括:
通过所述目标机密函数,向第二管理机密函数请求所述目标机密函数的调用权限;
通过所述第二管理机密函数,查询所述目标机密函数对应的调用上限值和调用次数,并确定所述目标机密函数是否具有调用权限,以及反馈给所述目标机密函数;
在确定所述目标机密函数具有调用权限的情况下,通过所述目标机密函数,处理解密得到的有效调用信息。
4.根据权利要求3所述的方法,还包括:
通过所述第二管理机密函数,接收到所述目标机密函数的调用次数查询请求,并查询对应的调用查询结果;
通过所述第二管理机密函数,采用所述第二管理机密函数所在的机密设备的设备密钥,对所述调用查询结果进行签名,并反馈给查询方。
5.根据权利要求2所述的方法,还包括:
通过所述第一管理机密函数,获取所述第一管理机密函数关联的待迁移的机密数据;
通过所述第一管理机密函数,获取所述第一管理机密函数所在的主用机密设备的设备密钥,并对所述待迁移的机密数据进行解密,得到待迁移内容,所述待迁移内容包括密钥数据;
通过所述第一管理机密函数,将所述待迁移内容发送至运行在备用机密设备的第三管理机密函数;
通过所述第三管理机密函数,采用所述备用机密设备的设备密钥对所述待迁移内容进行加密,并将加密后的待迁移内容在所述备用机密设备中落盘存储。
6.根据权利要求1所述的方法,还包括:
接收函数发布指令,获取待发布的所述目标机密函数,以及所述目标机密函数的保密属性信息;
在所述目标机密函数的保密属性信息为机密函数的情况下,获取所述函数发布指令指向的机密设备,将所述目标机密函数发布在所述指向的机密设备上,以使所述目标机密函数在所述指向的机密设备上运行;所述机密设备通过所述FaaS平台中设备管理模块添加。
7.一种基于FaaS平台的机密计算方法,包括:
获取有效调用信息;
对所述有效调用信息进行加密,得到加密信息,并根据所述加密信息生成机密函数调用信息,并发送至FaaS平台,以使所述机密函数调用信息指向的目标机密函数,在对客户端客户鉴权通过时,解密所述加密信息并处理所述有效调用信息,所述目标机密函数运行在机密设备上;
获取所述FaaS平台发送的反馈信息,并采用客户密钥进行解密,得到所述目标机密函数的处理结果。
8.根据权利要求7所述的方法,还包括:
接收所述FaaS平台中第一管理机密函数发送的平台认证信息;
根据所述平台认证信息对所述第一管理机密函数进行平台鉴权;
在平台鉴权通过时,提取所述平台认证信息中的函数密钥;
所述对所述有效调用信息进行加密,得到加密信息,包括:
采用所述函数密钥,对所述有效调用信息进行加密,得到加密信息。
9.一种基于FaaS平台的机密计算装置,包括:
函数调用模块,用于接收到客户端发送的机密函数调用信息,并发送至指向的目标机密函数;
运行在机密设备上的目标机密函数,用于,根据所述机密函数调用信息对所述客户端进行客户鉴权,并在客户鉴权通过时,对所述机密函数调用信息中加密信息进行解密,以及处理解密得到的有效调用信息;
所述目标机密函数,用于通过所述目标机密函数,采用所述客户端对应的客户密钥对处理结果进行加密,并反馈给所述客户端。
10.根据权利要求9所述的装置,其中,所述目标机密函数包括管理机密函数或计算机密函数,所述装置包括:
第一管理机密函数,用于生成函数密钥;
所述第一管理机密函数,用于根据所述函数密钥,生成平台认证信息,发送至所述客户端,以使所述客户端在根据所述平台认证信息确定平台鉴权通过时,从中获取所述函数密钥,对所述有效调用信息进行加密生成加密信息,并确定机密函数调用信息,以及发送至所述客户端;
所述目标机密函数,用于从所述第一管理机密函数处获取所述函数密钥,对所述机密函数调用信息中加密信息进行解密。
11.根据权利要求9所述的装置,其中,
所述目标机密函数,用于向第二管理机密函数请求所述目标机密函数的调用权限;
所述第二管理机密函数,用于查询所述目标机密函数对应的调用上限值和调用次数,并确定所述目标机密函数是否具有调用权限,以及反馈给所述目标机密函数;
所述目标机密函数,用于在确定所述目标机密函数具有调用权限的情况下,处理解密得到的有效调用信息。
12.根据权利要求11所述的装置,其中,
所述第二管理机密函数,用于接收到所述目标机密函数的调用次数查询请求,并查询对应的调用查询结果;
所述第二管理机密函数,用于采用所述第二管理机密函数所在的机密设备的设备密钥,对所述调用查询结果进行签名,并反馈给查询方。
13.根据权利要求10所述的装置,还包括:
所述第一管理机密函数,用于获取所述第一管理机密函数关联的待迁移的机密数据;
所述第一管理机密函数,用于获取所述第一管理机密函数所在的主用机密设备的设备密钥,并对所述待迁移的机密数据进行解密,得到待迁移内容,所述待迁移内容包括密钥数据;
所述第一管理机密函数,用于将所述待迁移内容发送至运行在备用机密设备的第三管理机密函数;
所述第三管理机密函数,用于采用所述备用机密设备的设备密钥对所述待迁移内容进行加密,并将加密后的待迁移内容在所述备用机密设备中落盘存储。
14.根据权利要求9所述的装置,还包括:
函数发布模块,用于接收函数发布指令,获取待发布的所述目标机密函数,以及所述目标机密函数的保密属性信息;
函数部署模块,用于在所述目标机密函数的保密属性信息为机密函数的情况下,获取所述函数发布指令指向的机密设备,将所述目标机密函数发布在所述指向的机密设备上,以使所述目标机密函数在所述指向的机密设备上运行;所述机密设备通过所述FaaS平台中设备管理模块添加。
15.一种基于FaaS平台的机密计算装置,包括:
函数调用信息获取模块,用于获取有效调用信息;
机密调用信息生成模块,用于对所述有效调用信息进行加密,得到加密信息,并根据所述加密信息生成机密函数调用信息,并发送至FaaS平台,以使所述机密函数调用信息指向的目标机密函数,在对客户端客户鉴权通过时,解密所述加密信息并处理所述有效调用信息,所述目标机密函数运行在机密设备上;
反馈结果解密模块,用于获取所述FaaS平台发送的反馈信息,并采用客户密钥进行解密,得到所述目标机密函数的处理结果。
16.根据权利要求15所述的装置,还包括:
认证信息接收模块,用于接收所述FaaS平台中第一管理机密函数发送的平台认证信息;
平台鉴权模块,用于根据所述平台认证信息对所述第一管理机密函数进行平台鉴权;
函数密钥提取模块,用于在平台鉴权通过时,提取所述平台认证信息中的函数密钥;
所述机密调用信息生成模块,包括:
调用信息加密单元,用于采用所述函数密钥,对所述有效调用信息进行加密,得到加密信息。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的基于FaaS平台的机密计算方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的基于FaaS平台的机密计算方法。
19.一种计算机程序对象,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的基于FaaS平台的机密计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735215.9A CN115964720A (zh) | 2022-12-30 | 2022-12-30 | 基于FaaS平台的机密计算方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735215.9A CN115964720A (zh) | 2022-12-30 | 2022-12-30 | 基于FaaS平台的机密计算方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115964720A true CN115964720A (zh) | 2023-04-14 |
Family
ID=87361721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211735215.9A Pending CN115964720A (zh) | 2022-12-30 | 2022-12-30 | 基于FaaS平台的机密计算方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964720A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436088A (zh) * | 2023-11-07 | 2024-01-23 | 国网江苏省电力有限公司南通供电分公司 | 一种基于容器及容器集群审计信息的安全监测方法及系统 |
-
2022
- 2022-12-30 CN CN202211735215.9A patent/CN115964720A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436088A (zh) * | 2023-11-07 | 2024-01-23 | 国网江苏省电力有限公司南通供电分公司 | 一种基于容器及容器集群审计信息的安全监测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220191012A1 (en) | Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System | |
CN112422532B (zh) | 业务通信方法、系统、装置及电子设备 | |
CN112073400B (zh) | 一种访问控制方法、系统、装置及计算设备 | |
CN109257334B (zh) | 一种基于区块链的数据上链系统、方法及存储介质 | |
US9720673B2 (en) | System, method, and computer program product for collaboratively installing a computer application | |
CN109194651B (zh) | 一种身份认证方法、装置、设备及存储介质 | |
CN105099705B (zh) | 一种基于usb协议的安全通信方法及其系统 | |
CN104320389A (zh) | 一种基于云计算的融合身份保护系统及方法 | |
CN110084600B (zh) | 决议事务请求的处理、验证方法、装置、设备及介质 | |
WO2016109955A1 (zh) | 一种软件校验方法和装置 | |
CN112231652B (zh) | 可信环境远程验证方法、装置、设备、系统及介质 | |
CN110221949A (zh) | 自动化运维管理方法、装置、设备及可读存储介质 | |
CN112311779B (zh) | 应用于区块链系统的数据访问控制方法及装置 | |
US20200319873A1 (en) | Manifest Trialing Techniques | |
CN115129518B (zh) | Tee内存储数据的备份和恢复方法、装置、设备及介质 | |
CN111740824B (zh) | 可信应用管理方法及装置 | |
CN116011590A (zh) | 联邦学习方法、装置和系统 | |
CN106911744B (zh) | 一种镜像文件的管理方法和管理装置 | |
CN115964720A (zh) | 基于FaaS平台的机密计算方法、装置、设备及介质 | |
KR101586048B1 (ko) | 불법 어플리케이션 차단 시스템 및 서버, 이를 위한 통신 단말기 및 불법 어플리케이션 차단 방법과 기록매체 | |
CN101118639A (zh) | 安全电子人口普查系统 | |
CN110855753A (zh) | 银行运营系统、方法及服务器 | |
CN110851837A (zh) | 一种基于可信计算的自助设备、其安全管理系统及方法 | |
CN113869901B (zh) | 密钥生成方法、装置、计算机可读存储介质及计算机设备 | |
CN112926981B (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 |