龙源期刊网 http://www.qikan.com.cn
基于移动设备的USB Key身份认证方案
作者:卞雪雯 刘健 任奕豪
来源:《现代电子技术》2015年第22期
摘 要: 提出一种基于移动设备的USB Key身份认证方案,主要用于解决在移动设备端传统身份认证技术中存在的安全问题。在移动设备端使用USB Key身份认证技术可以很好地提高移动设备对用户身份认证的安全性。主要从两方面进行论述:移动设备端是如何获取USB Key中的数字证书并进行身份认证,从而保证移动设备环境下的安全;移动设备端的用户是如何进行身份认证,从而保证应用服务的安全性。通过安全性分析和实验可得出,这种身份认证技术可有效地抵御移动设备端账户和服务攻击。
关键词: USB Key; 身份认证; 信息安全; 数字证书
中图分类号: TN958?34; TP391.4 文献标识码: A 文章编号: 1004?373X(2015)22?0051?04 0 引 言
目前,身份认证技术是信息安全技术领域中一个热门的研究问题,如何解决传统身份认证技术中的难题,直接关系到用户能否在各种应用的服务上得到安全性、可靠性和可用性的保障。USB Key身份认证技术是近年来快速发展的一门身份认证、识别技术[1],它采用软硬件结合的方式,在各个领域中都得到了广泛的应用。在移动设备端,现有的身份认证方式已经包含了用户名密码、动态口令、USB Key和生物识别等多种身份认证技术。表1是USB Key身份认证技术与各种认证技术基于移动设备端在易用性、安全性、经济性和可接受性上的比较。生物识别首次应用在了苹果的iPhone手机上,采用了指纹识别的身份认证技术,这种方式安全性和易用性高,但是经济成本较高,必须配备一定的硬件予以辅助,推广程度不是很广泛。用户名密码是每个移动设备端都基本具有的功能,其安全性比较低。动态口令在移动设备端虽然安全性很高,但是易用性较低,给用户带来的不便也较明显。所以基于经济性、安全性和可靠性的基础上,选择了在移动设备端使用USB Key进行身份认证。 表1 身份认证技术对比
基于移动设备的USB Key的身份认证技术可以很好地保证移动设备端以及其应用服务的安全性,主要从两个方面进行论述:用户在使用移动端应用服务时,移动设备端是如何识别USB Key,并且如何获取USB Key中的数字证书进行身份认证;移动设备端的用户在使用应用服务时是如何对用户身份进行认证,从而保证应用服务在移动设备环境下的安全性。 1 相关技术 1.1 移动设备
龙源期刊网 http://www.qikan.com.cn
这里使用的移动设备以安卓系统为实验环境,安卓系统是一种基于Linux的自由及开放源码的操作系统,作为一种开放式的操作系统,以Linux系统为核心,使用Java作为其主要的编程语言。安卓系统最初主要用于支持智能手机,后逐步扩展到平板电脑及其他领域上,如智能电视、数码相机以及游戏设备等。
安卓系统在结构上采用分层的架构,分为四个层次,从高到低分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层[2]。安卓具有开源的特性,使得软件成本问题得到解决,也可以在安卓系统上实现USB Key身份认证技术。 1.2 USB Key身份认证
身份认证是指系统对登录用户身份进行验证的过程,验证用户的身份是否合法,是否具有访问及使用某种资源的权限,保护登陆用户的物理身份与数字身份相对应[3]。USB Key是数字证书和用户密钥的安全载体,USB Key身份认证技术与传统的用户名加口令的认证方式相比较,其安全性和保密性更强;与生物特征识别技术相比较,USB Key身份认证技术操作简单,技术成熟,推广应用成本低。简单易用、便于携带、安全可靠是USB Key最显著的特点[4?5]。
每一个USB Key都具有硬件、PIN码保护,PIN码和硬件构成了用户使用USB Key的两个必要因素,即所谓“双因子认证”[6]。用户只有同时取得了USB Key和用户PIN码,才可以登录系统。即使用户的PIN码被泄漏,只要用户持有的USB Key不被盗取,合法用户的身份就不会被仿冒;如果用户的USB Key遗失,拾到者由于不知道用户的PIN码,也无法仿冒合法用户的身份。从而最大限度的保护了合法用户的权利[7]。USB Key具有一定的安全数据存储空间,可以存储用户密钥、数字证书等秘密数据,对该存储空间的访问操作必须通过特定的程序来实现,且其中存储的用户私钥是不能导出的,这就杜绝了非法用户盗取用户密码和仿冒身份的可能。通过与智能卡技术相结合,嵌入了智能卡芯片的USB Key不但可以存储数据,还可以在USB Key内进行加/解密运算和生成随机密钥,从而密钥不必出现在客户端内存中,降低了密钥在客户端泄漏的可能性[8]。USB Key身份认证系统主要有两种应用模式,一种模式为冲击?响应的认证模式;另一种模式为公钥基础设施,即PKI体系认证模式[9?10]。 2 USB Key身份认证
2.1 基于移动设备的USB Key身份认证方案
为了提高移动设备端身份认证的安全性,设计了一种适用于移动设备端的USB Key身份认证方案。用户在访问移动设备应用前首先需要进行身份认证,认证通过后,认证服务器通过匹配信息,决定用户是否有权利调用该移动设备应用服务。基于USB Key的移动设备身份认证模型,如图1所示,保证了用户在使用移动设备应用时能够具有惟一的身份标识,并通过这一身份标识保证用户身份的合法性得到验证,从而保证了移动设备应用服务的安全性。
龙源期刊网 http://www.qikan.com.cn
移动设备应用服务的身份认证具体过程如下:
(1) USB Key通过转换接口与安卓设备相连接,移动设备首先对USB Key进行识别,识别通过后,移动设备提取存储在USB Key中的应用程序PID并验证。
(2) 请求用户输入PIN码,验证通过后提取USB Key中存储的数字证书、私钥信息PK和对称密钥K,同时USB Key产生一个非重复随机数R标记此次会话,通过3DES加密算法加密应用服务信息和非重复随机数R,3DES的对称密钥K存储于USB Key中,通过私钥PK签名加密对称密钥K。
(3) 根据PKCS#7标准将原始信息(即非重复随机数R和密文)、签名后的密文、加密后的密文信息以及数字证书打包发送给认证服务器。
(4) 认证服务器验证证书有效性并使用证书中的公钥对密文进行解密,得到3DES对称密钥K,并使用3DES解密密文。
(5) 将解密后的信息与原始信息进行匹配,相同则进行该移动设备应用服务的调用。 从上述过程中可得出,认证过程主要分两部分进行:移动设备端的加密以及数字签名过程和认证服务器端的身份验证过程。 2.2 移动设备端
移动设备端在向认证服务器端发送应用认证请求时,首先需要检测USB Key是否插入,当USB Key成功与移动设备相连接,移动设备会对USB Key进行识别,识别通过后,需要移动设备确认需要进行身份认证的应用程序,提取USB Key中存储的应用程序PID,并进行识别验证。验证后将应用程序信息通过USB Key中加密算法进行加密,提取USB Key中的数字证书,并打包密文和证书发送至认证服务器端,请求调用应用程序。认证服务器端在接收到认证请求后进行认证,认证通过后使合法用户调用移动设备应用程序。移动设备端请求应用认证的流程图如图2所示。
移动设备端主要包括加密模块、证书获取模块和进程监控模块3部分。
证书获取模块:主要负责提取存储在USB Key中数字证书的相关信息。移动设备端需要请求数字证书对用户身份进行标识,并实现私钥对信息的加密签名,传送给认证服务器端。在进程监控模块读取到相应应用服务的PID后,移动设备端调用证书获取模块提取USB Key中的数字证书信息,保证数字证书信息与应用服务用户身份信息的对应。
进程监控模块:主要负责监控移动设备的应用程序服务,这是移动设备端的核心部分,需要负责加密模块和证书获取模块之间信息交流,协调其完成信息处理。在设备检查到USB Key
基于移动设备的USB Key身份认证方案



