我們能構建可信賴的硬件嗎?答案是非常困難
軟件有簽名哈希值等方法驗證其完整性,但你如何能驗證硬件,確保它們是可信賴的沒有被纂改?著名硬件黑客黃欣國(Andrew ‘bunnie’ Huang)在上週末舉行的混沌計算機俱樂部會議(36C3 )上討論了這個問題(YouTube)。
數年前,黃欣國和朋友構建了開源筆記本電腦Novena,在此過程中他們意識到構建一個完全可信的開源硬件非常困難,即使你能製造自己的CPU和 SSD,你也無法確保它們是值得信任的,因為你沒辦法確保供應鏈的每一個環節你的硬件沒有遭到纂改。甚至在產品送到客戶手中前,送貨的司機、海關的官員以及倉庫的工人都可能接觸硬件,有機會纂改硬件。
他的結論是開放硬件和閉源硬件的可信度沒什麼差別。軟件有近乎完美的信任轉移機制,比如驗證哈希值,但硬件沒辦法採用這些方法。
他描述了構建可信任硬件的三個原則:複雜性是驗證的敵人;不能只驗證元件而要驗證整個系統;賦權終端用戶去驗證和密封硬件。他和朋友發起了 Betrusted項目去實踐這三個原則。