↓ Naar de hoofdinhoud gaan
ARM TrustZone voor TEEs, kansen en uitdagingen
  1. Onze blog/

ARM TrustZone voor TEEs, kansen en uitdagingen

Hoe kun je je gevoelige data en algoritmen beschermen, zelfs als ze zich op onbetrouwbare toestellen bevinden? De data op de schijf versleutelen volstaat niet. Een hardwarematige omgeving voor confidential computing beschermt de data echter ook in dit geval.

Normaal gezien zijn alle data en algoritmen op een toestel toegankelijk voor iemand met root-toegang tot dat toestel. Dat kan een concurrent zijn die je algoritmen wil stelen, of een tegenstander die de data van je gebruikers wil stelen. Zelfs als de data op de schijf versleuteld zou zijn, heeft de tegenstander nog altijd toegang tot de decryptiesleutels. Door deze gevoelige informatie in een omgeving voor confidential computing te plaatsen, pak je deze uitdagingen wel aan.

In een oplossing voor confidential computing isoleert en beschermt de Trusted Execution Environment (TEE) of enclave data tegen software en personen die niet expliciet gemachtigd zijn om de TEE te benaderen [0]. Bij een aanval door een kwaadwillige agent is de data volledig ontoegankelijk.

Confidential Computing op Arm-toestellen
#

Arm biedt twee soorten omgevingen voor confidential computing aan:

  • Arm TrustZone [1]
  • Arm Confidential Compute Architecture (CCA) [2]

TrustZone werkt goed voor use cases rond platformbeveiliging met een beperkte scope. CCA is beter geschikt om je VM of applicatie te beschermen [3]. Alleen TrustZone is momenteel echter vlot beschikbaar [4].

Architectuur van TrustZone

TrustZone verdeelt de rekenomgeving in een Secure world en een Normal world, respectievelijk ook de TEE en de Rich Execution Environment (REE) genoemd. Software in de Secure world, een Trusted Application (TA) genoemd, heeft toegang tot de Secure fysieke adresruimte, waar de Normal world niet aan kan. Doorgaans wordt deze adresruimte afgebakend bij het opstarten. De opdeling in twee werelden gebeurt dus op hardwareniveau. Om een functie in een TA aan te roepen, moet software in de Normal world langs een Secure Monitor passeren.

Een analyse van TrustZone
#

De eenvoudigste manier om Arm TrustZone te gebruiken, is een kant-en-klare TEE-oplossing die de platformoverschrijdende GlobalPlatform-specificatie (GP) volgt [5]. Van de beschikbare TEEs is de open-source Open Portable Trusted Execution Environment (OP-TEE) [6] de beste kandidaat. Deze kant-en-klare oplossing voor Arm TrustZone ondersteunt een groot aantal platformen.

Applicaties die in de TEE-oplossing draaien, zijn beperkt in hun mogelijkheden: zo wordt enkel C echt ondersteund, C++ wordt ondersteund tot GCC 11 [7] en de ondersteuning voor Rust is experimenteel [8]. Dat komt vooral doordat je, als je je applicatie voor OP-TEE wilt compileren, de bibliotheek libutils [9] moet gebruiken in plaats van libc [10]. Deze libutils-bibliotheek is vrij beperkt in haar mogelijkheden. Bovendien ondersteunt OP-TEE ook geen multithreading via libpthread [11].

Enkel C wordt echt ondersteund, C++ wordt ondersteund tot GCC 11 en de ondersteuning voor Rust is experimenteel.

Naast deze beperkingen legt OP-TEE ook een bepaalde programma-opbouw op [12], zo liggen de entry points in main.c vast. Dat leidt in de praktijk tot een volledige herschrijving wanneer je een bestaande applicatie wilt aanpassen om in TrustZone te draaien.

Wat prestaties betreft, levert draaien in de TEE een overhead op van 12 tot 17 keer ten opzichte van de REE. Dat is een aanzienlijke overhead, vooral veroorzaakt door tijdrovende geheugenoperaties [13].

