歡迎您訪問鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠信通企業(yè)
全國咨詢熱線:40000-63966
興邦電子,中國水控機(jī)第一品牌

聯(lián)系興邦電子

全國咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

智能卡基礎(chǔ)知識(shí)

文章出處:http://www.xianjuhong.com 作者: 人氣: 發(fā)表時(shí)間:2012年02月20日

[文章內(nèi)容簡介]:本文主要介紹智能卡一些相關(guān)的基礎(chǔ)知識(shí)。

    智能卡能在世界各地推廣,在不同系統(tǒng)中發(fā)揮她的作用,國際規(guī)范的制定是必不可少的。例如,智能卡的尺寸是由ISO7810標(biāo)準(zhǔn)規(guī)定的。ISO7816標(biāo)準(zhǔn)規(guī)定了卡用塑料的一些物理特性,包括溫差范圍、彈性、電子觸點(diǎn)的位置以及內(nèi)置微芯片和外界進(jìn)行信息交換的方式等。

    例如根據(jù)智能卡規(guī)范(ISO7816.1),接觸式智能卡共有8個(gè)觸點(diǎn),定義如下圖。智能卡正是通過這8個(gè)觸點(diǎn)與外界進(jìn)行通信的。 觸點(diǎn) 定義 觸點(diǎn) 定義 C1 Vcc 供電電壓 C5 GND 接地 C2 RST 重置信號(hào) C6 Vpp 編程電壓 C3 CLK 時(shí)鐘信號(hào) C7 I/O 數(shù)據(jù)輸入/ 輸出 C4 保留 C8 保留

    其中ISO7816是接觸式卡智能卡必須遵循的國際規(guī)范。目前ISO7816已經(jīng)陸續(xù)發(fā)布了9個(gè)部分:

    ISO7816-1:接觸式卡智能卡的物理特性 
    ISO7816-2:接觸式卡智能卡觸點(diǎn)的尺寸與位置 
    ISO7816-3:接觸式卡智能卡的電信號(hào)和傳輸協(xié)議 
    ISO7816-4:接觸式卡智能卡與外界交互的接口 
    ISO7816-5:接觸式卡智能卡應(yīng)用的命名方式與注冊(cè)系統(tǒng) 
    ISO7816-6:接觸式卡智能卡與外界交互的數(shù)據(jù)對(duì)象 
    ISO7816-7:接觸式卡智能卡的結(jié)構(gòu)化查詢語句 
    ISO7816-8:接觸式卡智能卡與安全有關(guān)的指令 
    ISO7816-9:接觸式卡智能卡附加指令與安全參數(shù)

    從ISO7816規(guī)范的發(fā)展,我們可以清楚地看到接觸式智能卡的從簡單到復(fù)雜慢慢完善的發(fā)展軌跡。ISO7816是研究接觸式智能卡的基礎(chǔ),如果你對(duì)接觸式智能卡感興趣,那ISO7816可是必不可缺的資料。

    針對(duì)某些特殊的應(yīng)用,如數(shù)字蜂窩式移動(dòng)電話、信用卡(象Europay卡、Mastercard卡和 Visa卡)、電子錢夾(象Visacash、Multos與Proton)也制訂了一系列相應(yīng)的標(biāo)準(zhǔn)。例如,在中國應(yīng)用最多最廣泛的GSM系統(tǒng)中的SIM卡就得遵循GSM11.11, GSM11.14, GSM03.40等一系列規(guī)范。

    而我們這次討論的主題JAVA卡,她首先遵循ISO7816的規(guī)范,除此之外,她還遵循JAVA卡的一些規(guī)范:

    Java Card 2.1.1 Runtime Environment Specification 
    Java Card 2.1.1 Virtual Machine Specification 
    Java Card 2.1.1 Application Programming Interfaces Specification
    讀卡器與終端

    在討論讀卡器之前,我們先搞清“讀卡器”這一概念。廣義來講,“讀卡器”指所有可以對(duì)卡進(jìn)行讀寫的設(shè)備。不過,在智能卡業(yè),“讀卡器”是指那種必須與電腦相連,接受電腦發(fā)出相應(yīng)指令來控制完成對(duì)卡的操作的設(shè)備。與“讀卡器”對(duì)應(yīng)的設(shè)備,我們稱之為“終端”。“終端”是指那種能獨(dú)立對(duì)卡進(jìn)行操作的設(shè)備,而無需電腦的幫助。讀卡器和終端都可以完成對(duì)智能卡的讀寫。

    由于讀卡器比終端更依賴于電腦,從而她比終端擁有更多的靈活性。最簡單的使用讀卡器的方式就是與PC相連。一般PC可以通過RS232串口,USB接口,PCMCIA接口,軟盤接口,并口,紅外線口等與讀卡器取得聯(lián)系。PC通過這些接口向讀卡器發(fā)出ISO指令,讀卡器收到指令后即對(duì)卡進(jìn)行指令命令的讀寫,當(dāng)卡完成這次讀寫操作后,回給讀卡器一個(gè)指令成功與否的相應(yīng),而讀卡器收到卡的相應(yīng)后即告訴PC,PC這時(shí)根據(jù)相應(yīng)的結(jié)果進(jìn)行下一個(gè)ISO指令的操作。有關(guān)對(duì)智能卡的詳細(xì)操作指令,請(qǐng)參閱[智能卡的接口協(xié)議]。一般我們對(duì)智能卡進(jìn)行編程,大多選用讀卡器來完成對(duì)卡的操作。

    一種最常見的終端就是商場(chǎng)和賓館中使用的POS機(jī)。她最大的特點(diǎn):擁有自己的操作平臺(tái)和開發(fā)系統(tǒng),能對(duì)卡進(jìn)行獨(dú)立的讀寫,有Modem功能和打印交易功能。一般還有磁卡讀寫功能。

    智能卡的文件系統(tǒng)

    智能卡的文件系統(tǒng)有的象DOS的樹形文件系統(tǒng)。按ISO7816.4規(guī)定,智能卡的文件分為:DF(Dedicated File )和EF(Elementary File)。DF包含一些控制信息,它可以成為EF或DF的父文件。這有的象DOS中的目錄文件。EF是數(shù)據(jù)單位的集合,它不能成為任何文件的父文件。這有的象DOS中的TXT文件。

    一般而言,智能卡文件系統(tǒng)都有一個(gè)必須的根文件(ROOT)。它是DF文件。一般叫它MF(Master File主文件)。

    每個(gè)文件(包括DF和EF)都有一個(gè)文件的ID(兩個(gè)字節(jié))。如ROOT的ID一般為“3F00”。如要對(duì)文件進(jìn)行讀寫操作,就必須先用“選擇”(Select)命令來選擇該文件的ID。

    EF的文件類型有:透明EF,線性定長EF,線性變長EF,循環(huán)EF。對(duì)后三種EF文件的操作需通過對(duì)它們所包含的記錄進(jìn)行操作。如你有興趣希望進(jìn)一步了解智能卡的文件結(jié)構(gòu),請(qǐng)參閱ISO7816。

    智能卡的接口協(xié)議

    一般而言,智能卡自身是沒有電源,顯示器,鍵盤,哪它是如何與外界進(jìn)行通信的呢?在上面的文章中,我們已經(jīng)知道:智能卡是通過它的8個(gè)觸點(diǎn)與讀卡器進(jìn)行通信的。那它們是如何進(jìn)行通信的呢?我們知道當(dāng)兩臺(tái)PC進(jìn)行通信時(shí),進(jìn)行數(shù)據(jù)交換時(shí),它們必須服從一定的通信協(xié)議??ㄅc讀卡器的通信也是如此。根據(jù)ISO7816.4規(guī)定,智能卡與外界的通信數(shù)據(jù)接口為:APDU(Application Protocol DataUnits,應(yīng)用協(xié)議數(shù)據(jù)單元)。APDU既制定了命令格式,也制定了響應(yīng)格式。在卡的領(lǐng)域中,卡始終處在“主仆”關(guān)系中的“仆”的地位,即智能卡只能等待讀卡器或終端向它發(fā)送APDU,收到APDU后,智能卡執(zhí)行APDU中的命令,而后返回APDU響應(yīng)。通過APDU命令和它的響應(yīng),卡就完成了與讀卡器或終端的通信。以下就是APDU的格式: Command APDU(APDU 命令) Mandatory Header(強(qiáng)制部分) Conditional Body(非強(qiáng)制部分) CLA INS P1 P2 Lc Data field Le“強(qiáng)制部分”表明這是APDU命令必須包括的部分,它包括: class (CLA)-, instruction (INS), and parameters 1 and 2 (P1 and P2). 每部分有一個(gè)字節(jié)。“非強(qiáng)制部分”表明并不是所有的APDU都有這些部分。

    其欄位所表示的意義分別為:

    CLA - Class Byte,用於識(shí)別applet 
    INS - Instruction Byte ,下達(dá)給applet之指令 
    P1 - 第一個(gè)指令參數(shù) 
    P2 - 第二個(gè)指令參數(shù) (P1,P2 根據(jù)INS不同,也有不同的含義) 
    Lc - Data Field之長度 
    Data Field - 資料欄位 
    Le - 回傳資料之長度
    Response APDU (APDU 響應(yīng)) Conditional Body(非強(qiáng)制部分) Mandatory Trailer(強(qiáng)制部分) Data field SW1 SW2
    其欄位所表示的意義分別為: 
    Data Field - return之資料欄位 
    SW1 - 執(zhí)行狀態(tài)參數(shù)1 (1 字節(jié)) 
    SW2 - 執(zhí)行狀態(tài)參數(shù)2 (1字節(jié))
    一般SW1 + SW2 =“9000”表明指令執(zhí)行成功。

    一個(gè)例子:

    如果我們要選擇(Select)SIM卡的ROOT文件,則APDU命令的格式如下: CLA INS P1 P2 Lc Data A0 A4 00 00 02 3F00 A0 代表這是SIM卡、A4代表這是Select指令、P1,P2在Select指令中沒有用、Lc說明Data的長度為2個(gè)字節(jié)、Data=3F00,是ROOT的文件ID而APDU響應(yīng)為:9F1A,說明指令成功完成,而且你可以用Get Response命令得到1A長度的響應(yīng)數(shù)據(jù)。關(guān)于對(duì)SIM卡的操作,請(qǐng)參考GSM11.11文檔。

    智能卡的安全性

    由于智能卡采用了不同的安全機(jī)理,這種安全機(jī)理主要體現(xiàn)在以下兩方面:其中用于微處理器卡的比用于只讀存儲(chǔ)器卡的要復(fù)雜一些。

    從卡上信息的讀取方面來控制:

    限制智能卡用戶的范圍

    有些智能卡,任何人都可以讀取卡上信息,象記錄病人姓名和血型的醫(yī)療卡,這種智能卡一般不設(shè)密碼,只要拿到卡的人都可以讀取卡上信息。 這時(shí)卡體本身就是一種保護(hù)。 
    對(duì)于只許持卡人讀取信息的智能卡通常采用一種叫PIN(個(gè)人識(shí)別碼)的密碼形式來保護(hù)卡上的信息,一般PIN由4至8位數(shù)字組成,通過鍵盤輸入讀卡器,它允許持卡人輸入三次密碼,如果三次輸?shù)亩疾粚?duì),卡就會(huì)被鎖住,只有PIN碼對(duì)了,用戶才能對(duì)卡進(jìn)行操作。當(dāng)前也有一些更高級(jí)的密碼形式在開發(fā)研制之中。 
    對(duì)于只許第三方讀取信息的智能卡便只有發(fā)卡人才能讀取卡上信息。(譬如只有發(fā)卡行可以改寫電子錢夾上的信息)。這時(shí)這些智能卡由16-32位數(shù)字的密碼來保護(hù)。
    限制讀取智能卡信息的的方式(只讀、可添加、可修改或可擦寫)。存儲(chǔ)在智能卡上的信息一般被劃分為若干個(gè)部分: 
    只讀信息 
    只可添加的信息 
    只可更新的信息 
    無法讀取的信息 
    這樣有些密碼信息可以存儲(chǔ)在無法讀取的存儲(chǔ)區(qū)域中。

    從卡的結(jié)構(gòu)和支持的加密算法來控制

    如上所述只有知道密碼的人才能使權(quán)使用智能卡,但如果需要通過無線電或電話線將卡上的信息向異地傳送,就還必須要有額外的防護(hù)手段。

    防護(hù)手段之一就是加密,這就好象把要傳送的信息翻譯成了誰也看不懂的外語。微處理器智能卡有加密和解密(把看不懂的東西再翻譯回來)的功能,使得在傳送存儲(chǔ)在卡上的信息的同時(shí),也不用擔(dān)心會(huì)發(fā)生泄密。

    通過加密,智能卡可以把信息翻譯成數(shù)以億計(jì)的“外語”,并且在須要通信時(shí),可以隨機(jī)地選擇其一。這種防范機(jī)制可以確保所用的卡和計(jì)算機(jī)都真實(shí)有效,使得幾乎沒有可能半路竊取傳送的信息。

本文關(guān)鍵詞:智能卡基礎(chǔ),智能卡知識(shí),智能卡,讀卡器
回到頂部