Wat is Confidential computing?

Een manier van rekenen waarbij gegevens tijdens de verwerking binnen een door hardware beschermde TEE worden behandeld, zodat zelfs het OS, de hypervisor en de beheerders van de cloudaanbieder ze niet kunnen lezen. Het beschermt gegevens in gebruik, naast de versleuteling van opgeslagen gegevens en van gegevens tijdens transport. Er zijn TEE's van het VM-type, die een hele virtuele machine beschermen (zoals AMD SEV-SNP, Intel TDX en Arm CCA), en van het enclave-type, die een deel van een applicatie beschermen (zoals Intel SGX). Geheime gegevens en sleutels worden pas vrijgegeven nadat de toestand binnenin met remote attestation is gecontroleerd.

Japanse benaming: 機密コンピューティング

“Confidential computing” komt voor in 4 oefenvragen uit 2 onderwerpen, bijv. Hardwarebeveiliging: nieuwste ontwikkelingen, Hardwarebeveiliging.

Vakgebied: Hardwarebeveiliging: nieuwste ontwikkelingen

Gegevens in gebruik beschermen

Gegevens kunnen tijdens opslag op een schijf worden beschermd met versleuteling van de opslag, en tijdens transport over een netwerk met TLS of iets vergelijkbaars. Bij het rekenen worden ze echter in het geheugen ontsleuteld, dus tot nu toe moest men wel het OS, de hypervisor en de cloudaanbieder die ze beheert vertrouwen. Bij confidential computing versleutelt de CPU het geheugen van de TEE met sleutels die alleen in de CPU bestaan, en weigert hij toegang vanuit software buiten de TEE. Zo kunnen gebruikers vertrouwelijke gegevens verwerken zonder de cloudinfrastructuur volledig te vertrouwen.

Het VM-type en het enclave-type

Een TEE van het VM-type beschermt het geheugen van een hele virtuele machine, zodat bestaande besturingssystemen en applicaties vrijwel ongewijzigd draaien, maar een grote hoeveelheid software, inclusief het gast-OS, valt dan binnen wat vertrouwd moet worden (de TCB). Een enclave voert alleen het deel dat geheimen verwerkt in een beschermd gebied uit, zodat de TCB klein is, maar de applicatie moet worden opgesplitst en herschreven. Bij het VM-type is naast versleuteling ook bescherming van de integriteit belangrijk, die voorkomt dat de hypervisor de toewijzing van pagina's verandert of oude inhoud terugschrijft. Halverwege de jaren 2020 worden ook oplossingen aangeboden die de TEE van een CPU combineren met een GPU, om AI-verwerking onder confidential computing uit te voeren.

Grenzen en aandachtspunten

Wat confidential computing vooral beschermt, is het lezen en schrijven van geheugen door software en beheerders. Een zijkanaalaanval via caches of speculatieve uitvoering, het stilleggen van de dienst doordat de hypervisor geen middelen geeft (beschikbaarheid) en geavanceerde fysieke aanvallen op de geheugenbus tijdens bedrijf vallen bij sommige schema's buiten de bescherming. En als de software binnen de TEE een kwetsbaarheid heeft, kunnen geheimen daarlangs uitlekken. Daarom is het belangrijk de toestand binnenin en de firmwareversie met attestatie te controleren, de TCB klein te houden en updates van onder meer de microcode te blijven toepassen.

Nu oefenen: vragen over Confidential computing

Wat is het doel van de functie waarbij de CPU het geheugen van virtuele machines versleutelt (zoals AMD SEV en Intel TDX) bij 'confidential computing' in de cloud?

  1. ADe werking van de virtuele machine altijd twee keer zo snel maken
  2. BDe geheugencapaciteit van de virtuele machine vergroten
  3. CMaken dat ook de hypervisor of beheerders van de cloudaanbieder de data in de virtuele machine niet kunnen lezen
Antwoord en toelichting tonen

Antwoord: C. Maken dat ook de hypervisor of beheerders van de cloudaanbieder de data in de virtuele machine niet kunnen lezen

Normaal kan het geheugen van een virtuele machine vrij worden gelezen en geschreven door de hypervisor die haar uitvoert, dus de gebruiker moet de cloudaanbieder vertrouwen. Bij de functie die het geheugen versleutelt, wordt de sleutel per virtuele machine alleen in de CPU beheerd en blijft de geheugeninhoud buiten de CPU versleuteld, zodat de inhoud ook niet zichtbaar is voor de hypervisor of een aanvaller die het geheugen rechtstreeks leest. Het wordt gebruikt in combinatie met remote attestation.