Use cases van TrustZone
#

Organisaties gebruiken confidential computing om datasilo’s te ontsluiten en te voldoen aan wereldwijde vereisten rond gegevensbescherming. Voor bedrijven in de gezondheidszorg en de farmaceutische sector maakt veilige samenwerking rond data tussen meerdere partijen het mogelijk om nieuwe behandelingen te verkennen, nieuwe geneesmiddelen te ontwikkelen en patiëntresultaten doeltreffender te verbeteren dan voorheen. Voor financiële dienstverleners maakt confidential computing veilige samenwerking over sectoren heen mogelijk om witwaspraktijken en andere vormen van financiële criminaliteit op te sporen.

Alle volgende use cases tonen hoe Arm TrustZone kan worden ingezet om gevoelige data en algoritmen in organisaties te beschermen.

  • HMAC-based One-Time Password
  • Driver Protection
  • Secure Storage
  • Secure Over the Air Updates
  • Samsung Knox
  • Neurale netwerklagen afschermen tegen privacyschendingen

Deze toepassingen zijn eenvoudig genoeg om de overhead van TrustZone verwaarloosbaar te maken, en de inspanning om ze te compileren blijft haalbaar.

HMAC-based One-Time Password
#

Overzicht van de HMAC-workflow

HMAC-based One-Time Passwords (HOTP) [14] zijn een populaire keuze voor tweefactorauthenticatie. In dit voorbeeld [15] hebben we een client die bepaalde resources op een server wil ophalen en zich daarvoor moet authenticeren. Hier wordt Arm TrustZone gebruikt om het OTP veilig te genereren. Wanneer het toestel van de gebruiker gecompromitteerd is, heeft de tegenstander nog altijd geen toegang tot de gedeelde sleutel. De TEE van Arm TrustZone kan ook worden ingezet als validatiedienst. Als de server dan gecompromitteerd is, blijft de gedeelde sleutel ontoegankelijk.

Eerst moeten de client en de server het eens worden over een gedeelde sleutel, die in TrustZone wordt opgeslagen. Daarvoor is een beveiligd kanaal tussen beide partijen nodig, idealiter tussen de TEE en de server, maar OP-TEE ondersteunt momenteel enkel TCP/UDP en geen TLS. Bovendien moeten beide vertrekken van een teller die op dezelfde waarde is geïnitialiseerd.

Voor de eigenlijke authenticatie van de client berekenen client en server allebei hetzelfde HOTP, waarna de server controleert of ze gelijk zijn. Is dat zo, dan kan de server toegang geven tot de resources die de client heeft aangevraagd.

Driver Protection
#

De firmware die leveranciers aanleveren, kan waardevol intellectueel eigendom (IP) bevatten dat beschermd moet worden tegen reverse engineering, diefstal van IP of kwaadaardige aanvallen [16]. Met TrustZone kunnen chipleveranciers hun firmware in een beschermde, beveiligde geheugenruimte plaatsen, terwijl gebruikers via de API’s nog altijd met hun toestel kunnen interageren.

Secure Storage
#

Overzicht van secure storage in OP-TEE

OP-TEE biedt twee implementaties van secure storage aan volgens de GlobalPlatform TEE Internal Core API. Deze specificatie vereist vertrouwelijkheid en data-integriteit [17].

  • Via het REE-bestandssysteem: dit is de standaard
  • Via de Replay Protected Memory Block (RPMB)-partitie van een eMMC-toestel: een geheugengebied dat data op een geauthenticeerde en tegen replay beschermde manier opslaat [18]

Beide implementaties kunnen tegelijk gebruikt worden.

Deze secure storage in TrustZone kan dienen als beveiligde sleutelopslag. Eerst versleutelt TrustZone de sleutels met een hardware-unieke sleutel die in de chip is ingebrand. Daarna wordt de versleutelde sleutel in de secure storage opgeslagen. Sleutels worden enkel binnen de TEE ontsleuteld en gebruikt, en zijn nooit toegankelijk voor de Normal World [19]. Zo zijn vertrouwelijkheid en data-integriteit gegarandeerd.

