一、前言 智能卡技術以其安全可靠等諸多優(yōu)點正在被中國市場所接受,其正在逐步取代磁條卡,在我國金融業(yè)以及其它相關產(chǎn)業(yè)得到廣泛使用。 自1997年底中國人民銀行頒布《中國金融集成電路IC卡規(guī)范》之后,我國金融智能卡市場開始走向成熟和規(guī)范化。金融市場的規(guī)范化同時帶動了相關的行業(yè),僅在1998、1999兩年之內,各商業(yè)銀行與相關的行業(yè)共發(fā)行1000萬張符合人行規(guī)范、擁有金融功能的智能卡。根據(jù)有關人士預測,在2002年,將會發(fā)行1500萬張符合人行規(guī)范支持不同應用的金融智能卡。 由于這個市場發(fā)展迅速,前景廣闊,各智能卡供應商紛紛投資開發(fā)符合人行規(guī)范的產(chǎn)品。目前已通過銀行卡檢測中心檢測的廠家有十幾家。 面對這個市場,一些商業(yè)銀行以及相關的行業(yè)在選擇智能卡產(chǎn)品時存在著一些誤區(qū),片面的認為所有擁有微處理器的智能卡都具有高安全和可靠性,只要選擇的產(chǎn)品符合人行規(guī)范即可使用,從而忽略對于這種便于攜帶,由半導體芯片構成的產(chǎn)品安全性要求。 本文將針對目前的這種現(xiàn)狀,本文將著重介紹目前被國內忽視的智能卡安全防范技術。 二、智能卡技術面臨的攻擊 在90年代初期,由于智能卡擁有一個微處理芯片,同時能夠將保密信息(如密鑰、密碼以及私人信息)存放在記憶存儲器中,人們天真的設想保密信息將在封閉的、可靠的計算環(huán)境中被操作。實際上,如果不在微處理芯片的操作系統(tǒng)和硬件設計上增加防護措施,微處理芯片將會泄露其處理的有關操作信息。特別是在網(wǎng)絡和信息時代,從國際互聯(lián)網(wǎng)可以非常容易的獲取各類算法和資料。 目前主要對智能卡的攻擊分為芯片攻擊和操作系統(tǒng)的攻擊。由于對芯片技術的攻擊需要較高的專業(yè)知識,設備投入成本較高(需要特殊的測試設備),投資很大(200萬美金以上),一般黑客不采用此類攻擊。 而對于操作系統(tǒng)的攻擊,相對來說,其投資成本較低,通常只需要一臺PC機、記憶示波器、邏輯分析儀和一定的軟件編程能力,即可實現(xiàn)。目前黑客對智能卡的攻擊主要采用后者。 我們都知道智能卡芯片是由半導體器件,其使用半導體邏輯門來實現(xiàn)加密功能,而半導體邏輯門是由晶體管構成的。當在一個晶體管的柵極上通電(或斷電)時,電流將流過硅襯底,同時消耗功率并產(chǎn)生電磁輻射。黑客正式針對智能卡在操作過程中產(chǎn)生的能量損耗,利用相應的數(shù)學算法和統(tǒng)計學方法來實現(xiàn)對智能卡操作系統(tǒng)的攻擊。 目前主要對智能卡安全的攻擊方法主要有兩種:一種是簡易功率分析(SPA)是一種直接解釋功率消耗測定值的技術,它所測定的功率消耗發(fā)生在加密操作期間。SPA能夠給出關于一個設備的運行信息以及密鑰信息。 在SAP攻擊中,攻擊者直接觀察一個系統(tǒng)的功率消耗。所消耗功率的大小隨微處理器執(zhí)行的指令不同而不同。由于微處理器在對DES周期、RSA運算等的不同部分執(zhí)行運算時,變化很明顯,故它們大的特征將可能被識別出。在較高的放大倍數(shù)下,單條指令將能夠被區(qū)分開來。例如,通過揭示乘法運算與平方運算之間的差異,SPA分析將能夠用于攻破RSA的實現(xiàn)方法。類似的,許多DES算法實現(xiàn)中的置換和移位過程有明顯的差異,因此也可用SPA來攻破。 另一種是微分能量分析(DPA),此種方法的攻擊力要比SPA強得多,而且更加難以預防。SPA攻擊主要利用可見的重復采樣和對芯片技術的了解來識別有關的功率波動,而DPA攻擊則使用統(tǒng)計分析和誤差修正技術,來提取與密鑰有關的信息。一個完全不懂得智能技術的編程人員完全可以利用專用程序對沒有DPA防范的智能卡芯片實現(xiàn)攻擊。 執(zhí)行一次DPA攻擊包括兩個階段:數(shù)據(jù)采集與數(shù)據(jù)分析。DPA的數(shù)據(jù)采集可以采取前述方式,即在加密運算期間對設備的功率消耗進行采樣,得到一個對時間的函數(shù)。對DPA而言,一系列使用欲破譯密鑰的加密運算均可被觀察到。 三、最新智能卡技術 在1997年,美國CryptographyResearch公司,一家一直致力于研究半體設備的加密技術安全公司,發(fā)現(xiàn)了當時智能卡技術存在的SPA和DPA防范問題,并向公眾公布了其研究成果。1998年6月紐約時報報道了此消息,國內報紙也有相應的轉載,但由于智能卡技術概念在國內尚未普及,人們沒有注意此類報道。 在此之后,全球所有大的芯片以及卡片供應商都在致力于研究SPA和DPA防范技術,并取得一定的成果(具體防范技術可參考附錄)。目前主要廠家提供的最新型芯片和操作系統(tǒng)都具有DPA和SPA防范。但是比較舊的型號產(chǎn)品沒有此類技術,通常這類產(chǎn)品在國外主要使用在信息管理而非金融領域。 目前國內許多商業(yè)銀行在選擇智能卡產(chǎn)品時,片面的強調價格和操作速度,而忽略安全性。某些國內廠商為了爭奪市場份額,降低成本,在芯片選擇上不考慮產(chǎn)品的安全性,采用沒有DPA和SPA安全防范的芯片,在操作系統(tǒng)的設計上,為了減少操作系統(tǒng)的容量(ROM空間的大小將影響智能卡的成本),也未增加任何DPA和SPA防范技術。國內市場出現(xiàn)了一個奇怪的現(xiàn)象,一些使用舊的型號芯片的智能卡的運行速度,比采用最新型號的芯片的運行速度要快很多,其原因就是有經(jīng)驗的智能卡供應商在操作系統(tǒng)中增加了安全防范。 由于我國目前磁條金融假卡案件的發(fā)生率與歐洲和北美市場相比相對較低。這是由于國內僅發(fā)行了一小部分的貸記卡,大量還是需要聯(lián)機操作的借記卡,同時由于各種原因,國內使用金融卡的環(huán)境尚未完善,真正卡片交易遠遠低于與持卡人數(shù)量。因此在金融領域對于卡片的安全性觀念比較淡薄,很多發(fā)卡行業(yè)在發(fā)行金融智能卡過程中總是抱著僥幸心理,強調在國內市場,并未發(fā)生通過智能卡被攻破卡片的案例。 由于我國發(fā)行的金融智能卡大部分是在脫機環(huán)境下使用,因此對于安全性應有更高的要求,雖然系統(tǒng)的安全性不僅僅依賴于卡片的安全性,但是其重要性是不可忽視的。從某種意義上講,這是如同一場競賽;對于黑客的攻擊,我們應永遠擁有超前的防御措施?!白詈玫姆烙褪遣粩噙M步,不斷更新”。 附錄: 1.什么是DPA微分能量分析 微分能量分析DPA是一種新型的對智能卡以及其它安全加密設備的攻擊技術。它由CryprographyResearch公司的研究人員發(fā)現(xiàn)。 圖1 顯示一個完整DES操作的SPA軌跡 它利用了當今智能卡和其他加密設備的底層晶體管邏輯門電路以及所運行軟件的特性,通過監(jiān)視該設備的電子行為,并使用先進的數(shù)據(jù)統(tǒng)計分析手段,來得到該設備的保密信息(如密鑰和用戶的個人PIN碼)。 2.DPA能量分析的物理機制 集成電路由各種晶體管構成,這些晶體管起電壓控制開關的作用。當向晶體管的柵極通電或斷電時,電流將流過晶體管的基極。接下來,該電流將向其它晶體管的柵極、內部導線和其它電路負載傳送電荷。電荷的運動將消耗能量,并產(chǎn)生電磁輻射,這兩者均可從外部監(jiān)測到。 為了測量一個電路的功耗,在電源輸入端或接地端插入一個串聯(lián)的小電阻(如50歐)。通過此電阻所分出的壓降將會產(chǎn)生電流。裝備良好的電子試驗室中都備有能夠對電壓變化進行數(shù)字化抽樣的設備,而且抽樣頻率可以超過1GHz、精確誤差小于1%。購買一個能夠以20MHz或更快的頻率抽樣,并向PC傳送相應數(shù)據(jù)的設備所需要的開支低于400美元。 因此,各種晶體管都將產(chǎn)生從外部能夠觀測到的電子行為。由于微處理器的邏輯單元展示的是常規(guī)晶體管的開關模式,所以SPA攻擊通過對能量消耗的簡單監(jiān)視,能夠很容易地識別微處理器的運行行為的宏特征。DPA攻擊則對這些數(shù)據(jù)執(zhí)行更加復雜的解釋工作。 3.SPA簡單能量分析攻擊技術 在SPA攻擊中,攻擊者直接觀察一個系統(tǒng)的能量消耗。所消耗能量的大小隨微處理器執(zhí)行的指令不同而不同。由于微處理器在對DES周期、RSA運算等的不同部分執(zhí)行運算時,變化很明顯,故它們大的特征將可能被識別。在較高的放大倍數(shù)下,單條指令將能夠被區(qū)分開來。例如,通過揭示乘法運算與平方運算之間的差異,SPA分析將能夠用于攻破RSA的實現(xiàn)方法。類似地,許多DES算法實現(xiàn)中的置換和移位過程有明顯的差異(例如,PC1置換或C和D寄存器的循環(huán)移位),因此也可用SPA來攻破。 由于SPA能夠揭示執(zhí)行指令的序列,故它可被用來破解加密的實現(xiàn)過程,而在加密過程當中,執(zhí)行路徑依賴于所處理的數(shù)據(jù)。 4.SPA攻擊技術分析DES加密過程示意圖圖1顯示了一個典型的智能卡在執(zhí)行一個DES操作時,產(chǎn)生的SPA軌跡。從圖中可以清晰地看到DES運算過程中的16周期疊代。 圖2是顯示在一個DES加密操作期間,相同軌跡的第二周期疊代和第三周期疊代的細節(jié)圖。此時可以看清DES操作的許多細節(jié)。例如,28位的DES密鑰寄存器C和D在第二周期疊代中循環(huán)了一次(左箭頭),在第三周期疊代中循環(huán)了兩次(右箭頭)。在圖2中各周期之間的微小差異正好能夠被查覺。許多這些可識別的特征是SPA所攻擊的缺陷,而這些缺陷是由基于密鑰數(shù)位和計算媒介的條件轉移所產(chǎn)生的。 圖3則以更高的分辨率來顯示通過兩個區(qū)的、能量消耗的軌跡示圖,這兩個區(qū)都包含了7個時鐘周期,其頻率為3.5714MHz。各個時鐘周期之間的可見差異主要是因不同的微處理器指令所消耗的能量不同而造成的。圖3中位于上方的軌跡表明了通過SPA法測得的包含一個跳轉指令的指令流執(zhí)行過程,而位于下方的軌跡則表明了不包括跳轉指令的情形。兩者在時鐘周期6處有差異,這一點可以清楚地看到。 5.防止SPA攻擊的措施 防止簡易能量分析SPA的技術通常都易于實現(xiàn): ?。苊獬绦虻臈l件轉移操作使用密鑰,這將掩蓋許多SPA特征。 *一些微處理器內的微碼也會產(chǎn)生大的與操作數(shù)相關的能量消耗特征。對這些系統(tǒng)而言,即使是恒定的執(zhí)行路徑代碼也有嚴重的SPA缺陷。 圖2 DES第二周期疊代和第三周期疊代的SPA軌跡 圖3 顯示各個時鐘周期的SPA軌跡 ?。蠖鄶?shù)(并非全部)采取對稱加密算法的、硬性連接(hard-wired)的硬件實現(xiàn)有極小的能量消耗差異,從而使得SPA無法獲取密鑰資料。 6.DPA與SPA比較 DPA的攻擊力要比SPA強大得多,而且更加難以預防。SPA攻擊主要利用可見的檢測來識別有關的能量波動,而DPA攻擊則還需使用統(tǒng)計分析和誤差修正技術,來提取與密鑰有關的信息。 執(zhí)行一次DPA攻擊包括兩個階段:數(shù)據(jù)采集與數(shù)據(jù)分析。DPA的數(shù)據(jù)采集可以采取與SPA一樣,即在加密運算期間對設備的能量消耗進行采樣,得到一個對時間的函數(shù)。對DPA而言,一系列使用欲破譯密鑰的加密運算均可被觀察到。 通常情況下,直接觀察一個設備的能量消耗不可能識別出一個晶體管開關的作用,但是在DPA中使用的統(tǒng)計運算能夠可靠地識別出能量消耗中的特別微小的差異。 7.DES運算的能量微分分析 除了指令序列產(chǎn)生的大量能量差異之外,還有與所操作的數(shù)據(jù)值相關的影響。這些差異要小得多,而且往往被當作測量誤差和其它干擾而忽略。在這種情形下,使用專門為目標算法而量身定制的統(tǒng)計函數(shù),就仍可能攻破系統(tǒng)。 由于數(shù)據(jù)加密標準DES被廣泛采用,下文對它作仔細分析。在其疊代的16個周期的每一個當中,DES加密算法都執(zhí)行8個S盒(替換盒)的查找運算。8個S盒中的每一個都提取輸入密鑰的6個比特位,與R寄存器中的6個比特位進行異或運算,并產(chǎn)生4位的輸出。32個S輸出位被重新記錄,并與L寄存器作異或運算。接著,L與R將進行對互換。 DPA的選擇函數(shù)D(C,b,Ks)被定義為在密文C運算的第16個周期開始時,對DES中間結果L的、位于0 為實現(xiàn)DPA攻擊,攻擊者先將觀察m次加密運算,并獲取能量軌跡T1...m[1...k],每個軌跡均含有k個抽樣。此外攻擊者還記錄有密文C1...m。而任何明文信息都無需得知。 DPA分析利用能量消耗測定法來確定對一個密鑰塊的猜測Ks是否正確。攻擊者通過發(fā)現(xiàn)D(C,b,Ks)為1時的軌跡平均值與D(C,b,Ks)為0時的軌跡平均值的不同,來算出一個含k個抽樣的微分軌跡ΔD[1...k]。這樣ΔD[j]就成了C1...m的平均值,原因是該值由能量消耗測量點j的選擇函數(shù)D所表示。尤其是, 如果Ks的值不正確,用D求得的位將與實際的目標位存在著相當于密碼CI一半的差異。因此選擇函數(shù)D(Ci,b,Ks)將無法與目標設備所計算的實際內容相對應。如果使用一個隨機函數(shù)來把一組拆分成兩個子組,子組的平均值的差異將趨于0,因為子組的大小趨于無窮小。因此,如果Ks不正確, 因為與D不對應的軌跡成分將按m平方根的倒數(shù)的形式被消除,從而使得微分軌跡趨于平直。(實際的軌跡有可能并不是完全平直的,因為帶有不正確的Ks的D總是與帶有正確的Ks的D有細微的關聯(lián)。) 圖4 DPA軌跡(一個正確,兩個不正確,帶參照功率) 但是,如果Ks是正確的,則D(Ci,b,Ks)的計算值將以100%的概率與目標位b的實際值相等。因此選擇函數(shù)將與第16個周期中的被操作位的位相對應。其結果是當m趨于無窮時,ΔD[j]逼近于目標位在能量消耗方面的影響。其它與D無關聯(lián)的數(shù)據(jù)值、測量誤差等將趨近于0。由于能量消耗與數(shù)據(jù)位的值相關聯(lián),ΔD的曲線形狀是平直帶有尖峰,尖峰區(qū)域對應于D與所處理的數(shù)值相關聯(lián)。 因此將可從微分軌跡的峰值來判定Ks的正確值。與每個S盒相對應的4個b值,將用于確認對密鑰塊的猜測。找到全部8個Ks,將會獲得周期密鑰的全部48位。使用窮舉查找法或通過分析一個附加周期,可以很容易地發(fā)現(xiàn)剩下的8個密鑰位。通過首先對一個外部DES運算進行分析,并利用求得的密鑰來破譯密文,然后再來攻擊下一個DES密鑰的方式,也可以找到3DES加密的密鑰。DPA能夠使用已知的明文或密文,來發(fā)現(xiàn)加密密鑰或解密密鑰。 8.DPA分析技術攻擊智能卡示意圖 圖4表明輸入已知的明文到另外一張智能卡的加密函數(shù),所得到的4個軌跡曲線。在頂端的曲線是參照線,標明了DES運算期間能量消耗的平均值。在下面的是3個微分軌跡,其中第一個是使用猜測正確的Ks值所產(chǎn)生的。而最下面的2個則是使用不正確的Ks值所產(chǎn)生的軌跡。這些軌跡都是用1000個抽樣(m=103)得到的。雖然在微分軌跡上可以清楚地看到信號,但是仍有相當強度的干擾噪聲。 圖5標明了單個二進制位對能量消耗測定值細節(jié)的平均影響。頂端的是參照用的能量消耗軌跡。中間的軌跡是能量消耗測定中的標準偏差。最下面的是一個用m=104采樣的微分軌跡。注意,與該二進制位不相關區(qū)域的幅度接近于零的程度,要比相關區(qū)域的大一個量級,這也表明還有小的干擾或誤差的存在。 DPA特征的大小約為40(A,比其同點處所觀察到的標準偏差要小幾倍。在時鐘周期6內,標準偏差的增加與一個大的特征相對應,這表明操作數(shù)的值對該指令的能量消耗有很顯著的影響,同時也表明正被操作的操作數(shù)值有相當大的變化。由于低級指令常常操作幾個二進制位,一個選擇函數(shù)就能夠同時選擇多個二進制位的值。導致DPA的特征趨于包含較大的峰值,但不一定有更好的信噪比,因為只有極少的抽樣包括在平均值內。 9.DPA測量中的噪聲源 圖5 定量DPA測量 有幾種干擾源向DPA測量中引入噪聲,其中包括電磁輻射和熱噪聲。因設備時鐘與抽樣時鐘不匹配而導致的量化誤差會造成附加誤差。最后,軌跡的未經(jīng)修正的暫時偏移也會向測量中引入大量的噪聲。 10.DPA的改進 在數(shù)據(jù)采集和DPA分析過程中可采用幾種改進方法,以減少所需的抽樣數(shù)或防止反測量。例如,修正測量偏差將有助于突出變化的重要性,而不是它們的幅度。這種方法的變種之一,即自動模板DPA,能夠用少于15個的軌跡從大多數(shù)智能卡中找出DES密鑰。 更復雜的選擇函數(shù)也有可能使用到。尤其值得一提的是高階DPA函數(shù),它能夠把來自一個軌跡的多個抽樣結合起來。選擇函數(shù)可以用不同的軌跡分配不同的權數(shù),或把軌跡分成兩個以上的類別。這樣的選擇函數(shù)能夠擊敗許多反測量,或者攻擊那些無法獲得部分或者全部的明文或密文信息的系統(tǒng)。對于具有非常規(guī)統(tǒng)計分布特征的數(shù)據(jù)組而言,使用函數(shù)而不是普通的平均值來進行數(shù)據(jù)分析是非常有用的。 11.DPA對其它算法的分析 利用DPA把公共密鑰算法的可能的計算中間值與能量消耗測定值進行關聯(lián),也能夠分析公共密鑰算法。對模數(shù)的求冪運算而言,通過對預測的中間值與實際的計算值是否相關進行測試,就可能對指數(shù)位的猜測進行驗證。例如通過定義CRT衰減或重組過程的選擇函數(shù),也可以對中國的余數(shù)法則RSA的實現(xiàn)進行分析。 通常,非對稱運算所泄露的信號要比許多對稱運算所泄露的信號強得多。原因之一是乘法運算的計算復雜性要相對高一些。其后果是實現(xiàn)有效的SPA和DPA反測量非常難。 DPA能夠用于攻破幾乎任何對稱或非對稱算法的實現(xiàn)。甚至可以通過使用DPA數(shù)據(jù),對未知算法和協(xié)議實施反向工程技術,來測試對一個設備計算過程的假設的正確性。 12.高階DPA(HO-DPA) DPA技術對抽樣間的單個事件進行信息分析,而高階DPA則能夠用來對多個加密子運算之間的信息進行關聯(lián)。進行DPA攻擊的初級嘗試能夠引入到HO-DPA攻擊中或去除HO-DPA的弱點。 在高階DPA攻擊中,從多個信息源收集來的信號、使用不同測量技術所收集來的信號和帶有各種臨時偏差的信號,將會在實施DPA技術期間被綜合起來。另外,可能會采用更普遍的微分函數(shù)(D)。更加高級的信號處理函數(shù)也可能被采用。因此,基本的HO-DPA處理函數(shù)將采取一個比標準的DPA函數(shù)更普遍的形式。 現(xiàn)今,由于并不知道有何種實際的系統(tǒng)易受HO-DPA的攻擊,而該系統(tǒng)卻不易受DPA的攻擊,故HO-DPA主要令系統(tǒng)實施者和研究人員感興趣。但是制定DPA的對策時也必須承認,HO-DPA式的攻擊是有效的。 13.實現(xiàn)DPA攻擊的難易程度 盡管DPA分析需要相關人員具有多個領域的高深知識,但實施DPA攻擊只需使用價值數(shù)千美元的標準儀器,攻破一個加密設備,如一張智能卡,只需幾個小時甚至更少的時間。而且,當加密設備的特征確定后,DPA攻擊可以自動實現(xiàn)。 14.什么產(chǎn)品易受DPA攻擊 DPA雖然可用于攻擊運行加密軟件的PC機(通過PC機的電磁輻射),但其主要用于攻擊硬件加密產(chǎn)品。現(xiàn)在廣泛使用的智能卡由于其尺寸小、缺少屏蔽,尤其易受DPA攻擊。 15.DPA攻擊的限制 DPA攻擊需要將特殊的硬件儀器連到加密設備,或至少物理距離上接近。所以DPA對于基于網(wǎng)絡的安全應用來說,不構成威脅。 智能卡只有在它們處于操作狀態(tài),及進行交易時,才會有受DPA攻擊的危險。當卡片放在用戶的錢包或皮夾中時,它們是安全的。不將傳感器接近操作中的卡片,而收集DPA攻擊所需的信息是很困難的。所以,DPA技術不能在持卡者不知道的前提下,用于克隆智能卡。 16.DPA攻擊的加密設備的弱點 傳統(tǒng)的加密系統(tǒng)的設計者往往將其注意力集中在系統(tǒng)設計的單個層次上,而忽略了不同層次間的相互作用。DPA攻擊建立在對整個系統(tǒng)的各個層次作仔細深入分析的基礎上,包括底層硬件、協(xié)議、加密算法、軟件、管理政策等,攻擊的弱點來自晶體管和電路的電子行為,這些行為的傳播將暴露邏輯門、微處理器的運算和軟件的運行。 17.防止DPA及相關攻擊技術按不同層次分類 ?。w管:現(xiàn)今,沒有什么切實可行的東西能夠替代半導體,但是將來可能會有替代的計算技術(如全光計算)。CryptographyResaerch公司現(xiàn)已開發(fā)出柵極邏輯設計方法,這種方法泄露的信息極其微量。 *電路、邏輯元件、微處理器和軟件:在大型系統(tǒng)中,精心濾波的電源和物理屏蔽的方法能夠令攻擊無法實現(xiàn)。對于受設備或成本限制的系統(tǒng),CryptographyResaerch公司已開發(fā)出軟件和硬件技術,其中包括減少泄露的信息量、向測量中引入干擾噪聲、使內部變量與秘密參數(shù)不關聯(lián)以及使加密運算臨時不關聯(lián)的方法等。在實際應用中,當攻擊者不能在物理上擁有正在執(zhí)行加密運算的設備時,這樣的技術是有效的。但是,由于外部能夠監(jiān)視到的特征還與加密運算保持本質關聯(lián),對于當攻擊者在物理上實際擁有設備時,我們并不推薦上述方法作為全部的解決方案。 ?。浖退惴ǎ鹤钣行У慕鉀Q方法是設計并運行帶有下述假定的加密系統(tǒng),即假定信息將會泄露。CryptographyResaerch公司現(xiàn)已開發(fā)出確保現(xiàn)有加密算法(包括RSA,DES,DSA,Diffie-Hellman,ElGamal和橢圓曲線系統(tǒng))安全的方法,從而盡管在底層電路可能泄露信息的情況下,仍使系統(tǒng)保持安全。在物理硬件泄露過多的情況下,也需要使用泄露衰減和屏蔽技術(有關的專門技術將在近期提供)。 18.對抗DPA攻擊的方法 思路: 減少加密設備泄露的信息;將安全加密算法建立在假設硬件會泄露信息的基礎上。 措施: ?。谝环N方法是減小信號的大小。如使用恒定的執(zhí)行路徑代碼、選擇在能量消耗上泄露信息較少的運算、平衡層次存取的權數(shù)及狀態(tài)轉換,以及對設備進行物理屏蔽等。然而這樣的減少信號的方式常常不能把信號的大小減成0。因為一個攻擊者仍然能用大量的抽樣,對信號(即使已經(jīng)極其微弱)執(zhí)行DPA。實際上,強有力的屏蔽使攻擊不可行,但卻顯著地增加了設備的成本和大小。 ?。诙N方法是向能量消耗測量中引入干擾噪聲。同減小信號大小一樣,添加干擾噪聲將會增加一個攻擊所需的抽樣數(shù)量,有可能是一個無法實現(xiàn)的數(shù)量。另外,執(zhí)行時間和順序也可以隨機化。但是由于許多技術能夠用來繞過或補償上述作用,設計者和審核者必須極其謹慎地處理暫時的困惑。幾個易受攻擊的產(chǎn)品已通過了那些使用天真的數(shù)據(jù)處理方法的審核。為了安全起見,應可能在復核和認證測試期間,讓暫時性困惑的方法無效。 *第三種方法涉及到設計加密系統(tǒng),而且此類系統(tǒng)帶有關于底層硬件的真實假定??梢允褂梅蔷€性密鑰升級程序,來確保交易之間的能量軌跡無法關聯(lián)。舉一個簡單的例子,用SHA來散列一個160位的密鑰,將會有效地破壞一個攻擊者可能收集到的密鑰的部分信息。同樣,在公共密鑰方案中大量使用指數(shù)和模數(shù)更改過程,也能夠用來防止攻擊者從大量的運算中收集數(shù)據(jù)。密鑰使用計數(shù)器將能防止攻擊者收集大量的抽樣。 使用具有泄露容忍度的設計方法時,加密系統(tǒng)的設計者必須確定加密能夠生效時所對應的泄露率和函數(shù)。泄露函數(shù)可以同外部信息源一樣被分析,提供與計算過程和數(shù)據(jù)有關的信息,在此泄露率是指泄露函數(shù)所提供的信息量的上限。由此實施者能夠按需要來利用泄露衰減和泄露掩蓋技術,以滿足特定參數(shù)的需求。最后復核后必須核查設計的假定是否正確并與整套設備的物理特性相對應。 19.其它的攻擊技術 對于通過一個總線來傳遞密鑰或秘密媒介的設備而言,電磁輻射是一個極其嚴重的問題。即便是一個簡單的調幅收音機也能從許多加密設備中檢測到強大的信號。大量其他的信號測定技術(如超導量子成像設備)也證實了此事實。 與SPA和DPA相關的統(tǒng)計方法可用來在有干擾噪聲存在的數(shù)據(jù)中發(fā)現(xiàn)信號。 其它一些可提供與加密操作相關信息的監(jiān)測技術,也能用于對加密系統(tǒng)進行攻擊。 20.結論 由于有大量的易受攻擊的加密產(chǎn)品在廣泛使用中,能量分析技術引起了極大的關注。該攻擊易于實施、成本低,并且是非入侵式的,這使得攻擊難以被檢測到。由于DPA自動地定位一個與設備的能量消耗相關聯(lián)的區(qū)域,故攻擊將可能被自動化,而且需要很少甚至不需要所攻擊目標實現(xiàn)的信息。最后,上述攻擊并非理論上的或局限于智能卡方面。CryptographyResearch公司在實驗室里,使用能量分析技術從差不多50種具有截然不同物理形式的加密產(chǎn)品中,提取出了密鑰。 對DPA唯一可靠的解決方案是,對設計的加密系統(tǒng)的底層硬件作真實假定。DPA突出了對有關人員的要求,即算法、協(xié)議、軟件和硬件的設計者在生產(chǎn)安全產(chǎn)品時,應更加密切地合作。 (相關圖片稍后上傳)
/B智能卡/技術文庫/金融智能卡安全不容忽視.files/zl10.gif) 圖2 DES第二周期疊代和第三周期疊代的SPA軌跡
/B智能卡/技術文庫/金融智能卡安全不容忽視.files/zl11.gif) 圖3 顯示各個時鐘周期的SPA軌跡
/B智能卡/技術文庫/金融智能卡安全不容忽視.files/tk6.gif)
/B智能卡/技術文庫/金融智能卡安全不容忽視.files/tk7.gif)
/B智能卡/技術文庫/金融智能卡安全不容忽視.files/zl12.gif)
圖4 DPA軌跡(一個正確,兩個不正確,帶參數(shù)功率)
/B智能卡/技術文庫/金融智能卡安全不容忽視.files/zl13.gif) 圖5 定量DPA測量
|