Güvenli Donanım Tasarımında Kayıt İzinleri Giriş

Modern donanım sistemlerinde, kayıtlar, cihaz davranışını, konfigürasyonu ve veri akışını kontrol eden temel depolama unsurları olarak hizmet eder. IoT sensörlerindeki mikro kontrol cihazlarının mobil cihazlarda uygulama işlemcileri için, her kayıt potansiyel bir saldırı yüzeyi temsil eder. Una yetkili bir kayıt, izin modellerini, donanım doğrulamasını, bilgi sızıntısını veya kalıcı cihazlarını yönetebilmek için erişim sağlayabilir.

Donanım güvenliği tek zamanlı bir çaba değildir; en erken aşamalardan mimariye dokunmalıdır. Kayıt izni yönetimi doğrudan sistem ve #8217'yi etkiler; tampering, yan kanal saldırılarına direnme yeteneği ve bilgisayar kullanımı, tasarımcılar performans veya esneklikten ödün vermeden kırılganlığı azaltmalıdır.

Kayıt İzin Türünin Temelleri

Güvenli bir donanım tasarımında her kayıt açıkça tanımlanmış bir erişim politikasına sahip olmalıdır. Üç temel izin türü şunlardır:

  • [FONT:0)Oku : Kayıtların mevcut değerini almak için yazılım veya başka bir donanım ajanına izin verin.
  • [FONT:0)Yazdır[Dönetici: Kayıt ve #8217'nin değiştirilmesi; cihazı değiştirebilecek olan içerikler.
  • [FONT:0)Execute[DÜDÜT:1): komutları veya puanlayıcıları eklenebilir koda içeren kayıtlar için kullanılır; okuma ve yazma genellikle gereklidir.

Bunların ötesinde, modern tasarımlar genellikle ek yarı iletkenler içerir.[DÜDÜT:0)read-clear)[Döneticileri:2) yazma-once), [[Dönetici|Dönetici|Dönetici|Döneticileri|Dönlendirme[Dönlendirmeler) ve/veya girişler, kontrol politikalarına uygun olarak tanımlandığında doğru bir kimlik doğrulama aralığı gerektirir.

Donanım kayıtları genellikle bankalara veya bloklara göre gruplanır (örneğin, DMA kontrol kayıtları, statü kayıtlarını kesmek, güvenlik enklav kayıtlarına uymak). Her grup, kontrol ettiği işlemlerin duyarlılığına dayanarak farklı bir izin profiline sahip olabilir. Basit bir sistem-on-çip birkaç yüz kaydı olabilir; karmaşık bir sunucu işlemcisi on binlerce. Ortada on binlerce mantıka sahip olabilir.

En İyi Uygulama 1: En Az Privilege Prensibini Uygulayın

En az ayrıcalık ilkesi her varlık ve#8212; Donanım blok, yazılım iplik veya dış otobüs master — sadece meşru işlevlerini gerçekleştirmek için gerekli izinler verilmelidir.

  • Hiçbir erişime göre sıralayın; sadece gerekli olan erişim sağlayın.
  • Ayrı kontrol ve veri kayıtları, bu yüzden veri akışlarının manipüle edilmesi yanlışlıkla hassas konfigürasyonu değiştirmez.
  • Limit, gücü etkileyen, saati, gerilim veya güvenlik sınırlarını tek, iyi çözülü bir bileşene kaydetmeye erişim (örneğin, bir güvenlik monitörü).

Ortak bir hata, her kayıt için tüm bilgisayar erişim sağlamak içindir. yerine, bir uyarı koruma ünitesini uygulamak (MPU) veya bir sistem seviyesi kontrol cihazı. Örneğin, her bir kayıt kümesine ait yüksek lisans veya ayrıcalık seviyesi ) satın alınabilir.In ARM tabanlı sistemlerde, bu genellikle güvenli ve güvensiz olmayan bir kayıt alanları ile elde edilir.

Özel IP tasarlarken, belirli bir [[0) erişim kontrol kaydı (ACR)) hangi usta kimlikleri veya ayrıcalık seviyelerinin izin verildiği blok başına yazılmalıdır. Bu ACR, izinlerin yeniden yüklenmesini engellemek için bir önyükleme olmalıdır.

En İyi Uygulama 2: Donanım-Enforced Access Controls

Yazılım yalnızca izin kontrolleri, istismarlar, buffer aşırı akışlar veya doğrudan hafıza erişimi (DMA) saldırılarına karşı çıkmak için savunmasızdır. Donanım destekli kontroller kötü kodlarla aşırı uçamayan bir determinist katmanı sağlar. Anahtar mekanizmaları şunları içerir:

Privilege Level Gates

Birçok işlemci mimarisi iki veya daha fazla ayrıcalık seviyesine destek vermektedir (örneğin, kullanıcı / süpervizör, EL0/EL1 /EL2/EL3). Bir kayıt sadece belirli ayrıcalık seviyelerinden erişilebilir. Örneğin, güvenli bir önyükleme anahtarı kontrol edilebilir bir kayıt sadece en yüksek ayrıcalık seviyesinden (EL3) ve sadece belirli bir önyükleme aşamasında herhangi bir erişim için sıfır yazılım yükü ile herhangi bir erişim sağlayabilir.

Fiziksel Unclonable Function (PUF) Keyed Access

ultra hassas kayıtlar için (örneğin, diziler, kriptografik anahtar depolar), geleneksel ayrıcalık seviyeleri yeterli olmayabilir. Bazı tasarımları geçerli bir anahtar olmadan, tüm sıfırları geri döndürür ve yazar sessiz bir şekilde silinir.Bu, bir uzlaşmacı hipervizörlüğü, ekstraklama sırları dahil olmak üzere herhangi bir yazılım önler.

Memory Protection Unit (MPUs) ve Sistem Memory Management Birimleri (SMMU)

Bu birimler, tüm adres haritasında bölgeye dayalı erişim izinlerini tanımlar. İyi yapılandırılmış bir MPU, yetkili aralıkları dışındaki okuma kayıtlarından DMA kontrolörünü engelleyebilir.TheTELT:0)ARM SMMU).

