工程開發
constant-time-testing avatar

constant-time-testing

偵測加密代碼中的時序側通道漏洞,防止機密數據洩漏。適用於審計高敏感度的加密實現。

簡介

constant-time-testing 技能為識別加密實現中的時序側通道漏洞提供了專業的診斷框架。時序攻擊利用微架構差異(如快取時序差異、分支預測行為或指令級延遲差異)來竊取密鑰、密碼或其他敏感加密數據。此技能專為安全審計師、密碼學工程師以及開發敏感加密原語或協議的開發人員而設計,旨在確保執行路徑與記憶體存取模式與機密數據無關。透過結合統計測試、符號執行與形式驗證方法,該技能引導用戶審計代碼,查找如依賴機密數據的條件分支、非恆定時間的陣列查詢以及不安全的整數除法或位移運算等常見漏洞。它提供關於應用遮罩技術以消除執行時間與機密輸入之間相關性的明確指引。用戶可利用此工具評估代碼是否符合恆定時間(constant-time)原則,偵測現實環境中的統計時序差異,並在運行時追蹤機密數據流。該技能支援多種專業工具,包括用於統計時序分析的 dudect、用於動態分析的 timecop,以及如 SideTrail、ct-verif 和 FaCT 等形式驗證工具。需特別注意的是,此技能專為處理機密數據的代碼而設計,不適用於一般的性能優化場景。

  • 偵測加密實現中的時序側通道,涵蓋 RSA、ECDH、AES 及 Kyber 等後量子演算法。

  • 支援多種分析方法:形式化證明、符號執行、動態追蹤與統計測量。

  • 提供緩解策略的實作指導,例如使用遮罩技術來消除時序依賴。

  • 分析快取時序、整數除法與位移運算造成的微架構資訊洩漏風險。

  • 整合領域專用工具:dudect, timecop, SideTrail, ct-verif, FaCT。

  • 區分依賴機密的執行路徑與無關緊要的性能瓶頸。

  • 請確保目標代碼明確涉及敏感機密數據的處理;此技能不適用於公開或無需保密的邏輯。

  • 進行統計分析(dudect)或動態分析(timecop)時,請準備好測試套件或特定的加密輸入樣本。

  • 形式驗證方法可能需要較多時間來建立精確的代碼模型與屬性規範。

  • 統計測試結果受環境噪聲影響,建議在受控環境中重複驗證以確保準確性。

倉庫統計

Star 數
4,873
Fork 數
424
Open Issue 數
21
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年4月29日 上午06:02
在 GitHub 查看