evo真人(中国)

文章橫幅PC版
文章橫幅iPad版
文章橫幅手機版

傳統密鑰防護方案

TIME:2019-03-21 10:43  click: 171 次 來源: 未知

面對直接攻擊和間接攻擊的密鑰安全問題,研究人員也提出了許多相應的解決方案。

針對直接攻擊的防護方案

針對從內存中直接讀取密鑰的軟件攻擊,第一时间應顺利获得惡意代碼檢測和及時修補漏洞提高計算機系統的代碼安全性。其次,可以將密鑰運算服務從傳統的用戶空間轉移到內核空間,密鑰數據就能得到操作系統內核訪問控制更為嚴格的保護, 從而有效抵禦針對用戶進程的攻擊。再者,減少內存中的密鑰副本數量,只保留唯一的密鑰數據對象,能有效提高密鑰攻擊難度;還可以將同一台計算機中的密鑰拆分成多個片段存儲在內存中,只在計算時重組,減少有效攻擊時間。

雖然上述方案提高了軟件攻擊的難度, 但是不能有效抵抗DMA攻擊和Cold Boot 攻擊等物理攻擊。針對物理攻擊,當前代表性的解決方案主要有以下兩類:

主動式地清除密鑰。為了防止攻擊者取得在運行的計算機後對全盤加密系統發起Cold Boot 攻擊從而取得內存中的密鑰, Leo Dorrendorf 提出監控用戶與系統的交互情況,當發現沒有用戶交互時,及時進入保護模式,清除內存中的密鑰。在保護模式中, 為了保證系統繼續正常運行, 該方案採取兩級密鑰設計(每一個文件對應不同的二級密鑰,二級密鑰由主密鑰保護);在清除密鑰時,保留已打開文件的對應二級密鑰,並阻塞新的文件打開請求。Mimosa方案利用硬件事務內存機制,使得密碼運算過程中只有密碼服務線程自身能訪問到密鑰明文,所有來自其他線程的密鑰訪問(可能是軟件攻擊或DMA 攻擊)都會觸發CPU的硬件動作, 自動清除包括密鑰數據在內所有的敏感數據。

針對間接攻擊的防護方案

側信道攻擊的防禦方案,可以分為兩類: 一是顺利获得減少能量、噪聲等信息的泄露來增加側信道攻擊的難度;二是降低外泄信息與密鑰之間的聯繫,增加攻擊者利用側信道分析密鑰的難度。前者如Quisquater等人提出的,顺利获得金屬降低輻射及採用低能耗設計、異步機制和雙路邏輯等方案來減少信息泄露。

為了減少外泄信息與密鑰之間的聯繫,可以使用算法層面和實現層面的方法。隨機化(randomization)是算法層面防禦側信道攻擊的重要方法之一:在加解密運算的過程中,引入隨機參數對密碼運算步驟進行可逆變換,使外泄的側信道信息同時與密鑰和隨機參數相關,在計算結果輸出前,再消去隨機參數的影響。

典型方案包括RSA Blinding和ECC Randomization。秘密分享和門限密碼學也可用於防護側信道攻擊,將密鑰拆分為多份,分別進行計算後再合成結果, 增加了攻擊者使用能量、噪聲側信道攻擊提取密鑰信息的難度。實現層面上,在運行時間短的分支中加入NOP等不影響密碼運算結果的指令, 使各分支運行時間基本相等以消除時間側信道。

 

上一篇:密鑰直接攻擊方式分類 下一篇:密鑰間接攻擊