基于移动设备的USB Key身份认证方案

2015-12-02 20:40卞雪雯刘健任奕豪
现代电子技术 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 移动设备

这里使用的移动设备以安卓系统为实验环境,安卓系统是一种基于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所示,保证了用户在使用移动设备应用时能够具有惟一的身份标识,并通过这一身份标识保证用户身份的合法性得到验证,从而保证了移动设备应用服务的安全性。

移动设备应用服务的身份认证具体过程如下:

(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的PID识别应用程序服务,识别成功后调用证书获取模块和加密模块进行信息处理。

加密模块:主要负责加密应用服务中的原始认证信息,包括了对认证信息的加密和数字证书信息的加密。对于认证信息和数字证书信息,采用已经发展成熟的对称加密算法3DES。其中3DES的对称加密密钥K使用数字证书中的私钥SK进行签名封装发送至认证服务器端。如果只是单方面采用非对称性加密算法,有两种方式:第一种是签名,使用私钥加密、公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得;第二种是加密,用公钥加密、私钥解密,用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。这里对于对称密钥K使用第一种加密方式[11]。

2.3 认证服务器端

认证服务器中的证书认证模块在接收到经过PKCS#7处理的报文后,证书验证模块对移动设备端提供的数字证书的有效期、证书链进行验证,并检查证书是否存在于CA证书库,失败则直接放弃。在通过数字证书验证后,认证服务器使用数字证书的公钥对传送的密文进行解密处理。将解密后的信息与原始信息进行匹配,如果信息匹配成功,则获取应用程序服务。认证服务器端验证流程如图3所示。认证服务器端主要包括解密模块和证书验证模块2个部分。

证书验证模块:主要负责验证数字证书的有效期、证书链等信息。数字证书代表了移动设备端的惟一身份标识,证书验证模块通过验证证书的有效其、证书链、是否位列黑名单以确保证书的可靠性和安全性。

解密模块:主要负责解密应用的用户信息和数字证书信息。首先在证书验证成功后,获取到证书中的公钥PK解密3DES加密算法的对称密钥K,然后对称密钥K解密收到的密文序列,解密应用服务信息和非重复随机数R。将由对称密钥K解密得到的信息与原始信息进行比较,最后认证服务器返回相应信息。

3 安全性分析

随着移动设备的不断发展,移动设备简单易携、功能强大的特性,使得越来越多的用户对其青睐有加,移动设备端用户身份认证的安全性问题也越来越受到关注。对于移动设备而言,普遍的认证方式还仅限于用户名密码,给用户的身份安全性问题带来极大的风险。移动设备的安全问题主要在于用户账户和应用服务攻击,而USB Key在经济许可以内很好地解决了这个问题。

(1) 选择密文攻击和密钥猜测攻击。移动客户端与认证服务器端在每次交互式时,USB Key和认证服务器都会产生不同的密钥(即一对公钥和私钥)。这(2) 重放攻击。移动设备端与认证服务器端进行交互时,USB Key会产生一个非重复的随机数和时间戳签名信息。时间戳可以解决时间同步带来的问题,同时可以保证消息的实时性。当攻击者实施重放攻击时,认证服务器端收到消息的时间戳与消息实际的时间戳相差较大,可以判断消息的不可信。所以本方案可以应对重发攻击。

(3) 拒绝服务攻击。认证服务器端的证书验证模块可以判断请求的身份,如果对方不能通过数字证书的校验,则不给予公钥。所以本方案可以应对拒绝服务攻击。

(4) 中间人攻击。移动客户端与认证服务器端进行的是双向证书验证,攻击者无法冒充其中之一对认证消息进行查看、修改和转发等操作。

4 仿真实验

实验软硬件平台如下:

Phone:SAMSUNG SHV?E120S;OS:Android 4.1.2;USB Key:UKey2000;Server:LENOVO M820E;OS:Windows Sever 2008 R2,Oracle。USB Key身份认证安卓平台实现效果图见图4。

5 结 语

本文提出了一种基于移动设备的USB Key身份认证方案,解决了在移动设备端传统身份认证方式缺失的安全问题,提高了用户使用移动设备应用服务时的安全性和可靠性。移动设备应用服务的不断发展,用户身份认证所带来的安全问题也逐渐得到重视,仅靠用户名密码的传统方式已经出现很大的安全漏洞。对于用户而言,USB Key在移动设备的应用可以对用户身份信息得到很好地验证,经济性也可以接受,但并不简单易携。因此,对于移动设备端的身份认证方式还有很多待于探索的领域,何种认证方式既能在带来安全性的同时,经济性、易用性、可接受性也能满足用户的需求,是移动设备身份认证领域研究的重点。

参考文献

[1] 吴永英,邓路,肖道举,等.一种基于USB Key的双因子身份认证密钥交换协议[J].计算机工程与科学,2007,29(5):56?59.

[2] 李培林.安卓系统应用及发展趋势展望[J].计算机光盘软件与应用,2012(18):161?162.

[3] 张鑫.USB Key在PKI体系中的应用研究[J].软件导刊,2013,12(3):39?41.

[4] 汪涛.基于USB Key的远程身份认证系统的设计与实现[D].武汉:武汉科技大学,2012.

[5] 冯登国.电子商务中的安全认证问题[R].北京:中国科技大学研究生院,1997.

[6] 曹喆,王以刚.基于USB Key的身份认证机制的研究与实现[J].计算机应用与软件,2011,28(2):284?286.

[7] 王帅,常朝稳,魏彦芬.基于云计算的USB Key身份认证方案[J].计算机应用研究,2014,31(7):2130?2134.

[8] 赵会洋,王爽,魏士伟.网格安全模型中认证策略的研究[J].计算机技术与发展,2010,20(4):171?174.

[9] ADAMS C, LLOYD S.公开密钥基础设施:概念、标准和实施[M].冯登国,译.北京:人民邮电出版社,2001.

[10] 周晓斌,许勇,张凌.一种开放式PKI身份认证模型的研究[J].国防科技大学学报,2013,35(1):171?174.

[11] 王权,杨琳,刘伟,等.基于USB Key的访问控制方法研究[J].计算机工程与设计,2008,29(11):2727?2729.

猜你喜欢
身份认证数字证书信息安全
保护信息安全要滴水不漏
高校信息安全防护
校园网云盘系统存在的安全问题及对策
基于指纹身份认证的固定通信台站干部跟班管理系统设计
当心黑客利用数字证书的漏洞
基于数字证书的军事信息系统安全防护方案
Kerberos身份认证协议的改进
保护个人信息安全刻不容缓
基于USB存储设备的透明监控系统
管理好系统中的数字证书