網(wǎng)絡(luò)計(jì)算機(jī)中IC卡讀寫器子系統(tǒng)設(shè)計(jì)
文章出處:http://xianjuhong.com 作者:王非 羅海勇 人氣: 發(fā)表時間:2011年10月17日
隨著網(wǎng)絡(luò)的飛速發(fā)展和計(jì)算機(jī)技術(shù)的不斷進(jìn)步,計(jì)算機(jī)應(yīng)用模式正發(fā)生著巨大的變革。網(wǎng)絡(luò)計(jì)算機(jī)(NC)的出現(xiàn)標(biāo)志著計(jì)算機(jī)體系結(jié)構(gòu)的革新,代表著未來計(jì)算機(jī)系統(tǒng)的發(fā)展方向。由于網(wǎng)絡(luò)計(jì)算機(jī)可以采用開放源碼操作系統(tǒng),為發(fā)展帶有自主知識產(chǎn)權(quán)的核心技術(shù)創(chuàng)造了有利條件。在開放源代碼的操作系統(tǒng)中,Linux是一種較好的選擇。它源代碼公開,可以根據(jù)要求自行剪裁并且穩(wěn)定,對資源要求低,有大量應(yīng)用軟件支持。按照網(wǎng)絡(luò)電腦的特定需求,可以開發(fā)出具有自主智能產(chǎn)權(quán)的CPU,從而提高網(wǎng)絡(luò)電腦的安全。網(wǎng)絡(luò)電腦走的是一種網(wǎng)絡(luò)服務(wù)器集中式管理的道路,具有成本低廉、管理費(fèi)用低的優(yōu)勢。
為此,國家863計(jì)算機(jī)軟硬件技術(shù)主題發(fā)展規(guī)劃提出了以下要求:組織優(yōu)勢力量,研究網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)的關(guān)鍵技術(shù),研制網(wǎng)絡(luò)計(jì)算機(jī)系列產(chǎn)品,選擇若干典型應(yīng)用領(lǐng)域的進(jìn)行應(yīng)用示范,以此推動國產(chǎn)微處理器芯片和系統(tǒng)軟件的發(fā)展,促進(jìn)我國電子政務(wù)、網(wǎng)絡(luò)教育、金融、社區(qū)服務(wù)、企業(yè)管理等方面的信息化建設(shè)。
隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,網(wǎng)絡(luò)計(jì)算機(jī)的安全問題顯得非常突出。尤其在某些特殊領(lǐng)域,如電子政務(wù)等,安全問題顯得極端重要。目前,在計(jì)算機(jī)安全方面,有各種不同的方法,但效果都不太好。本文提出的智能IC卡技術(shù),在網(wǎng)絡(luò)計(jì)算機(jī)是一種全新的方法,能夠很好地實(shí)現(xiàn)網(wǎng)絡(luò)計(jì)算機(jī)的安全。智能IC卡(Smart IC)具有較高的安全性,以前主要用在金融、電信等領(lǐng)域,筆者把此技術(shù)推廣應(yīng)用到網(wǎng)絡(luò)計(jì)算機(jī),以提高安全性。智能IC卡本身含有自行研制的COS(Chip OS)和加密算法,并采用多密鑰、多加密算法體系,對所有的敏感數(shù)據(jù)文件加密保護(hù)。如圖1所示。
IC卡子系統(tǒng)是整個網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)網(wǎng)絡(luò)安全的核心,它保存了加密算法所需要的私有密鑰,供加密算法對網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)加密使用。
1 IC卡讀寫器硬件開發(fā)方案
IC卡作為一種信息技術(shù)可以廣泛應(yīng)用于許多行業(yè)領(lǐng)域,如金融、電信等,不同領(lǐng)域均有各自不同的應(yīng)用特點(diǎn)、應(yīng)用環(huán)境和應(yīng)用要求。IC卡在某一領(lǐng)域的應(yīng)用,必須適應(yīng)該領(lǐng)域的特點(diǎn)。國際上有關(guān)組織及部分針對各個領(lǐng)域的不同要求,制定了IC卡在某一領(lǐng)域應(yīng)用所應(yīng)參考或遵循的應(yīng)用標(biāo)準(zhǔn)。不過所有智能IC卡都必須符合國際標(biāo)準(zhǔn)化組織的ISO/IEC 7816國際標(biāo)準(zhǔn)。讀寫器的硬件也必須遵循ISO/IEC 7816國際標(biāo)準(zhǔn)。
ISO/IEC 7816標(biāo)準(zhǔn)要求IC卡與IC卡讀寫器使用串行通信,時序要求非常嚴(yán)格。常用的MCS51系列單片機(jī)速度較慢,每個指令周期需要12個機(jī)器周期,較難達(dá)到該標(biāo)準(zhǔn)所要求的嚴(yán)格時序。Microchip公司的PIC系列單片機(jī)采用RISC結(jié)構(gòu),每個指令周期為4個時鐘周期,并且除轉(zhuǎn)移指令外,所有指令都可以在一個指令周期內(nèi)完成,速度較快,能夠滿足該標(biāo)準(zhǔn)對時序的嚴(yán)格要求。所以采用一片PIC16C73單片機(jī)作為IC卡讀寫器的控制器。
讀寫器與IC卡的通信,采用半雙工的ISO 7916-3字符幀協(xié)議標(biāo)準(zhǔn)。3.57MHz的晶振為IC卡和讀寫器提供時鐘。在缺省工作方式下,IC卡和讀寫器的通信速率為9600bps。即時鐘頻率為3.57MHz,每372個時鐘輸入或輸出一個比特位。在未來需要較高通信速度時,可以在對程序作較小改動的前提下,提高晶振頻率,如采用2×3.57MHz的晶振。
IC卡讀寫器與NC之間的通信,可以采用USB接口、并口、串口、PS/2口等多種方案。采用USB接口可以實(shí)現(xiàn)即插即用和熱拔插等功能。但使用USB接口,電路和協(xié)議都很復(fù)雜,并且增加USB接口器件會較大地增加系統(tǒng)成本。并口有較高的通信速度,但通信線路較多,硬件比較復(fù)雜,可靠性不好,且IC卡讀寫器并不需要太高的通信速度,故使用并口也不是理想的方案。而PS/2口一般固定給鍵盤和鼠標(biāo)等標(biāo)準(zhǔn)外設(shè)使用,使用PS/2口就會占用這些標(biāo)準(zhǔn)外設(shè)的接口,故也不在考慮范圍之內(nèi)。使用串口通信雖然速度慢,但卻具有硬件成本低、軟件實(shí)現(xiàn)簡單、運(yùn)行可靠等優(yōu)點(diǎn)。而通信速度完全可以滿足IC卡讀寫器的要求。所以IC卡讀寫器采用了RS232串口與NC主機(jī)通信的方案。
整個系統(tǒng)使用5V電壓供電。IC卡讀寫器采用低功耗設(shè)計(jì),系統(tǒng)電源從RS232接口的信號線上獲得。RS232接口的電壓為±12V,經(jīng)過電源穩(wěn)壓器件LP2950將12V電壓變?yōu)?5V,給IC卡讀寫器所有器件提供電源。
IC卡讀寫器硬件的原理框圖如圖2所示。
IC卡各引腳接到單片機(jī)I/O口上,由單片機(jī)對IC卡進(jìn)行讀寫。由于PC(NC)機(jī)的RS232接口電平與單片機(jī)的邏輯電平不同,所以需要對串口信號進(jìn)行電平轉(zhuǎn)換。圖2中使用了電平轉(zhuǎn)換器件。它把單片機(jī)的TTL邏輯電平轉(zhuǎn)化為RS232接口的±12V電平,實(shí)現(xiàn)單片機(jī)與RS232的透明傳輸。轉(zhuǎn)換后的信號直接接在RS232接口上。
2 IC卡讀寫器軟件開發(fā)方案
IC卡讀寫器驅(qū)動程序由讀寫器與IC卡通信的通信程序、讀寫器與NC或PC通信的通信程序以及NC與讀寫器通信的驅(qū)動程序三部分組成。其中,NC與IC卡讀寫器通信的程序符合PC/SC規(guī)范,它與PC/SC規(guī)范的中間件結(jié)合,向應(yīng)用程序提供符合PC/SC規(guī)范的API函數(shù)。
2.1 讀寫器與IC卡通信的通信程序
該通信程序采用ISO 7816-3字節(jié)協(xié)議標(biāo)準(zhǔn)編制。使用T=0,即字符協(xié)議,主要實(shí)現(xiàn)與IC卡的通信。由于選用的時鐘為3.57MHz,在IC卡I/O口默認(rèn)的9600bps通信速度下,每隔372個系統(tǒng)時鐘脈沖,I/O狀態(tài)可能變化一次。所以,為了準(zhǔn)確讀取IC卡I/O狀態(tài),在IC卡輸出的每一位脈沖中間,即I/O啟動186個時鐘周期后,讀取I/O狀態(tài)。為了排除可能的干擾,在186個時鐘周期的兩側(cè)再采樣兩點(diǎn),共取樣三點(diǎn)。三個采樣點(diǎn)之間每兩個點(diǎn)間隔24個時鐘周期。如果三點(diǎn)取樣值都為1,則輸出為1;如果三點(diǎn)取樣值都為0,則輸出為0;如果三點(diǎn)取樣值中有兩點(diǎn)為1,一點(diǎn)為0,則輸出為1;如果三點(diǎn)取樣值中兩點(diǎn)為0,一點(diǎn)為1,則輸出為0。
2.2 讀寫器與NC的通信的通信程序
讀寫器與NC的通信程序采用異步串行口協(xié)議,雙方通信先握手取得同步,然后再進(jìn)行串行口通信。讀寫器通過串口接收NC發(fā)來的命令,并將執(zhí)行結(jié)果通過串口發(fā)回。讀寫器與NC的通信在不影響讀寫器與IC卡通信的前提下完成。
2.3 NC的驅(qū)動程序
NC通信程序駐留于NC,它與讀寫器的通信程序通信。這個程序符合PC/SC規(guī)范。規(guī)范規(guī)定的分層模塊結(jié)構(gòu)見下圖。
圖中的ICC就是Integrated Circuit Card,即IC卡。IFD就是Interface Devices,即IC卡讀寫器。IC卡插入讀寫器后,通過IC卡讀寫器IFD與NC驅(qū)動程序的IFD Handler層通信。ICC Resource Manager層管理各種不同的IC卡讀寫器和IC卡資源。
每一種IC卡讀寫器通過各自的IFD Handler接口函數(shù)與ICC Resource Manager層通信,ICC Resource Manager層根據(jù)上層軟件的要求,將上層軟件發(fā)來的命令分別發(fā)到相應(yīng)的IFD Handler,再通過它發(fā)給IC卡讀寫器和IC卡。而ICC-Aware Applications層對上層應(yīng)用軟件提供一個通用的API接口,以滿足不同的應(yīng)用程序?qū)Σ煌腎C卡和讀寫器的編程要求。Service Provider層介于ICC-Aware Applications層和ICC Resource Manager層之間,要吧提供文件的存取控制和驅(qū)動程序的加密通信功能。當(dāng)然,在不使用加密通信功能時,也可以不用這一層。
NC的驅(qū)動程序根據(jù)規(guī)范要求,提供符合標(biāo)準(zhǔn)的IFD Handler層接口函數(shù),其余各部分由符合規(guī)范的中間件提供。應(yīng)用程序調(diào)用間件提供的API函數(shù)發(fā)送命令。中間件把應(yīng)用程序發(fā)來的命令編譯成動態(tài)鏈接庫的IFD Handler接口函數(shù)發(fā)給IC卡讀寫器,最終發(fā)給IC卡。最后,IC卡將返回結(jié)果通過一系列相反的過程返回給應(yīng)用程序。
3 Smart IC卡開發(fā)方案
IC卡芯片具有寫入數(shù)據(jù)和存儲數(shù)據(jù)的能力,IC卡存儲器的內(nèi)容根據(jù)需要可以有條件地由外部讀取,以供內(nèi)部信息處理的判定。根據(jù)卡中所嵌入的集成電路的不同可以分成三類:
(1)存儲器卡,卡中的集成電路為EEPROM(可以用電擦除的可編程只讀存儲器);
(2)邏輯加密卡,卡中的集成電路具有加密邏輯和EEPROM;
(3)CPU卡,卡中的集成電路包括中央處理器CPU、EEPROM、隨機(jī)存儲器RAM以及固化在只讀存儲器ROM中的片內(nèi)操作系統(tǒng)COS(Chip Operating System)。
除此之外,IC卡根據(jù)讀寫方式不同,可分為接觸式IC卡和非接觸式IC卡兩種。由于網(wǎng)絡(luò)安全要求,IC卡在使用時必須一直插在讀寫器內(nèi)。非接觸IC卡由于其讀寫器沒有專用卡座,盡管有壽命長等優(yōu)點(diǎn),但不適用于網(wǎng)絡(luò)安全應(yīng)用。
同時,由于CPU卡計(jì)算能力強(qiáng),可以使用自己的COS操作系統(tǒng),甚至使用硬件完成加密算法。而IC存儲卡僅具有存儲功能,安全性不如CPU卡好,的怪SNCS(Smart Network Computer System)的IC卡子系統(tǒng)采用接觸式CPU卡。
網(wǎng)絡(luò)計(jì)算機(jī)安全系統(tǒng)的IC卡設(shè)計(jì)滿足標(biāo)準(zhǔn)化(國際標(biāo)準(zhǔn))和智能化,既有安全性又有易維護(hù)性。它由硬件和軟件兩部分組成。
(1)硬件
采用CPU卡,它含有CPU及RAM、ROM等。具有優(yōu)秀的安全性能,可能有效防止黑客對IC卡解密。
(2)軟件
·通信程序:IC卡軟件即COS(Chip Operating Systarm),它是智能卡芯片內(nèi)的一個監(jiān)控軟件,用于接收和處理外界發(fā)給智能卡的各種信息,管理卡內(nèi)的存儲器,并給出相應(yīng)的應(yīng)答信息。它有IC卡與讀寫器的通信程序。該通信程序完成與讀寫設(shè)備之間的通信,必須滿足7816-3字符幀協(xié)議。該協(xié)議含有T=0字符傳送協(xié)議和T=1數(shù)據(jù)塊傳送協(xié)議。
·安全文件系統(tǒng):COS文件系統(tǒng)與普通文件系統(tǒng)不同,它著重強(qiáng)調(diào)文件系統(tǒng)的安全性,除提供通常的字符流文件操作外,還提供記錄文件的讀寫操作等。對每種不同的文件操作進(jìn)行不同的訪問權(quán)限保護(hù)。COS中的文件系統(tǒng)與上層應(yīng)用軟件的用戶權(quán)限管理相結(jié)合,共同完成對IC卡文件的訪問。由于IC卡的文件存儲介質(zhì)采用EEPROM,每次寫文件操作時,必須對要寫入的介質(zhì)先進(jìn)行擦除操作。
·安全機(jī)制:安全機(jī)制用于身份鑒別和IC卡與讀寫設(shè)備雙方的認(rèn)證工作及各種數(shù)據(jù)的加密、數(shù)據(jù)完整性檢查等操作。每個用戶IC卡上都有用戶的一個私鑰,服務(wù)器把用公鑰加密后的數(shù)據(jù)經(jīng)IC瞳用自己的私鑰解密后將正確的信息通過網(wǎng)絡(luò)送給服務(wù)器,由服務(wù)器根據(jù)解密的信息完成對用戶權(quán)限的鑒別。
·加解密算法:加解密算法,用于對傳入IC卡的數(shù)據(jù)進(jìn)行加、解密,此外它還提供擴(kuò)展接口,方便用戶增加新的加密算法。
·命令解譯:命令解譯是COS的上層軟件,它實(shí)現(xiàn)ISO7816-4的各種命令和CA命令。
根據(jù)串口竊電IC卡讀寫器設(shè)計(jì)技術(shù)思想,IC卡讀寫器采用低功耗元器件(PIC16C73B低功耗單片機(jī)和74LV125A等),同時采用分離元件取代MAX系列的RS232接口電路,實(shí)現(xiàn)了無需外接電源的串口IC卡讀寫器。經(jīng)實(shí)驗(yàn)測試,整個電路功耗低于10mA,完全可以由串口提供電源。
本項(xiàng)目實(shí)現(xiàn)的串口IC卡讀寫器完全符合ISO7816-1/2/3標(biāo)準(zhǔn)以及PC/SC規(guī)范;軟件實(shí)現(xiàn)采用分層結(jié)構(gòu),實(shí)現(xiàn)了T=0的字符傳輸協(xié)議。
經(jīng)實(shí)驗(yàn)測試,讀寫器穩(wěn)定可靠地實(shí)現(xiàn)IC卡復(fù)位應(yīng)答、讀IC卡讀寫器件狀態(tài)字、讀一個隨機(jī)數(shù)據(jù)、讀取IC卡序列號以及選擇一個文件等操作;在計(jì)算機(jī)與IC卡之間,可以實(shí)現(xiàn)數(shù)據(jù)的透明傳輸。此IC卡子系統(tǒng)既可以工作在Linux平臺上,也可以工作在Windows系列平臺上。