李文寶
(中國鐵路總公司 信息技術中心,北京 100844)
雜費核收系統是貨運制票系列軟件中一個子系統,在鐵路貨運業務流程中處于站到站運輸末端,貨物到站交付是一批站到站運輸的結束標志,在整個運輸過程中占有非常重要的地位。本系統主要完成貨物到站后的票貨確認,是否發生匿報、變更作業等,根據在到站實際發生的貨運作業及票貨核對情況核算到站雜費,交付完成后對本次運輸銷號。對發現的漏收、多收通過本系統進行補退,保障鐵路收入安全的重要手段。按自然日上報財收包至鐵路局,各鐵路局匯總至鐵路總公司。雜費票據信息同時是收入部門、資金清算部門、貨運運輸部門等業務處室統計、分析重要數據依據,保障雜費數據的不被篡改、盜取和有效共享對整個鐵路運輸具有非常重要的意義。
貨運雜費子系統自投入生產以來,為了滿足不同車站的需求,根據車站實際情況開發了單機與網絡兩種運行模式。
單機模式不需要安裝數據庫軟件,以嵌入式數據庫作為系統數據存儲介質,適用于單制票點、硬件和網絡服務條件不佳車站部署;或有多制票機但各制票機工作物理分離,數據共享需求弱的車站。
網絡模式需要有一臺單獨的安裝有Oracle數據庫的服務器,各制票機均連接到該服務器運行。適用于多制票點及硬件和網絡條件較好,且需要多制票機間共享數據的車站部署。
國際標準化組織(ISO)對計算機系統安全的定義:為數據處理系統建立和采用的技術和管理的安全保護,保護計算機硬件、軟件和數據不因偶然和惡意的原因遭到破壞、更改和泄露。數據安全有對立的3方面的含義 :(1)數據本身的安全,主要是指采用現代密碼算法對數據進行主動保護,如數據保密、數據完整性、雙向強身份認證等。(2)數據防護的安全,主要是采用現代信息存儲手段對數據進行主動防護,數據安全是一種主動的包含措施,數據本身的安全必須基于可靠的加密算法與安全體系,主要是有對稱算法與公開密鑰密碼體系兩種。(3)數據存儲的安全,主要是指數據庫在系統運行之外的可讀性,數據本身是否進行安全設計,例如:一個標準的ACCESS數據庫,懂得一些基本方法的計算機人員,都可以打開閱讀或修改。一旦數據庫被盜,即使沒有原來的系統程序,照樣可以另外編寫程序對盜取的數據庫進行查看或修改。
(1)保密性:又稱機密性,是指個人或團體的信息不為其他不應獲得者獲得。(2)完整性:數據完整性是信息安全的3個基本要點之一,指在傳輸、存儲信息或數據的過程中,確保信息或數據不被未授權的篡改或在篡改后能夠被迅速發現。(3)可用性:數據可用性是一種以使用者為中心的設計概念,易用性設計的重點在于讓產品的設計能夠符合使用者的習慣與需求。
本系統為運行在車站制票機上的桌面程序,為適應全路不同貨運車站開發設計單機版和網絡版系統。單機模式數據存儲于本地嵌入式數據庫,本系統采用的SQL Lite數據庫。網絡模式存儲于Oracle數據庫。
為保障數據的安全,同時兼顧系統開發難度,設計數據庫中間層負責系統與數據的交互,保障數據的保密性、完整性、可用性。
2.3.1 單機版系統數據安全設計實現
(1)保密性:單機版系統采用開源嵌入式數據庫Sq l Lite。為保障其保密性,在其源碼基礎上增加本系統信息,重新編譯生成本系統能用的版本,使通用Sq l Lite驅動無法讀取打開而實現數據文件的安全隱蔽。數據文件按數據屬性隨機分隔成多個文件,各文件間存在必要的邏輯校驗,杜絕第三方軟件或黑客盜取數據文件后還原數據。
(2)完整性、可用性:單機版系統數據庫文件分散存儲后,使數據完整、可用變得極為重要,如何還原數據、保障數據不被篡改,確保數據完整正確是系統正常運行的保障。數據庫中間層的設計實現解決了數據的完整、可用。
單機模式下數據庫中間層根據貨運站雜費系統本地配置參數,打開對應的數據庫文件,按照與雜費核收系統約定的一組數據訪問接口實現數據的讀、寫、查。數據庫中間層定義一組可能發生的返回情況,系統通過調用接口獲得數據和執行返回值,通過執行返回值獲知操作的成功與否。
單機版雜費核收系統、數據庫中間層、邏輯數據庫與物理存儲如圖1所示。

