Trusted execution environments

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
@tijs hofmans

Hier gaat er iets goed mis in de uitleg
Keychain is eigenlijk niets meer dan een SQLite-database op de iPhone zelf. In die database staan wachtwoorden die zijn versleuteld met asymmetrische encryptie, in Apples geval aes 256. De publieke sleutel daarvan staat in die database, en de privésleutel in de Secure Enclave. Op het moment dat een wachtwoord ontsleuteld moet worden, worden die sleutels tegen elkaar afgezet. Alleen een applicatie met toegang tot de fysieke Secure Enclave kan dus bij de ontsleutelkey.
Ten eerste is aes256 geen asymmetrische maar een symmetrische versleuteling. Het ontsleutelen gebeurt met dezelfde sleutel als het versleutelen. Er kan dus geen sprake zijn van een privésleutel en een publieke sleutel.

Daarnaast is het beschreven proces redelijk vreemd. Natuurlijk kun je controleren of een privésleutel bij een publieke sleutel hoort, maar daarmee kun je de data nog niet ontsleutelen, daarvoor heb je echt de privésleutel nodig. Maar die mag de SE dan weer niet verlaten want anders is de hele beveiliging nutteloos.

Ik heb niet veel verstand van Apples keychain, maar ik weet genoeg van cryptografie om te kunnen stellen dat wat hierboven beschreven is gewoonweg niet kan kloppen :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • TijsZonderH
  • Registratie: Maart 2012
  • Laatst online: 15:30

TijsZonderH

Nieuwscoördinator
Ja je hebt gelijk, dat klopt niet helemaal. Ik pas de tekst wat aan!

Acties:
  • 0 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Laatst online: 22:40

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

TijsZonderH schreef op maandag 7 september 2020 @ 12:11:
Ja je hebt gelijk, dat klopt niet helemaal. Ik pas de tekst wat aan!
Dit is neem ik aan de nieuwe tekst:
De Secure Enclave maakt daarvoor symetrische Elliptic-curve-encryptiesleutels aan en slaat de privésleutel op.
Dat moet dan dus "asymmetrische" zijn ;)

En dit gedeelte vind ik eerlijk gezegd nog steeds vrij warrig:
Op het moment dat een wachtwoord ontsleuteld moet worden, gebeurt dat aanvankelijk op de Secure Enclave en wordt een shared secret gebruikt waarmee op de gewone soc kan worden geverifieerd of de sleutels overeen komen.
Welke sleutels heb je het nu over?
Daarbij is het ook belangrijk te weten dat de sleutel zelf de Secure Enclave niet verlaat, want dan zou die te onderscheppen zijn.
welke sleutel?
In plaats daarvan wordt de check op de Secure Enclave-processor gedaan en wordt er een ja of nee doorgegeven aan de hoofdprocessor; klopt deze key of klopt hij niet?
welke key?

[ Voor 56% gewijzigd door Orion84 op 07-09-2020 12:27 ]

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • 0 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Laatst online: 22:40

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Ik lees overigens op https://support.apple.com...security/secb0694df1a/web niets terug over dat asymmetrische deel. Maar het zou kunnen dat daar nog wat details niet worden uitgelegd.

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • 0 Henk 'm!

  • StM
  • Registratie: Februari 2005
  • Nu online

StM

Leuk om eens een artikel over TEEs te zien! Wat ik alleen wel een beetje jammer vind dat het er op lijkt dat de auteur het artikel niet na heeft laten lezen door iemand bekend met de materie, want staan helaas best wel wat fouten / inaccuraatheden in... :'(

Misschien nog wel mijn grootste probleem is op het opeen gooien van alle termen en technologieën. Hoewel er inderdaad veel overlap en onduidelijkheid is, hangt er vaak toch wel een specifiek doel of implementatie aan een bepaalde term. De definitie aan het begin is op zich nog wel goed, maar later in het artikel gaan dingen toch wel een beetje door elkaar.

Iets meer inhoudelijk:

