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