Replies: 8 comments 8 replies
|
Thank you for sharing this! Some comments/questions from my side:
Does this make sense? |
|
Thanks @ma3u! Here are some comments/questions in addition to @gbrost.
|
|
We discussed and reworked the diagram, so I am fine with that. This potentially relates to the trust discussion: |
|
Thans @ma3u for writing this down. Here are my comments:
|
|
the issue I see here is that there is not going to be the one implementation of TEE to satisfy all the needs. There will be a multitude of different TEE implementations, depending on the needs of the specific dataspace/participant needs. |
|
I stored the UML definition files in my private GitHub repo temporality: |
|
Thank you for the short discussion about the Simple Scenario. After a second look, I'm not sure if |
|
What is unique about confidential compute in the context of data spaces is that the notion of trust has to span multiple participants, not just one environment at a time. In many cases in Code-to-Data scenarios, besides asking questions like "where is the data running?" another very relevant question would be "what code is running, in what environment, and under which guarantees?" Here is where remote attestation and policy-based access would be useful constructs. Instead of having to rely on contractual trust between the participants involved, the data provider could check whether the workload running confidentially matches what is expected. As data spaces evolve, there will be an increasing demand for the ability to protect both parties from each other. Data providers need guarantees that data is secure, and algorithm providers have assurances that code and intellectual property are safe during execution. Having a solution capable of supporting different TEE technologies, attestation protocols, and deployment environments may prove very useful in this regard. What matters here is interoperability of trust mechanisms, not standardized confidential computing implementation. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
The functional requirement specification of the IDSA describes mandatory foundation and optional components for other data collaboration scenarios:
Optional function for Processing Services
Many projects like SafeFBDC, AgriGaia, Gaia-X4KI, Catena-X want to provide secure execution environments, so the data never leave the trusted premise environment of the data provider. There are various options:
1. Code-To-Data (C2D) between trusted partners
If partners trust each other the application can be transferred from the app provider to the app consumer. The app consumer hold the data. The data won't leave the data provider.
{ "@context": { "dcat": "http://www.w3.org/ns/dcat#", "dct": "http://purl.org/dc/terms/", "xsd": "http://www.w3.org/2001/XMLSchema#", "ex": "http://example.org/" }, "@id": "ex:HardwareRequirements", "@type": "dcat:Dataset", "dct:title": "Hardware Requirements for Running a Container", "dct:description": "This dataset defines the hardware requirements for running a container.", "dct:issued": { "@type": "xsd:date", "@value": "2022-01-01" }, "dct:modified": { "@type": "xsd:date", "@value": "2022-01-01" }, "dct:publisher": { "@id": "ex:HardwareRequirementsPublisher" }, "dct:language": { "@id": "http://id.loc.gov/vocabulary/iso639-1/en" }, "dcat:keyword": ["hardware requirements", "container", "CPU", "GPU", "RAM", "ConfidentialCompute", "CodeAttestation"], "dcat:distribution": [ { "@id": "ex:CPU", "@type": "dcat:Resource", "dct:title": "CPU", "dct:description": "Minimum CPU requirements for running a container." }, { "@id": "ex:GPU", "@type": "dcat:Resource", "dct:title": "GPU", "dct:description": "Minimum GPU requirements for running a container." }, { "@id": "ex:RAM", "@type": "dcat:Resource", "dct:title": "RAM", "dct:description": "Minimum RAM requirements for running a container." }, { "@id": "ex:ConfidentialCompute", "@type": "dcat:Resource", "dct:title": "Confidential Compute", "dct:description": "Confidential computing requirements for running a container." }, { "@id": "ex:CodeAttestation", "@type": "dcat:Resource", "dct:title": "Code Attestation", "dct:description": "Code attestation requirements for running a container." } ] }2. Confidential Compute between untrusted partners
If the partners do not trust each other, a 3rd party can ensure the calculation through confidential computation. Confidential computing is a security and privacy-enhancing computational technique focused on protecting data in use. The technology protects data in use by performing computations in a hardware-based trusted execution environment (TEE).[3] Confidential data is released to the TEE only once it is assessed to be trustworthy. Different types of confidential computing define the level of data isolation used, whether virtual machine, application, or function, and the technology can be deployed in on-premise data centers, edge locations, or the public cloud.
A similar approach is the concept of data clean rooms. The concept of a data clean room is intended to be a data-focused equivalent to a physical clean room, with the goal of having a pristine environment where technology can't be contaminated by outside influence. Instead of being concerned with contamination by physical elements, the primary concern of a data clean room is keeping user data isolated and private.
This is just one of many possible scenarios how you can create a Trusted Execution Environment with Confidential Compute and the EDC:
See also related discussion thread edc provisioning
All reactions