在非網路場景中,對可信系統的非“恆定時間”實現意味著什麼?
假設一個對稱加密算法(例如:AES)沒有以一種可以防止定時攻擊的方式實現。這種對稱加密實現僅用於本地加密/解密數據。
唯一一次通過網路傳遞數據(如果有的話),它是作為預加密數據(讀取:作為本地創建的密文)完成的。然而,網路傳輸本身的實現方式不同,使用 SSL,並且沒有任何固定時間問題。實際上,這意味著如果本地創建的密文以一種——我們稱之為——雙重加密的形式傳遞。因此,我們不要關注網路傳輸,而是關注我所詢問的場景的核心:本地非網路部分,其中數據使用不同的非恆定時間實現在本地加密/解密。
在上述場景中,除非我們假設信任本地系統可能是一個問題,否則似乎定時攻擊並不是一個攻擊向量,在這種情況下,可以排除本地系統是受信任的(沿著敏感分隔資訊設施的行)。
為了確保我不會因為過多地限制我對與網路相關的定時攻擊的想法而遺漏一些東西:
- 如果有的話,在非網路場景中對受信任系統實施非“恆定時間”的潛在影響是什麼?
換個說法:
- 如果我們假設本地、非網路加密/解密由隔離設施中的受信任系統處理,我們是否仍然需要擔心在恆定時間內實現本地加密算法?如果是這樣,我們試圖通過這樣做來覆蓋哪些攻擊媒介?
“恆定時間”是關於不通過基於時間的邊通道洩漏資訊。如果假設沒有旁道攻擊,那麼特別是沒有旁道攻擊。然而,這是一個相當大膽的假設。
存在多種可能的側通道,並且已經完成了攻擊的實驗室展示,其中包括功率使用(特別是通過差分功率分析)、電磁輻射、聲音……不過,大多數都要求攻擊者位於目標系統的物理附近(實際操作距離可能會有所不同,例如基於聲音的攻擊可達幾十米)。定時攻擊在這方面是特殊的,因為由於網際網路的魔力,它們可能會被非常遠端的攻擊者利用。
如果沒有網路,那麼攻擊將受到地域限制,因此物理保護措施(帶有警衛的隔離建築)應該是有效的。因此,實際上,您的問題實際上取決於目標系統是否真的“分隔”。作為說明,請考慮以下內容:
- 一些定時攻擊的展示是跨虛擬機進行的:攻擊者和受害者在兩個不同的虛擬機中執行,而這兩個虛擬機恰好共同託管在相同的硬體上。從抽象的角度來看,VM的隔離契約是實現的;仍然,密鑰流動。
- 不離開物理軌道非常困難。例如,可以使用雷射麥克風從很遠的地方收聽房間內的談話:反射表面(例如窗戶)響應聲波而振動,並且這種振動被干涉測量法拾取。從理論上講,這種聆聽應該與聲學攻擊一起工作。
- 電氣活動可能會通過電源線洩漏。名義上未聯網的系統仍可能在不經意間通過其電源線發送大量資訊。這可以通過隔離變壓器來解決,但要確定這種變壓器是否在它們應該放置的位置是相當困難的。
- 最終,系統永遠不會完全孤立:在某些時候,一些結果應該退出並具有物理上可觀察的效果;否則,從哲學的角度來看,無論系統做什麼都變得無關緊要。因此,總的處理時間是可用的。然後是量化測量精度的問題。
因此,在實踐中,只有在可以顯示應用真正的物理分區的使用環境中,特別是在最終的“網路”發生在人類兼容的時間(即幾天,而不是微秒)。這往往是一種性能不是問題的上下文,從而消除了使用非常量時間實現的最常見藉口。