IC卡的安全性技術(shù)及其數(shù)字簽名技術(shù)分析
文章出處:http://xianjuhong.com 作者:楊風(fēng)暴 劉 星 人氣: 發(fā)表時(shí)間:2011年10月08日
IC 卡俗稱智能卡,是將具有微處理器(CPU) 或大容量存儲(chǔ)器的集成電路( Integrated Circuit s) 芯片嵌裝于塑料等基片上而制成的。同磁卡等其它卡相比具有安全性高、大容量、抗干擾、讀寫方便等優(yōu)點(diǎn)。其中安全性是IC 卡生存的基礎(chǔ),也是它作為信用卡、信息卡、現(xiàn)金卡等得到廣泛應(yīng)用的主要原因之一。本文從硬、軟件兩個(gè)角度對(duì)IC 卡的安全性技術(shù)進(jìn)行分析,并且對(duì)其中的數(shù)字簽名技術(shù)進(jìn)行了著重探討。
1 IC 卡的安全性技術(shù)
IC 卡的安全性是其生存和發(fā)展的基礎(chǔ),也是IC卡的重要特征。IC 卡的安全性必須是保證其所存儲(chǔ)信息的安全,否則IC 卡將無(wú)法廣泛應(yīng)用。
IC 卡的安全性技術(shù)就是針對(duì)信息的安全性而采取的措施。通常IC 卡的安全性技術(shù)可以分為硬件安全性技術(shù)和軟件安全性技術(shù)。信息的安全性一般從三個(gè)方面考慮:機(jī)密性,防止未授權(quán)的獲取;完整性,防止未授權(quán)的更改、增刪;可獲取性:防止未授權(quán)的截流。采用IC 卡安全性技術(shù)應(yīng)遵循兩個(gè)原則:
①使最終應(yīng)用的IC 卡具有較高的性能價(jià)格比。
②偽造和非法使用IC 卡的費(fèi)用遠(yuǎn)大于從中獲取的利益。
1. 1 IC卡的硬件安全性技術(shù)
IC 卡的硬件安全性技術(shù)又可分為IC 卡用芯片的安全性技術(shù)和IC 卡卡片制造的安全性技術(shù)。
1. 1. 1 IC 卡用芯片的安全性技術(shù)
IC卡用芯片是IC卡的核心部分,其安全性是IC卡的安全性基礎(chǔ)。在芯片的設(shè)計(jì)階段使用完善的保護(hù)措施非常重要。這主要是防止對(duì)IC 卡可能的物理攻擊(探測(cè)) 。一般典型的物理攻擊有通過(guò)掃描電子顯微鏡對(duì)存儲(chǔ)器進(jìn)行分析讀寫、通過(guò)測(cè)試探頭讀取存儲(chǔ)器內(nèi)容、通過(guò)廠家測(cè)試點(diǎn)直接對(duì)存儲(chǔ)器或處理器操作等?;谝陨戏治? IC 卡用芯片的安全性要從物理上防止非法讀寫,使其遭受到的攻擊可能性降至最小。采取的方法一般有:
①使測(cè)試功能不再被激活。測(cè)試功能是芯片制造商提供的對(duì)IC 卡用芯片進(jìn)行全面檢測(cè)的功能。這一功能對(duì)IC 卡具有較大操作性,因而利用燒斷熔絲,可使測(cè)試功能不再被激活。
②存儲(chǔ)器的邏輯保護(hù)。在IC 卡用芯片內(nèi)部設(shè)計(jì)時(shí),可以設(shè)保護(hù)存儲(chǔ)器、安全存儲(chǔ)器,使主存儲(chǔ)器的內(nèi)容受到保護(hù)。如西門子公司生產(chǎn)的IC 卡用芯片SL E4442 ,其存儲(chǔ)器如圖1 所示。
通過(guò)在保護(hù)存儲(chǔ)器中寫入與主存儲(chǔ)器中前32 位相同的位,使這32 個(gè)字節(jié)被不可逆地保護(hù)起來(lái)。安全存儲(chǔ)器具有4 個(gè)字節(jié)。前3 個(gè)字節(jié)為參考數(shù)據(jù)和最后一個(gè)字節(jié)是錯(cuò)誤計(jì)數(shù)器,只有驗(yàn)證數(shù)據(jù)與參考數(shù)據(jù)相同,方可對(duì)主存儲(chǔ)器讀寫,否則3次驗(yàn)證不成功,錯(cuò)誤計(jì)數(shù)器將阻止以后的任何讀寫。其它方法還有協(xié)處理器提供加密運(yùn)算、總線和存儲(chǔ)器設(shè)置物理保護(hù)層、高低電壓檢測(cè)、低時(shí)鐘工作頻率檢測(cè)等。
圖1 SL E4442 芯片的存儲(chǔ)器
1. 1. 2 IC 卡卡片制造的安全性技術(shù)
IC 卡的制造上也有很多安全保護(hù)方法,例如,安全背景結(jié)構(gòu):與銀行紙幣和發(fā)票上的回紋相似;微線條技術(shù):可讀不可復(fù)制,激光雕刻簽名;熒光安全圖象:激光圖片,圖象制作難,在紫外線下可見(jiàn);激光雕刻可觸摸向量字符;完全嵌入卡內(nèi),偽造圖片將永久毀壞卡片等等。
1. 2 IC卡軟件安全性技術(shù)
除了上面的IC 卡硬件保護(hù)措施,在IC 卡的軟件方面也應(yīng)提供相應(yīng)的安全措施。通常有兩方面的軟件保護(hù)措施: IC 卡和終端設(shè)備通信的加密解密技術(shù)、IC卡和終端設(shè)備通信信息的認(rèn)證技術(shù)。
1. 2. 1 IC 卡與終端設(shè)備通信的加密解密技術(shù)
在接口設(shè)備( IFD) 和IC 卡( ICC) 之間的信息交換是命令~響應(yīng)的順序結(jié)構(gòu)。多數(shù)情況下,接口設(shè)備或應(yīng)用終端如PC 機(jī)、工作站、服務(wù)器產(chǎn)生命令或執(zhí)行順序, IC 卡響應(yīng)不同的命令,如此在IFD 和ICC 之間傳輸信息的安全性必須得到保障,防止截獲。IC 卡操作系統(tǒng)(對(duì)含CPU 的芯片而言) 對(duì)此采用加密和隱含傳輸?shù)姆椒?將待送的命令、響應(yīng)序列進(jìn)行加密處理之后再傳輸。適宜IC 卡的加密算法一般有DES、FEAL 算法。
1. 2. 2 IC 卡與終端設(shè)備通信信息的認(rèn)證技術(shù)
IC 卡的認(rèn)證技術(shù)與存儲(chǔ)器的分層結(jié)構(gòu)有密切聯(lián)系。IC 卡存儲(chǔ)器分4 層:存儲(chǔ)器整體、文件、區(qū)、記錄,且每一層理論上均可加鎖,以防止對(duì)其內(nèi)部信息的非法讀寫。一般不設(shè)記錄鎖,如圖2 所示。下面分別討論存儲(chǔ)器鎖、文件鎖、區(qū)鎖采用的各種安全性技術(shù):個(gè)人認(rèn)證技術(shù)、相互認(rèn)證技術(shù)、消息認(rèn)證技術(shù)。
圖2 IC卡的鎖與存儲(chǔ)器分層結(jié)構(gòu)
①個(gè)人認(rèn)證技術(shù)存儲(chǔ)器鎖對(duì)IC 卡上的所有存儲(chǔ)器的安全負(fù)責(zé),為了判斷持卡人和接收卡的終端的合法性,需在IC卡的發(fā)行階段將持卡者的個(gè)人信息裝入卡中,一般使用PIN 個(gè)人標(biāo)識(shí)碼。用卡時(shí),從終端機(jī)向卡傳送個(gè)人信息,IC 卡在其內(nèi)部進(jìn)行比較核對(duì),一致即開(kāi)鎖。
圖3 IC卡的校驗(yàn)規(guī)程
由于PIN 可能被遺忘或被別人竊知,許多個(gè)人認(rèn)證技術(shù)被用于IC卡,諸如指紋、筆跡、聲音識(shí)別和視網(wǎng)膜掃描等用來(lái)代替PIN ,如法國(guó)的相片認(rèn)證系統(tǒng)、日本的指紋認(rèn)證系統(tǒng)。不同的認(rèn)證技術(shù)所需要的存儲(chǔ)空間不同,如筆跡需10 至20 個(gè)字節(jié),指紋需300 至800 個(gè)字節(jié)。
②相互認(rèn)證技術(shù)
文件存于各個(gè)應(yīng)用當(dāng)中,若要打開(kāi)文件鎖就應(yīng)確認(rèn)IC 卡的通信對(duì)象是否應(yīng)用提供者認(rèn)可的合法裝置,反之,后者也要確認(rèn)前者。即通信雙方要進(jìn)行相互確認(rèn)對(duì)方的認(rèn)證。相互認(rèn)證根據(jù)一定長(zhǎng)度的、不易被破譯的比特序列進(jìn)行,這種比特序列在線路上傳輸和交換。相互認(rèn)證的規(guī)程見(jiàn)圖4 。首先由IC 卡發(fā)送卡的明碼,接著相互交換隨機(jī)數(shù)(雙方的隨機(jī)數(shù)不同) ;然后對(duì)函數(shù)輸入卡的明碼ID 和隨機(jī)數(shù)以相互持有的認(rèn)證函數(shù)加密,交換結(jié)果;最后將自己求出的結(jié)果與對(duì)方的運(yùn)算核對(duì),認(rèn)證函數(shù)f 采用加密算法,且無(wú)需解密過(guò)程。
圖4 相互認(rèn)證技術(shù)的規(guī)程
③消息認(rèn)證技術(shù)區(qū)鎖有一種就是消息認(rèn)證的鎖,其概念由圖5 說(shuō)明。發(fā)送端發(fā)送消息和由消息求得的認(rèn)證子,接收端( IC 卡) 根據(jù)消息計(jì)算認(rèn)證子并和發(fā)送來(lái)的認(rèn)證子核對(duì)。函數(shù)g 采用加密算法。
圖5 消息認(rèn)證的概念
2 數(shù)字簽名技術(shù)
2. 1 數(shù)字簽名的概念及特性
從前面的認(rèn)證技術(shù)可以看出,認(rèn)證技術(shù)對(duì)于非法讀寫、更改具有重要的防止作用。嚴(yán)格講來(lái),已認(rèn)證后的雙方可以進(jìn)行通信,但I(xiàn)C 卡不能證明對(duì)方是否規(guī)定的裝置發(fā)送地。比如甲、乙認(rèn)證后,甲可以對(duì)乙讀寫,可是甲并未對(duì)乙讀寫,卻有一個(gè)非法信號(hào)使乙內(nèi)信息發(fā)生變化,而乙這時(shí)仍認(rèn)為是甲的操作。當(dāng)然問(wèn)題不僅如此。因而,人們想到了現(xiàn)實(shí)生活中的簽名行為,將
簽名的特點(diǎn)引入安全性技術(shù),從而產(chǎn)生了數(shù)字簽名技術(shù)。
數(shù)字簽名是指相當(dāng)于現(xiàn)實(shí)生活中簽名的、不可偽造的、用于證明消息發(fā)送端的比特序列。它有三個(gè)特性:第三者不能偽造、接受端不能偽造、發(fā)送端不能否認(rèn)本身發(fā)送的事實(shí)。由此可以看出數(shù)字簽名技術(shù)的安全性和防偽性是其它安全性技術(shù)不可企求的。
2. 2 采用公鑰體制的數(shù)字簽名技術(shù)
公鑰體制是由Diffie 和Hellman 于1976 年提出來(lái)的允許公開(kāi)加密密鑰的一種體制。發(fā)送端利用公鑰對(duì)消息加密,接受端利用私鑰進(jìn)行解密。這里的公鑰是指公開(kāi)的加密解密方法;私鑰是指保密的不公開(kāi)的加密解密方法。數(shù)字簽名技術(shù)與公鑰體制相反,利用私鑰簽名,利用公鑰將簽名信息還原。過(guò)程如下:
發(fā)方A 用私鑰Ksa 對(duì)信息M 進(jìn)行簽名:
N = Ksa ( M )
收方B 利用公鑰Kg 將簽名信息還原
M = Kg ( N )
A 用私鑰加密后形成的簽名,任何其它人都無(wú)法產(chǎn)生或篡改,且發(fā)方也無(wú)法否認(rèn)。若第三者進(jìn)行更改,因無(wú)Ksa 而無(wú)法為篡改的信息簽名,這樣篡改后的信息便沒(méi)有了法律效力。
這里有一個(gè)問(wèn)題,簽名信息Ksa ( M ) 在傳輸中無(wú)密可保,任何人可用公鑰Kg 對(duì)其還原。為此可以對(duì)Ksa ( M ) 進(jìn)行加密后傳輸。這樣,加密和簽名組合來(lái)就更安全了,見(jiàn)圖6 。
圖6 采用公鑰體制的數(shù)字簽名
其中Ksa :用戶A 的私鑰
Kga :用戶A 的公鑰
Ksb :用戶B 的私鑰
Kgb :用戶B 的公鑰
發(fā)方A 用Ksa 對(duì)信息簽名得
N’= Ksa ( M )
發(fā)方A 用B 的公鑰Kgb 對(duì)簽名N ’加密
N = Kgb ( N ’)
收方B 用Ksb 對(duì)加密后的簽名解密
N’= Ksb ( N )
收方B 用A 的公鑰Kga 將簽名信息還原
M = Kga ( N’)
上面的數(shù)字簽名過(guò)程仍有缺陷:如當(dāng)B 方收到A方傳送的指令報(bào)文并用Ksb 解密得Ksa ( M ) ,再用C方的公鑰加密得Kgc ( Ksa ( M ) ) 發(fā)送給C 方,這樣C誤認(rèn)為是A 給它下了指令,即B 冒充了A 將指令發(fā) 送給C 。若將Ksa 與Kgb , Ksb 與Kga 的順序各自互換便可彌補(bǔ)這個(gè)缺陷。
3 結(jié)束語(yǔ)
IC 卡的安全性技術(shù)對(duì)用戶來(lái)講主要是軟件安全性技術(shù),軟件安全性技術(shù)的核心是信息的加密解密技術(shù)。研究IC 卡的安全性主要從IC 卡本身與其終端的相互認(rèn)證、IC 卡與終端通信的加密解密技術(shù)、數(shù)字簽名技術(shù)等三方面進(jìn)行。由于采用公鑰體制的算法還不多,數(shù)字簽名技術(shù)受到公鑰算法的影響。