"Sommige fabrikanten hebben bijvoorbeeld een puur softwarematige oplossing en andere kiezen juist voor een hardwarematige." Je kan geen pure software TEE hebben. Je moet ondersteuning hiervoor in je hardware hebben. Denk aan speciale execution modes (S-EL3, NS-bit in TrustZone), maar ook in je chip bus moet je ondersteuning hebben voor het kunnen doorgeven van de security state (bv AxPROT in de AXI bus) en protection controllers (TZASC, TZPC) om te regelen wie welke peripheral mag accessen, anders is het omzeilen van de TEE triviaal.

"In slechts een paar gevallen hebben de fabrikanten een eigen tee gebouwd." Valt mee, maar er zijn er veel niet publiek bekend.

"Ook als bedrijven een hardware-implementatie hebben, zoals Apples Secure Enclave, gaat het vaak gewoon om een aangepaste versie van TrustZone." Zover ik weet is de SE gewoon een kleine Cortex-A co-processor en heeft het niks met TrustZone te maken. Als ze er iets mee doen is dat zeer recent, maar zeer zeker niet de eerste 5 ofzo jaar.

"ARM Cortex-processors draaien hun eigen besturingssysteem op een aparte core.": Nope, je core (Cortex-A) switched tussen een secure en non-secure staat op basis van de NS-bit in je SCR.

"TrustZone werkt op zowel Cortex-A- als Cortex-M-cores, al zit er verschil in functionaliteit tussen die twee. Op de ARMv8-M gaat de dataoverdracht tussen de beveiligde en niet-beveiligde gedeelten via hardware." Bij Cortex-M hangt het af van waar je in je address space execute of je secure of non-secure bent. Via een Secure Gateway instructie kan je switchen. Op Cortex-A heb je een secure monitor die in Secure Exception Level 3 draait die de Non-Secure bit kan aanpassen in je Secure Configuration Register en daarmee kan switchen tussen de secure en non-secure state van de lagere ELs.

" Sinds Android 9 zit er een api in het besturingssysteem, genaamd StrongBox KeyMaster, waarmee onder andere een random number generator in de Titan-chip kan worden aangeroepen, en sleutels met rsa 2048- en aes 256-encryptie kunnen worden aangemaakt en opgeslagen." StrongBox is de naam voor het gebruik van een Secure Element als hardware-backed key storage ipv een TEE. Titan-M is een external SE, maar andere fabrikanten hebben hun eigen SEs, die ook on-die (als iSE) kan zijn. Dit draait naast je gewone TEE, die bv nog steeds in gebruik is voor DRM.

"Google heeft daarnaast een eigen microkernel geschreven voor tee's op Android. Trusty werkt ook op basis van ARM's TrustZone en is een puur softwarematige virtualisatie die Android-fabrikanten kunnen gebruiken als de soc in hun telefoon geen tee-chip heeft." Trusty is gebouwd op Little Kernel. Daarnaast zou ik virtualisatie in deze context niet willen gebruiken. Armv8.4 (of 8.5) brengt secure virtualizatie om meerdere TEE OSen naast elkaar te kunnen draaien.

"Samsung maakte altijd gebruik van Arm's TrustZone, maar gebruikt sinds de Galaxy S20 een fysieke chip als tee." De Secure Element draait naast TEEGRIS, hun TrustZone TEE die ze sinds de S10 op de Exynos chips gebruiken en ook nog steeds in gebruik is op de S20.

"Voor implementaties op basis van TrustZone heeft Arm bijvoorbeeld eigen software gemaakt, maar fabrikanten kunnen er ook zelf iets van maken." Voor Cortex-A maakt Arm eigenlijk alleen een reference implementatie van de secure monitor als onderdeel van het Arm Trusted Firmware project. Voor Cortex-M gaan ze wat verder inderdaad.

"Die kunnen ervoor kiezen er een eigen microkernel voor te schrijven of gebruik te maken van bestaande microkernels." Lang niet alle TEEs zijn microkernels. Je kan het zo klein houden als je zelf wilt en zo extreem maken als je zelf wilt. Bij Cortex-A TrustZone kan je in de Secure World alles doen (en zelfs ietsje meer) wat je ook in de Normal World kan doen.

