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