<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

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

                  JAVA 卡與 APPLET

                  文章出處:http://psychicreadingswithdeb.com 作者:包盛杰&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年09月09日

                  [文章內容簡(jiǎn)介]:JAVA 卡與 APPLET

                    在這篇文章中我們將討論一種目前較為流行的智能卡:JAVA智能卡。我們將介紹JAVA卡的基本概念和如何用它來(lái)開(kāi)發(fā)一些簡(jiǎn)單的應用。我們的目的是使一些有初步JAVA語(yǔ)言知識的讀者了解智能卡,了解JAVA智能卡,并能用JAVA卡開(kāi)發(fā)一些簡(jiǎn)單的應用。我們在討論JAVA卡和它的APPLET之前先討論一些智能卡方面的知識。

                  智能卡與安全

                    本章主要討論智能卡的基本知識和智能卡的安全特性。有關(guān)智能卡的基本知識的介紹主要圍繞兩部分進(jìn)行:智能卡的概念和智能卡與外界的通信。其中關(guān)于智能卡的概念,我們將介紹智能卡的定義,類(lèi)型和它的一些簡(jiǎn)單應用。在討論智能卡與外界的通信部分,我們將介紹接觸式智能卡的國際規范ISO7816,從而了解智能卡與讀卡器的通信方式和協(xié)議,智能卡的文件系統,和對智能卡操作的指令系統(APDU)。關(guān)于智能卡的安全特性部分,我們將介紹智能卡使用方式的安全性和所支持的安全算法。

                    概述

                    說(shuō)到智能卡,相信大家都已經(jīng)看見(jiàn)過(guò)或使用過(guò)。例如,打IC電話(huà)的IC卡,手機里的SIM卡,銀行里的IC銀行卡等等。那什么是智能卡呢?簡(jiǎn)單而言,智能卡是一種芯片卡,計算芯片鑲嵌在一張名片大小的塑料卡片上,從而完成數據的存儲與計算??梢酝ㄟ^(guò)一種叫讀卡器的設備訪(fǎng)問(wèn)智能卡中的數據。那為什么要使用智能卡呢?因為今天使用智能卡的系統,如銀行,通信,交通等系統,都通過(guò)使用智能卡的特性獲取了其他系統所沒(méi)有的安全性和靈活性。

                    為什么使用智能卡?

                    正由于智能卡在當今網(wǎng)絡(luò )系統應用中的最突出的兩個(gè)特點(diǎn):個(gè)人身份性和密文性。智能卡的出現大大提高了交易的方便性和安全性。
                    個(gè)人身份性是指智能卡可以表明持卡人的身份。當今各式各樣的交易最終都要確認交易方的身份。打個(gè)比方,你欠了債要寫(xiě)一張欠條,債主可以讓你簽名來(lái)表明這是你的欠條,也可以讓你畫(huà)押來(lái)表明這是你的欠條。而現在智能卡通過(guò)存儲在卡里的一個(gè)ID號就可以方便的表明你的身份了。既簡(jiǎn)單又安全。
                    密文性是指智能卡可以以密文的形式存儲某些數據。有些智能卡還能利用自帶的微處理器進(jìn)行動(dòng)態(tài)的數據加減密。
                  充分利用智能卡的個(gè)人身份性和密文性,就可以為任何類(lèi)型網(wǎng)絡(luò )的數據傳遞和身份認證提供安全性,從而能大幅度提高現行系統的安全性和便利性。
                    除此之外,智能卡還有:大容量性,穩定性,可攜帶性,兼容性好等特點(diǎn)。

                    智能卡應用

                    如今智能卡在以下行業(yè)內扮演著(zhù)重要的角色:
                    電信業(yè)
                    智能卡在電信業(yè)中最著(zhù)名的應用是:GSM中的SIM卡,和IC電話(huà)機中的IC卡。
                    SIM卡是GSM網(wǎng)絡(luò )中的個(gè)人身份模塊,即SIM卡中有一個(gè)ID來(lái)唯一確定該卡的身份。這個(gè)ID號會(huì )被GSM的鑒權中心,計費中心等使用。
                    IC電話(huà)機中的IC卡中存儲著(zhù)剩余話(huà)費的金額。IC電話(huà)機會(huì )依據通話(huà)時(shí)間,通話(huà)的費率對IC卡存儲的金額進(jìn)行扣除。
                    銀行業(yè)
                    銀行業(yè)是智能卡展示才華的另一舞臺。離線(xiàn)交易是智能卡的一大賣(mài)點(diǎn)。通過(guò)復雜的加減密算法,和完善的密鑰管理系統,POS終端的對銀行智能卡進(jìn)行離線(xiàn)的交易處理,而無(wú)須每次交易都用MODEM撥號到后臺數據庫進(jìn)行查詢(xún)。
                    交通運輸
                    交通運輸是智能卡另一個(gè)舞臺,一種叫非接觸式卡的智能卡在這一領(lǐng)域扮演主要角色。如香港地鐵的“八達通”卡,用戶(hù)進(jìn)入地鐵站時(shí),只要將“八達通”卡在人口處的一個(gè)裝置上晃一下,地鐵人口處的門(mén)就會(huì )自動(dòng)打開(kāi),同時(shí)“八達通”卡上的存儲的余額就會(huì )變少。當“八達通”卡上的存儲的余額變?yōu)榱銜r(shí),用戶(hù)就需要對卡進(jìn)行充值。
                    智能卡的類(lèi)型

                    按嵌入的芯片種類(lèi)分,智能卡可以分為以下幾類(lèi):
                    接觸式卡
                    這種卡需要一種叫作讀卡器的裝置進(jìn)行信息的讀寫(xiě)操作。與信用卡上是一個(gè)磁帶條不同,這種卡的表面上鑲嵌著(zhù)一個(gè)小的金屬片,當把卡插入讀卡器時(shí),這個(gè)小金屬片就會(huì )同一個(gè)電子接頭相接觸,通過(guò)這個(gè)電子接頭對芯片讀寫(xiě)數據。從卡的結構來(lái)分,接觸式卡主要分為以下兩類(lèi)卡:
                    存儲卡
                    存儲卡不包含復雜的處理器,它不能動(dòng)態(tài)的管理文件。存儲卡與讀卡器的通信是同步通信。IC電話(huà)機中的IC卡就是存儲卡。
                    微處理器卡
                    微處理器卡是我們在這要主要討論的。她與存儲卡的最大的區別就是:她具有動(dòng)態(tài)處理數據的功能。微處理器卡的系統結構有的象PC機。她也有ROM,RAM,CPU和EEPROM。以下的討論如無(wú)特別指出,討論的對象都是微處理器卡。象SIM卡,銀行卡等都是微處理器卡。
                    非接觸式卡
                    另一種是非接觸式智能卡,這種卡看上去和普通的塑料信用卡很相似,但卻在卡體中內嵌了一個(gè)天線(xiàn)和一個(gè)微電子芯片,當把它放近讀卡器的天線(xiàn)時(shí),它們之間就可以完成一次信息交換。這使其不用與耦合感應器做任何接觸,就可與之交換信息,并且處理時(shí)間極短,這一特性,使非接觸式智能卡在一些象高速公路收費站這樣要求大批量超快速運轉的場(chǎng)所成為理想的解決方案。
                    國際標準

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

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


                    其中ISO7816是接觸式卡智能卡必須遵循的國際規范。目前ISO7816已經(jīng)陸續發(fā)布了9個(gè)部分:
                  ISO7816-1:接觸式卡智能卡的物理特性
                  ISO7816-2:接觸式卡智能卡觸點(diǎn)的尺寸與位置
                  ISO7816-3:接觸式卡智能卡的電信號和傳輸協(xié)議
                  ISO7816-4:接觸式卡智能卡與外界交互的接口
                  ISO7816-5:接觸式卡智能卡應用的命名方式與注冊系統
                  ISO7816-6:接觸式卡智能卡與外界交互的數據對象
                  ISO7816-7:接觸式卡智能卡的結構化查詢(xún)語(yǔ)句
                  ISO7816-8:接觸式卡智能卡與安全有關(guān)的指令
                  ISO7816-9:接觸式卡智能卡附加指令與安全參數
                    從ISO7816規范的發(fā)展,我們可以清楚地看到接觸式智能卡的從簡(jiǎn)單到復雜慢慢完善的發(fā)展軌跡。ISO7816是研究接觸式智能卡的基礎,如果你對接觸式智能卡感興趣,那ISO7816可是必不可缺的資料。

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

                    而我們這次討論的主題JAVA卡,她首先遵循ISO7816的規范,除此之外,她還遵循JAVA卡的一些規范:
                  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
                    讀卡器與終端

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

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

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


                    智能卡的文件系統

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

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

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

                    EF的文件類(lèi)型有:透明EF,線(xiàn)性定長(cháng)EF,線(xiàn)性變長(cháng)EF,循環(huán)EF。對后三種EF文件的操作需通過(guò)對它們所包含的記錄進(jìn)行操作。如你有興趣希望進(jìn)一步了解智能卡的文件結構,請參閱ISO7816。
                  智能卡的接口協(xié)議

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


                    “強制部分”表明這是APDU命令必須包括的部分,它包括: class (CLA)-, instruction (INS), and parameters 1 and 2 (P1 and P2). 每部分有一個(gè)字節?!胺菑娭撇糠帧北砻鞑⒉皇撬械腁PDU都有這些部分。

                    其欄位所表示的意義分別為:
                  CLA - Class Byte,用於識別applet
                  INS - Instruction Byte ,下達給applet之指令
                  P1 - 第一個(gè)指令參數
                  P2 - 第二個(gè)指令參數 (P1,P2 根據INS不同,也有不同的含義)
                  Lc - Data Field之長(cháng)度
                  Data Field - 資料欄位
                  Le - 回傳資料之長(cháng)度


                  Response APDU (APDU 響應)
                  Conditional Body(非強制部分)       Mandatory Trailer(強制部分)
                  Data field                SW1   SW2


                    其欄位所表示的意義分別為:
                  Data Field - return之資料欄位
                  SW1 - 執行狀態(tài)參數1 (1 字節)
                  SW2 - 執行狀態(tài)參數2 (1字節)
                  一般SW1 + SW2 =“9000”表明指令執行成功。

                  一個(gè)例子:

                    如果我們要選擇(Select)SIM卡的ROOT文件,則APDU命令的格式如下:
                  CLA     INS     P1     P2     Lc     Data
                  A0     A4     00     00     02     3F00
                  A0 代表這是SIM卡、A4代表這是Select指令、P1,P2在Select指令中沒(méi)有用、Lc說(shuō)明Data的長(cháng)度為2個(gè)字節、Data=3F00,是ROOT的文件ID


                    而APDU響應為:9F1A,說(shuō)明指令成功完成,而且你可以用Get Response命令得到1A長(cháng)度的響應數據。關(guān)于對SIM卡的操作,請參考GSM11.11文檔。
                    智能卡的安全性
                    安全

                    由于智能卡采用了不同的安全機理,這種安全機理主要體現在以下兩方面:其中用于微處理器卡的比用于只讀存儲器卡的要復雜一些。
                    從卡上信息的讀取方面來(lái)控制:
                    限制智能卡用戶(hù)的范圍
                    有些智能卡,任何人都可以讀取卡上信息,象記錄病人姓名和血型的醫療卡,這種智能卡一般不設密碼,只要拿到卡的人都可以讀取卡上信息。這時(shí)卡體本身就是一種保護。
                    對于只許持卡人讀取信息的智能卡通常采用一種叫PIN(個(gè)人識別碼)的密碼形式來(lái)保護卡上的信息,一般PIN由4至8位數字組成,通過(guò)鍵盤(pán)輸入讀卡器,它允許持卡人輸入三次密碼,如果三次輸的都不對,卡就會(huì )被鎖住,只有PIN碼對了,用戶(hù)才能對卡進(jìn)行操作。當前也有一些更高級的密碼形式在開(kāi)發(fā)研制之中。
                    對于只許第三方讀取信息的智能卡便只有發(fā)卡人才能讀取卡上信息。(譬如只有發(fā)卡行可以改寫(xiě)電子錢(qián)夾上的信息)。這時(shí)這些智能卡由16-32位數字的密碼來(lái)保護。
                    限制讀取智能卡信息的的方式(只讀、可添加、可修改或可擦寫(xiě))。 存儲在智能卡上的信息一般被劃分為若干個(gè)部分:
                  只讀信息
                  只可添加的信息
                  只可更新的信息
                  無(wú)法讀取的信息
                    這樣有些密碼信息可以存儲在無(wú)法讀取的存儲區域中。
                    從卡的結構和支持的加密算法來(lái)控制
                    如上所述只有知道密碼的人才能使權使用智能卡,但如果需要通過(guò)無(wú)線(xiàn)電或電話(huà)線(xiàn)將卡上的信息向異地傳送,就還必須要有額外的防護手段。

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

                    通過(guò)加密,智能卡可以把信息翻譯成數以?xún)|計的“外語(yǔ)”,并且在須要通信時(shí),可以隨機地選擇其一。這種防范機制可以確保所用的卡和計算機都真實(shí)有效,使得幾乎沒(méi)有可能半路竊取傳送的信息。
                    
                    安全算法

                    加密技術(shù)按照密鑰的公開(kāi)與否可以分為兩種:對稱(chēng)密鑰算法和公開(kāi)密鑰算法(又稱(chēng):不對稱(chēng)加密算法)。對稱(chēng)密鑰算法和公開(kāi)密鑰算法的區別是:加減密密鑰的一致與否。

                    對稱(chēng)密鑰算法,這里加密密鑰匙和解密密鑰是相同的。為了安全性,密鑰要定期的改變。對稱(chēng)算法速度快,所以在處理大量數據的時(shí)候被廣泛使用,其關(guān)鍵是保證密鑰的安全。

                    公開(kāi)密鑰算法,分別存在一個(gè)公鑰和私鑰,公鑰公開(kāi),私鑰保密。公鑰和私鑰具有一一對應的關(guān)系,用公鑰加密的數據只有用私鑰才能解開(kāi),其效率低于對稱(chēng)密鑰算法。其中最著(zhù)名的兩種:DES(對稱(chēng)密鑰算法)和RSA(公鑰加密算法)。有關(guān)DES算法和RSA算法的具體實(shí)現過(guò)程,不是本次討論的內容,請大家自己參閱有關(guān)資料。目前微處理器智能卡一般都能支持DES算法和RSA算法,象Gemplus公司的GPK卡,Schlumberger公司的CryptoFlex.

                    附:數字簽名 - RSA 算法的一個(gè)應用

                    數字簽名采用RSA算法,數據發(fā)送方采用自己的私鑰加密數據,接受方用發(fā)送方的公鑰解密,由于私鑰和公鑰之間的嚴格對應性,使用其中一個(gè)只能用另一個(gè)來(lái)解,保證了發(fā)送方不能抵賴(lài)發(fā)送過(guò)數據,完全模擬了現在生活中的簽名。

                  由于微處理器智能卡帶有微處理器,同時(shí)又支持對稱(chēng)密鑰算法和公開(kāi)密鑰算法,同時(shí)它的尺寸大小極方便于攜帶,所以它必然成為網(wǎng)絡(luò )數據傳遞和身份認證極佳的安全模塊。有關(guān)微處理器智能卡的具體應用,我們將在以后詳細討論。

                  本文關(guān)鍵詞:JAVA卡與APPLET
                  上一篇:非接觸式智能卡技術(shù)[ 09-09 ] 下一篇:智能卡芯片技術(shù)[ 09-09 ]
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>