袁明山 劉桂雄
(華南理工大學(xué) 機(jī)械與汽車工程學(xué)院)
虛擬儀器作為一種基于計(jì)算機(jī)測(cè)量裝置,非常方便應(yīng)用于基于網(wǎng)絡(luò)通信的遠(yuǎn)程測(cè)控中[1~2],對(duì)其配置參數(shù)、測(cè)量數(shù)據(jù)的安全性需求迫切,引入信息安全身份認(rèn)證技術(shù)的一件非常重要的措施。身份認(rèn)證主要采用口令、數(shù)字證書、生物特征或者上述幾種技術(shù)疊加等方式來實(shí)現(xiàn)[3~4]。其中用戶名加口令方式是比較簡(jiǎn)單方式,但安全隱患較大;生物特征識(shí)別技術(shù)專一性好,成本較高,對(duì)于非專一用戶應(yīng)用帶來不便;而基于PKI(公鑰基礎(chǔ)設(shè)施)的硬件加密設(shè)備的USBkey身份認(rèn)證方式,具有成熟度高、可靠性強(qiáng)特點(diǎn),已廣泛應(yīng)用于網(wǎng)上銀行、電子政務(wù)和電子商務(wù)等領(lǐng)域。目前,國(guó)內(nèi)外對(duì)虛擬儀器測(cè)量系統(tǒng)的安全認(rèn)證研究還未見有相關(guān)的報(bào)道。在本文中,作者將探討USBkey身份認(rèn)證在虛擬儀器系統(tǒng)中的應(yīng)用技術(shù)及方法。
USBkey是一種運(yùn)行在計(jì)算機(jī)的令牌產(chǎn)品,其內(nèi)部結(jié)構(gòu)框如圖1所示。它主要包括內(nèi)置智能卡芯片以及數(shù)據(jù)轉(zhuǎn)換傳輸模塊。智能卡芯片包含存儲(chǔ)器,主要用于集成加解密、簽名各種算法以及芯片操作系統(tǒng);數(shù)據(jù)傳輸轉(zhuǎn)換模塊實(shí)現(xiàn)芯片與計(jì)算機(jī)之間的數(shù)據(jù)交換與傳輸,遵循 ISO7816標(biāo)準(zhǔn)和 USB協(xié)議。基于USBkey的身份認(rèn)證采用基于PKI技術(shù)的數(shù)字證書認(rèn)證方式。USBkey中存儲(chǔ)代表用戶身份的數(shù)字證書和由該證書生成的用戶數(shù)字簽名,認(rèn)證過程由USBkey和主機(jī)之間交互認(rèn)證信息。

圖1 USBkey結(jié)構(gòu)框圖
使用USBkey存儲(chǔ)數(shù)字證書、密鑰等秘密數(shù)據(jù)的安全性主要表現(xiàn)在[5]:通過程序?qū)崿F(xiàn)對(duì)存儲(chǔ)空間的讀寫操作,能夠避免用戶直接讀取復(fù)制用戶數(shù)字證書;通過在USBkey內(nèi)進(jìn)行加解密運(yùn)算,密鑰不直接出現(xiàn)在計(jì)算機(jī)內(nèi)存中,杜絕密鑰被截取。
基于USBkey的身份認(rèn)證實(shí)現(xiàn)流程如圖2所示。身份認(rèn)證開始,加載USBkey獲取用戶證書;對(duì)軟件或數(shù)據(jù)進(jìn)行MD5運(yùn)算,生成數(shù)字摘要;數(shù)字摘要送入U(xiǎn)SBkey中,利用集成加密算法和數(shù)字證書中的私鑰進(jìn)行加密,生成軟件或數(shù)據(jù)的數(shù)字簽名;所生成數(shù)字簽名與存儲(chǔ)的簽名數(shù)據(jù)比較,相同則認(rèn)證通過。
在虛擬儀器系統(tǒng)中實(shí)現(xiàn)身份認(rèn)證的方法,是把身份認(rèn)證作為軟件模塊嵌入虛擬儀器源碼中。對(duì)于源碼不可見的虛擬儀器,則用軟件加殼形式嵌入。顯然,規(guī)劃身份認(rèn)證所需各種數(shù)據(jù)也是實(shí)現(xiàn)方法中必須考慮工作。下面以壓力測(cè)量虛擬儀器系統(tǒng)為例,討論身份認(rèn)證的實(shí)現(xiàn)方法。

