密碼算法實現(xiàn)的軟件化已經(jīng)成為了大趨勢,然而密碼軟件區(qū)別于一般軟件的特殊性在于其密鑰極其敏感,但目前主流的密碼軟件實現(xiàn)方案只將密鑰數(shù)據(jù)當做一般數(shù)據(jù)進行處理。密鑰等敏感數(shù)據(jù)如果被當作密碼算法實現(xiàn)中一般數(shù)據(jù)對待,密碼軟件會遭受常見軟件攻擊進而泄露密鑰,包括操作系統(tǒng)的漏洞、軟件實現(xiàn)自身存在的漏洞、從未清零動態(tài)內存中獲取密鑰、基于內存數(shù)據(jù)擴散進行密鑰的獲取等軟件層面的攻擊,以及面向內存數(shù)據(jù)的Cold-Boot攻擊和DMA攻擊等物理攻擊。但是目前軟件實現(xiàn)主要依賴于操作系統(tǒng)的安全機制,密鑰的存儲和使用都存在著一定的風險。
本書主要介紹密碼軟件實現(xiàn)中所面臨的各類安全問題,并介紹一些針對軟件實現(xiàn)的常見密鑰防護方式,包括基于寄存器、Cache、處理器增強、虛擬化技術、云計算技術等方式的密鑰安全方案。
密碼學是一門古老而又年輕的學科。自誕生以來,密碼技術主要用于軍事和外交領域重要信息的保密通信。隨著香農(nóng)的論文“保密系統(tǒng)的通信理論”的發(fā)表,密碼技術逐漸建立起完備的理論基礎,密碼學也逐漸成為一門嚴謹?shù)膶W科。今天的密碼學應用已不再局限于軍事和外交領域,密碼技術已經(jīng)成為實現(xiàn)網(wǎng)絡空間安全的關鍵、核心技術,在維護國家安全、保障國計民生等方面發(fā)揮著重要的基礎性作用。
在傳統(tǒng)的應用場景下,密碼算法大多實現(xiàn)為專用的硬件,例如密碼機、密碼卡和密碼芯片等,利用隔離的密碼計算環(huán)境和專用的密鑰存儲介質保護密碼算法中最關鍵的數(shù)據(jù)—密鑰。近年來,隨著密碼技術的廣泛應用,密碼技術與計算機技術日益融合,密碼軟件實現(xiàn)蓬勃發(fā)展。軟件形態(tài)的密碼實現(xiàn)由于具有開發(fā)便捷、使用靈活、部署快速和維護方便的特點,已經(jīng)在網(wǎng)絡空間中得到廣泛部署和應用。
在現(xiàn)有信息系統(tǒng)中,軟件已經(jīng)成為密碼實現(xiàn)的主流形態(tài)。密碼軟件實現(xiàn)也是持續(xù)擴大密碼學應用范圍的推動力量之一。然而,由于密碼軟件實現(xiàn)依賴于計算機操作系統(tǒng)、沒有獨立的密鑰存儲空間和密碼計算環(huán)境,在計算機系統(tǒng)面臨各種漏洞和攻擊的情況下,保證密鑰安全是密碼軟件實現(xiàn)的巨大技術挑戰(zhàn)。按照密碼學原理,密碼技術發(fā)揮安全作用的前提是密鑰安全。密鑰一旦泄露,攻擊者就可以隨意訪問密鑰,基于密碼技術的安全服務就形同虛設。
相比于傳統(tǒng)的密碼硬件實現(xiàn),密碼軟件實現(xiàn)的密鑰安全技術風險沒有得到應有的關注。在現(xiàn)有的密碼軟件實現(xiàn)中,密鑰的安全保護措施與其他數(shù)據(jù)的一樣,并沒有得到應有的專門處理。密碼軟件與其他計算機軟件共享運行環(huán)境,面臨同樣的敏感數(shù)據(jù)泄露威脅,即計算機系統(tǒng)的各種漏洞和攻擊同樣會影響密碼軟件,有可能導致密鑰泄露,使攻擊者非授權地讀取密鑰。如何保證密碼軟件實現(xiàn)的密鑰安全,已經(jīng)成為亟待解決而又極具挑戰(zhàn)的重要問題。2014年,OpenSSL心臟滴血漏洞事件的大規(guī)模爆發(fā)為我們敲響了警鐘。
本書圍繞密碼軟件實現(xiàn)的密鑰安全這條主線,系統(tǒng)地介紹了多種密碼軟件實現(xiàn)的密鑰安全方案的原理和實際應用,通過密碼軟件實現(xiàn)面臨的攻擊引出密鑰安全方案的設計和實現(xiàn)。全書共有8章,內容如下:第1章主要介紹密碼算法以及密鑰相關的基本知識和概念,使讀者對密碼算法實現(xiàn)和密鑰安全有初步的認識;第2章簡要介紹密碼軟件實現(xiàn)所依賴的運行環(huán)境,包括計算機體系結構和操作系統(tǒng)的相關知識;第3章和第4章介紹常規(guī)的密碼軟件實現(xiàn)及其所面臨的各種攻擊;第5~8章是本書的主體部分,分別詳細介紹基于寄存器、基于Cache、基于處理器擴展特性、基于門限密碼算法等的新型密碼軟件實現(xiàn)的密鑰安全方案。
本書可作為高等院校網(wǎng)絡空間安全和密碼學等相關專業(yè)學生的教材,也可作為網(wǎng)絡空間安全和密碼行業(yè)技術人員的參考書。
在本書編寫過程中,王子陽、魏榮、高莉莉、萬立鵬、范廣、孟令佳、郞帆、許新、劉廣祺、范浩玲進行了大量的素材搜集、整理和校對工作,謹此致謝。
由于作者認識的局限和技術的快速發(fā)展,書中不妥和錯漏之處在所難免,懇請廣大讀者提出寶貴意見,幫助我們不斷改進和完善書稿。
作者