蘇柏光,王慶生
(太原理工大學計算機與軟件學院,太原030024)
現有的煤炭銷售票使用傳統紙質票據和單證為數據傳輸媒介,采用人工方式進行數據錄入、統計、做賬和核驗。人工處理方式在面對大量數據處理的情況下,員工工作量大,效率低,特別是存在票證丟失、回收流程周期長、個別基層單位也為利益驅使在數據傳輸和核驗中弄虛作假等問題。
基于以上應用需求,筆者提出了一種煤炭銷售票控終端機的實現方案,采用了基于XPE嵌入式系統的開發技術。本技術經過具體售票環節的分析,從領用、使用、回收、核銷等幾個環節對人工銷售票進行改進,變人工售票為軟件及硬件售票;通過內部網和互聯網數據傳輸解決票據流轉問題;采用USBKey作為身份認證和上報數據媒介,避免人為舞弊現象的發生;使用票控機及票上使用二維條碼避免“假”發票的產生。
目前基于XPE操作系統開發技術的研究也有一些,但其開發流程細節方面各異,有很多需要規范的地方,為此,有必要對XPE系統整個開發流程進行全面研究分析,提出一套相對規范、簡潔的開發模式,為今后的XPE系統開發流程規范化提供一種參考方案。同時一些安全機制策略相對來說較為成熟,如USBKey認證、數字簽名、RSA加解密算法等,但將各種技術融合為一體,結合其各自的優點于一身的研究相對還較少,因此,也有必要就各種安全機制進行系統研究,提出一種較為理想的安全技術綜合應用方案。
在應用領域,有類似系統應用于稅控領域的,其基本方法是網絡稅控系統從所管理的商業管理信息系統的商業收款機采集稅控用的源數據,包括:通過在商業收款機中設置的數據采集模塊截獲商業收款機輸出的銷售票據數據,將截獲的銷售票據數據作為稅控處理用的源數據傳送給與商業收款機連接的網絡稅控器。其使用技術與本技術有明顯的不同。
XPE是桌面Windows XP的組件化版本。其構建在已經通過驗證的Windows 2000代碼庫基礎之上,它提供了業內領先的可靠性、安全性與性能,并且具備最新的多媒體、Web瀏覽、電源管理及設備支持能力。XPE與Windows XP Professional一樣基于二進制,包含12,000多個獨立的功能組件,因此開發人員在自定義設備映像中管理或降低內存占用量時可以選擇并獲得最佳功能。同時,XPE還集成了最新的嵌入式支持能力,支持多種引導、存儲、部署和管理技術[1]。
USBKey技術來源于智能卡。智能卡是一個帶有微處理器和存儲器等微型集成電路芯片,具有快速運算、存儲量大、安全性高以及難以破譯和偽造等特點,被認為是目前安全存放數字證書及密鑰的方式之一。由于智能卡結合了更先進的集成電路芯片,因此具有快速運算、存儲量大、安全性高以及難以破譯和偽造等特點,而且支持多種對稱加密算法和非對稱加密算法,它內置的智能存儲芯片可以存儲用戶的密鑰或數字證書,還可以在內部生成公鑰與私鑰對,大大提高了系統的安全性[2]。
現代高新技術的發展,要求條碼在有限的幾何空間內表示更多的信息,二維條碼正是為了解決這個問題而誕生的。在有限的幾何空間內印刷大量的信息,這一問題的解決可用兩種方法。一是在一維條碼的基礎上向二維條碼方向發展,采用行排式結構,把幾層一維條碼疊在一起,如PDF417,Code 49條碼等。二是利用圖像識別原理,采用新的幾何圖像和結構設計出二維條碼碼制[3],如Maxicode,QR Code,Data Matrix等。
山西省煤炭行業銷售票的印制、發放、到手工開票、回收、統計,過程繁雜,并且各級監管力度不夠全面,加之人工的原因,既耗時,又容易出錯。鑒于此,山西省煤炭工業管理局經過考察、構思,并于2009年提出了開發“山西省煤炭銷售管理系統”的需求,通過機打電子票代替現行手工票,在原有煤炭銷售票性質不變的情況下加強了防偽識別和票據使用情況的監管力度,同時加強了對煤炭銷售票運行工作的指導、監督和檢查,促進了全省煤炭銷售票信息化的穩步進行。
2.2.1 票控機系統硬件構成
該票控機系統主要完成的基本功能有:煤炭銷售票的打印;開票人員的身份認證;票據的真偽辨別等。基于以上的一些應用需求,本系統的主要硬件部件由一臺票控機、一臺打印機、兩個USBKey(用戶卡和票控卡各一個)和一把二維碼掃描槍(該設備為可選產品)組成。其中,票控機的一些硬件配置選型,以及其軟件系統的開發過程在后一章節有詳細敘述,這是本論文的重點內容。
2.2.2 票控機系統體系結構
該票控機的體系結構如圖1所示。本體系結構中最底層的是硬件平臺,采用嵌入式主機;然后是硬件虛擬層,硬件虛擬層將操作系統和硬件平臺隔離開來,與硬件密切相關,通過接口向操作系統以及應用程序提供對硬件的操作服務。操作系統或應用程序使用硬件虛擬層API接口對硬件進行操作,只要硬件虛擬層API能夠在下層硬件平臺上實現,那么操作系統和應用程序的操作功能就可以實現,使得硬件虛擬層具有與操作系統無關性,保證了操作系統可以在不同的硬件體系中移植。嵌入式操作系統內核對硬件的相關操作主要包括系統啟動初始化、任務上下文管理、中斷異常管理以及時鐘管理,都是通過硬件虛擬層來實現的。
硬件虛擬層之上是嵌入式操作系統,采用微軟的XPE嵌入式操作系統,根據所使用的嵌入式主機的特點和煤炭銷售票控終端機的功能需求,對XPE系統進行定制。嵌入式終端機軟件運行于XPE系統之上,由于XPE是Window s XP操作系統的組件化版本,所以終端機軟件完全可以不需做任何的改動運行在XPE系統上,而最終的XPE系統體積要遠遠小于XP系統,而且速度更快。

