論文閱讀:Efficient isolation of trusted subsystems in embedded systems

許多嵌入式設備有着很強的安全要求,因爲他們需要處理機密性的數據或者支持安全事務。一個原型實例是付款終端,爲了確保敏感數據,比如說加密密碼不被泄漏,系統的安全部分當成一個隔離的芯片進行實現,從而與系統的其他部分進行隔離。
但是隔離也能通過軟件進行實現,高端的計算平臺有一些硬件來指出實現虛擬內存與VMM,然而,許多的嵌入式系統缺少這些硬件特徵。
本文設計了一個普遍的、輕量級的硬件機制,能夠支持共享同一個處理器與內存空間的多個子系統之間進行隔離。一個原型就是支持保護密鑰的加密系統的軟件實現。

貢獻:

  • 一個新的內存訪問控制模型,訪問內存依賴於程序計數器的值
  • 基於這個內存訪問控制模型的自我保護模塊的設計:一個軟件模塊能夠爲模塊處理的數據、如何被其他模塊所調用提供很強的安全保證
  • 對這個設計的一個粗略證明
  • 幾個應用場景的討論

威脅模型:
攻擊者能夠向系統的內存空間注入代碼,不能進行物理攻擊。

安全屬性:

  • entry point的約束:軟件模塊能夠安全地約束他們如何被調用。也就是說,軟件模塊的entry point是由模塊提供者定義的,攻擊者不能夠隨便跳轉到模塊的任意位置。
  • 模塊數據的安全:模塊的敏感信息僅能夠被這個模塊讀寫
  • 模塊認證:模塊能夠認證其他模塊的內存
  • 模塊之間的安全通信:模塊能夠有效的與他們認證的其他模塊交互。消息的完整性與機密性必須能夠保證。
  • 最小化TCB

忽略程序本身的邏輯錯誤引起的攻擊、忽略拒絕服務攻擊

自我保護模塊SPM:

  • 三個段:SEntry(可以調用SPM的入口點)、SPulic(其他模塊可讀)、SSecret(敏感數據,不可信模塊不可訪問)
  • 內存訪問控制策略

SPM的創建與銷燬如下圖所示。創建:OS加載SPublic與Sentry;一個新的硬件指令setProtected創建SPM,定義三個段的邊界,開啓內存訪問控制策略,清空SSecret;一個稱爲vault的模塊初始化SSecret。Vault在boot後安裝,並且不允許卸載。
這裏寫圖片描述

內存訪問控制矩陣如表一所示:
這裏寫圖片描述

硬件上的修改:

  • setProtected
  • isProtected:返回SPM的layout
  • resetProtected

安全報告:

  • Hash(SEntry || SPublic)
  • SPM的layout
  • CA的簽名

驗證過程:驗證安全報告的簽名,驗證Sentry與SPublic的hash,使用isProteced驗證SPM的layout
這裏寫圖片描述

兩個模塊之間的認證協議:

  • 單向
    這裏寫圖片描述
  • 雙向
    這裏寫圖片描述
  • 雙向,事件通信
    這裏寫圖片描述

缺陷:

  • 中斷
  • 交換
  • DMA
  • 分頁
  • 併發執行
發佈了42 篇原創文章 · 獲贊 15 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章