| 摘要 密碼技術(shù)是解決信息安全問題的核心技術(shù)。密碼技術(shù)的運用可以基于軟件密碼組件或硬件密碼組件。硬件密碼組件在自身安全性和實現(xiàn)安全功能方面比軟件密碼組件更具優(yōu)勢。本文論述硬件密碼組件的數(shù)學(xué)模型、系統(tǒng)結(jié)構(gòu)、硬件結(jié)構(gòu),并比較硬件密碼組件與軟件密碼組件的優(yōu)劣。 關(guān)鍵詞 密碼 硬件密碼組件 軟件密碼組件 1 硬件密碼組件的概念 密碼技術(shù)是解決信息安全問題的核心技術(shù)。要實現(xiàn)信息的保密性、完整性、可控性和不可否認性等安全要求,都離不開密碼技術(shù)的運用。在具體的信息安全系統(tǒng)中,密碼技術(shù)的運用可以基于軟件密碼組件(簡稱為SCM)或硬件密碼組件(簡稱為HCM)來實現(xiàn)。HCM從本質(zhì)上來說是一個包含某些敏感信息,能自主完成特定功能的黑盒子;外界不能訪問其中的敏感信息,亦不能干予其中正在執(zhí)行或即將執(zhí)行的運算任務(wù)。黑盒子可以通過嚴格定義的接口和外界進行交互,接口在黑盒子的完全控制之下。任何企圖通過物理手段探測黑盒子內(nèi)部的行為都將導(dǎo)致其中敏感信息的完全清除。 從抽象角度,可以用如下方式描述HCM。 符號和定義: X——敏感信息,其明文不能以任何形式出現(xiàn)在HCM之外; E(X)——敏感信息X的秘文; Fi(X,Y)——HCM用其保存的敏感信息X和外界輸入的信息Y完成某項功能,如簽名、加密和解密等其它特定功能。HCM的N項功能可以用集合{ Fi(X,Y) 1≤i≤N }表示。 Ui——某個HCM的用戶,其全部M個用戶可以用集合{ Ui 1≤i≤M }表示。 Zij——表示用戶Ui對HCM的功能Fj(X,Y)的權(quán)限信息。Zij=0表示用戶沒有權(quán)限,Zij=1表示用戶擁有權(quán)限。 則HCM可用一個五元函數(shù)G(E(X),Y,Fj,Ui,Zij)表示,其定義如下:  從應(yīng)用角度來看,HCM是一個由軟硬件組成的安全計算系統(tǒng),其系統(tǒng)結(jié)構(gòu)如圖1所示。整個HCM總體上可以分為兩大部分,即軟件部分和硬件部分。在形式上,硬件部分體現(xiàn)為一個硬件實體,而軟件部分則是與此硬件實體相配套的驅(qū)動程序、動態(tài)庫等軟件包。硬件部分進一步可細分為底層硬件電路、初始引導(dǎo)固件、操作系統(tǒng)或控制程序固件、密碼算法庫、內(nèi)部功能固件等幾部分。軟件部分由接口驅(qū)動系統(tǒng)、用戶應(yīng)用編程接口和標準應(yīng)用編程接口組成。其中標準應(yīng)用編程接口是指按照某些業(yè)界接口標準,如PKCS#11、CSP等進一步對用戶應(yīng)用編程接口進行封裝,以方便上層應(yīng)用系統(tǒng)的調(diào)用。標準應(yīng)用編程接口并非所有HCM所必需,所以用虛框表示。  圖1 HCM的系統(tǒng)結(jié)構(gòu) 2 硬件密碼組件與軟件密碼組件的對比 軟件密碼組件是指密碼技術(shù)的軟件實現(xiàn)。與HCM比較,SCM開發(fā)周期短,開發(fā)成本低,使用維護方便,這是其優(yōu)點。但在自身安全性和實現(xiàn)安全功能方面,HCM則具有優(yōu)勢,這主要體現(xiàn)在以下幾個方面。 (1) 完整性保護 HCM的完整性和運行時的保密性可以得到很好的保證,而SCM的完整性和運行時的保密性則很難得到保證。HCM由硬件和硬件之上的固件組成,硬件中的密碼算法芯片一般采用反熔絲的FPGA或ASIC實現(xiàn),難以破讀或更改。固件則通過燒錄器寫入到Flash芯片,不能非法改寫。另外,HCM中的RAM空間由其專用,外部程序不能對其進行訪問;SCM一般保存在計算機的硬盤上,運行時調(diào)入系統(tǒng)內(nèi)存運行。由于計算機系統(tǒng)本身的安全性不高,因此硬盤上或內(nèi)存中的SCM都可能被攻擊者、病毒程序或黑客程序篡改。另外,SCM運行時占用的內(nèi)存空間雖然受到操作系統(tǒng)的保護,但不能保證其不被其它進程訪問,這樣SCM運行時所需的敏感信息或運行中產(chǎn)生的敏感信息就可能泄露。 (2) 對商用操作系統(tǒng)安全性的依賴 SCM運行時需要操作系統(tǒng)提供的支持,而HCM本身構(gòu)成了完整的運行環(huán)境,無需依賴操作系統(tǒng)等其它外部支持。由于操作系統(tǒng)往往存在某些漏洞,這些漏洞若被攻擊者利用,就可能會給SCM帶來嚴重的安全問題。 (3) 抵抗能量分析攻擊 進行密碼運算時總要消耗運算設(shè)備一定的能量,攻擊者通過收集能量值,就可能計算出密碼運算時所采用的密鑰值。特別是在進行運算量很大的RSA簽名時,這種基于能量的攻擊更容易得到簽名私鑰。SCM對于這種攻擊是脆弱的;而HCM則可以通過特別措施來防止攻擊者收集能量值,從而抵御能量攻擊。 (4) 種子密鑰的保存 安全的保存種子密鑰對SCM是非常困難的。種子密鑰需要長期保存,對整個系統(tǒng)安全至關(guān)重要。對于SCM來說,種子密鑰只能保存在計算機的硬盤上,顯然保存種子密鑰的明文是非常不安全的。一般采用的辦法是通過一個口令加密種子密鑰,然后保存種子密鑰的密文。每當用戶使用種子密鑰時,需要輸入口令。但這樣亦是不安全的,首先這就要求有用戶在場,才可使用種子密鑰,否則就不能使用。其次用戶往往會選擇容易記憶的簡單口令,這使其容易被攻擊者猜測。 (5) 安全地進行密碼操作 在HCM中可以安全地進行密鑰生成(公鑰密鑰對、會話密鑰)、加密、解密、簽名等操作,同時保證加解密密鑰和簽名私鑰的安全性;而在SCM中進行這些操作時,則存在泄露這些密鑰的可能性。 (6) 密碼算法實現(xiàn)的效率 在HCM中通過專用的密碼運算器,如公鑰協(xié)處理器和專用對稱算法芯片可以大大提高對稱算法和非對稱算法的運算速度;而SCM密碼運算的速度則依賴于計算機系統(tǒng)的效率。這使得目前SCM中密碼算法的運算速度往往低于HCM的實現(xiàn)速度。 (7) 逆向工程攻擊 SCM保存在計算機硬盤或內(nèi)存中,而一般的計算機對硬盤和內(nèi)存的保護是非常脆弱的,因此它容易受到逆向工程攻擊。 SCM的基本組成如圖2所示。SCM用到的數(shù)據(jù)包括敏感數(shù)據(jù)和一般數(shù)據(jù)。敏感數(shù)據(jù)是指密鑰、用戶PIN碼等數(shù)據(jù)。SCM的程序邏輯可分為密碼算法(對稱和非對稱的)、密碼協(xié)議(例如SSL、IPSEC等)以及其它程序控制邏輯。利用逆向工程的工具和技術(shù),攻擊者可以監(jiān)控程序的輸入和輸出,從而獲得用戶口令等敏感信息;其次攻擊者還可以掃描程序數(shù)據(jù)區(qū),得到密鑰、口令信息;另外攻擊者對程序的運行邏輯進行跟蹤,可以得到密碼算法和密碼協(xié)議的運行軌跡,特別是如果算法和協(xié)議不是公開的,而是保密的,這時攻擊者可以得到重要信息。而且攻擊者還可以進一步修改軟件執(zhí)行邏輯,制造“后門”。 |