Welke uitspraak beschrijft juist het verschil tussen de TEE's voor confidential computing van het VM-type, die een hele virtuele machine beschermen (zoals AMD SEV-SNP en Intel TDX), en die van het enclave-type, die een deel van een applicatie beschermen (zoals Intel SGX)?

  1. AHet VM-type versleutelt het geheugen van de virtuele machine niet en beschermt het alleen door toegangsrechten te controleren; alleen het enclave-type beschermt het geheugen door het te versleutelen
  2. BMet het VM-type kunnen bestaande besturingssystemen en applicaties vrijwel ongewijzigd draaien, maar het hele gast-OS valt dan binnen wat vertrouwd moet worden (de TCB)
  3. CBij het enclave-type vallen ook het OS en de hypervisor binnen wat vertrouwd moet worden, terwijl bij het VM-type alleen de CPU vertrouwd hoeft te worden
Antwoord en toelichting tonen

Antwoord: B. Met het VM-type kunnen bestaande besturingssystemen en applicaties vrijwel ongewijzigd draaien, maar het hele gast-OS valt dan binnen wat vertrouwd moet worden (de TCB)

Een enclave voert alleen het deel van de applicatie dat geheimen verwerkt in een beschermd gebied uit, dus wat vertrouwd moet worden (de TCB: trusted computing base) wordt beperkt tot de CPU en de code van de enclave, maar de applicatie moet worden opgesplitst en herschreven. Het VM-type versleutelt het geheugen van de hele virtuele machine en beschermt het tegen de hypervisor en de beheerders van de cloud, zodat bestaande software vrijwel ongewijzigd kan worden overgezet. Daartegenover staat dat het gast-OS en alle software daarop binnen de TCB vallen, en een kwetsbaarheid daarin kan geheimen laten uitlekken. Hoe kleiner de TCB, hoe makkelijker die te controleren is en hoe kleiner het aanvalsoppervlak, dus de keuze is een afweging tussen gebruiksgemak en de omvang van wat vertrouwd moet worden.

Veelgestelde vragen

Waarom is attestatie nodig als het geheugen al versleuteld is?

Versleuteling zorgt er alleen voor dat buitenstaanders niet kunnen lezen; ze zegt niets over wat er binnenin draait. De verwerking kan draaien in een valse TEE, op een gemanipuleerd gast-OS of op firmware van vóór het verhelpen van een kwetsbaarheid, dus de sleutel waarmee de gegevens worden ontsleuteld, wordt pas vrijgegeven nadat de met de sleutel van de CPU ondertekende meetwaarden en versienummers zijn gecontroleerd.

Hoeft de cloudaanbieder dan helemaal niet meer te worden vertrouwd?

De zorg dat de inhoud van het geheugen wordt gelezen, neemt sterk af, maar de CPU-fabrikant en zijn firmware moeten nog steeds worden vertrouwd, en de aanbieder kan de dienst nog verstoren door middelen in te houden. Controleer per schema wat wordt vertrouwd en waartegen het beschermt.

Vragen met “Confidential computing” (4)

  1. Wat is het doel van de functie waarbij de CPU het geheugen van virtuele machines versleutelt (zoals AMD SEV en Intel TDX) bij 'confidential computing' in de cloud?
  2. Welke uitspraak beschrijft juist het verschil tussen de TEE's voor confidential computing van het VM-type, die een hele virtuele machine beschermen (zoals AMD SEV-SNP en Intel TDX), en die van het enclave-type, die een deel van een applicatie beschermen (zoals Intel SGX)?
  3. Bij confidential computing controleert de verificatieserver van de gebruiker (de verifier) het attestatierapport dat van een TEE van het VM-type is ontvangen, voordat hij de sleutel overhandigt waarmee de gegevens worden ontsleuteld. Welke combinatie van punten die de verifier controleert, is het meest passend?
  4. Halverwege de jaren 2020 hebben sommige GPU's voor datacenters functies waarmee ze samen met de TEE van een CPU voor confidential computing kunnen worden gebruikt. Welke uitspraak beschrijft het idee achter dit mechanisme juist?

Verwante termen

Hypervisor TEE (trusted execution environment) Remote attestation Enclave Nonce GPU Inferentie (inference) Arm CCA (Confidential Compute Architecture) CHERI Control-flow-integriteit (control-flow integrity)

Naar de woordenlijst