圖2 基于USBkey的身份認(rèn)證實(shí)現(xiàn)流程圖
圖3為具有身份認(rèn)證功能的壓力虛擬測(cè)量系統(tǒng)總體硬件結(jié)構(gòu)示意圖。它只要由壓力傳感器、信號(hào)處理電路、USBkey和上位計(jì)算機(jī)所組成。
本虛擬儀器系統(tǒng)采用美國(guó) NI公司的 LabVIEW 8.6作為虛擬儀器軟件開發(fā)平臺(tái),完成壓力測(cè)量數(shù)據(jù)處理、顯示和存儲(chǔ),以及身份認(rèn)證功能[6]。系統(tǒng)軟件包括測(cè)量平臺(tái)和身份認(rèn)證功能。測(cè)量平臺(tái)將測(cè)得的壓力信號(hào)經(jīng)由信號(hào)處理電路處理后,通過串口發(fā)送到上位機(jī)進(jìn)行處理、顯示和存儲(chǔ),保存用戶對(duì)平臺(tái)的操作日志。
由于LabVIEW中沒有對(duì)USBkey進(jìn)行直接操作的軟件接口,身份認(rèn)證功能可用C語言編寫,通過微軟加密應(yīng)用程序接口CryptoAPI調(diào)用USBkey提供商的CSP函數(shù),實(shí)現(xiàn)USBkey密碼運(yùn)算和數(shù)字證書操作功能[7~8]。身份認(rèn)證功能模塊保存為動(dòng)態(tài)連接庫(kù)形式,實(shí)現(xiàn)在LabVIEW中身份認(rèn)證功能調(diào)用。該方法可實(shí)現(xiàn)在對(duì)系統(tǒng)軟件簡(jiǎn)單修改前提下實(shí)現(xiàn)身份認(rèn)證功能,易于實(shí)現(xiàn)。下面為身份認(rèn)證功能部分源代碼。


圖3 系統(tǒng)硬件總體結(jié)構(gòu)示意圖
對(duì)于身份認(rèn)證各類數(shù)據(jù)規(guī)劃方法,主要有:①系統(tǒng)數(shù)據(jù)劃分為不同安全等級(jí),以對(duì)應(yīng)不同權(quán)限的用戶,不同數(shù)字證書區(qū)分用戶類型;②USBkey中數(shù)字證書由計(jì)量領(lǐng)域的權(quán)威公正部門頒發(fā),并定期更新證書,確保用戶身份的公正性和準(zhǔn)確性;③認(rèn)證信息及其他操作信息以日志形式保存并存儲(chǔ)在USBkey中,作為計(jì)量部門審核依據(jù);④認(rèn)證中涉及到生成與保存數(shù)字簽名,數(shù)字簽名對(duì)象可為測(cè)量平臺(tái)軟件,簽名可保存在USBkey中以防止對(duì)數(shù)字簽名的非法復(fù)制。身份認(rèn)證的各類數(shù)據(jù)規(guī)劃實(shí)現(xiàn)示意圖如圖4所示。

圖4 身份認(rèn)證的各類數(shù)據(jù)規(guī)劃實(shí)現(xiàn)示意圖
筆者示例平臺(tái)上位機(jī)采用基于 Intel CPU、2GB內(nèi)存、WindowsXP操作系統(tǒng)的計(jì)算機(jī),USBkey帶USB2.0接口、32位安全芯片和128k安全存儲(chǔ)空間,集成SSF33和SM1算法。軟件開發(fā)平臺(tái)為L(zhǎng)abVIEW 8.6和VS2005。沒有插入U(xiǎn)SBkey啟動(dòng)系統(tǒng),提示退出程序;若USBkey中的數(shù)字證書與用戶身份不符,認(rèn)證失敗;身份認(rèn)證成功,加載的測(cè)量平臺(tái)界面如圖5所示。

圖5 認(rèn)證成功加載測(cè)量程序
⑴通過在虛擬儀器系統(tǒng)硬件直接添加USBkey和系統(tǒng)軟件簡(jiǎn)單改動(dòng),實(shí)現(xiàn)USBkey身份認(rèn)證的應(yīng)用,具有技術(shù)成熟可靠、成本低廉、可行性高的特點(diǎn);
⑵合理的各種身份認(rèn)證數(shù)據(jù)的規(guī)劃,可以滿足虛擬儀器系統(tǒng)數(shù)據(jù)安全的需求;
⑶本文研究技術(shù)及方法可推廣到各種基于虛擬儀器的測(cè)量系統(tǒng)或者基于計(jì)算機(jī)測(cè)試系統(tǒng)中。
[1]寧濤. 虛擬儀器技術(shù)及其新進(jìn)展[J]. 儀器儀表學(xué)報(bào), 2007,28(4): 252~254
[2]姚金寶,湯寶平,趙潔. 虛擬儀器遠(yuǎn)程測(cè)控系統(tǒng)的一種新模型[J]. 中國(guó)機(jī)械工程, 2008.19(5): 558~562
[3]陳平,申永軍,徐華龍. 一種有效的圖像口令身份認(rèn)證方案[J]. 計(jì)算機(jī)工程,2008, 34(20): 144~148
[4]王權(quán),楊林,劉偉,王楨珍. 基于USBKEY的訪問控制方法研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2008, 29(11): 2727~2729
[5]Kim W, Kim S, Bae Y, Jun S, Park Y, Cho H. A platform-based SoC design of a 32-bit smartcard.ETRI JOURNAL[J],2003,25(6):510~516
[6] Meng H, Li JY,Tang YH. The design and application of virtual ion meter based on LABVIEW 8.0. Review of Scientific Instruments[J],2009,80(8)
[7]張棟,王昭順. 基于USBKEY的CSP與PKCS#11互通的實(shí)現(xiàn)方法[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2007,28(16): 3829~3831
[8]Platte Jorg, Diaz Raul Duran, and Naroska Edwin. A new encryption and hashing scheme for the security architecture for microprocessors. Lecture Notes in Computer Science(including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics),2006:120~129