"Er zijn daarnaast verschillende initiatieven die proberen om een open source, gratis microkernel op basis van Linux te bouwen die fabrikanten voor tee's kunnen gebruiken." OP-TEE heeft absoluut niks met Linux te maken maar is volledig vanaf scratch ontwikkeld. Oorspronkelijk door ST uit mijn hoofd, maar is nu overgedragen aan Linaro, die weer bezig is om het over te dragen aan een nieuwe foundation waar Arm ook ATF onder gaat brengen.

" Aan de andere kant zit er wel een risico aan microkernellekken dat bij gewone software lang niet altijd aanwezig is. Ze zijn bijvoorbeeld lastiger op te lossen doordat microkernel-updates een stuk moeilijker door te voeren zijn dan reguliere software-updates." Valt wel mee. Het is niet moeilijker dan bijvoorbeeld de Linux kernel upgraden. Er zijn dan ook regelmatig updates voor de TEEs in telefoons, die komen gewoon mee met je maandelijkse updates.

Secure Boot heeft trouwens heel weinig met TEEs te maken en kan prima zonder TEE. Je kan wel geen TEE hebben zonder dat je ook Secure Boot hebt (als je tenminste enige mate van veiligheid wilt).

Ik vrees dat er nog wel meer zijn, maar ik kan niet door alles heen gaan :) Daarnaast had het allemaal echt wel wat meer uit elkaar getrokken en naast elkaar gezet mogen worden. TrustZone-A werkt heel anders dan SGX (wat dan weer best wel lijkt op TrustZone-M), die weer heel anders werkt dan een Secure Enclave (maar dat weer vergelijkbaar is met dat van AMD), wat weer heel anders werkt dan een Secure Element. Allemaal met hun eigen voor- en nadelen en eigenschappen.

Een heel belangrijk doel van dit soort technologie dat trouwens nog ontbreekt (eerst voor de TEE samen met het gebruik met biometric data, maar wat nu heel erg de push naar Secure Elements veroorzaakt) is mobile banking. TEEs zijn eigenlijk gewoon niet secure genoeg :) En doordat je zoveel resources deelt in je chip architectuur (itt een Secure Element, zelfs als die on-die is) is het ook heel moeilijk om ze echt veilig te maken, er zijn simpelweg te veel tricks die je kan doen, ook via de hardware. Het is trouwens mijn werk om ze te breken ;)

Er zijn trouwens vele male meer aanvallen geweest dan er nu genoemd worden. Veel zullen er nooit bekend worden ivm geheimhouding, andere kan je terug vinden in soms wat obsure papers. Een hele leuke vind ik zelf CLKSCREW: https://www.usenix.org/sy...security17/sec17-tang.pdf maar ook bv RowHammer kan/kon je tegen TEEs gebruiken. Of wat ik bijvoorbeeld zelf vorige week nog met een collega gepresenteerd (presentatie komt over een paar maanden online) heb is hoe je een moderne Android phone kan decrypten door de TEE te breken via software implementatie bugs (en dan niet de typische buffer overflow) zonder de pincode te weten.

Hopelijk ben ik niet te kritisch, zo bedoel ik het niet. Ik zou juist graag meer van dit soort artikelen zien!

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
In 2013 was er nog discussie over die firmware. AMD houdt die closed source, net als concurrent Intel, vanwege de veiligheid.
Security through obscurity wordt nog steeds gebruikt dus..
Dergelijke security through obscurity is inmiddels behoorlijk achterhaald en het is zowel simpeler als veiliger voor ontwikkelaars om beveiligde omgevingen als zodanig aan te duiden.

Acties:
  • 0 Henk 'm!

  • StM
  • Registratie: Februari 2005
  • Nu online

StM

Tja, bijna alle implementaties zijn proprietary, zelfs als ze gebaseerd zijn op deels open componenten. Aan de andere kant, het is nu ook weer niet heel extreem lastig om de boel te reverse engineeren omdat het qua size vaak allemaal wel mee valt. Pas als de boel volledig geencrypt gaat worden is het vervelender. Dan moet je hardware aanvallen uit de kast gaan halen om de encryptie te breken, dat is lastiger en een stuk meer werk. Maar zeker niet onmogelijk :)

Security by obscurity is een beetje script kiddie beveiliging, maar het werkt wel degelijk tot een bepaald niveau.
Pagina: 1