Amazon web services 我可以使用Amazon AWS Lambda作为可信计算的安全飞地吗?

Amazon web services 我可以使用Amazon AWS Lambda作为可信计算的安全飞地吗?,amazon-web-services,aws-lambda,trusted-computing,Amazon Web Services,Aws Lambda,Trusted Computing,我想使用AWS Lambda代表第三方执行计算,然后向他们证明我是按预期那样做的。证明可以是函数体、请求和响应的加密签名摘要。理想情况下,Amazon将使用自己的私钥对摘要进行签名,并发布其公钥以允许对签名进行验证。这个想法类似于新英特尔芯片通过SGX(软件保护扩展)提供的“安全飞地” 现有的Lambda服务具备一些所需的要素。例如,GetFunction响应包含唯一标识函数实现的CodeSha256字段。AmazonAPI网关允许您向Lambda服务发出HTTPS请求,这可能允许对请求-响应内

我想使用AWS Lambda代表第三方执行计算,然后向他们证明我是按预期那样做的。证明可以是函数体、请求和响应的加密签名摘要。理想情况下,Amazon将使用自己的私钥对摘要进行签名,并发布其公钥以允许对签名进行验证。这个想法类似于新英特尔芯片通过SGX(软件保护扩展)提供的“安全飞地”

现有的Lambda服务具备一些所需的要素。例如,GetFunction响应包含唯一标识函数实现的CodeSha256字段。AmazonAPI网关允许您向Lambda服务发出HTTPS请求,这可能允许对请求-响应内容进行TLSNotary风格的证明。但要做到这一点,我认为AWS Lambda需要直接提供签名

Microsoft Azure正在其Bletchley项目中开发受信任的软件飞地(“加密包”):


在当前的AWS Lambda中是否可能出现这种情况?

根据安全性,AWS有不同的方法。您可以设置什么可以使用特定的资源,以及使用哪种方式

当然,你可以做到所描述的。您可以识别所使用的请求、响应和代码的确切版本。问题是,在处理请求时,是否要签署代码。更简单的方法是在部署时进行计算

对于第一种情况,您需要能够访问源代码的语言,你可以拿到它,签字并退回,或者把它存放在某个地方


第二种情况-我会使用。

让我们先做一些定义,Lambda不是服务器,而是运行代码的服务。它不直接提供任何签名,而是提供您在AWS上为其配置的签名

Secure Enclave是一种实现或一种TPM(可信平台模块),可以通过多种方式实现,而Secure Enclave是最好的一种。 对您的问题的简短回答是肯定的,只要您实现所需的代码并添加所有必需的配置、SSL等,就可以完成

我建议您阅读以下内容:


如果您想使用现成的TPM,可以使用microsoft project:

使用IAM还有另一种解决方案。您可以为具有Lambda源代码读取权限的客户设置IAM角色。通过使用公共lambda端点(看起来像
https://api-id.execute-api.region.amazonaws.com/STAGE
)-您可以向客户保证,请求直接命中此特定lambda函数

您的客户可用的IAM角色具有执行以下操作的权限:

  • 查看lambda代码和所有修订版的其他详细信息
  • 阅读API网关配置以验证请求是否直接命中lambda,而不会转到其他位置
然后,您的客户需要做的就是使用给定的IAM角色在其端对lambda进行设置审核。他们可以设置一个周期性的cron,在lambda更新时下载它的所有版本。如果您有一个预审查流程-可以根据他们的警报轻松配置该流程

请注意,这取决于“AWS”的诚信运行以及以下基本假设:

  • AWS Lambda正在运行针对其配置的代码
  • AWS管理API返回正确的响应
  • 发出警报的时间是合理的。这更容易,因为您也可以下载以前的lambda代码版本

  • 所有这些都是合理的假设。

    您的回答没有解决关键问题:我想证明执行了特定的计算,在输入Y上使用代码X生成输出Z。通常的方法是通过可信方的加密证明。对于Intel SGX,硬件enclave提供认证,受信任方为Intel。微软正在开发一个受信任的软件飞地,作为Coco的一部分,该飞地在其虚拟机监控程序中运行。我希望亚马逊正在沿着这些思路努力。有了AWS,你可以建立另一个层,负责签名,并以各方都能接受的方式提供信息。所有这些“东西”只是另一层——由英特尔、微软或任何其他公司提供。如果你信任PKI,你可以签署包括该层在内的所有文件,并向你的客户提供完整信息。或者以其他方式。你所不能提供的只是第三方的信任。您可以通过发送包含所有信息的日志来解决此问题。这样你可以试着欺骗他们,但他们总是可以检查发生了什么。