圖1 單機版雜費核收系統、數據庫中間層、邏輯數據庫與物理存儲
2.3.2 網絡版系統數據安全設計實現
(1)保密性:網絡版系統采用Oracle數據庫。為保障其保密性,對數據庫中重要數據庫表、關鍵數據項進行加密處理,保障了數據的不可讀、不可篡改。數據庫用戶系統設定規則,按照貨運站創建,避免不同車站用相同用戶名造成的數據庫用戶、口令被盜。
(2)完整性、可用性:網絡版系統對數據庫中重要數據庫表、關鍵數據項進行加密處理,數據完整、可用變得極為重要,如何還原數據、保障數據不被篡改,確保數據完整正確是系統正常運行的保障。數據庫中間層的設計實現解決了數據的完整、可用。
網絡模式下數據庫中間層會根據貨運站雜費系統本地配置參數,連接到Oracle數據庫,按照與雜費核收系統約定的一組數據訪問接口實現數據的讀、寫、查。數據庫中間層定義一組可能發生的返回情況,系統通過調用接口獲得數據和執行返回值,通過執行返回值獲知操作的成功與否。
網絡版雜費核收系統、數據庫中間層、邏輯數據庫與物理存儲如圖2所示。
2.3.3 數據安全設計實現總結

圖2 網絡版雜費核收系統、數據庫中間層、邏輯數據庫與物理存儲
因雜費核收系統的特殊要求與在貨運運輸中的地位,在數據源頭,車站級軟件進行的數據安全方面的設計是必要的。但是同時也為系統軟件設計開發帶了極大困難,數據庫中間層的設計有效的解決了系統的復雜性,同時保障了數據安全性,但數據的加密存儲、分散存儲也為后續的數據應用帶來的不便,在下一章節將介紹數據共享。
數據共享就是讓在不同地方使用不同計算機、不同軟件的用戶能夠讀取他人數據并進行各種操作運算和分析。本系統的數據共享是車站級其它貨運系統間的數據交互。因雜費核收系統處于運輸的環節末端,與車站作業緊密相關,所以本系統的數據共享程度將直接影響整個貨運系統運行。
車站級雜費核收系統按運行模式分為單機模式與網絡模式,因數據庫存儲方式的區別,在設計數據共享方面也同時考慮到兩種共享模式:文件方式數據共享與數據庫方式數據共享。
本系統在保障數據機密性的前提下結合其它相關貨運系統對雜費核收系統數據的需求,制定了相應共享等級,不同共享等級獲得的數據不同,即:實現可控的數據共享。共享的實現通過數據庫中間層來實現,共享等級與貨運站、具體應用系統相關。共享的格式及數據項以文電方式發布通知各應用系統。
(1)文件方式數據共享,顧名思義該方式是以文件方式進行交互,文件的格式是在文電中定義好的,接收共享數據的應用系統在指定目錄下按照自身共享級別及對應的文件格式解析共享數據。是否共享的開關在雜費核收系統中設置。
文件方式數據共享示意圖如圖3所示。

圖3 文件方式數據共享示意圖
(2)數據庫方式數據共享,因系統運行模式的區別,該方式只適用于雜費核收系統的網絡模式。該方式共享交互是在數據庫中進行的,接收共享數據的應用系統需要到本系統指定的共享數據表中讀取數據。共享數據單向不循環,修改后的數據不會寫會雜費核收系統。接收共享數據的應用系統按照自身共享級別及對應的共享數據項在共享表中讀取數據。不同共享級別的共享數據項不同。數據庫方式數據共享示意圖如4所示。

圖4 數據庫方式數據共享示意圖
(3)數據共享設計實現總結,本系統數據共享按照事先約定的共享方式、共享程度做到了對數據進行有效可控的共享,根據不同貨運站、應用系統控制共享級別既是數據安全的延伸又做到了靈活可控。數據共享與否的開關可以在雜費核收系統中設置,雜費核收系統運行中對數據的操作通過數據庫中間層實時反映到共享數據表或數據文件中,為其他的貨運系統提供及時、便捷、準確的數據支撐。
車站級雜費核收系統是整個站到站貨運運輸末端,一批運輸的完結標志,對貨運數據統計分析及組織、生產、運輸起著重要的作用,同時又是雜費費用核收、補退款唯一手段,對保障鐵路貨運財務安全起著重要的作用。在數據源頭車站級設計開發配套數據安全與共享機制是必要的。