圖1 票控終端機體系結構
2.2.3 系統功能模塊劃分
本票控機是煤炭企業銷售部門開具煤炭銷售票的主要電子設備,它的安全穩定運行是整個煤炭行業安全穩定、正常運行的關鍵所在,由此系統的安全穩定是考慮的第一要素。基于以上系統需求,設計其主要功能包括:用戶登錄時的身份認證,數據傳輸中的信息加密,票據防偽碼的設計以及系統應用的基本功能等。其系統主要功能模塊框圖如圖2所示。

圖2 票控終端機功能模塊圖
作為XPE操作系統的開發平臺的工作站,也有一些配置的基本要求。其操作系統必須是 Windows XP Professinal,CPU的運行速度應大于PⅢ500 MHz,配置內存至少大于256 MB,硬盤剩余空間至少要有3 GB。接下來選用開發工具。
在工作站上安裝 Windows Embedded Studio工具包,包括開發工具和數據庫,主要由以下4個部分組成[4-7]:
1)目標分析器。包括TA.exe和TAP.exe兩個應用程序。TA.exe是 16位應用程序,必須在DOS環境下運行。
2)目標設計器。創建目標設備的新配置,并向其中添加相應組件,確保配置具有創建運行時映像所需的組件,生成運行時映像。
3)組件設計器。用來設計新的組件,并將其保存到組件數據庫中,用來擴展嵌入式設備的功能,以滿足需求。
4)組件數據庫管理器。提供對組件設計器和目標設計器工具所使用的組件數據和存儲庫的管理功能。
3.1.1 XPE操作系統詳細定制過程
1)分析硬件。通過光盤的win pe分析硬件,win pe是一個運行在光盤上的操作系統,可作為預安裝環境,也可作為TAP.exe運行平臺,用來分析目標機器的硬件配置情況。將TAP.exe拷貝到目標機器,運行檢測目標機,生成一個默認文件名為devices.pmq的硬件列表定義文件,采用XML語言描述目標機器的硬件信息。
2)設計組件。運行組件設計器(Component Designer),選擇File/Import打開對話框硬件信息文件devices.pmq,按下 START按鈕,導入.pmq文件,并保存為文件名為ticketcontrol system.sld的組件。然后,選中 ticketcontrol system.sld,將其屬性設為Selector Prototype Component類型。
3)添加硬件信息。運行組件數據庫管理器(Component databaseManager),點擊import按鈕,導入生成的硬件列表定義文件 ticketcontrol system.sld,則將目標機器硬件配置為一個新的組件存入數據庫,可在目標設計器中重復使用該組件。
4)添加軟件組件。運行目標設計器(Target Designer),在組件樹結構中可看到數據庫中所有的組件,根據所要制定Windows XP Embedded的功能添加相應組件。將硬件信息的組件添加到配置中。打開配置欄的ticketcontrol system組件,看到硬件設備組件。因為組件屬性設置為Selector Prototype Component類型,可刪去不用的設備組件,比如:floppy,CD-Rom等等。同時添加一些必要組件,比如:數據庫組件,usb相關組件等等。最后我們要將最重要的一個組件,即票控機開票軟件組件添加進來。
5)生成系統映像。在生成映像前要檢查組件的關聯性,因為所選中的組件需要其他組件的支持,反復檢查關聯性,并添加相應組件,直到無錯誤為止。關聯性檢查無錯誤,生成系統運行映像。將其拷貝到目標C盤,第1次啟動時,目標機執行FBA,檢查和配置設備,并執行注冊DLL和COM等任務。將生成的映像文件拷貝到啟動盤,修改Boot.ini,啟動映像完成FBA。
3.1.2 XPE操作系統運行測試
按照上述方法構建的XPE系統最終的大小是450 MB左右,使用WinPE系統將目標機C盤格式化為NTFS格式,然后將Image拷貝到目標機的C盤,重新啟動系統,XPE開始FBA,經過一段時間FBA結束,系統再次重新啟動,進入XPE系統。進行各項功能的配置,不同用戶啟動不同外殼程序的配置,HORM的配置,EWF的配置,對票控終端機程序進行設置,重新啟動系統,對各項功能進行檢測。目前測試狀態表現良好,系統穩定安全運行,達到了設計目的。
該模塊主要是完成 USBKey身份認證系統模式的實現工作。USBKey認證系統主要包括CA認證中心、驗證服務器和 USBKey。CA認證中心實際是PKI的核心,還包括證書申請注冊機構RA(Register Authority),它是數字證書的申請注冊、證書簽發和管理機構。簽名驗證服務器提供數字簽名服務以及對數據驗證其數字簽名的真實性。USBKey是數字證書的載體。
其認證模式如圖3所示。
其具體工作過程為:CA服務器頒發數字證書,通過USBKey應用程序將數字證書和私鑰寫進USBKey;客戶端通過簽名控件讀寫 USBKey中的證書和私鑰,并通過KEY中智能芯片用私鑰對用戶信息加密,客戶端將原文及密文和數字證書打包發給簽名認證服務器,簽名認證服務器將核對數字證書的有效性,并用公鑰解密出原文并核對,從而確認客戶端身份。
系統在該模塊中采用QR Code碼作為二維條碼的編碼方式。QR Code碼是一種矩陣型二維條碼符號,具有存儲信息容量大、可靠性高、超高速全方位識讀的特點,可表示漢字、圖像等多種類型信息。QR Code編碼過程如下:

