薛明策,劉素娟,林平分
(北京工業(yè)大學(xué), 北京 100124)
薛明策,劉素娟,林平分
(北京工業(yè)大學(xué), 北京 100124)
隨著信息化時代的到來,智能卡作為信息化技術(shù)標(biāo)志之一,在金融等方面的應(yīng)用逐漸普及。智能卡操作系統(tǒng)不同于傳統(tǒng)軟件,它工作在嵌入式環(huán)境,具有硬件資源有限、工作環(huán)境不穩(wěn)定等特點,所以其設(shè)計方法與傳統(tǒng)方法有所不同。智能卡操作系統(tǒng)在投入使用之前,必須經(jīng)過嚴(yán)格的測試,這是由嵌入式系統(tǒng)工作的特性決定的,因為當(dāng)軟件工作后出現(xiàn)漏洞時很難進(jìn)行彌補。本文通過對智能卡下載機制的研究,改進(jìn)設(shè)計以提高智能卡操作系統(tǒng)的下載速度,進(jìn)而提高測試效率和縮短發(fā)卡時間。
智能卡;COS;高速下載
智能卡(Smart Card)是封裝著集成電路的具備傳輸存儲以及數(shù)據(jù)處理能力的塑料卡片,因其良好的處理能力和較好的保密性能,成為IC卡發(fā)展的主要方向。COS(Chip Operation System)是伴隨著CPU卡的出現(xiàn)而產(chǎn)生的,并且根據(jù)CPU的差異而有所不同。COS是一種專用的系統(tǒng),一般來講一個 COS 只能用于一種特定的智能卡[2-4]。目前COS有兩種存在方式:一種是把已經(jīng)經(jīng)過驗證的COS直接通過掩膜方式,在生產(chǎn)過程中固化到智能卡芯片的只讀存儲器(Read only memory, ROM)中;另一種是芯片生產(chǎn)結(jié)束后,通過ROM中的Bootloader程序?qū)OS下載到智能卡中的非易失存儲器(Flash, EEPROM等)中[5]。相比于固化在ROM中COS不會被惡意修改的優(yōu)勢,采用Bootloader下載的方式使COS具有更大的靈活性,更能讓COS適應(yīng)瞬息萬變的市場,而不用被修改掩膜的長時間周期所拖累[ 5 -7]。因而,大部分研究者都是通過ROM中的Bootloader程序?qū)OS下載到智能卡中的非易失存儲器中。
郭鴻志、李代平等在《智能卡芯片操作系統(tǒng)的研究與實現(xiàn)》一文中提出了EVDO 卡 COS 的開發(fā)[1],李春豐、馬海峰等在《RF_SIM卡的多應(yīng)用COS研究與設(shè)計》中開發(fā)了SIM卡的COS[2],潘宇、鄧赟等研究了基于智能卡COS平臺的應(yīng)用開發(fā)技術(shù)[3],胡云肖、楊波等提出了面向PBOC2.0的智能卡操作系統(tǒng)的設(shè)計[4],周成沖、林平分等研究了智能卡操作系統(tǒng)高速下載設(shè)計[5],孫建、林平分等研究了雙界面智能卡操作系統(tǒng)的設(shè)計與測試[6],楊柳、于忠臣等側(cè)重于智能卡COS測試方案的研究[7],嚴(yán)婷婷、張志鴻等研究了智能卡操作系統(tǒng)自動化測試方法[8]。上述研究者有的側(cè)重于智能卡COS開發(fā)的研究與實現(xiàn)[1-4],有的偏向于研究智能卡COS測試方案的研究與實現(xiàn)[6-8],但研究智能卡COS下載速度的卻很少。
本文主要研究智能卡COS下載速度的提高,以北京市嵌入式系統(tǒng)重點實驗室自主研發(fā)的非接觸式智能卡BES2416版本9和版本10為基礎(chǔ)。BES2416已經(jīng)成功流片,芯片如圖1所示,此智能卡已經(jīng)被北京握奇數(shù)據(jù)有限公司和深圳明華科技應(yīng)用,實際應(yīng)用表明,實驗室智能卡滿足客戶的需求和實際情況。智能卡COS下載速度的提高可以縮短開發(fā)周期和相應(yīng)的測試周期。
圖1 非接觸式智能卡BES2416芯片
本文研究的智能卡COS的下載機制為非接觸式下載,與智能卡通信的讀卡器有北京市嵌入式系統(tǒng)重點實驗室自主研發(fā)和深圳明華科技公司的兩種類型,讀卡器和智能卡是通過射頻13.56 MHz非接觸式通信,其中非接觸式接口服從ISO14443協(xié)議,下面主要介紹COS的下載機制。
1.1 讀卡器和智能卡
智能卡COS的下載是讀卡器與智能卡通過非接觸式進(jìn)行指令交互的形式來完成的,圖2所示為封裝好的智能卡和實驗室自主研發(fā)設(shè)計的讀卡器。
圖2 智能卡和讀卡器
當(dāng)讀卡器和智能卡進(jìn)行通信時,智能卡ROM中的Bootloader完成相應(yīng)初始化,準(zhǔn)備接收下載指令,讀卡器通過上位機程序連接智能卡,然后發(fā)送COS下載指令,智能卡接收到指令后解析指令,將編譯后的COS二進(jìn)制文件下載到智能卡的eFlash中。
1.2 指令的發(fā)送
指令的發(fā)送是通過上位機軟件控制讀卡器發(fā)送相應(yīng)的指令,上位機程序發(fā)送智能卡Bootloader里預(yù)存的指令,讀卡器通過發(fā)送連接指令、認(rèn)證指令和下載COS指令等,將下載的COS拆分成各個數(shù)據(jù)包之后再進(jìn)行APDU指令分裝,然后通過讀卡器將指令發(fā)送給智能卡。圖3所示為上位機操作界面,讀卡器發(fā)送指令通過相應(yīng)的按鈕完成或直接通過SendAPDU發(fā)送指令。
圖3 上位機操作界面
1.3 指令的解析
智能卡接收到讀卡器發(fā)送的指令后,對每條指令進(jìn)行解析,根據(jù)不同的結(jié)果做出相應(yīng)的處理,當(dāng)收到下載COS的指令時對其指令進(jìn)行解析,取出數(shù)據(jù),并將數(shù)據(jù)寫到相應(yīng)存儲器的對應(yīng)區(qū)域中,完成之后回復(fù)相應(yīng)的指令,下載COS的操作完成。
1.4 執(zhí)行COS程序
完成COS的下載之后,智能卡重新上電時,Bootloader判斷是否已經(jīng)下載COS的標(biāo)志位,如果已經(jīng)下載完則直接執(zhí)行COS程序。下面的程序是智能卡里Bootloader代碼下載和執(zhí)行COS的指令。
if(FLAGCHECK == 1){
switch(receive_byte()){
case 0x20: freq_change(); break;
case 0x66: auth_process(); break;
case 0x84: gen_rand_num(); break;
default: send_byte(0x5B); break;
}
}
else{
switch(receive_byte()){
case 0x04: jump_to_cos(); break;
case 0x06: WrFlsh_128bytesdata(); break;
case 0x24: read_sfr(); break;
case 0x28: EflashChipErase(); break;
default: send_byte(0x5A); break;
}
}
提高COS下載速度,首先要研究影響讀卡器下載COS到智能卡里的下載速度的因素有哪些。本文主要研究兩點:數(shù)據(jù)傳輸速度和COS寫入eFlash的速度。
2.1 數(shù)據(jù)傳輸速度的分析
讀卡器產(chǎn)生耦合到智能卡的RF電磁場,用以傳送能量和雙向通信,智能卡獲得能量后將其轉(zhuǎn)換成直流電壓。RF場的載波頻率為13.56 MHz,磁場強度在1.5~7.5 A/m,在此范圍內(nèi)智能卡能不間斷地工作,所以在指定的工作空間內(nèi),讀卡器產(chǎn)生的磁場強度至少為1.5 A/m,且不超過7.5 A/m。ISO14443協(xié)議規(guī)定兩種接口信號:Type A和Type B。本文中支持A類協(xié)議,數(shù)據(jù)傳輸率為13.56 M/128=106 kb/s,一位數(shù)據(jù)所占的時間周期為9.4 μs,調(diào)制方式為ASK100%調(diào)幅制。讀卡器和智能卡之間的非接觸式接口遵從ISO14443協(xié)議,影響數(shù)據(jù)傳送的因素主要有兩個,即讀卡器提供的時鐘信號CLK,以及讀卡器與智能卡通過天線耦合的場強大小。
本研究中讀卡器是實驗室自主研發(fā)設(shè)計的,首先可以按要求調(diào)整CLK信號線上的頻率,所以將讀卡器所提供的CLK信號線上的頻率提高到市場上已有讀卡器可提供頻率的2倍,進(jìn)而將數(shù)據(jù)傳輸?shù)乃俣忍岣叩皆瓉淼?倍,這是提高下載速度的重要方法。其次是讀卡器和智能卡的天線耦合設(shè)計,讀卡器模塊的外圍天線匹配電路的設(shè)計如圖4所示。
圖4 外圍天線匹配電路
外圍天線電路匹配電阻的最終定值為R4=2 kΩ,R5=2.7 kΩ,R6=2.7 kΩ;電容值的大小設(shè)定為C6=150 pF,C7=270 pF,C8=150 pF。實際測量顯示,讀卡器可以提供給智能卡的磁場強度大小為5.5~6 A/m。在協(xié)議規(guī)定的范圍內(nèi),磁場強度較強,大于一般讀卡器提供的磁場強度,讀卡器和智能卡的通信速度提高,下載速度提高1~2倍,這是提高下載速度的另一個措施。
2.2 數(shù)據(jù)寫入eFlash的速度
智能卡的COS最終下載到卡中eFlash相應(yīng)的區(qū)域,即寫入eFlash中。eFlash的工作原理決定了它的工作方式,如果要對其中的區(qū)域進(jìn)行寫操作,需要先做擦除處理,擦除使它所有的數(shù)據(jù)位都變成1,之后再進(jìn)行寫操作,寫操作其實就是將某些位編程為0,已經(jīng)變?yōu)?的數(shù)據(jù)位無法再寫成1,除非重新擦除。eFlash的擦除又分為兩種方式:片擦除和頁擦除。片擦除指的是將整個eFlash全部擦除一遍,頁擦除指的是eFlash將擦除某些指定的頁。eFlash的頁的單位都不是1個Byte,這就要求我們把需要修改的內(nèi)容暫存在一個buffer里,修改之后再對原始頁進(jìn)行擦除,最后把暫存的內(nèi)容寫回到原始頁,如圖5所示。
圖5 eFlash頁擦除操作
本文針對具體研究情況,首先,對COS進(jìn)行下載操作時無需保留智能卡eFlash中原始信息,故可以將里面的內(nèi)容全部擦除,之后再把COS全部按字節(jié)寫進(jìn)去,因為整個eFlash已經(jīng)被完整擦除,所以COS下載時不會出現(xiàn)需要修改某個地方的操作,只需要按順序?qū)OS寫到某塊區(qū)域中,從而節(jié)約一定的時間。其次,更改智能卡下載過程中的寫eFlash的方式,以前的方式為直接調(diào)用寫eFlash的驅(qū)動,現(xiàn)在改為直接配置相應(yīng)的特殊功能寄存器進(jìn)行寫操作,以減少程序調(diào)用的開銷和程序執(zhí)行的時間。可通過減少數(shù)據(jù)寫入eFlash的時間來提高COS的下載速度。
讀卡器和智能卡之間的通信是按照ISO14443協(xié)議標(biāo)準(zhǔn)制訂的,通過RF無線非接觸式通信。為了進(jìn)一步了解Pause期間時鐘和解調(diào)數(shù)據(jù)波形的具體變化,又做了進(jìn)一步的細(xì)化測試,讀卡器和智能卡的天線、解調(diào)數(shù)據(jù)和時鐘的波形測試結(jié)果略——編者注。
本研究實際測試結(jié)果表明,讀卡器和智能卡之間正常通信時,讀卡器上位機程序界面選擇非接觸式模式,再點擊Request按鈕發(fā)送相應(yīng)的請求指令,此時讀卡器和智能卡已經(jīng)為之后的通信做好了準(zhǔn)備,之后讀卡器就可以發(fā)送對應(yīng)的指令與智能卡進(jìn)行通信。智能卡接收指令之后做出相應(yīng)的操作,智能卡操作系統(tǒng)下載相應(yīng)的指令,當(dāng)讀卡器發(fā)送下載指令時,對應(yīng)的COS被下載到智能卡中。實際測試結(jié)果是大小為28 KB的智能卡COS下載時間為19.175 9 s。測試結(jié)果如圖6所示。
圖6 COS下載時間
通過研究,COS的下載速度得到了明顯提高,由以前的平均60 s的下載時間降低到現(xiàn)在的平均19 s,工作效率自然得到了提升。本文研究的數(shù)據(jù)傳輸速度和COS寫入eFlash的速度提高對智能卡前期開發(fā)人員和測試人員有很大的幫助,對智能卡封裝之后的COS下載和測試人員的工作效率也有明顯的幫助。
本文通過對智能卡下載機制的研究,進(jìn)行改進(jìn)設(shè)計提高智能卡COS的下載速度,以此來提高開發(fā)、測試效率和縮短發(fā)卡時間。測試結(jié)果表明,此種研究方法有助于提高智能卡COS的下載速度。
[1] 郭鴻志,李代平,尹偉.智能卡芯片操作系統(tǒng)的研究與實現(xiàn)[J].計算機工程與設(shè)計,2010,31(19):4186-4189.
[2] 李春豐,李代平,馬海峰,等.RF_SIM卡的多應(yīng)用COS研究與設(shè)計[J].計算機工程與應(yīng)用,2011,47(2):57-59.
[3] 潘宇,鄧赟,許克智,等.基于智能卡COS平臺的應(yīng)用開發(fā)技術(shù)[J].通信技術(shù),2013,46(3):104-106.
[4] 胡云肖,楊波,孫濤,等.面向PBOC2.0的智能卡操作系統(tǒng)的設(shè)計[J].山東科學(xué),2012,25(5):73-77.
[5] 周成沖,林平分.智能卡操作系統(tǒng)高速下載設(shè)計[J].科技信息,2013,28(5):105-106.
[6] 孫建,林平分.雙界面智能卡操作系統(tǒng)的設(shè)計與測試[J].信息與電腦,2011,27(1):27-27.
[7] 楊柳,于忠臣.智能卡COS測試方案的研究[J].信息與電腦,2011,99(12):99-100.
[8] 嚴(yán)婷婷,張志鴻.智能卡操作系統(tǒng)自動化測試方法的研究與實現(xiàn)[J].計算機應(yīng)用與軟件,2013,30(5):87-90.
薛明策(碩士),主要研究方向為嵌入式系統(tǒng)軟件設(shè)計;劉素娟(副教授),主要研究方向為集成電路設(shè)計;林平分(教授),主要研究方向為ASIC芯片開發(fā)和嵌入式系統(tǒng)設(shè)計。
Xue Mingce,Liu Sujuan,Lin Pingfen
(Beijing University of Technology,Beijing 100124,China)
With the coming of information era,smart card as a sign of information technology is gradually popular in the financial aspects of the application.The operating system of smart card is different from traditional software,it works under the embedded environment,which has the characteristics of limited hardware resources and unstable working environment,so the design is different from the traditional method.Before practical application,smart card operating system must go through rigorous testing.because the software is difficult to compensate once occurs vulnerabilities.In this paper, based on the research of the smart card download mechanism,through refining the design of smart card operating system increases the download speed,and then improves testing efficiency and shorten the time of issuing.
smart card;COS;high-speed download
車載智能電子標(biāo)識的研發(fā)與示范應(yīng)用。編號:Z141100006014032。
TP311.1
A
?士然
2014-09-28)