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