Secure Over the Air Updates
#

Stapsgewijs overzicht van hoe een OtA-update werkt

Om de bootfirmware bij te werken, moet het systeem de authentieke firmware-image via een netwerk ophalen. Bovendien mag een aanvaller de update niet kunnen terugdraaien. Daarvoor ondertekent de OEM de image met zijn private sleutel, en de publieke sleutel wordt door het downloadende toestel voorzien. Een niet-vluchtige teller wordt verhoogd wanneer de firmware wordt bijgewerkt. Zo wordt de handtekening geverifieerd en worden eventuele rollbacks gedetecteerd [20].

Hier zorgt TrustZone ervoor dat de sleutels waarmee firmware-images worden geauthenticeerd beschermd zijn, en dat firmware-images niet kunnen worden teruggedraaid.

Samsung Knox
#

Diagram van de Samsung Knox-site dat de structuur toont

Samsung Knox is een propriëtair framework voor beveiliging en beheer dat vooraf geïnstalleerd is op mobiele toestellen van Samsung. Het framework bestaat uit tal van beveiligingsmechanismen op systeemniveau, die zwaar steunen op de beveiligingsvoordelen van Arm TrustZone [21]. Binnen dit framework zit ook Knox Vault [22], een uitbreiding bovenop de bescherming die TrustZone biedt.

In Samsung Knox draait de zeer gevoelige software in de secure world. Dankzij Arm TrustZone zijn componenten die als secure gemarkeerd zijn, zoals een vingerafdruklezer, enkel toegankelijk vanuit de secure world.

Knox Vault is beschikbaar op bepaalde toestellen en gaat hierop verder met een onafhankelijk, fraudebestendig en beveiligd subsysteem met een eigen processor, geheugen en een interface naar specifieke niet-vluchtige opslag, waarin het gevoelige data zoals cryptografische sleutels en authenticatiegegevens bewaart. Zelfs als de hoofdprocessor waarop Android draait gecompromitteerd is, beschermt Knox Vault geheimen en beschermt het tegen hardwareaanvallen zoals probing en fault injection.

Neurale netwerklagen afschermen tegen privacyschendingen
#

Diagram van een DNN waarvan de laatste lagen in TrustZone draaien

TrustZone schermt kritieke lagen van diepe neurale netwerken af tegen privacyschendingen zoals membership inference attacks. Bij een membership inference attack manipuleert de aanvaller de trainingsdata van het model zodat het zich gedraagt op een manier die gevoelige informatie blootlegt [23].

DarkneTZ [24] is een applicatie die toont hoe OP-TEE kan worden ingezet om kritieke lagen van neurale netwerken af te schermen. Het port geselecteerde componenten van Darknet [25], een framework voor diepe neurale netwerken, zodat ze in de secure world draaien. Om inference attacks te verijdelen, delegeert het met name diepe lagen naar de secure world, terwijl de overige lagen in de normal world draaien. Doorgaans worden de laatste lagen gedelegeerd, omdat die een grotere kans hebben om private informatie over de trainingsdata te lekken.

Conclusie
#

Een oplossing voor confidential computing is van het grootste belang om gevoelige data en algoritmen op onbetrouwbare toestellen te beschermen. Voor Arm-platformen is Arm TrustZone de enige vlot beschikbare oplossing. TrustZone brengt zware beperkingen met zich mee: de vereiste codewijzigingen en de aanzienlijke overhead. Daarom houd je de footprint van de beveiligde applicatie best zo klein mogelijk.

Toch heeft Arm TrustZone zijn use cases:

  • HMAC-based One-Time Password
  • Driver Protection
  • Secure Storage
  • Secure Over the Air Updates
  • Samsung Knox
  • Neurale netwerklagen afschermen tegen privacyschendingen

Wanneer Arm CCA breed bruikbaar wordt, zouden de vereiste codewijzigingen en de aanzienlijke overhead niet langer nodig moeten zijn.