Arm TrustZone-beveiliging benutten in de LPC5500 MCU-serie
Leer hoe Arm TrustZone de beveiliging verbetert in NXP's LPC5500 microcontrollers en hoe u veilige en niet-veilige toepassingen implementeert.
Naarmate verbonden apparaten prolifereren, nemen ook de geavanceerde dreigingen toe. NXP heeft dit aangepakt door robuuste beveiligingsprimitieven in de LPC5500 MCU-familie in te sluiten, waaronder een FIPS-compliant willekeurige-getallengenerator, de "Prince" encryptiemotor voor het uitvoeren van versleutelde code, en een 4096-bits on-chip sleutel gegenereerd via PUF-technologie. Gecombineerd met de on-chip cryptografische versneller "CASPER", zijn deze MCUs ideaal voor IoT-implementaties aan de rand van het netwerk die end-to-end sleutelprovisionering en veerkrachtige cyberbeveiliging vereisen.
Centraal in deze mogelijkheid is Arm TrustZone voor Cortex-M. De volgende secties lopen u door de fundamenten en hoe u ze in uw projecten kunt benutten.
Arm TrustZone voor Cortex-M
TrustZone creëert twee geïsoleerde uitvoeringscontexten: een veilige wereld die proprietaire of gevoelige code host, en een niet-veilige wereld voor gebruikersapplicaties. De fabrikant's proprietaire bibliotheken kunnen in ROM resideren, beschermd tegen reverse engineering, terwijl ze nog steeds aanroepbaar zijn door toepassingscode via een gecontroleerde interface.
Afbeelding 1 illustreert de co-existentie van veilige ROM en niet-veilige gebruikerscode op dezelfde silicium.
Overgangen tussen de twee werelden worden geregeld door TrustZone's beveiligingsuitbreiding, waardoor een niet-veilige applicatie alleen blootgestelde veilige functies kan aanroepen, nooit direct toegang heeft tot veilige geheugen.
Processormodi met TrustZone
Terwijl Cortex-M3 en M4-kernen thread- en handler-modi bieden met geprivilegeerde/niet-geprivilegeerde niveaus, voegt de Cortex-M33 TrustZone toe, wat resulteert in vier modi: niet-veilige thread, veilige thread, niet-veilige handler, en veilige handler. Deze splitsing introduceert ook afzonderlijke SysTick-timers voor elk domein.
Geheugenpartitionering
TrustZone wijst beveiligingsattributen toe aan adresbereiken: Veilig (S), Niet-Veilig (NS), en Niet-Veilig Aanroepbaar (NSC). Toegang tot elk gebied hangt af van de huidige staat van de kern. De LPC55S69 behandelt bijvoorbeeld adressen met bit 28 laag als niet-veilig en de rest als veilig, behalve programmageheugen wat configureerbaar is via de Security Attribution Unit (SAU).
Een veilige applicatie bouwen
Veilige code blootstelt zijn interne werking niet direct. In plaats daarvan publiceert het een veneer-tabel – een dunne laag van niet-veilige aanroepbare functies die aanroepen doorsturen naar de veilige wereld. De veneer-tabel resides in NSC-geheugen, terwijl de echte implementaties in veilig geheugen leven.
Typische veilige projecten worden gecompileerd tot een objectbibliotheek en een headerbestand dat de veneer-functies declareert. De niet-veilige applicatie includeert alleen de header; tijdens runtime bemiddelt de veneer-tabel aanroepen naar veilige diensten.
Tussen werelden schakelen
Twee speciale instructies beheren de staatsovergang:
SG– schakelt de kern naar veilige modus.BXNS– keert controle terug naar niet-veilige modus.
Een niet-veilige aanroepreeks ziet er zo uit:
// Niet-veilige code SG(); // Betrede veilige wereld SecureFunc(); // Roep veilige dienst aan via veneer BXNS(); // Keer terug naar niet-veilige
Elke illegale toegang trigger een Secure Fault-uitzondering, wat de systeemintegriteit behoudt.
Veilig Hello World-voorbeeld
De LPCXpresso55S69 SDK bevat TrustZone-demo's die de build splitsen in een veilig en een niet-veilig project. Het veilige project begint met een vroege initialisatie-aanroep:
__attribute__((cmse_nonsecure_entry)) void BOARD_InitTrustZone(void);
Deze functie configureert de SAU, IDAU, en geheugenpartitionering. De niet-veilige main-functie blijft beknopt omdat alle setup in het veilige domein wordt afgehandeld:
int main(void) { // Minimale niet-veilige code return 0; }
Wanneer de niet-veilige kant een veilige dienst nodig heeft, roept het een veneer-functie aan, bijv., PRINTF_NSE():
void PRINTF_NSE(const char *format, ...) __attribute__((cmse_nonsecure_entry));
De corresponderende veilige implementatie resides in het veilige project en geëxporteerd naar de veneer-tabel.
Geheugenpartitionering-tools
Binnen MCUXpresso biedt de TEE-perspectief een visuele editor voor SAU- en IDAU-configuratie:
Gebruik de linkertabel om het beveiligingsniveau voor elk gebied in te stellen, en de rechterkaart zal de resulterende partitionering weerspiegelen.
Waarom TrustZone belangrijk is voor LPC5500
TrustZone geeft de LPC5500 een duidelijke scheiding van verantwoordelijkheden: de veilige wereld beschermt proprietaire code en cryptografische sleutels, terwijl de niet-veilige wereld gebruikersapplicaties host. De hardware garandeert dat illegale geheugentoegangen worden geblokkeerd, en de software-infrastructuur (veneer-tabellen, SG/BXNS-instructies, en TEE-tools) vereenvoudigt veilige applicatieontwikkeling.
Voor diepere inzichten, bekijk de NXP-webinar TrustZone: Calling the Secure World of raadpleeg de officiële documentatie.
Industry-artikelen zijn een vorm van content die industriële partners in staat stelt nuttig nieuws, berichten en technologie te delen met All About Circuits-lezers op een manier die editorial content niet goed ondersteunt. Alle Industry-artikelen zijn onderworpen aan strikte editoriële richtlijnen met de bedoeling lezers nuttig nieuws, technische expertise of verhalen te bieden. De meningen en opinies die in Industry-artikelen worden uitgedrukt, zijn die van de partner en niet noodzakelijk die van All About Circuits of zijn schrijvers.
Cloud computing
- De Cloud Revolutie: Hoe Cloud Computing IT, Beveiliging en Carrières Transformeert
- Waarom Cloudbeveiliging De Hoeksteen Is Van Moderne Cyberverdediging
- Pad Naar Cloud Security Engineer: Vaardigheden, Verantwoordelijkheden En Certificeringen
- Waarom Cloud Databeveiliging Programmeerbaar Wordt
- Cloud Technologie Beveiligen: Best Practices Voor Databescherming En Risicomitatie
- Cloudbeveiliging Meesteren: Bewezen Strategieën Om Risico's Te Mitigeren En Uw Organisatie Te Beschermen
- Hoe Hackers Cloudomgevingen Aanvallen – Uw AWS-beveiliging Versterken
- Google Cloud Engineer-certificering Beheersen: Bewaarde Studiestrategieën & Insider Tips
- DevOps in de Cloud Implementeren: Een Bewezen Blauwdruk voor Digitale Transformatie
- Enterprise Resource Planning (ERP) Migreren naar de Cloud: Een Bewezen Roadmap voor Succes
- ROI en Beveiliging Maximaliseren met Publieke Cloudadoptie