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