Donanım İzin Buffers

Yüksek performanslı tasarımlarda, işlem için izinleri kontrol etmek gecikebilir. Bir izin göz önüne alındığında, son kayıt adresleri için erişim haklarını önbellek, çekleri tek bir saat döngüsünde tamamlamak için izin verir.Bu teknik bir TLB ile benzerdir, ancak kontrole adanmıştır.

En İyi Uygulama 3: Kayıtlar için Rol Tabanlı Erişim Kontrolü (RBAC)

Rol tabanlı erişim, bireysel usta kimliği yerine işlev tarafından izin verilir. Bu basitleştirme yönetimi, özellikle de güvenli bir donanım sisteminde çok büyük olan ajanlar sayısı şunları içerir:

  • [FONT:0)Boot ROM[DÜT:1): Önyükleme sırasında ilkleşme ve güvenli depolama kayıtlarına tam erişim; genellikle boot sonrası kilitlenir.
  • [FONT:0]Trusted Firmaware[[Dönetici: Güvenlik politikalarını etkileyen konfigürasyon kayıtlarına erişim yazın; statü kayıtlarına erişimin okunması.
  • [FONT:0)Un emanet edilen Firmaware[[Dönetici: Sadece kritik olmayan statü kayıtlarına erişim; güvenlik yapılandırmasına erişim yok.
  • [FONT:0)Debug Controller[Dönetici: Güvenli bir kimlik doğrulama programı izin verildiğinde sadece şartlı okuma / yazma erişim.
  • [FONT:0]DMA Engines[DÜT:1]: Sadece veri tampon kayıtlarına erişim, kontrol veya statü kayıtlarını kontrol etmek için değil.

Donanım tasarımcıları RBAC'yi bir kerede kullanarak uygulayabilirler:0.role masası[Dönetici:0) Hedef kayıt için bir tane-zamanlı programlanabilir (OTP) bellek veya önyükleme sırasında ilk alınan güvenli RAM[DDDDDDD) işlemi, istek sahibi ve #8217; kimlik rolü ID'yi taşır ve erişim kontrolörü, hedef kaydı için acls'e karşı karşılaştırır.

Örnek: Güvenli Anahtar Yöneticisi Register Map

Üç kayıt ile güvenli bir anahtar yöneticisi düşünün: KEY CTRL, KEY VALID ve KEY CLEAR. Under RBAC:

  • Boot ROM, KEY CTRL ve KEY VALID'yi anahtar teslim sırasında yazabilir.
  • Güvenilen Yazılım KEY VALID'i okuyabiliyor ancak KEY CTRL yazamıyor.
  • Güvensiz Yazılım, üç kayıttan bloke edilir.

Bu durum, yeniden tahmin edilen anahtarlardan bir uzlaşmacı bir bilgisayar engeller, ancak yine de durum sorgularına izin verirken.

Ek Güvenlik Önlemleri İzinlerin Ötesinde

Robust kayıt izni yönetimi sistem düzeyinde güvenlik mekanizmaları ile tamamlanmalıdır. Aşağıdaki uygulamalar önerilir:

Güvenli Parmak Zinciri

Önyükleme siparişini kontrol eden kayıtlar, güvenli önyükleme bayrakları veya füzyonlar, önyükleme sürecinden önce kilitlenmiş izinleri olmalıdır. Donanım devlet makinelerini tam bir reset gerçekleşmediğinde bile değiştirebilir.Bu, boot configuration'ı kalıcı saldırıları önler.

Güvenilen Execution Citiess (TEE)

ARM TrustZone, Intel SGX veya RISC-V MultiZone bölüm donanım kaynakları güvenli ve normal dünyalar içinde geçerlidir. Güvenli dünya içindeki kayıtlar görünmez ve normal dünyaya erişilemez. Tüm güvenli dünya kayıtları, dünya çapındaki ilk kapı olarak yapılandırılmalıdır.

Access Logging and Audit Trail

Yüksek sigorta sistemleri (örneğin, askeri aviyonik, otomotiv ASIL-D), her bir kritik kayıtta giriş yapmanız gerekir. Özel bir donanım giriş motoru sadece yetkili bir denetim aracı tarafından kayıtlanabilir.

Tamper Tespit ve Yanıt

Bazı sistemler, gerilim aksaklarını, sıcaklık aşırılarını veya lazer olasılığını tespit eden ölü sensörleri entegre eder. Tamper bir olay tespit edildiğinde, donanım otomatik olarak hassas kayıtlarda izinleri geri alabilir, net anahtarlar veya güvenli bir sıfırlamayı tetikleyebilir. Bu, kayıt izni mantığını tamper algılama ünitesinden bir girişe sahip olmak gerekir, normal erişim politikaları.

Güvenli Debug ve Test Access

Debug arabirimleri (JTAG, SWD) genellikle kayıt izni kontrollerini atmalıdır. Bir üretim cihazı, geçerli bir sertifika ile ilgili belirli bir debug rolü güvenli kodla bir meydan okuma doğrulama programı kullanabilir.

Lifecycle Register Permissions için dikkate alınır

Donanım güvenlik izni statik değildir. Sistem farklı yaşam döngüsü aşamalarından geçer: üretim, boot, runtime ve muhtemelen alan-remate veya decommission. Her aşama farklı bir izin profili gerektirir.

Üretim Aşaması

çip imalatı ve test sırasında, birçok kayıt geçerlilik için sınırsız erişime ihtiyaç duyar. ancak test kayıtları, üretimden sonra devre dışı bırakılan özel test modları kullanarak işlevsel kayıtlardan izole edilmelidir.Kapsiyondan önce kalıcı olarak devre dışı bırakmak için e-fiz kullanın. Permission Hardware should include a “secure mode” pin that when claim, locks down all test-related records.Use e-gets to daimi olarak devre dışı bırakma.

Çığ fazı

Erken boot kodu (ROM) taklit edilebilir olduğu varsayılır.Bir sonraki bellekteki ROM elleri bir sonraki belleke kadar, erişim kontrolörü kendi kayıtlarını kilitler ve bir süre politikasına erişmek için geçici olarak tam erişime sahiptir.

Runtime Faz

Runtime izinleri mümkün olduğunca kısıtlayıcı olmalıdır. İdeal olarak, hiçbir varlık önyüklemeden sonra izin politikaları değiştirebilir (göneme masası mümkün değildir). Eğer runtime rekonurasyon gerekliyse, gerçekleştirilebilir ve giriş gerekir. Örneğin, bir alan bilgisayar güncelleştirmesi geçici olarak genişleyebilir; bu yeni izinler yürürlüğe girmeden önce güvenli bir sıfırlamayı tetikleyebilir.

End-of-Life (Decommissioning)

Bir cihaz emekli olduğunda, izinler, oturma verilerini geri almalarını engellemek için iptal edilmelidir. sırları tutan kayıtlar bir donanım sıfırlama emriyle temizlenmelidir. İzin mantığı bir & #8220;secure silin” güvenli sıfırlama durumlarına tüm hassas kayıtların tamamının gönderilmesini sağlamak için sinyal.

Kayıt İzinlerinin Doğrulaması ve Testi

Bir izin programı tasarlamak sadece işin yarısıdır; tüm senaryolarda doğru davrandığını doğru bir şekilde doğrulamak aynı derecede kritiktir. Aşağıdaki doğrulama stratejileri sağlamlığı sağlamak için yardımcı olur:

Yönetmen ve Random Testi

Her bir master /role'den her bir olası işlemle kayıt yaptırmaya çalışan test vakaları oluşturun.Bağsız erişim başarılı olduğunda başarısız olan simülasyon kontrolörleri kullanın. Kıtalı izinlerle random testleri, çakılmış bölge tanımları veya zamanlama pencereleri gibi bazı durumlarda ortaya çıkabilir.

Formal Verification

Güvenlik-kahkamet tasarımları için, resmi doğrulama (model kontrol), otobüs işlemlerinde bir dizinin izin politikasını ihlal edebileceğini kanıtlayabilir. Cadence JasperGold veya Synopsys VC Formal gibi başka bir şeyi doğrulayabilir ve #8220;Register X asla anahtarlama işleminden sonra usta Y tarafından yazılamaz.” Formal yöntemler özellikle de yan etkileri tespit etmek için değerlidir, örneğin paylaşılan decode mantığı nedeniyle başka bir kayıt için.

Hata Enjeksiyonu ve Red Team Test

Simulate tek-bit, izin kontrol cihazı kayıtlarında kendilerini üzer. Bir hata ACR'yi değiştirirse, sistem güvenli bir duruma geri döner (örneğin, tüm erişimler bloke edilir) veya FPGA prototipleri üzerindeki baskı testlerine izin verir.

Ortak Pitfalls ve Them'dan Nasıl Kaçırmak

Deneyimli tasarımcılar bile kayıt izinlerini yönetme konusunda hataları yapabilirler. Bu tekrarlanan konular için dikkat edin:

  • [[Dönetici:0)Yazdıran sırlar sadece yazıp kayıt eder:[Dönetici:0) Bazı kayıtlar, geçerli bir değerle yazılandan önce veri iade edecektir.Her zaman bu yazının yalnızca veya yalnızca kayıtların geri dönüş sabit değerleri (örneğin, sıfır) iç devletten daha önce geri dönecektir.
  • [FONT:0)Genel olarak geniş ve#8220; süpervizör ve #8221; erişim: Tüm kayıtlara denetim denetçi seviyesi en az ayrıcalıktır.Parttion denetçi rolleri daha fazla (örneğin, süpervizör güvenlik vs. sistemi) ayrı izin matrisleri ile.
  • [FONT:0) Yan kanalları zamanlamadan görmezden gelin:) İzin kontrolleri erişimin izin verildiğine bağlı olarak değişken zaman alırsa, bir saldırgan kayıt izinlerini test etmek için zaman çizelgesi kullanabilir.Use Constant-time comparators.
  • [FONT:0)Görünge kayıtlarını kilitlemeye devam edin: Debug erişim portları genellikle normal izin çerçevesi dışında çalışır. İzinleri atlatabilecek herhangi bir debug arayüzünün üretim donanımında devre dışı kalmasını sağlayın.

Endüstri Standartları ve Referanslar

Endüstri standartlarını kabul etmek, sektör genelinde en iyi uygulamalarla kayıt izin tasarımlarını ayarlamaya yardımcı olur.Relevant referanslar şunları içerir:

  • [FONT=0)Trusted Computing Group (TCG) Adapt) Güven ve güvenli depolamanın donanım kökleri için.
  • [[0)IEEE P1735 [Dönetici için önerilen uygulamalar için IP koruma için, erişim kontrol mekanizmaları da dahil olmak üzere.
  • [FONT=0)NIST Cybersecurity Framework [[Döneticileri Koruma işlevine dahil etmek için donanım erişim kontrolü dahil etmek için).
  • RISC-V Fiziksel Hafıza Koruma (PMP) kayıt tabanlı izin uygulama örneği olarak spesifikasyon.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Kayıt izinleri sadece bir çek listesi değildir; her donanım tasarımının her alanına dokunan sürekli bir mühendislik disiplinidir.En az ayrıcalık ilkesine başvurarak, donanıma dayalı erişim kontrolleri için donanıma dayalı donanıma sahip olan donanıma dayalı bir strateji oluşturabilir ve rol tabanlı modeller, tasarımcılar hem yanlışlıkla kötüye ve kasıtlı saldırıya karşı direnen sistemler kurabilirler.

Saldırı teknikleri geliştikçe, bu yüzden de aşağıdaki temellere odaklanmak için yaklaşımımız gerekir. Resmi özellikler tarafından yönlendirilen soyut izin modelleri, makine öğrenme-yaratıcı erişim kalıplarına yönelik bir anomali tespiti ve daha fazla granular ayrıcalıkları daha da zorlaştıracaktır.