袁明山 刘桂雄
(华南理工大学 机械与汽车工程学院)
虚拟仪器作为一种基于计算机测量装置,非常方便应用于基于网络通信的远程测控中[1~2],对其配置参数、测量数据的安全性需求迫切,引入信息安全身份认证技术的一件非常重要的措施。身份认证主要采用口令、数字证书、生物特征或者上述几种技术叠加等方式来实现[3~4]。其中用户名加口令方式是比较简单方式,但安全隐患较大;生物特征识别技术专一性好,成本较高,对于非专一用户应用带来不便;而基于PKI(公钥基础设施)的硬件加密设备的USBkey身份认证方式,具有成熟度高、可靠性强特点,已广泛应用于网上银行、电子政务和电子商务等领域。目前,国内外对虚拟仪器测量系统的安全认证研究还未见有相关的报道。在本文中,作者将探讨USBkey身份认证在虚拟仪器系统中的应用技术及方法。
USBkey是一种运行在计算机的令牌产品,其内部结构框如图1所示。它主要包括内置智能卡芯片以及数据转换传输模块。智能卡芯片包含存储器,主要用于集成加解密、签名各种算法以及芯片操作系统;数据传输转换模块实现芯片与计算机之间的数据交换与传输,遵循 ISO7816标准和 USB协议。基于USBkey的身份认证采用基于PKI技术的数字证书认证方式。USBkey中存储代表用户身份的数字证书和由该证书生成的用户数字签名,认证过程由USBkey和主机之间交互认证信息。
图1 USBkey结构框图
使用USBkey存储数字证书、密钥等秘密数据的安全性主要表现在[5]:通过程序实现对存储空间的读写操作,能够避免用户直接读取复制用户数字证书;通过在USBkey内进行加解密运算,密钥不直接出现在计算机内存中,杜绝密钥被截取。
基于USBkey的身份认证实现流程如图2所示。身份认证开始,加载USBkey获取用户证书;对软件或数据进行MD5运算,生成数字摘要;数字摘要送入USBkey中,利用集成加密算法和数字证书中的私钥进行加密,生成软件或数据的数字签名;所生成数字签名与存储的签名数据比较,相同则认证通过。
在虚拟仪器系统中实现身份认证的方法,是把身份认证作为软件模块嵌入虚拟仪器源码中。对于源码不可见的虚拟仪器,则用软件加壳形式嵌入。显然,规划身份认证所需各种数据也是实现方法中必须考虑工作。下面以压力测量虚拟仪器系统为例,讨论身份认证的实现方法。
图2 基于USBkey的身份认证实现流程图
图3为具有身份认证功能的压力虚拟测量系统总体硬件结构示意图。它只要由压力传感器、信号处理电路、USBkey和上位计算机所组成。
本虚拟仪器系统采用美国 NI公司的 LabVIEW 8.6作为虚拟仪器软件开发平台,完成压力测量数据处理、显示和存储,以及身份认证功能[6]。系统软件包括测量平台和身份认证功能。测量平台将测得的压力信号经由信号处理电路处理后,通过串口发送到上位机进行处理、显示和存储,保存用户对平台的操作日志。
由于LabVIEW中没有对USBkey进行直接操作的软件接口,身份认证功能可用C语言编写,通过微软加密应用程序接口CryptoAPI调用USBkey提供商的CSP函数,实现USBkey密码运算和数字证书操作功能[7~8]。身份认证功能模块保存为动态连接库形式,实现在LabVIEW中身份认证功能调用。该方法可实现在对系统软件简单修改前提下实现身份认证功能,易于实现。下面为身份认证功能部分源代码。
图3 系统硬件总体结构示意图
对于身份认证各类数据规划方法,主要有:①系统数据划分为不同安全等级,以对应不同权限的用户,不同数字证书区分用户类型;②USBkey中数字证书由计量领域的权威公正部门颁发,并定期更新证书,确保用户身份的公正性和准确性;③认证信息及其他操作信息以日志形式保存并存储在USBkey中,作为计量部门审核依据;④认证中涉及到生成与保存数字签名,数字签名对象可为测量平台软件,签名可保存在USBkey中以防止对数字签名的非法复制。身份认证的各类数据规划实现示意图如图4所示。
图4 身份认证的各类数据规划实现示意图
笔者示例平台上位机采用基于 Intel CPU、2GB内存、WindowsXP操作系统的计算机,USBkey带USB2.0接口、32位安全芯片和128k安全存储空间,集成SSF33和SM1算法。软件开发平台为LabVIEW 8.6和VS2005。没有插入USBkey启动系统,提示退出程序;若USBkey中的数字证书与用户身份不符,认证失败;身份认证成功,加载的测量平台界面如图5所示。
图5 认证成功加载测量程序
⑴通过在虚拟仪器系统硬件直接添加USBkey和系统软件简单改动,实现USBkey身份认证的应用,具有技术成熟可靠、成本低廉、可行性高的特点;
⑵合理的各种身份认证数据的规划,可以满足虚拟仪器系统数据安全的需求;
⑶本文研究技术及方法可推广到各种基于虚拟仪器的测量系统或者基于计算机测试系统中。
[1]宁涛. 虚拟仪器技术及其新进展[J]. 仪器仪表学报, 2007,28(4): 252~254
[2]姚金宝,汤宝平,赵洁. 虚拟仪器远程测控系统的一种新模型[J]. 中国机械工程, 2008.19(5): 558~562
[3]陈平,申永军,徐华龙. 一种有效的图像口令身份认证方案[J]. 计算机工程,2008, 34(20): 144~148
[4]王权,杨林,刘伟,王桢珍. 基于USBKEY的访问控制方法研究[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互通的实现方法[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