圖3 USBKey簽名驗證示意圖
1)對輸入數據進行數據分析。
分析所輸入的需要編碼的數據流,確定要進行編碼的字符類型。確定用戶選擇的糾錯等級(沒有則選擇默認等級),根據糾錯等級和數據容量,選擇與數據相適應的最小編碼版本。本系統編碼的數據采用數字型和中國漢字的編碼字符,糾錯等級采用M級,約可糾錯15%的數據碼字。需編碼數據信息如圖4所示。

圖4 編碼銷售票數據信息圖
2)數據流及糾錯設置編碼。
按照所選擇模式的編碼標準,將數據字符轉換為位流。在數據位流前加上模式指示符,在數據位流之后加上終止符,將產生的位流分為每8位一個碼字,必要時加入填充字符以填滿按照版本所要求的數據字數。按標準要求將碼字序列分塊,以便生成相應的糾錯碼字。分段后的數據通過RS糾錯電路,生成相應的糾錯碼字,并加入到相應的數據碼字序列的后面。
3)加入掩模、格式及版本信息。
用8種掩模圖形依次對符號的編碼區域的位圖進行掩模處理,評價所得到的8種結果,選擇最優的一種。生成版本信息(版本7以上)和格式信息,構成符號。加入矩陣對應位置。
4)生成條碼圖形。根據上面步驟得到的1,0矩陣,對銷售票數據信息加密以及進行QR Code編碼生成對應的黑白方塊條碼圖形。
系統在該模塊中所涉及的數據加密的數字證書采用X.509標準,加密數據主要是兩種類型,一種是較短數據的加解密,如用戶登錄中口令的傳輸,身份的認證等,采用RSA加密解算法;另一種是長數據的加解密,如客戶端與服務器進行大量數據傳輸需要加密,采用DES算法與RSA算法相結合的加解密算法。其基本實現模式如下:
1)使用RSA加密算法實現較短敏感數據的加解密。
X.509證書標準支持三種不對稱加密算法:RSA,DSA,Diffie-Hellman algorithms。最常用的是RSA算法。這個證書具有RSA算法1024位的密鑰對。其加解密原理如圖5所示。

