IC卡技術(shù)已經(jīng)廣泛應(yīng)用于金融、保險、社會保障、身份識別等領(lǐng)域。她以她存儲容量大,安全性能好,攜帶方便等特點,得到廣大行業(yè)的普遍認(rèn)同。
一 IC卡應(yīng)用從技術(shù)角度來講分三個層次:硬件層、技術(shù)層和應(yīng)用層。
1 硬件層分兩個方面:
1) IC卡芯片及卡的制作。IC卡芯片目前主要有國外愛爾梅特、西門子等幾家公司生產(chǎn)。IC卡片的制作是把IC芯片封裝成為一張張各式各樣的卡片,這樣的公司國內(nèi)很多。
2) 另一方面為IC卡讀寫器.IC卡讀寫器糞通用與專用兩種:通用讀寫器為一臺單獨的裝置,可以用來讀取不同型號的IC卡。專用讀寫器通常嵌入專用儀器中,例如:IC卡電話機(jī),IC卡電表等,一般只能讀取某種特定IC卡。對于上述行業(yè)中,IC卡讀寫器一般采用通用讀寫器,生產(chǎn)這種IC卡讀寫器公司,國內(nèi)已經(jīng)有一些,比如深圳的明華粵漢公司。但傳統(tǒng)的通用讀寫器一般是把一張IC卡插入讀寫器中,IC卡上的密碼和對于數(shù)據(jù)讀取都由讀寫器以外的應(yīng)用程序來完成,這樣在一定程度上用戶的信息就暴露給了應(yīng)用程序的開發(fā)與維護(hù)人員。未了解決用戶信息的安全過分依賴于應(yīng)用程序的問題,現(xiàn)在已經(jīng)研制出一種雙卡座IC卡讀寫器,這種讀寫在原來讀寫器基礎(chǔ)上增加了一個SAM卡座,用來插智能存儲卡(CPU卡),SAM卡上帶有加密解密程序,SAM能對用戶的密鑰進(jìn)行加密與解密存取,核對卡上密碼,加密解密存取卡中數(shù)據(jù)。這樣在一定程度上隔離了IC卡的安全系統(tǒng)與應(yīng)用程序系統(tǒng)之間的關(guān)系,保證了IC卡的用戶獨立性。
2 接口層
應(yīng)用系統(tǒng)要通過IC卡讀寫起來讀寫IC卡中的數(shù)據(jù),這就需要IC卡讀寫器向應(yīng)用系統(tǒng)提供一個讀寫接口,現(xiàn)在IC卡讀寫器的接口一般有普通串口,USB接口,以及無線接口,因此IC卡讀寫器的開發(fā)人員就的為應(yīng)用系統(tǒng)開發(fā)人員提供一套接口程序,目前在WINDOWS平臺上普遍采用提供一組動態(tài)連接庫(dll)給應(yīng)用系統(tǒng)開發(fā)人員。應(yīng)用系統(tǒng)開發(fā)人員就調(diào)用動態(tài)連接庫中函數(shù)來完成對IC卡的操作。采用普通串口讀寫器動態(tài)庫主要完成是串口通訊的功能。
IC_DLL動態(tài)庫大體設(shè)計思路如下:
IC_DLL動態(tài)庫主要用來與IC卡讀寫器之間進(jìn)行通訊,可以通過串口或并口,具體通訊方式是:IC_DLL動態(tài)庫向串口或并口發(fā)送與讀寫器協(xié)調(diào)一致的通訊信號,而讀寫器則從串口接收這些通訊信號,然后根據(jù)這些通訊信號來對IC卡進(jìn)行具體操作,真正直接操作IC卡是讀寫器,而IC_DLL動態(tài)庫是利用串口或并口來操作讀寫器的函數(shù)庫。
IC_DLL動態(tài)庫大體設(shè)計方法如下:
(1)與串口的底層接口:
利用WINDOWS對硬件設(shè)備的抽象:在WINDOWS 環(huán)境下,WINDOWS對硬件設(shè)備的管理采用設(shè)備文件方式。在IC_DLL動態(tài)庫中建立一個與串口或并口相關(guān)聯(lián)的通訊設(shè)備文件gFile,通過讀寫設(shè)備文件來實現(xiàn)對串口或并口數(shù)據(jù)的接收與發(fā)送。
另外,利用WINDOWS的底層通訊結(jié)構(gòu)COMMTIMEOUTS,DCB,COMSTAT來對通訊設(shè)備的屬性進(jìn)行訪問與設(shè)置。
(2)IC_DLL動態(tài)庫內(nèi)部函數(shù)的處理機(jī)制
利用c語言豐富而強(qiáng)大的對內(nèi)存管理和對字節(jié)的處理功能,另外還利用c語言豐富的數(shù)據(jù)類型,很方便的實現(xiàn)對IC卡上的存儲地址的計算和數(shù)據(jù)的移位操作;利用移位操作和位操作可以實現(xiàn)數(shù)據(jù)在二進(jìn)制位上的加密和校驗,IC_DLL動態(tài)庫內(nèi)部對發(fā)送到串口或并口上的數(shù)據(jù)都在二進(jìn)位上進(jìn)行了加密,以防在串口或并口上竊取數(shù)據(jù)。
(3)IC_DLL動態(tài)庫與高層接口
IC_DLL動態(tài)庫采用傳遞參數(shù)和調(diào)用函數(shù)返回值來與高層通訊,并對高層傳遞過來的參數(shù)有一個合法性檢查,對底層返回錯誤有錯誤處理機(jī)制和錯誤提示信息,對與高層使用者來說,底層與本層的處理和錯誤是透明的,高層使用者只須通過調(diào)用函數(shù)的返回值來判定此次操作成功與否。
3 應(yīng)用層
各種行業(yè)的應(yīng)用系統(tǒng)中是如何利用IC卡來存儲與操作用戶向關(guān)數(shù)據(jù)?這就要事先對IC卡上的存儲空間根據(jù)用戶數(shù)據(jù)進(jìn)行規(guī)劃,下面舉一個在醫(yī)療保險系統(tǒng)中對1604卡的使用與規(guī)劃情況:
二、IC卡的應(yīng)用實例:加密存儲卡1604卡在醫(yī)保信息系統(tǒng)中的應(yīng)用
1 1604卡的特點:
— 邏輯加密存儲芯片
— 屬于單存儲器多邏輯分區(qū)結(jié)構(gòu)。主存儲器劃分了特定的標(biāo)志數(shù)據(jù)區(qū)和控制數(shù)據(jù)區(qū)之外,還將應(yīng)用數(shù)據(jù)區(qū)分成四個完全隔離的子區(qū),并在每個子區(qū)中配備了各自的讀、寫控制標(biāo)志和寫入/擦除密碼以及密碼輸入錯誤計數(shù)器等邏輯控制。
— 芯片為串行傳輸方式,并滿足ISO7816-3同步傳送協(xié)議。采用低功耗的CMOS工藝制造,每字節(jié)的讀取時間為2us,寫周期為5ms。
— 內(nèi)部設(shè)計有電壓提升電路,保證使用單+5V電源電壓能夠完成對芯片的讀寫和擦除等各類編程操作。
芯片的存儲單元具有至少10000次的擦除/改寫循環(huán)次數(shù),數(shù)據(jù)保存期為10年。
2 芯片的存儲分區(qū)及其定義[1]:
3 IC卡的密碼系統(tǒng)
1) 使用SC作為用戶密碼
2) 應(yīng)用SCn、EZn為應(yīng)用系統(tǒng)的密碼控制,同時也可用來作為卡片防偽控制
3) 設(shè)置Pn=0、Rn=0,這樣使得,要讀數(shù)據(jù)必須在本應(yīng)用系統(tǒng)才可讀數(shù),要進(jìn)行修改數(shù)據(jù)操作必須還要核對EZn才可。
4) 各個應(yīng)用系統(tǒng)分別有自己的兩個密碼(SCn、EZn),使得應(yīng)用系統(tǒng)之間數(shù)據(jù)具有安全性。
注意:由于所有卡片的SCn、EZn都完全相同,那么系統(tǒng)對于這兩個密碼的保護(hù)就相當(dāng)重要,它稱為系統(tǒng)安全性的唯一保證,可以采取其它密碼保護(hù)措施。
4 IC卡的個人化操作
1)個人化流程,如圖1所示。
2)密碼控制
用戶密碼只有一個,但不同的應(yīng)用系統(tǒng)分別對這個用戶密碼使用DES算法將會產(chǎn)生不同的結(jié)果,這樣可以保證不同的應(yīng)用系統(tǒng),不可對其它應(yīng)用系統(tǒng)的數(shù)據(jù)進(jìn)行修改。但這帶來的一個問題是,用戶修改密碼必須在總發(fā)行機(jī)構(gòu),必須同時對所有應(yīng)用系統(tǒng)使用DES算法重新計算一次。
個人化之前:
(1)只有總密碼,總密碼可讀,四個分區(qū)密碼無效(即核對無效),但可以設(shè)置密碼
(2)制造商代碼區(qū)不能修改,其它所有區(qū)域均可讀寫擦,只由總密碼控制
個人化之后:
(1)總密碼不可讀,四個分區(qū)密碼有效,所有密碼均不可讀
(2)發(fā)行區(qū)、個人代碼區(qū)不可修改,但可讀
(3)一區(qū)密碼有錯誤計數(shù)器,其它分區(qū)密碼沒有錯誤計數(shù)器。
(4)錯誤計數(shù)達(dá)到8次,則IC卡鎖死。
4)用戶數(shù)據(jù)存儲規(guī)劃:
用戶數(shù)分四個部分:
a.版本信息:應(yīng)用一區(qū)的前兩個字節(jié)。
b.用戶基本信息: 應(yīng)用一區(qū)的前512各字節(jié)。
c.用戶就診結(jié)算數(shù)據(jù): 應(yīng)用一區(qū)的剩下字節(jié)。
d.用戶身份識別數(shù)據(jù):應(yīng)用二區(qū)
5)IC卡的使用方法:如圖2所示
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
452文章
50206瀏覽量
420940 -
封裝
+關(guān)注
關(guān)注
126文章
7728瀏覽量
142604 -
讀寫器
+關(guān)注
關(guān)注
3文章
650瀏覽量
38799
發(fā)布評論請先 登錄
相關(guān)推薦
評論