Show simple item record

dc.contributor.advisorJehl, Leander
dc.contributor.authorTømte, Håkon
dc.date.accessioned2023-01-31T16:51:16Z
dc.date.available2023-01-31T16:51:16Z
dc.date.issued2022
dc.identifierno.uis:inspera:120483158:50863642
dc.identifier.urihttps://hdl.handle.net/11250/3047516
dc.description.abstractMange moderne prosessorer har sikkerhetsmekanismer som letter opprettelsen av et Trusted Execution Environment (TEE), som er isolert fra det generelle operativsystemet. Personvern- og integritetsutfordringer oppstår i IoT-scenarier, preget av lite tillitsfulle interessenter og lett tilgjengelige og sårbare enheter. Systemer som bruker blokkjede- og TEE-teknologi kan løse personvern- og integritetsutfordringer ved å etablere tillit mellom enheter, leverandører og interessenter. ARM-prosessorer er utbredt i IoT-scenarier, og derfor undersøker denne oppgaven muligheten for å implementere slike systemer på ARMs TEE-enabler, TrustZone. For å undersøke dette presenterer jeg en prototype av en kjernesystemkomponent, blokkjedeutstederen, i en ARM TrustZone-basert TEE og evaluerer den. Den bygger blokkjeden inne i TEE, og garanterer opptakenes konfidensialitet, integritet og uforanderlighet. Det er viktig at TEE-applikasjoner, som blokkjedeutstederen, er sikre og trygt implementert. Rust OP-TEE SDK er en åpen kildekode SDK som gjør det mulig å skrive Trusted Applications i programmeringsspråket Rust. Hovedfordelen med Rust er at Rust er minnesikker, og øker dermed sikkerheten til applikasjonen betraktelig. Rust gir også en rik infrastruktur av offentlige crates for utviklere. OP-TEE er imidlertid uforenlig med mange av disse kassene. Rust OP-TEE mangler også dokumentasjon, spesielt angående utvikling av nye Trusted Applications. Derfor gir denne oppgaven Rust OP-TEE dokumentasjon for utvikling av TAer, og utfordrer påstanden om at Rust OP-TEE støtter utviklere til å importere tredjeparts crates. Evalueringen viser at med optimaliseringer vil en blokkjedeutsteder skrevet i Rust OP-TEE på ARMs TrustZone sikkert etablere tillit fra TEE, med prisen på 5 ganger ytelsesoverhead sammenlignet med en normal implementering i verden.
dc.description.abstractMany modern processors have security mechanisms that facilitate the creation of a Trusted Execution Environment (TEE), which is isolated from the general-purpose OS. Privacy and integrity challenges arise in IoT scenarios, characterized by untrusting stakeholders and easily accessible and vulnerable devices. Systems using blockchain and TEE technology can solve privacy and integrity challenges by establishing trust between devices, vendors, and stakeholders. ARM processors are prevalent in IoT scenarios, thus, this thesis investigates the feasibility of implementing such systems on ARM's TEE-enabler, TrustZone. To investigate this, I present a prototype of a core system component, the blockchain issuer, in an ARM TrustZone-based TEE and evaluate it. It builds the blockchain inside the TEE, guaranteeing the recordings' confidentiality, integrity, and immutability. It is vital that TEE applications, like the blockchain issuer, are secure and safely implemented. The Rust OP-TEE SDK is an open-source SDK that allows for writing Trusted Applications in the programming language Rust. The main advantage of Rust is that Rust is memory-safe, and thus greatly increases the security of the application. Rust also provides a rich infrastructure of public crates for developers. However, OP-TEE is incompatible with many of these crates. Rust OP-TEE also lacks documentation, specifically regarding the development of new Trusted Applications. Therefore, this thesis provides Rust OP-TEE documentation for developing TAs, and challenges the claim that Rust OP-TEE supports developers to import third-party crates. The evaluation shows that, with optimizations, a blockchain issuer written in Rust OP-TEE on ARM's TrustZone securely establishes trust from the TEE, with the price of a 5 times performance overhead compared to a normal world implementation.
dc.languageeng
dc.publisheruis
dc.titleBygge en blokkjede i TrustZone ved hjelp av Rust
dc.typeBachelor thesis


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record