Confidential Computing with SCONE
TEEMon Monitoring Framework released (2020-06-20)
We released our monitoring framework and Grafana-based dashboard to monitor both SGX-related metrics
as well as generic node-specific metrics. We enable a very simple
helm-based deployment of TEEMon.
Visual Studio Code and SCONE CrossCompiler added (2020-06-13)
We combined Visual Studio Code with our SCONE cross-compiler. If you do not have access to SGX on your development machine, you can now edit and run your programs in a Kubernetes cluster with Visual Studio Code.
Mono and C# Support added (2020-06-06)
We received your emails asking for C# support and today, we add mono and C# to our standard images. For mono, the program execution as well as the compilation itself runs inside of an enclave. We added a simple hello world for mono/C#.
Kubernetes Support added (2020-06-01)
SCONE supports deploying confidential applications to Kubernetes. We explain the basic concepts and we describe how to deploy confidential applications with helm like MariaDB. See also our deep-dive tutorial to show how to build and run an encrypted Python program in a Kubernetes deployment and to use some new features such as policy-based certificate generation and injection.
SCONE Executive Summary
The SCONE confidential computing platform facilitates always encrypted execution: one can run services and applications such that neither the data nor the code is ever accessible in clear text - not even for root users. Only the application code itself can access the unencrypted data and code. SCONE simplifies the task of encrypting the input, executing the service/application in encrypted memory on an untrusted host, transparently encrypting the output and shipping the output back to the client.
SCONE (Secure CONtainer Environment) supports the execution of confidential applications inside of containers running inside a Kubernetes cluster (basic concepts). SCONE also supports the execution of confidential applications inside of VMs (e.g., on top of Windows10) as well as directly on a host (baremetal). SCONE supports all common programming languages. It also supports air-gapped systems both with SGXv1 as well as SGXv2.
The memory size of SCONE-based applications can be up to 32GB on current SGX-capable CPUs. The specifications published by Intel shows that upcoming CPUs will support even larger enclaves and SCONE will - on these CPUs - support applications with basically unlimited memory sizes.
SCONE helps to ensure that data, communications, code and the main memory is always encrypted. To do so, SCONE needs to verify (i.e., attest) that the expected application code is running in a trusted execution environment on a potentially untrusted host. Read our secure remote execution tutorial to see how to perform an encrypted remote execution in a single step. In this way, one can even execute encrypted code. We show how to execute encrypted Python scripts in the context of blender, an encrypted wordcount and a hello world program.
SCONE can help you to encrypt your input and output data on your local computer. The keys are managed with the help of SCONE CAS (Configuration and Attestation Service). SCONE CAS itself runs, of course, inside an enclave. It can either run on the client side or on a remote host. It can even be operated by an untrusted entity and still be trusted by CAS clients.
SCONE supports multiple stakeholders (confidential multiparty computation) that do not necessarily trust each other. SCONE supports users, service providers, application providers, data providers and infrastructure providers. They can all work together and SCONE can ensuring that each party can protect its own intellectual property. Some of the services, like SCONE CAS, can be actually operated by not necessarily trusted stakeholders since clients can verify that the services are in the correct state.
If you are interested in confidential multi-party computations, we can give you access to a proof of concept that shows how to protect AI models and provide access control to the model, e.g., can only be executed on certain machines and only certain arguments can be provided by the user - depending on a given SCONE policy. Just send us an email.