Memanfaatkan Keamanan Arm TrustZone dalam Seri Mikrokontroler LPC5500 NXP
Pelajari bagaimana Arm TrustZone meningkatkan keamanan mikrokontroler NXP LPC5500 dan cara mengimplementasikan aplikasi aman dan non-aman.
Seiring berkembangnya perangkat terhubung, ancaman yang canggih juga berkembang. NXP telah mengatasi hal ini dengan menyematkan primitif keamanan yang kuat dalam keluarga mikrokontroler LPC5500, termasuk generator angka acak yang kompatibel FIPS, mesin enkripsi "Prince" untuk menjalankan kode terenkripsi, dan kunci on-chip 4096-bit yang dihasilkan melalui teknologi PUF. Digabungkan dengan akselerator kriptografi on-chip "CASPER," mikrokontroler ini ideal untuk penerapan IoT di tepi jaringan yang memerlukan penyediaan kunci ujung-ke-ujung dan keamanan siber yang tangguh.
Pusat dari kemampuan ini adalah Arm TrustZone for Cortex-M. Bagian-bagian berikut memandu Anda melalui dasar-dasarnya dan cara memanfaatkannya dalam proyek Anda.
Arm TrustZone for Cortex-M
TrustZone menciptakan dua konteks eksekusi terisolasi: dunia aman yang menampung kode proprietary atau sensitif, dan dunia non-aman untuk aplikasi pengguna. Pustaka proprietary produsen dapat tinggal di ROM, terlindungi dari reverse engineering, sementara masih dapat dipanggil oleh kode aplikasi melalui antarmuka yang terkontrol.
Gambar 1 menggambarkan coexistensi ROM aman dan kode pengguna non-aman pada silikon yang sama.
Gambar 1. ROM aman dan kode pengguna non-aman berbagi mikrokontroler yang sama tetapi terisolasi.
Transisi antara kedua dunia diatur oleh ekstensi keamanan TrustZone, memastikan bahwa aplikasi non-aman hanya dapat memanggil fungsi aman yang diekspos, tidak pernah mengakses memori aman secara langsung.
Mode Prosesor dengan TrustZone
Sementara inti Cortex-M3 dan M4 menawarkan mode thread dan handler dengan level privileged/unprivileged, Cortex-M33 menambahkan TrustZone, menghasilkan empat mode: thread non-aman, thread aman, handler non-aman, dan handler aman. Pembagian ini juga memperkenalkan timer SysTick terpisah untuk setiap domain.
Gambar 2. TrustZone memperluas Cortex-M33 menjadi empat mode prosesor.
Partisi Memori
TrustZone menetapkan atribut keamanan ke rentang alamat: Aman (S), Non-Aman (NS), dan Non-Aman Callable (NSC). Akses ke setiap area tergantung pada status saat ini inti. LPC55S69, misalnya, memperlakukan alamat dengan bit 28 rendah sebagai non-aman dan sisanya sebagai aman, kecuali memori program yang dapat dikonfigurasi melalui Security Attribution Unit (SAU).
Gambar 3. Akses CPU bervariasi antara mode aman dan non-aman.
Membangun Aplikasi Aman
Kode aman tidak mengekspos internalnya secara langsung. Sebaliknya, ia menerbitkan veneer table—lapisan tipis dari fungsi non-aman callable yang meneruskan panggilan ke dunia aman. Veneer table tinggal di memori NSC, sementara implementasi asli tinggal di memori aman.
Proyek aman biasanya dikompilasi menjadi perpustakaan objek dan file header yang mendeklarasikan fungsi veneer. Aplikasi non-aman hanya menyertakan header; pada waktu runtime veneer table memediasi panggilan ke layanan aman.
Transisi Antara Dunia
Dua instruksi khusus mengelola pergantian status:
SG – beralih inti ke mode aman.
BXNS – mengembalikan kontrol ke mode non-aman.
Urutan panggilan non-aman terlihat seperti ini:
// Kode non-aman SG(); // Masuk ke dunia aman SecureFunc(); // Panggil layanan aman melalui veneer BXNS(); // Kembali ke non-aman
LPCXpresso55S69 SDK menyertakan demo TrustZone yang membagi build menjadi proyek aman dan non-aman. Proyek aman dimulai dengan panggilan inisialisasi awal:
Implementasi aman yang sesuai tinggal di proyek aman dan diekspor ke veneer table.
Alat Partisi Memori
Dalam MCUXpresso, perspektif TEE menawahkan editor visual untuk konfigurasi SAU dan IDAU:
Gambar 5. Alat MCUXpresso untuk melihat dan mengedit atribut keamanan peta memori.
Gunakan tabel di sebelah kiri untuk menetapkan tingkat keamanan untuk setiap wilayah, dan peta di sebelah kanan akan mencerminkan partisi yang dihasilkan.
Mengapa TrustZone Penting untuk LPC5500
TrustZone memberikan LPC5500 pemisahan tugas yang jelas: dunia aman melindungi kode proprietary dan kunci kriptografi, sementara dunia non-aman menampung aplikasi pengguna. Hardware menjamin bahwa akses memori ilegal diblokir, dan infrastruktur perangkat lunak (veneer tables, instruksi SG/BXNS, dan alat TEE) menyederhanakan pengembangan aplikasi aman.
Untuk wawasan lebih dalam, tonton webinar NXP TrustZone: Calling the Secure World atau jelajahi dokumentasi resmi.
Industry Articles adalah bentuk konten yang memungkinkan mitra industri untuk berbagi berita, pesan, dan teknologi yang berguna dengan pembaca All About Circuits dengan cara yang konten editorial tidak cocok untuk. Semua Industry Articles tunduk pada pedoman editorial yang ketat dengan niat untuk memberikan pembaca berita yang berguna, keahlian teknis, atau cerita. Pandangan dan opini yang diekspresikan dalam Industry Articles adalah milik mitra dan tidak harusnya milik All About Circuits atau penulisnya.