Secure Monitor — protsessorning xavfsiz va oddiy bajarilish muhitlari o‘rtasidagi o‘tishni boshqaradigan yuqori privilege’li dasturiy qatlam. Atama ko‘pincha Arm TrustZone arxitekturasida Secure Monitor mode va unga tegishli firmware uchun ishlatiladi. Monitor normal world operatsion tizimi bilan secure world xizmatlari o‘rtasida nazoratli chaqiruv, interrupt yo‘naltirish va protsessor holatini almashtirishni amalga oshiradi.
World modeli
TrustZone tizim resurslarini secure va non-secure holatga ajratadi. Memory controller, bus va peripheral atributlari normal worldning secure resursga kirishini hardware darajasida bloklaydi. Secure monitor ikki worlddan ham yuqori o‘tish nuqtasida turadi, ammo barcha secure ilova mantiqini o‘zida bajarishi shart emas.
Normal world odatda Linux yoki Android kabi boy operatsion tizimni, secure world esa trusted OS yoki kichik ishonchli xizmatlarni ishlatadi. Kriptografik kalit, biometrik tekshiruv va secure storage kabi operatsiyalar ishonchli qatlamda bajarilishi mumkin.
SMC chaqiruvi
Normal yoki secure software SMC — Secure Monitor Call — instruktsiyasi bilan monitor xizmatini so‘raydi. Registerlarda function identifier va argumentlar uzatiladi. Monitor caller holatini saqlaydi, ruxsat va calling convention’ni tekshiradi, kerak bo‘lsa boshqa world contextini tiklaydi.
SMC ABI versiyalangan bo‘lishi kerak. Noma’lum function ID, noto‘g‘ri pointer yoki uzunlik konservativ error bilan rad etiladi. Normal world ko‘rsatgan shared-memory buffer secure kod uchun ishonchsiz input hisoblanadi; time-of-check/time-of-use race’i oldini olish uchun data nusxalanadi yoki qat’iy ownership protokoli qo‘llanadi.
Interruptlar
Interrupt controller hodisani secure yoki non-secure guruhga yo‘naltiradi. Secure interrupt normal world ishlayotgan paytda kelib, monitor orqali secure handlerni uyg‘otishi mumkin. Context switch registerlar, floating-point state va arxitekturaga xos extensionlarni to‘liq ajratishi lozim.
Uzoq secure handler normal world latency’sini oshiradi. Shuning uchun monitor minimal ishlaydi, katta xizmat trusted OS scheduleriga topshiriladi. Priority va preemption siyosati starvationga yo‘l qo‘ymasligi kerak.
Ishonch zanjiri
Secure monitor bootning erta bosqichida authenticated firmware sifatida yuklanadi. ROM yoki oldingi stage uning raqamli imzosini tekshiradi. Monitor buzilsa ikki world o‘rtasidagi eng kuchli chegara yo‘qoladi, shu sabab uning kodi kichik, auditable va update siyosati rollbackdan himoyalangan bo‘lishi kerak.
Firmware version, platform configuration va secure boot kalitlari o‘zaro mos bo‘lmasa device boot qilmasligi yoki recovery rejimiga o‘tishi mumkin. Debug interface productionda fuse va policy bilan cheklanadi.
Virtualizatsiya va tashxis
Hypervisor normal world virtual mashinalarini boshqarishi mumkin, secure monitor esa undan ortogonal xavfsizlik holatini boshqaradi. “Eng yuqori privilege” atamasi bir o‘lchamli emas: exception level va security state alohida o‘qlardir.
Tashxisda SMC ID, caller world, CPU, return code va firmware build ID qayd etiladi; kalit yoki shared-buffer mazmuni loglanmaydi. Fuzzing SMC argumentlari, concurrent call, interrupt paytidagi world switch va suspend/resume holatini sinaydi.
Shared memory protokoli
Secure va normal world o‘rtasidagi katta data odatda oldindan kelishilgan non-secure shared buffer orqali uzatiladi. Monitor fizik diapazon, alignment va cache attribute’larni tekshiradi; secure pointer yoki monitor xotirasi tashqariga qaytarilmaydi. Cache maintenance ikki world turli mapping ishlatganda ayniqsa muhim. Request identifier va buffer ownership completiongacha aniq bo‘ladi. Normal world requestni bekor qilsa secure xizmat hali DMA yoki hisoblash bajarayotgan bo‘lishi mumkin, shuning uchun darhol xotirani qayta ishlatmaydi.
Bog‘liq tushunchalar
TrustZone, secure world, SMC, trusted execution environment, secure boot, firmware