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