圖5 RSA加密解密過程
其工作原理為:首先,加密方將字符串明文轉成編碼字節流,然后利用解密方的公鑰對字節流使用1 024位的密鑰加密,初始應該是128字節(1 024位)的byte[]的原始數據,加密后的數據也是128字節(1 024位),如果明文不足128字節,RSACryptoServiceProvider會自動用隨機數補足128字節。加密后的密文數據通過網絡傳輸到解密方執行對應相反的解密操作將密文格式還原為明文。
2)使用DES與RSA相結合實現對長數據的加解密。

圖6 DES和 RSA結合的長數據加解密原理圖
長數據的加解密策略是把數據明文拆分為合適大小的數據塊之后逐塊加密,解密時逐塊的解密再拼接。其加解密原理如圖6所示。去加密長數據,之后再用解密方提供的非對稱算法的公鑰publickey加密剛才生成的對稱密鑰key,最后把加密后的長數據和加密后的對稱密鑰key拼接在一起發送給解密方。解密方接收到后,首先分解數據,把加密后的對稱密鑰key和加密后的長數據兩部分分解開。之后使用非對稱算法的私鑰解密,獲得對稱密鑰key。最后用對稱密鑰key解密加密的長數據。
根據系統應用需求對票控機系統基本功能已經進行了詳細的分析,其操作流程主要包括:開具銷售票功能,代開票功能,鐵路換票功能,洗儲票據回收功能,作廢票據功能,打印票據功能,掃描票據功能等。本應用系統的實現工具是VC++6.0,其各種界面也是在VC的可視化編程環境中完成的,系統涉及到的界面較多,限于篇幅,這里不再一一介紹。
筆者針對當前煤炭銷售領域的需求,提出了一種煤炭銷售票控終端機的實現方案,該方案采用了基于XPE嵌入式操作系統的軟件設計模式。該開發模式的安全性以及可靠性等方面都有良好的表現,可以作為今后其它領域開發類似系統的一種有效參考。文中主要的創新點在于應用方面的創新,此類系統還未應用于煤炭銷售票領域,尚屬首例。同時,文中對一些技術的實現也提出了一些創新性的改進方案。目前為止,該系統已應用于山西各大煤礦的銷售部門,并取得了良好的運行效果。
其工作原理為:加密方生成對稱加密的密鑰key(包括key和IV),然后對稱算法使用這個key
[1] Liming SD.Windows XP Embedded Advanced[M].San Diego:Anna books/RtcBooks,2003.
[2] 王京艷.USBKey網絡安全認證技術在自考系統中的應用研究[D].北京:北京工業大學,2008.
[3] 徐杰民,肖云.二維條碼技術現狀及發展前景[J].計算機與現代化,2004(12):8-13.
[4] 姜學赟.基于嵌入式技術的火警終端臺的研制[D].大連:大連理工大學,2008.
[5] 丁露,陳家斌,呂少麟,等.基于Windows XP Embedded嵌入式車輛導航系統設計與實現[J].中國慣性技術學報,2006,14(6):27-29.
[6] 王太勇,何慧龍,鄧學欣,等.基于EWF保護的XPE操作系統的開發與應用[J].同濟大學學報(自然科學版),2006,34(3):410-413.
[7] 馮峰.嵌入式Windows XP操作系統開發[J].電訊技術,2004,44(4):162-165.