RTL2MµPATH: 自動合成多個微架構執行路徑,並應用於硬體安全驗證
핵심 개념
本文提出了RTL2MµPATH和SYNTHLC兩種自動化方法和工具。RTL2MµPATH可以從SystemVerilog處理器設計中自動合成出所有可能的微架構執行路徑(µPATH)。SYNTHLC則進一步利用RTL2MµPATH的結果,通過符號資訊流分析,自動合成出一組形式化驗證的洩漏簽名,用於描述硬體側通道的特性。
초록
本文提出了兩個主要貢獻:
- RTL2MµPATH: 自動合成微架構執行路徑(µPATH)
- 擴展了之前工作的µHB圖形式,加入了週期精確的時序資訊。
- 提出了"執行位置(PL)"的概念,將µHB節點映射到RTL信號,以支持投機、超標量和亂序管線,以及緩存等特性。
- 使用靜態網路分析、LTL屬性生成和模型檢查,自動發現每條指令的所有可能µPATH。
- SYNTHLC: 利用µPATH合成形式化驗證的洩漏簽名
- 觀察到指令的µPATH變化性強烈暗示了微架構側通道的存在。
- 提出"洩漏函數"和"傳輸器"的概念,用於形式化描述側通道。
- 合成涵蓋6種現有側通道防禦方案的洩漏簽名,是第一個自動化的形式化硬體側通道驗證方法。
SYNTHLC部署在RISC-V CVA6處理器和緩存上,發現了各種硬體側通道,包括一個新的從儲存器地址洩漏的側通道。該實驗展示了SYNTHLC的性能和可擴展性優勢。
RTL2M$\mu$PATH: Multi-$\mu$PATH Synthesis with Applications to Hardware Security Verification
통계
在CVA6處理器上,SYNTHLC發現了94個唯一的洩漏簽名,72個傳輸器,和26個發射器。
與之前的工作相比,SYNTHLC發現了一個新的從儲存器地址洩漏的側通道。
在CVA6 L1數據緩存上部署SYNTHLC,是首次對現實處理器緩存進行洩漏合約驗證。
인용구
"當一個發射器以操作數相關的方式調變一個通道時,它會為一個或多個傳輸器創造操作數相關的µPATH變化性。接收器觀察到發射器的不同通道調變,就會觀察到傳輸器的不同µPATH。"
"RTL2MµPATH使用靜態網路分析、LTL屬性生成和模型檢查,自動發現每條指令的所有可能µPATH。"
"SYNTHLC是第一個自動化的形式化硬體側通道驗證方法,可以從SystemVerilog處理器設計中合成一組形式化驗證的洩漏簽名。"
더 깊은 질문
除了操作數相關的µPATH變化性,是否還有其他可能導致硬體側通道的微架構特徵?
除了操作數相關的µPATH變化性,還有多種微架構特徵可能導致硬體側通道的存在。這些特徵包括:
資源競爭:當多個指令同時訪問共享資源(如快取、記憶體端口或功能單元)時,可能會導致執行延遲,這種延遲可以被攻擊者觀察到,從而推斷出敏感數據。例如,當一個指令在訪問快取時,另一個指令可能會因為快取未命中而遭遇延遲,這種延遲的變化可以被用來推測其操作數。
推測執行:在支持推測執行的設計中,指令的執行路徑可能會根據預測的結果而變化。這種變化可能導致不同的µPATH,並且如果推測的結果依賴於敏感數據,則可能會導致側通道洩漏。例如,當一個指令的執行依賴於先前指令的結果時,攻擊者可以通過觀察執行時間來推測這些結果。
微架構狀態:微架構的內部狀態(如重排序緩衝區、分支預測器的狀態等)也可能影響指令的執行路徑。這些狀態的變化可能會導致不同的µPATH,並且如果這些狀態受到敏感數據的影響,則可能會導致側通道洩漏。
執行延遲:某些指令的執行時間可能會根據其操作數的特性而變化,例如變量延遲的算術單元。這種延遲的變化可以被觀察到,並用來推測指令的操作數。
這些微架構特徵的變化性不僅影響指令的執行效率,還可能成為潛在的側通道攻擊向量,進一步強調了在設計和驗證過程中考慮這些特徵的重要性。
如何擴展SYNTHLC的分析,以涵蓋更複雜的處理器設計,如支持推測執行的設計?
要擴展SYNTHLC的分析以涵蓋更複雜的處理器設計,特別是支持推測執行的設計,可以考慮以下幾個方面:
增強的決策來源識別:在支持推測執行的設計中,指令的執行路徑可能會根據分支預測的結果而變化。因此,SYNTHLC需要能夠識別和分析這些決策來源,並將其納入µPATH的變化性分析中。這可以通過擴展決策的定義,將分支預測器的狀態和預測結果納入考量。
動態路徑選擇函數:在推測執行中,路徑選擇函數的輸出可能會受到多個因素的影響,包括當前執行的指令、先前的執行結果以及微架構的狀態。SYNTHLC可以擴展其分析,以捕捉這些動態路徑選擇函數的行為,並分析其對µPATH的影響。
符號信息流分析的擴展:在推測執行的上下文中,符號信息流分析可以進一步擴展,以考慮指令的推測執行路徑。這意味著需要分析指令在推測執行過程中可能的所有路徑,並確定哪些路徑可能導致敏感數據的洩漏。
多層次的微架構建模:對於更複雜的處理器設計,可能需要多層次的微架構建模,以捕捉不同層次(如指令層、微架構層和物理層)之間的交互作用。這樣的建模可以幫助識別潛在的側通道,並提供更全面的安全性分析。
通過這些擴展,SYNTHLC將能夠更有效地分析和驗證支持推測執行的複雜處理器設計,從而提高其對硬體側通道攻擊的防禦能力。
除了洩漏簽名,是否還有其他形式化描述硬體側通道的方法,可以更好地支持側通道防禦的設計和驗證?
除了洩漏簽名,還有其他幾種形式化描述硬體側通道的方法,可以更好地支持側通道防禦的設計和驗證:
形式化驗證方法:使用形式化驗證技術(如模型檢查、定理證明等)來驗證硬體設計是否滿足特定的安全性屬性。這些方法可以用來檢查設計中是否存在潛在的側通道,並確保所有可能的執行路徑都不會洩漏敏感數據。
信息流分析:信息流分析是一種用於檢查程序中數據流的技術,可以用來識別數據如何在系統中流動,並確定是否存在不安全的數據流。這種分析可以幫助設計者理解哪些操作可能導致側通道洩漏,並指導防禦措施的實施。
安全性屬性建模:通過建模硬體設計的安全性屬性(如不洩漏性、隱私性等),可以更清晰地定義設計的安全要求。這些模型可以用於驗證設計是否符合預期的安全性標準,並幫助識別潛在的側通道。
攻擊模型:建立攻擊模型以描述可能的側通道攻擊方式,這些模型可以幫助設計者理解攻擊者的視角,並指導防禦措施的設計。通過分析攻擊模型,可以識別設計中的弱點,並針對性地加強防禦。
形式化合約:除了洩漏簽名,還可以使用形式化合約來描述硬體設計的安全性要求。這些合約可以定義設計在不同情況下的行為,並提供一種檢查設計是否遵循這些要求的方法。
這些方法的結合可以提供更全面的硬體側通道防禦設計和驗證支持,幫助設計者在開發過程中及早識別和解決潛在的安全問題。