Definitie
Een nieuw begrip als Confidential Computing komt vaak met verschillende definities die afhangen van het perspectief op het onderwerp.
- Google [1] definieert het zoals hierboven omschreven: doorbraaktechnologie die je in staat stelt data in use te versleutelen, tijdens de verwerking.
- Microsoft [2] gaat nog een stapje verder en introduceert naast het beveiligen van data in use nog een ander aspect: privacy en analyse van gegevens veilig borgen door meerdere partijen.
- Confidential Computing Consortium [3]: maakt nieuwe public cloud-scenario’s mogelijk, zoals het plaatsen van extreem gevoelige data in de cloud, en scenario’s waarbij meerdere partijen, zonder gegevens te hoeven blootgeven, toch zaken in verband kunnen brengen (multi-party computing of MPC).
In deze definities worden twee onderwerpen genoemd:
- Het principe van beveiligen data in use
- De mogelijkheden van veilige multi-party computation
TNO definieert MPC als volgt [4]: MPC is een ‘gereedschapskist’ met cryptografische technieken die het mogelijk maakt dat meerdere partijen gezamenlijk aan data kunnen rekenen, alsof ze een gedeelde database hebben. Doordat de data op een cryptografische manier beschermd is, kan deze geanalyseerd worden zonder dat de partijen andermans data ooit kunnen inzien. De deelnemende partijen bepalen wie de uitkomst van de berekening mag inzien.
Hieronder ga ik in op data in use.
Wanneer nodig?
Een belangrijke toepassing van Confidential Computing bij data in use is het scenario waarbij publieke clouddiensten ondanks het publieke karakter toch gebruikt kunnen worden voor gevoelige gegevens, bijvoorbeeld medische gegevens. Maatregelen voor het waarborgen van privacy voor data at rest en voor data in transit zijn daarbij al goed te nemen. Via speciale infrastructuur, zogenaamde hardware security modules, is het mogelijk een nog grotere beveiliging aan te leggen. De zwakke plekken die dan overblijven zijn de processor en het geheugen, want voor de uitvoering van de software moeten de gegevens nu eenmaal worden ontsleuteld. En hoewel het verre van gemakkelijk is om geheugen van een ander proces uit te lezen, is het niet 100% uit te sluiten. Bijvoorbeeld als nieuwe vulnerabilities worden ontdekt en nog niet afgedicht.
Trusted Execution Environments
Moderne CPU’s hebben inmiddels een techniek ingebouwd, waarmee de processor een deel van het geheugen versleutelt tijdens de verwerking van de gegevens. De versleuteling kan alleen door de processor zelf worden gedaan en ontsleuteling is alleen mogelijk als de publieke sleutel van dezelfde processor wordt gebruikt. Er zijn daarnaast voorzieningen toegevoegd, waardoor je er zeker van kunt zijn dat alleen software die door klant en leverancier is goedgekeurd, wordt uitgevoerd. Tijdens de verwerking zijn de gegevens afgeschermd en alleen de uitkomsten worden naar buiten gebracht. Deze techniek wordt ook wel verwerking in Trusted Execution Environments (TEE’s of enclaves) genoemd.
Volgens Edgeless Systems [5], een Duits bedrijf dat open source-toepassingen ontwikkelt op basis van deze technologie, zijn er vier belangrijke randvoorwaarden om aan strenge privacyeisen te kunnen voldoen:
- Isolation: uitvoeren van een programma en verwerking gegevens in een speciaal proces door de CPU, de trusted enclaves.
- Runtime memory encryption: versleutelde geheugeninhoud.
- Sealing: mogelijkheid om de status buiten de trusted enclave veilig te stellen met versleuteling.
- Remote attestation: garantie dat verwerking in een trusted enclave wordt uitgevoerd met een bekend en gepubliceerd programma.
Conclusie
De kern van dit verhaal is dat het met Confidential Computing mogelijk is om in een verder niet-vertrouwde omgeving, zoals een publieke cloud of een computer van een concurrent, gegevens te verwerken zonder de privacy te schenden of concessies te doen aan veiligheid. Hiermee kan een publieke cloud aan dezelfde privacy-eisen voldoen als een eigen datacenter.
Volgende keer meer over multi-party computation.
[i] Confidential Computing | Google Cloud
[ii] Azure Confidential Computing – Protect Data In Use | Microsoft Azure
[iii] Confidential Computing Consortium - Open Source Community
[iv] Secure multi-party computation | TNO
[v] Edgeless Systems | Confidential computing at scale for everyone