Implementation

是否可以測試側通道攻擊的實現?

  • June 23, 2016

在實施加密算法時,似乎很關注在不引入潛在的側通道攻擊和所需知識的情況下這樣做的難度。

隨之而來的似乎是這樣的程式碼需要非常仔細地編寫和審查的假設,但我在測試方面沒有發現太多。

當然,現在很難在軟體中測試一個實現是否容易受到一些側通道攻擊,但在我看來,它應該可以用於定時甚至基於記憶體的攻擊。

這真的可能嗎?我在哪裡可以找到有關該主題的資訊?

特別是我想人們可以觀察一個實現在隨機輸入下的執行情況,並使用 CPU 性能計數器來監控指令計數和記憶體未命中。不同輸入的差異可能會很糟糕。至少對於編譯語言來說,也應該有對機器程式碼執行靜態分析的工具,不是嗎?

至少對於編譯語言來說,也應該有對機器程式碼執行靜態分析的工具,不是嗎?

事實上,這樣的工具是存在的。有專門從事該領域的公司提供此類工具(例如,請參閱此數據表)。但是您應該注意,唯一的軟體工具將無法檢測針對某些類型攻擊的所有弱點(例如,某些故障注入)。

應該可以進行定時甚至基於記憶體的攻擊

還有CacheAudit,它是一個用於記憶體側通道靜態分析的工具(另外,它是免費的)。它可以配置為針對多種架構(例如,數據和指令的單獨或共享記憶體)和多種攻擊模型測試您的實現。這是框架的描述,你可以在這裡下載。簡而言之:

CacheAudit 將程序二進製文件和記憶體配置作為輸入,並提供正式的安全保證,涵蓋相應系統的所有可能執行。

引用自:https://crypto.stackexchange.com/questions/37240