Pålitlig exekveringsmiljö
En betrodd exekveringsmiljö ( TEE ) är ett säkert område i en huvudprocessor . Den garanterar att kod och data som laddas inuti skyddas med avseende på konfidentialitet och integritet . Dataintegritet förhindrar obehöriga enheter utanför TEE från att ändra data, medan kodintegritet förhindrar kod i TEE från att ersättas eller modifieras av obehöriga enheter, som också kan vara datorägaren själv som i vissa DRM-scheman som beskrivs i SGX . Detta görs genom att implementera unik, oföränderlig och konfidentiell arkitektonisk säkerhet som Intel Software Guard Extensions (Intel SGX) som erbjuder hårdvarubaserad minneskryptering som isolerar specifik applikationskod och data i minnet. Intel SGX tillåter kod på användarnivå att allokera privata minnesområden, kallade enklaver, som är designade för att skyddas från processer som körs med högre behörighetsnivåer. En TEE som en isolerad exekveringsmiljö tillhandahåller säkerhetsfunktioner som isolerad exekvering, integritet för applikationer som körs med TEE, tillsammans med konfidentialitet för deras tillgångar. Generellt sett erbjuder TEE ett exekveringsutrymme som ger en högre säkerhetsnivå för betrodda applikationer som körs på enheten än ett rikt operativsystem (OS) och mer funktionalitet än ett "säkert element" (SE).
Historia
Open Mobile Terminal Platform (OMTP) definierade först TEE i sin "Advanced Trusted Environment:OMTP TR1"-standard, och definierade den som en "uppsättning hårdvaru- och mjukvarukomponenter som tillhandahåller faciliteter nödvändiga för att stödja applikationer" som måste uppfylla kraven i en av två definierade säkerhetsnivåer. Den första säkerhetsnivån, Profil 1, var inriktad mot enbart mjukvaruattacker och medan Profil 2 var inriktad mot både mjukvaru- och hårdvaraattacker.
Kommersiella TEE-lösningar baserade på ARM TrustZone -teknologi, som överensstämmer med TR1-standarden, lanserades senare, såsom Trusted Foundations utvecklade av Trusted Logic.
Arbetet med OMTP-standarderna avslutades i mitten av 2010 när gruppen gick över till Wholesale Applications Community ( WAC).
OMTP-standarderna, inklusive de som definierar en TEE, är värd för GSMA .
Detaljer
TEE består vanligtvis av en hårdvaruisoleringsmekanism, plus ett säkert operativsystem som körs ovanpå den isoleringsmekanismen - men termen har använts mer generellt för att betyda en skyddad lösning. Medan en GlobalPlatform TEE kräver hårdvaruisolering, använder andra som EMVCo termen TEE för att hänvisa till både hårdvara/mjukvara och endast mjukvarubaserade lösningar. FIDO använder konceptet TEE i den begränsade driftsmiljön för TEEs baserad på hårdvaruisolering. Endast betrodda applikationer som körs i en TEE har tillgång till full kraft från en enhets huvudprocessor, kringutrustning och minne, medan hårdvaruisolering skyddar dessa från användarinstallerade appar som körs i ett huvudoperativsystem. Programvara och kryptografisk isolering inuti TEE skyddar de betrodda applikationerna som finns i från varandra.
Tjänsteleverantörer, mobilnätsoperatörer (MNO), operativsystemutvecklare, applikationsutvecklare , enhetstillverkare, plattformsleverantörer och kiselleverantörer är de viktigaste intressenterna som bidrar till standardiseringsarbetet kring TEE.
För att förhindra simulering av hårdvara med användarstyrd mjukvara används en så kallad "hardware root of trust". Detta är en uppsättning privata nycklar som är inbäddade direkt i chippet under tillverkningen; engångsprogrammerbart minne som eFuses används vanligtvis på mobila enheter. Dessa kan inte ändras, även efter att enheten återställts, och vars offentliga motsvarigheter finns i en tillverkardatabas, tillsammans med en icke-hemlig hash av en offentlig nyckel som tillhör den betrodda parten (vanligtvis en chipleverantör) som används för att signera betrodd firmware tillsammans med kretsarna som utför kryptografiska operationer och kontrollerar åtkomst. Hårdvaran är utformad på ett sätt som förhindrar all programvara som inte är signerad av den betrodda partens nyckel från att komma åt de privilegierade funktionerna. Leverantörens publika nyckel tillhandahålls vid körning och hashas; denna hash jämförs sedan med den som är inbäddad i chippet. Om hashen matchar, används den publika nyckeln för att verifiera en digital signatur av pålitlig leverantörskontrollerad firmware (som en kedja av bootloaders på Android-enheter eller "arkitektoniska enklaver" i SGX). Den betrodda firmwaren används sedan för att implementera fjärrbekräftelse.
När ett program är attesterat, laddar dess opålitliga komponent sin betrodda komponent i minnet; den betrodda applikationen är skyddad från modifiering av opålitliga komponenter med hårdvara. En nonce begärs av den opålitliga parten från verifierarens server och används som en del av ett kryptografiskt autentiseringsprotokoll, vilket bevisar integriteten hos den betrodda applikationen. Beviset skickas till verifieraren, som verifierar det. Ett giltigt bevis kan inte beräknas i en simulerad hårdvara (dvs. QEMU ) eftersom det krävs åtkomst till nycklarna inbakade i hårdvaran för att kunna konstruera det; endast betrodd firmware har tillgång till dessa nycklar och/eller nycklar som härrör från dem eller erhålls med hjälp av dem. Eftersom endast plattformsägaren är avsedd att ha tillgång till data som registreras i gjuteriet, måste den verifierande parten interagera med tjänsten som ställts in av leverantören. Om schemat implementeras felaktigt kan chipleverantören spåra vilka applikationer som används på vilket chip och selektivt neka service genom att returnera ett meddelande som indikerar att autentiseringen inte har passerat.
För att simulera hårdvara på ett sätt som gör det möjligt för den att olagligt skicka fjärrautentisering, måste en angripare extrahera nycklar från hårdvaran, vilket är kostsamt på grund av den utrustning och tekniska skicklighet som krävs för att utföra den. Till exempel är det svårt eller till och med omöjligt att använda fokuserade jonstrålar, svepelektronmikroskop , mikrosondering och chipdekapsling om hårdvaran är utformad på ett sådant sätt att omvänd konstruktion förstör nycklarna. I de flesta fall är nycklarna unika för varje hårdvara, så att en nyckel som extraherats från ett chip inte kan användas av andra (till exempel fysiskt oklonbara funktioner ).
Även om berövande av äganderätten inte är en inneboende egenskap hos TEE (det är möjligt att designa systemet på ett sätt som tillåter endast den användare som först har erhållit äganderätten till enheten att kontrollera systemet), är i praktiken alla sådana system inom konsumentelektronik. avsiktligt utformad för att tillåta chiptillverkare att kontrollera åtkomsten till attestation och dess algoritmer. Det tillåter tillverkare att ge åtkomst till TEE endast till programvaruutvecklare som har ett (vanligtvis kommersiellt) affärsavtal med tillverkaren, och att möjliggöra användningsfall som tivoization och DRM.
Används
Det finns ett antal användningsfall för TEE. Även om inte alla möjliga användningsfall utnyttjar berövandet av äganderätten, används TEE vanligtvis exakt för detta.
Premium Content Protection/Digital Rights Management
Obs: Mycket TEE-litteratur täcker detta ämne under definitionen "skydd för premiuminnehåll" som är den föredragna nomenklaturen för många upphovsrättsinnehavare. Premiuminnehållsskydd är ett specifikt användningsfall av Digital Rights Management (DRM) och är kontroversiellt bland vissa samhällen, till exempel Free Software Foundation . Det används i stor utsträckning av upphovsrättsinnehavare för att begränsa sätten på vilka slutanvändare kan konsumera innehåll som 4K-högupplösta filmer.
TEE är en lämplig miljö för att skydda digitalt kodad information (till exempel HD-filmer eller ljud) på anslutna enheter som smarta telefoner, surfplattor och HD-tv-apparater. Denna lämplighet kommer från förmågan hos TEE att beröva ägaren av enheten från att läsa lagrade hemligheter, och det faktum att det ofta finns en skyddad hårdvaruväg mellan TEE och displayen och/eller undersystemen på enheter.
TEE används för att skydda innehållet när det väl finns på enheten: medan innehållet skyddas under överföring eller streaming med hjälp av kryptering, skyddar TEE innehållet när det väl har dekrypterats på enheten genom att se till att dekrypterat innehåll inte är exponeras för miljön som inte godkänts av apputvecklaren ELLER plattformsleverantören.
Mobila finansiella tjänster
Mobila handelsapplikationer som: mobila plånböcker, peer-to-peer-betalningar, kontaktlösa betalningar eller att använda en mobil enhet som en POS-terminal har ofta väldefinierade säkerhetskrav. TEEs kan användas, ofta i samband med närfältskommunikation (NFC), SE:er och betrodda backend-system för att tillhandahålla den säkerhet som krävs för att finansiella transaktioner ska kunna äga rum
I vissa scenarier krävs interaktion med slutanvändaren, och detta kan kräva att användaren exponerar känslig information som en PIN-kod, lösenord eller biometrisk identifierare för det mobila operativsystemet som ett sätt att autentisera användaren. TEE erbjuder valfritt ett pålitligt användargränssnitt som kan användas för att konstruera användarautentisering på en mobil enhet.
Med framväxten av kryptovaluta används TEE allt mer för att implementera kryptoplånböcker, eftersom de erbjuder möjligheten att lagra tokens säkrare än vanliga operativsystem, och kan tillhandahålla nödvändiga beräknings- och autentiseringsapplikationer.
Autentisering
TEE är väl lämpad för att stödja biometriska ID-metoder (ansiktsigenkänning, fingeravtryckssensor och röstbehörighet), som kan vara lättare att använda och svårare att stjäla än PIN-koder och lösenord. Autentiseringsprocessen är vanligtvis uppdelad i tre huvudsteg:
- Lagring av en referens "mall"-identifierare på enheten för jämförelse med "bilden" som extraheras i nästa steg.
- Extrahera en "bild" (skanna fingeravtrycket eller ta ett röstprov, till exempel).
- Använd en matchande motor för att jämföra "bilden" och "mallen".
En TEE är ett bra område inom en mobil enhet för att hysa den matchande motorn och den tillhörande bearbetningen som krävs för att autentisera användaren. Miljön är utformad för att skydda data och skapa en buffert mot osäkra appar som finns i mobila operativsystem . Denna extra säkerhet kan bidra till att tillgodose säkerhetsbehoven hos tjänsteleverantörer förutom att hålla kostnaderna låga för handenhetsutvecklare.
Företag, myndigheter och moln
TEE kan användas av regeringar, företag och molntjänstleverantörer för att möjliggöra säker hantering av konfidentiell information på mobila enheter och på serverinfrastruktur. TEE erbjuder en nivå av skydd mot programattacker som genereras i det mobila operativsystemet och hjälper till med kontrollen av åtkomsträttigheter. Den uppnår detta genom att hysa känsliga, "betrodda" applikationer som måste isoleras och skyddas från det mobila operativsystemet och all skadlig skadlig programvara som kan finnas. Genom att använda funktionaliteten och säkerhetsnivåerna som erbjuds av TEE kan regeringar och företag vara säkra på att anställda som använder sina egna enheter gör det på ett säkert och pålitligt sätt. På samma sätt hjälper serverbaserade TEE att försvara sig mot interna och externa attacker mot backend-infrastruktur.
Säker modulär programmering
Med framväxten av mjukvarutillgångar och återanvändning är modulär programmering den mest produktiva processen för att designa programvaruarkitektur, genom att koppla bort funktionerna till små oberoende moduler. Eftersom varje modul innehåller allt som behövs för att utföra sin önskade funktionalitet, tillåter TEE att organisera hela systemet med en hög nivå av tillförlitlighet och säkerhet, samtidigt som varje modul förhindras från sårbarheter hos de andra.
För att modulerna ska kunna kommunicera och dela data tillhandahåller TEE medel för att säkert få nyttolaster skickade/ta emot mellan modulerna, med hjälp av mekanismer som objektserialisering, i samband med proxyservrar.
Se Komponentbaserad mjukvaruteknik
TEE operativsystem
Företag | Produkt | Hårdvara som används | API-standard | Certifieringstyp | Referenser |
---|---|---|---|---|---|
Alibaba | Cloud Link TEE | Global plattform | Full | ||
Äpple | iOS Secure Enclave | Separat processor | Proprietär | ||
BeanPod | Aktivera TrustZone | Global plattform | |||
Huawei | iTrustee | Aktivera TrustZone | Global plattform | Full | |
Pålitlig | ARM / Intel | Proprietär | |||
Linaro | OPTEE | Aktivera TrustZone | Global plattform | ||
Qualcomm | QTEE | ARM TrustZone | GlobalPlatform + Proprietär | ||
Samsung | TEEgris | Aktivera TrustZone | Global plattform | Full | |
TrustKernel | T6 | Arm / Intel | Global plattform | ||
Trustonic | Kinibi | Aktivera TrustZone | Global plattform | Full | |
Trustonic | SW TEE | SW TEE på | Global plattform | ||
Watchdata | WatchTrust | Aktivera TrustZone | Global plattform | Full |
Hårdvarustöd
Följande hårdvarutekniker kan användas för att stödja TEE-implementeringar:
-
AMD :
- Platform Security Processor (PSP)
- AMD Secure Encrypted Virtualization och Secure Nested Paging-tillägget
-
ARM :
- TrustZone
- Realm Management Extension / Confidential Compute Architecture (CCA)
-
IBM :
- IBM Secure Service Container , tidigare zACI, introducerades först i IBM z13 generationens maskiner (inklusive alla LinuxONE-maskiner) i drivrutinsnivå 27.
- IBM Secure Execution, introducerad i IBM z15- och LinuxONE III-generationsmaskiner den 14 april 2020.
-
Intel :
- Trusted Execution Technology
- SGX Software Guard Extensions
- "Silent Lake" (tillgänglig på Atom-processorer)
-
RISC-V :
- MultiZone™ Security Trusted Execution Environment
- Keystone anpassningsbart TEE-ramverk
- Penglai skalbar TEE för RISC-V
Se även
- Öppna Mobile Terminal Platform
- Trusted Computing Group
- FIDO Alliance
- Java-kort
- Intel Management Engine
- Intel LaGrande
- Software Guard-tillägg
- AMD Platform Security Processor
- Trusted Platform Module
- ARM TrustZone
- NFC Säkert element
- Nästa generations säker datorbas