一种新的基于指纹与移动端协助的口令认证方法

2016-11-14 02:13马建峰
计算机研究与发展 2016年10期
关键词:密文口令安卓

安 迪 杨 超 姜 奇 马建峰

(西安电子科技大学网络与信息安全学院 西安 710071) (陕西省网络与系统安全重点实验室(西安电子科技大学) 西安 710071) (sunnyann1992@qq.com)



一种新的基于指纹与移动端协助的口令认证方法

安 迪 杨 超 姜 奇 马建峰

(西安电子科技大学网络与信息安全学院 西安 710071) (陕西省网络与系统安全重点实验室(西安电子科技大学) 西安 710071) (sunnyann1992@qq.com)

智能手机和互联网应用的广泛普及,使用户可以借助手机结合口令与服务器认证.然而现有的方案需要在手机端存储用户的秘密信息.一旦存于手机的秘密信息被对手获得,将给用户带来不可挽回的损失.针对上述问题,提出了一种基于指纹和口令的认证方案,手机端无需存储秘密信息.其核心思想是,将密文存储在服务器端,用户登录时利用手机辅助其生成私钥,从而对注册阶段生成的密文解密生成认证密钥.生成私钥的过程需要输入口令和指纹,用户在电脑端输入口令后对口令进行盲化再与手机进行交互,这样就可以保护用户口令不被对手得到.理论分析及实验结果表明:该方案提高了用户秘密信息的安全性,可以抵御对手的字典攻击、重放攻击和钓鱼攻击,减少了手机的存储压力,易于部署.

口令认证;终端辅助认证;指纹认证;口令攻击与保护;基于指纹的口令盲化

互联网及其应用服务的快速发展,给用户生活带来了娱乐和便利,涉及到日常生活的多个方面(如购物、外卖餐饮、交通等).由于口令认证机制的方便易用,它已是如今在线的应用服务和许多系统中使用最多、最为流行的认证机制.用户使用自己设置的口令与各种服务器进行认证,登入应用账户.

一般用户为了方便记忆往往使用较简单的口令.若口令长度较短,则信息熵较低,如果认证协议体系不够完备,用户的口令就很容易被对手攻击或是遭受对手的中间人攻击,从而被对手伪造身份进行登录认证.此外,用户在设置自己不同应用服务的账户密码时,常常会重复地使用一个口令,如果其中一个口令泄露,就对其他应用账户的安全带来威胁.由于用户忘记某一应用账户的口令时,通常会尝试多次输入口令登录账户,若服务器是恶意的,就知道了用户的多个口令,服务器就可能对用户的其他账户发起中间人攻击.口令的信息熵低、重复设置、用户遗忘等都是口令设置和使用过程中最为常见的问题.而这些问题都是攻击者最容易入手的攻击方向.Facebook的首席执行官(CEO)就在2004年曾使用Facebook的登录数据访问一些商业对手和记者的私人邮件[1],这说明即使可信的服务器也会对用户发起中间人攻击.对用户口令的保护,不仅对用户个人和单位、甚至对于整个社会来说变得越来越重要.

针对口令认证机制的缺陷,研究者提出了很多改进方案,其中增加额外设备是一个有效的方式.随着近年来移动智能手机的广泛应用和发展,用户常利用手机使用一些应用服务或是管理个人信息,手机端存储着越来越多的用户凭据或是口令密文信息.通过移动智能手机辅助用户进行认证是一个重要的研究方向.

早在2004年,文献[2]就提出来使用手机作为便携的认证令牌,同时增加一个安全可信的代理方P.当用户想要与远程的服务器进行认证时,需要首先与代理方P进行通信.代理方会同时向手机和个人电脑端发送会话名,用户在手机端对会话名进行对比验证然后再将信息发给代理方.但是此方案需要代理方安全可信,手机端和代理方需要多次交互,易被中间人攻击,同时增加了一个代理方,系统部署较为繁琐,不能够便捷地用于实际的认证.

文献[3]通过手机辅助用户进行登录认证.在此文的方案中,客户端电脑和服务器认证时不直接在网络上通信,而是借助于手机设备和一个认证服务器进行密文的发送和接收.然而此方案的认证服务器用来接收由手机端通过GSM网络传来的数据信息,故在应答阶段易受攻击,当用户使用手机通过GSM网络向认证服务器发送信息时,易被对手劫持,从而利用此信息伪装成用户进行认证.

文献[4]提出了一种利用手机作为认证时的中间方,利用二维码和相机对认证时的关键信息进行加密的方案.但是此方案需要事先预设条形码并在设备上添加,若认证的设备或是服务较多,则预设较为繁琐,可操作性不强.

文献[5]针对会话劫持和钓鱼网站攻击提出了一种新方案.将客户端电脑和手机设备在认证时独立开来,客户端电脑仅仅扮演计算的功能,用户从手机设备端输入口令,手机和服务器共享会话密钥以防止对手的会话劫持.尽管此方案可以避免会话攻击,但预先要在手机设备上设置每个目标网站(如银行)的公共密钥,如果用户使用的服务较多,设置会较为繁琐,给手机端带来压力,此外,此方案还需要客户端电脑和服务器端建立安全信道.

文献[6]提出了一种可以在不可信的个人电脑上与服务器进行认证的方法.通过手机扫描个人电脑上的二维码进行加密处理后与服务器进行认证.但是此方案需要手机端和服务器端预先设置共享密钥,虽然此方案允许个人电脑端不可信,但是手机端必须可信.而且在认证的过程中,手机端和个人电脑端需要分别与服务器端进行多次通信,步骤较为繁琐、耗时较长,对用户的使用感有较大影响.

Acar等人提出的单一口令认证(single password authentication, SPA)方案[7]中,提出额外增加一个云存储器存储用户的数据,辅助用户进行注册和登录.但是在注册阶段,需要设置安全信道将盲签名的私钥发送给存储器端,还需要增加一个可信的云存储器来存储认证密文.对于实际的应用场景来讲,设置安全信道很难实现,尤其是在远距离的数据传输中,这种假设更是不实际的.并且,用户与云存储器在认证阶段需要进行多次的数据传输和交互,如果设备的性能不够好,将会延长用户的认证时间.Acar等人还提出基于额外设备的SPA方案[7],可以不使用云存储器而利用一个可信的手机设备辅助用户注册和登录.在此方案中,用户将自己的认证密钥用用户口令加密后存储在可信的手机设备上.当认证时,用户在手机上输入口令解密得到自己的认证密钥与服务器进行认证.但是这种方案需要强制要求移动设备可信,不能存在任何恶意代码也不能与服务器勾结,这对于移动设备的安全性要求而言是异常严格的.不仅如此,若移动设备丢失,则用户存在移动设备上的密文信息就极有可能被对手破解,此协议也不能抵挡这类非常常见的用户过失,这使得协议的可用性和安全性大大降低.

由于越来越多的敏感信息和用户的私人信息存储在手机端,如果这些敏感信息被对手得到,将给用户带来无法预估的危害.手机端秘密信息的保护问题成为亟待解决的重要问题.文献[8]提出了一种用指纹来代替PIN码认证用户身份,从而保护用户SIM卡的方案.然而,虽然此方案利用了指纹,可是指纹信息仍然存储于手机设备中,若指纹信息被对手破解,将会给用户带来安全威胁.

文献[9]提供了一种通过口令和指纹使用户与远距离的服务器进行认证的方案.在注册阶段,用户输入口令、指纹、随机值等计算后得到密文值,随即将密文值、指纹的密文值存储在手机设备上,同时通过安全信道将其发送给服务器端.在登录阶段,用户输入指纹后手机设备与注册阶段存储的值进行运算对比、登录.该方案的不足之处在于,在注册阶段不仅需要安全信道进行传输,还需要手机设备可信,若手机设备丢失,则存储在手机上的密文信息、指纹参数的密文值就可能会被对手得到.

此外,国内基于用户的生物特征的认证也有相应研究.徐钦桂等人[10]提出的一种增强的基于生物密钥智能卡远程身份认证方案,给用户身份提供智能卡硬件、口令验证、生物特征验证三重保护.但是由于用户生物特征信息的模糊性以及生物密钥的运算特性,计算开销和存储开销可能会超出智能卡限制,这使得其方案的可用性受限.

现阶段带有手机的对用户身份进行认证的方法,即使有用户指纹参与认证,但普遍存在手机端存储用户的认证信息或是密文信息的问题,并且需要手机设备完全可信.2016年3月,美国联邦调查局(FBI)宣布[11]可以破解IOS系统以获取犯罪嫌疑人存在手机端的信息,现阶段还没有能完全保证用户移动设备端信息隐私的成熟技术.所以,在手机端存储用户的秘密信息是一项很有风险性的行为.

HCR(hidden credential retrieval from a reusable password)[12]是一个可以使用户在不可信的远端服务器上存储密文信息的协议.当用户想要得到此密文信息时,可以通过预先设置的口令获得自己的密文信息而不必向服务器泄露自己的口令.但是此协议在注册阶段需要设置安全信道传输给服务器一个私钥,同时需要长期在服务器上存储这个私钥.

已有的手机、个人电脑和服务器3方认证常常将用户口令的密文信息存储在手机端,同时需要手机设备可信,还需要假设安全信道来传输秘密信息.这些假设和部署在实际的应用场景中都是难以实现的,这使这些认证方案的可用性和安全性都大大降低.针对这些认证方案的不足,我们提出了一种基于指纹与移动端协助的口令认证方法(password authentication method based on fingerprint and mobile phone assistance, FMPA).在注册阶段,用户通过口令和指纹生成私钥,再通过私钥生成认证密钥和认证密钥的密文,然后将认证密钥的密文发送至服务器端进行存储,手机端并不存储用户的秘密信息.在登录阶段,用户从服务器端得到认证密文后通过指纹和口令重新生成私钥,利用私钥对认证密文解密后得到认证密钥.我们的方案无需在手机端存储任何用户的秘密信息,即使手机被对手盗走,对手也无法得到用户的秘密信息.通过安全性分析理论证明本文足以保护用户的口令、抵御字典攻击和会话劫持攻击.通过实验测试表明:本文在时间性能上与已有的认证方案差别不大,并在手机端的存储方面有较大优势,能够明显减轻手机端的存储压力,实用性很高.

1 预备知识与符号缩写

1) 盲签名

Fig. 1 Flowchart of blind signature.图1 盲签名具体流程图

盲签名体制是保证参与者匿名性的基本密码协议,一个盲签名体制是一个协议,包括2个实体:消息发送者和签名者.它允许发送者让签名者对给定的消息签名,并且没有泄露关于消息和消息签名的任何信息.如图1所示,第1个加密算法T()是为了隐蔽发送的消息m,称为盲变换;第2个加密算法Sign()是签名算法,签名者B对收到的盲化消息进行签名;第3个算法T′()是对签名后的信息进行去盲以得到消息m的签名信息,称为去盲化.

盲签名的特点是:

① 消息的内容对签名者是盲的;

② 签名者不能将所签文件T(m)和实际要签的文件m联系起来,即使他保存所有签过的文件,也不能确定所签文件的真实内容.

2) HKDF(halting key derivation functions)

HKDF[13]是一种可通过一般的弱口令生成强安全密钥的协议,可以自主选择计算代价,应用于基于口令的加密系统.HKDF包括2种算法:HKDF.prepare和HKDF.extract.

HKDF.prepare以1个口令w、1个随机串r和1个循环运算次数的参数t作为输入,输出1个密钥y和它的密文v.即:

HKDF.prepare(w,t,r)→y,v.

HKDF.extract以密钥的密文v和口令w作为输入,使用w对密文v解密后重新得到密钥y,若输入的口令w不正确,此算法将一直进行循环运算而没有输出反馈.即:HKDF.extract(w,v)→y.

在本文中,我们使用HKDF协议通过一个私钥生成一个强密钥,用户或是系统可以确立一个合适的参数值来选择相应的运算代价.

2 系统模型与敌手模型

2.1 系统模型

Fig. 2 System model diagram of our scheme.图2 本文方案系统模型图

本方案的的系统模型如图2所示,主要包括3种实体:移动智能手机(mobile smart phone, MP)、个人电脑(personal computer, PC)、云服务器(cloud server, CS).图2中①为注册阶段,②~④为登录阶段.

1) 移动智能手机MP.负责注册阶段用户认证密钥及其密文的生成、认证阶段和PC交互从而对用户盲化后的口令和指纹参数做运算处理.除了具有基本的智能手机的功能外,能够获取到用户指纹数据,能够通过蓝牙、USB或者WiFi功能连接到PC端,以便与PC进行通信.

2) 个人电脑PC.当用户登录时,对口令进行录入、与移动智能手机进行交互从而生成认证密钥.个人电脑确保连接到互联网,能够与云服务器和手机进行通信.

3) 云服务器CS.在注册阶段存储用户的认证密钥和密文信息,在登录阶段为用户提供其对应的密文信息以及对用户身份进行认证.故云服务器应能够连接到互联网,并具有强大的数据库以存储用户数据信息.

2.2 敌手模型

对应于2.1节所述系统模型的敌手模型如下:

1) 个人电脑是不可信的.用户登录时,如果他所使用的电脑被恶意软件侵袭,当他输入口令后,键盘就会记录下用户的口令.若用户误入了钓鱼网站,对手也可能会记录用户口令.

2) 用户在注册和登录时都会用到移动智能手机,手机容易丢失或是被植入恶意软件.手机被植入恶意软件后,对手就会假冒用户与电脑进行通信.

3) 云服务器对用户进行认证并提供应用服务.在注册阶段,无疑云服务器是可信的,此后,云服务器可能会遭受对手的重放攻击或是字典攻击.此外,云服务器本身也可能是恶意的,在用户离线的情况下,也可能会对用户的密文发起攻击.

3 FMPA方案设计实现

3.1 FMPA方案设计思想

在有智能手机参与的认证协议中,手机有可能会丢失或者被恶意软件侵袭,故用户存储在手机端的数据就有可能被对手窃取.同时,在用户登录时,手机端与PC端进行交互,若手机端获取到用户的口令,就极有可能被对手窃取.因此,要保证手机丢失的情况下用户的数据不被窃取,就需要用户不在手机端存储认证信息和密文数据.若要在认证过程中不被手机端窃取到用户的口令,就需要用户在PC端输入口令后对口令数据进行处理.

我们的设计思路是对已有的HCR协议进行改进(由于HCR协议中的私钥参数需要假设安全信道进行传输并且需要长期安全地存储,我们的方案将HCR协议中的私钥参数替换为用户指纹,这样,就不需要假设安全信道进行传输,也不需要长期存储),将此改进的协议应用于PC和手机之间,使用户可以与不可信的手机进行交互、签名等,同时不需要在PC和手机之间假设安全信道,无需存储用户用于生成认证密钥的私钥.

3.2 FMPA方案详细设计

本方案包括移动智能手机、PC、云服务器3个参与方,具有注册和登录2个阶段.用户在手机和PC上输入自己口令、指纹进行注册、登录,云服务器负责注册以及在用户接入服务时对用户进行身份认证.

本方案系统初始化定义如下:

pwd为用户口令:pwd∈{0,1}*;

G是以素数p为阶的循环群;

F是以素数p为阶的乘法域;

s为生成的用户私钥;

y为生成的认证密钥;

v为生成的认证密钥密文;

Hash()为安全的Hash函数:

Hash():{0,1}*→G

r为系统生成的随机字符串:r∈N

t为系统设置的运算次数;

f是一种密码学杂凑函数.

HKDF为密钥生成函数,分为加密算法:HKDF.prepare(s,t,r)→y,v和解密算法HKDF.extract(s,v)→y两个部分.

在以往的带有手机的认证方案中,手机端一般会存储用户的认证密文信息.通常将用户的口令加密后存储在手机设备上或者存储用户的密钥用口令加密后的密文,若手机端被对手攻击,对手就极有可能拿到用户的口令或是认证信息.

而在本方案中,手机端不存储用户的认证密文信息,所需要的认证密钥在每次登录时由用户重新生成,即使设备被偷也不会对用户的口令、指纹、密文信息造成威胁.同时,用户在注册时像服务器发送name时,也可以随机选择一个身份信息id发送,这样就可以保护自己的匿名性,即使若干个服务器相互勾结也不能对用户进行攻击.

以下是注册和登录2个阶段:

1) 注册阶段

{用户(name,pwd,e)}→{云服务器(name,y,v)}.

在这个阶段,用户接入云服务器提供的服务之前,须向服务器注册成为合法的用户.用户可以直接在手机端进行注册,在注册完成后将用户名name和服务信息server交至PC端以告知用户使用了此服务即可.具体操作如下:

① 手机端根据用户输入的口令pwd和指纹参数e进行运算,生成用户的私钥s:

Hash(pwd)e→s.

② 根据HKDF函数和生成的私钥s生成用户的认证密钥y和认证密钥密文v:

HKDF.prepare(s,t,r)→y,v,

其中,r是系统生成的一个随机的字符串,t是循环运算次数,t可以根据用户所需要的安全性进行选择,若t的值较大,则运算量较大,生成的密钥更为安全.

③ 手机端将认证密钥y和认证密文v连同用户名name发给服务器端进行对应存储,发给PC客户端用户名name和服务信息server.用户只需记住用户名name和口令pwd,手机端不存储用户的任何秘密信息.

如图3所示为注册阶段具体协议.

Fig. 3 Registration phase protocol.图3 注册阶段具体协议

2) 登录阶段

{用户(pwd,e,chal),服务器(y,v,chal)}→{用户(y),服务器(acceptreject)}.

成为合法用户后,当用户想接入云服务器使用其服务时,需向服务器发送登录请求.用户录入自己的口令和指纹数据,生成私钥从而解密密文得到认证密钥.服务器对认证信息进行运算和对比后,判断是否接受此次登录,具体操作如下:

① PC端向服务器发送用户名name,服务器根据name检索后向PC发送对应的密钥密文v和认证随机数chal;

② 在PC端输入口令pwd,系统生成一个盲化因子d,计算出盲化后的口令μ,即Hash(pwd)d→μ发送给手机端.

③ 手机端提示用户按下指纹,得到指纹参数e.对得到的盲化口令μ进行签名,即μe→β,然后将β发送给PC端.

④ PC端对签名后的盲化口令进行去盲化,得到用户私钥s:

β→s.

⑤ PC端使用用户私钥s和HKDF函数算法对认证密钥密文v进行解密,得到认证密钥y:

HKDF.extract(s,v)→y.

⑥ PC端利用认证密钥y和随机数chal进行计算,向服务器端发送认证信息response进行认证.即:

f(y,chal)→response.

⑦ 服务器端计算f(y,chal)并与接收到的response对比,一致则接受此次登录即accept,否则拒绝登录即reject.

如图4所示为登录阶段具体协议.

Fig. 4 Login phase protocol.图4 登录阶段具体协议

4 FMPA方案的安全性证明与分析

4.1 FMPA方案

FMPA方案具有3种参与者: 1)PC客户端.想使用口令来访问服务器.2)服务器.注册和认证客户端.3)手机.辅助PC客户端的注册和认证阶段.

将FMPA方案分为6个步骤:

1) UserGen.此协议由用户生成用户名name和l位的口令pwd;

2) Register.用户通过手机输入口令pwd和指纹e与服务器进行注册,最后手机端会生成1个认证密钥y和认证私钥的密文v,手机端向PC端发送(name,server)存储,服务器端存储(name,y,v);

3) Store.PC端存储用户名name,手机端不存储用户的数据信息,用户需记住pwd和name;

4) PreAuth.PC客户端使用其用户名name从服务器端检索其密文信息v,服务器发送给PC客户端v和挑战信息chal;

5) Retrieve.用户在PC客户端输入口令pwd同时借助手机输入e.PC客户端和手机进行交互,盲签名协议完成后在PC端生成私钥s,再由s解密v得到认证密钥y;

6) Authenticate.PC客户端使用y和chal向服务器证明他有相应的账户凭证,服务器输出accept或者reject.

4.2 安全游戏

FMPA方案假设用户拥有1个手机设备和PC客户端.因此用户可以在PC和手机上输入自己的口令和指纹.然而,手机可能会丢失或者被偷,这样,恶意的对手也许就会使用用户存储在设备上的信息访问服务器,甚至破解用户的口令.此外,PC端和服务器端也易被对手攻击.下面对FMPA方案有可能遭受的攻击分为外部攻击Game One和内部攻击Game Two两种,游戏中涉及的参数:x是安全参数,所有的Hash函数的输出长度为l,l≥2xb;|D|是口令集合的长度,|D|≤2xb;|s|是用户私钥的长度;k是用户设置的口令的长度,k∈N;定义neg(k):若对于任意非零的常数c,存在一个有限非零的数K,对于任意k>K,都有neg(k)

1) 外部攻击Game One.在此游戏中,对手可以控制PC端,模拟PC客户端与手机端执行Store步骤,与服务器端执行PreAuth步骤.对手也可以控制PC端,模拟PC端向手机端发起Retrieve步骤,假设发起的请求次数为q.对手还可控制手机端,模拟手机端和PC端执行Retrieve步骤,由本方案的算法可知,手机端只能接收来自于PC端的数据信息而不能主动向PC端发起请求.若对手通过这场游戏获得用户口令,或者对手绕过口令成功猜测到私钥s,则对手胜利.

定义1. 假设对手赢得Game One游戏的概率是P1,若P1≤max(q|D|+neg(k), 12|s|),则认为FMPA方案满足基于Game One的安全性.

2) 内部攻击Game Two.在此游戏中,对手可以控制服务器,向服务器中存储的密文发起离线字典攻击试图获得用户口令.假设对手可以对HKDF.extract发起T次离线字典攻击.若对手通过这场游戏获得用户口令,则对手胜利.

定义2. 假设对手赢得Game Two游戏的概率是P2,若P2≤q|D|+2T(|D|t)+neg(k),则认为FMPA方案满足基于Game Two的安全性.

定义3. 若FMPA方案满足基于Game One,Game Two的安全性,则可以认为FMPA方案是安全的.

4.3 FMPA协议的安全性

定理1. FMPA协议是满足定义3安全性的协议.

证明.

1) FMPA具有基于Game One的安全性.

Game One的场景还原如下:

① 对手模拟PC客户端,与手机端执行Store步骤,得到手机端发给他的用户名name.对手与服务器执行PreAuth步骤,根据用户名name检索到用户的密钥密文v和挑战信息chal.由于密钥密文v是由HKDF协议生成,由其算法的特性可知,若输入了不正确的口令解密密文,解密算法将一直循环运算下去而没有输出,所以对手不能通过此密文得到用户的口令.故P1是一个可以忽略的小值.

② 对手模拟PC客户端,生成1个口令pwd0,然后向手机端发起执行Retrieve步骤的请求,对手与手机端执行Retrieve步骤,此步骤的交互过程与HCR协议的过程类似,只是将原协议的签名私钥替换成了指纹参数,所以,攻击者在这场协议中猜测口令成功的概率和HCR协议[12]相同,故P[对手得到口令]≤q|D|+neg(k).故对手赢得这场游戏的概率P1≤q|D|+neg(k).

③ 对手控制PC端,绕过口令直接对私钥s进行猜测,则对手猜测到s的概率P[对手猜到s]≤12|s|,故对手赢得这场游戏的概率P1≤12|s|.

④ 对手模拟手机端和PC端执行Retrieve步骤,此时,对手会得到用户盲化后的口令信息,同②中的分析,攻击者在这场协议中猜测口令成功的概率是P[对手得到口令]≤q|D|+neg(k).故对手赢得这场游戏的概率P1≤q|D|+neg(k).

综上,P1≤max(q|D|+neg(k), 12|s|).所以,FMPA具有基于Game One的安全性.

2) FMPA具有基于Game Two的安全性.

Game Two的场景还原如下:

恶意的服务器对存储的密文发起离线字典攻击,它生成1个私钥s′试图解密密文,即HKDF.extract(s′,v).由HKDF的安全性[13]]可知,对手在解密密文的过程中猜测到用户口令的概率P[对手获得口令]≤T(|D|t)+neg(k),其中,t是在HKDF.prepare协议阶段设置的循环运算次数.

所以对手能够得到用户口令的概率P2≤q|D|+2T(|D|t)+neg(k),故FMPA方案具有基于Game Two的安全性.

综上所述,FMPA协议满足基于定义1和定义2的安全性,故FMPA协议是一个安全的协议.

证毕.

5 性能分析与评估

5.1 测试方案与场景

为了使测试更贴近实际的场景,我们租用了阿里云服务器作为服务器端,与用户进行认证.使用的阿里云服务器部署于青岛,由百度地图可以测得用户所在地西安与云服务器所在地青岛的距离为1058.6 km,如图5所示:

Fig. 5 The overall test plan diagram.图5 测试方案总体示意图

如图5所示,其中步骤①是注册阶段手机端计算后生成认证密钥y和认证密钥密文v发送给云服务器端.步骤②~④是登录阶段,由手机端和个人电脑端进行计算,生成认证密钥y后与云服务器进行认证.

本节利用安卓设备、PC端和云服务器实现了本文的方案从而对其进行性能评估,主要从时间和存储方面对方案的可用性进行评估.在时间方面,对用户的注册阶段和登录阶段在4个不同场景下所耗时间进行测试和对比分析;在存储方面,主要对方案的实现过程中手机端的存储量进行分析评估.

本方案的实验设备为1台PC、1个云服务器、1台安卓设备、实验设备的具体参数如下:

搭建的服务器实验环境为阿里云服务器,部署于青岛、CPU单核3.00 GHz、1 GB内存、操作系统为Windows Sever2008标准版SP2 32 b、带宽为5 Mbps.

PC为HP Compad dx7408 MT DT PC主机,具有ms-7352主板、双核IntelTMCoreTM2 Duo CPU E8400 @3.00 GHz、2 GB内存、操作系统为Windows 7(32位).

安卓设备分别为安卓模拟器Android4.1.2-API Level 16,CPU ARM(armeabi),RAM 512,VM Heap 16,Internal Storage 200MiB; 安卓手机.

本文的测试程序由Java语言编写,其中基于RSA盲签名部分用到了Bouncy Castle库.

基于以上设计方案,我们在4种场景下分别进行了测试:

场景1. 用同一户进行注册和登录,输入相同的口令和指纹,分别测试注册阶段和登录阶段的完整过程的所用时间,测试若干组数据以求得用户注册和登录所耗时间的平均值.此场景使用的安卓设备是安卓模拟器.

场景2. 对于不同用户,口令的长短、复杂度不同,为分析口令对方案运行时间的影响,分别选取20组不同用户,对其注册阶段和登录阶段整个过程对所耗时间分别进行测试评估,使用的安卓设备是安卓模拟器.

场景3. 由于系统设置不同,生成了不同长度的指纹参数.我们选取了在指纹长度分别为128 b,256 b,512 b的情况下,分别对用户的注册阶段和登录阶段的完整过程所耗时间进行测试,其中使用的安卓设备是安卓模拟器.

场景4. 用户使用不同的安卓设备(安卓模拟器、魅族手机、HTC手机)进行注册和登录,分别测试用户注册和登录阶段所耗时间.

Fig. 6 Registration phase description.图6 注册阶段流程说明

本实验将注册阶段的总时间K(单位是ms)分为2部分k1和k2.如图6所示,其中k1是从用户在安卓设备上输入户名和口令进行注册开始到生成认证密钥密文结束所耗时间,k2是将用户的认证密钥密文发送至云服务器所耗时间.

将登录阶段的总时间T(单位是ms)分为5个部分,如图7所示,其中t1为用户在PC端向云服务器端请求对应的认证密钥密文所耗时间,t2+t4为在PC端对用户口令进行盲化及生成认证密钥所耗时间,t3为安卓设备对盲化后的口令进行指纹签名过程所耗时间,t5为将用户的认证信息发送给云服务器所耗时间.

Fig. 7 Login phase description.图7 登录阶段流程说明

5.2 测试结果

5.2.1 场景1测试结果

1) 注册阶段

在此场景下,用户在安卓设备上输入相同的用户名、口令和指纹进行注册,其中用户的指纹长度为256 b,测10组数据如表1所示.通过表1中数据可以计算出用户注册的平均时间为216.9 ms.

Table 1 Registration Phase Time of the Scene One

2) 登录阶段

用户登录时,在PC和安卓模拟器上分别输入自己的口令和指纹测出各个阶段所耗时间,所得的10组数据如表2所示.通过数据可以计算出用户登录的平均时间为192.5 ms.

Table 2 Login Phase Time of the Scene One

5.2.2 场景2测试结果

1) 注册阶段

在场景2下,选取20组不同的用户进行测试,用户在安卓模拟器上输入用户名、口令和指纹进行注册,测出所耗时间k1和k2.其中这些用户的用户名、口令的复杂度和长度都不尽相同,指纹长度相同均为256 b,测得的时间如表3所示:

Table 3 Registration Phase Time of the Scene Two

2) 登录阶段

用户在PC端和安卓设备上分别输入对应的口令和指纹,测出各个阶段所耗时间,所得对应的20组数据,如表4所示:

Table 4 Login Phase Time of the Scene Two

5.2.3 场景3测试结果

1) 注册阶段

用户在安卓设备上输入口令,系统分别生成3种不同长度的指纹参数:512 b,256 b,128 b,对所耗时间k1和k2进行测试,如表5所示:

Table 5 Registration Phase Time of the Scene Three

2) 登录阶段

用户在PC和安卓设备上输入对应的口令和指纹,测试各个阶段所耗时间,如表6所示:

Table 6 Login Phase Time of the Scene Three

5.2.4 场景4测试结果

1) 注册阶段

在场景4下,有3个不同的安卓设备,分别是安卓模拟器、魅族手机和HTC手机.用户在不同的安卓设备上输入相同的口令和指纹,对所耗时间k1和k2进行测试,如表7所示:

Table 7 Registration Phase Time of the Scene Four

2) 登录阶段

用户在PC端上和不同的安卓设备上输入自己的口令和指纹,测试各个阶段所耗时间,如表8所示:

Table 8 Login Phase Time of the Scene Four

5.3 性能分析

由场景1的注册阶段所测数据如表1所示,可以计算出用户在安卓模拟器上注册所需要的平均时间为216.9 ms.由登录阶段表2可以计算出用户使用安卓模拟器和PC端进行登录所需的平均时间是192.5 ms.

由场景2测得的数据表3可以得出,当不同的用户输入不同的口令进行注册时,所耗费的最长时间与最短时间差值为81 ms,小于人体的反应时间(人体的反应时间>100 ms),对于用户来说,设置不同长度或复杂程度不同的口令并不能感受到其差异.故口令的长短和复杂程度对用户的注册时间影响不大.注册阶段不同用户耗时对比如图8所示:

Fig. 8 Registration phase experimental data of the scene two.图8 场景2注册阶段实验数据

由场景2表4可以看出:当不同的用户输入其对应的口令进行登录时,所耗费的最长时间和最短时间的差值为54 ms,小于人体的反应时间,故当口令的长度和复杂程度对用户的登录总时间影响不大,不同的用户在登录阶段的时间对比如图9所示:

Fig. 9 Login phase experimental data of the scene two.图9 场景2登录阶段实验数据

Fig. 10 Comparison of experimental data in two phases of the scene three.图10 场景3两个阶段实验数据对比

根据场景3所测数据如表5注册阶段和表6登录阶段可以看出,当指纹长度不同时,用户注册阶段所耗时间的最大差值为9 ms,登录阶段所耗时间的最大差值为10 ms,对用户的影响不大.指纹长度分别为128 b,256 b,512 b时,注册阶段和登录阶段所耗时间的对比如图10所示:

场景4即用户在不同的安卓设备上输入相同的口令和指纹进行测试,由表7和表8测得的数据可以看出:在实际的手机设备上注册和登录所耗总时间比在安卓模拟器上耗费的总时间短,传输时间基本无差别,主要区别在安卓设备上的计算时间.在已有的Mobile SPA方案中,注册阶段耗费的总时间是传输时间25 ms和手机端计算时间1 ms之和,共计26 ms,而本文的方案在2种手机上测试所耗费的时间分别为37 ms和40 ms,时间差较小,对方案的性能影响不大.在Mobile SPA方案中,登录阶段所消耗的时间为在服务器端的计算时间1 ms、在手机端的计算时间2 ms、传输时间35 ms,共计38 ms.本方案在登录阶段在手机设备上测得的登录总时间分别为152 ms和151 ms,与Mobile SPA方案的最大时间差值为117 ms,相差较大,但本方案在登录阶段有盲签名运算、密钥重新生成运算等,大大提高了系统的安全性,对于一般的用户来说,反应时间大于100 ms,故对用户的使用感影响不大.用户使用不同的安卓设备注册和登录所耗时间对比如图11所示:

Fig. 11 Comparison of experimental data in two phases of the scene four.图11 场景4两个阶段实验数据对比

由测试方案可知,本方案注册时算法运行的时间为k1,登录时算法运行的时间为t3+t2+t4,算法的运行总时间为k1+t3+t2+t4,可以计做W(PC端与安卓设备之间的传输时延较短,可以忽略不计,故t3可以看做是算法在安卓设备上的运行时间).根据场景4所列数据可以分别计算出用户在安卓设备、魅族手机和HTC手机上算法的运行总时间W.可以据此画出用户在不同的安卓设备上算法运行的时间对比如图12所示.由图12可以看出,本方案的算法在安卓模拟器上运行耗时最长,在魅族手机和HTC手机上耗时基本相同,这是因为安卓模拟器在处理器和设置的参数上与安卓真机相比有一定的差距,故影响了算法的运行效率.

Fig. 12 Comparison of the running time of the algorithm on different devices.图12 不同设备算法运行时间对比图

在手机端的存储方面,在Mobile SPA方案中,需要在手机端存储MAC key,以便与服务器端进行认证,1个服务器对应1个MAC key,而1个MAC key有128 B.而在本方案的设计中,手机端仅需要短暂存储用户的指纹,而本文的设计方案中,手机端只需要存储用户的指纹信息即可与各种服务器进行认证,指纹参数长度最大为512 b即64 B.若用户注册了2 000个服务器,则Mobile SPA方案需要250 Kb的存储容量,而本文的FMPA方案仅需在运算过程中暂存0.0625 Kb,不需要在手机端长期存储数据.可以计算出,FMPA方案手机端存储量仅为Mobile SPA方案的0.03%.

综上所述,本文提出的方案在时间性能方面与已有的手机参与的认证方案相比,虽然在登录阶段时间有明显增长,但对于用户体验来讲,对用户的使用感影响不大,同时本文增加了盲签名运算、密钥重新生成运算等,大大提高了系统的安全性.在手机端的存储方面,本文的方案在手机端仅暂存用户的指纹,故只存储少量的信息,减少了手机端的存储压力.所以,本文的方案有很高的应用价值.

6 总 结

用户常通过口令、验证码等登录应用账户使用其服务.而这些应用账户往往与其他的应用账户相关联,或是存储着用户的某些个人隐私甚至与其银行卡相互绑定,所以保护用户口令的安全、对用户身份进行认证成为一个广泛关注的问题.本文利用手机辅助用户认证,与以往的手机、个人电脑和服务器3方认证不同的是,并不在手机端存储用户的认证信息,利用口令和指纹2个用户凭据生成认证私钥,再通过私钥和HKDF[13]函数生成认证密钥,从而与服务器进行认证.由于HKDF函数的特性,任何对手都不能对密文暴力破解得到密钥或是口令,也不能无限地试错攻击从而对密文解密.由于手机端没有用户的秘密信息,即使手机丢失,也不会对用户账户造成安全隐患.最后我们对本文的方案进行了安全性证明和实验测试,结果表明,本文的方案能够抵御字典攻击和对手手机端的攻击,能够保证用户口令和账户安全,且与现有的手机、个人电脑、服务器3方认证的时间无明显差别,此外还减少了手机端的存储压力,具有很高的应用价值.

[1]Carlson N. Mark Zuckerberg broke into a Facebook user’s private email account[EB/OL]. 2010 [2010-03-00]. http://www.businessinsider.com

[2]Wu M, Garfinkel S, Miller R. Secure Web authentication with mobile phones[C/OL] //Proc of DIMACS Workshop on Usable Privacy and Security Software, 2004 [2016-06-15]. https://www.researchgate.net/publication/228856911_Secure_web_authentication_with_mobile_phones

[3]Thanh D, Jorstad I, Jonvik T. Strong authentication with mobile phone as security token[C] //Proc of IEEE the 6th Int Conf on Mobile Ad Hoc and Sensor Systems.Piscataway, NJ: IEEE, 2009: 777-782

[4]McCune J M, Perrig A, Reiter M K. Seeing-is-believing: Using camera phones for human-verifiable authentication[C] //Proc of 2005 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2005: 110-124

[5]Mannan M, Oorschot P C. Financial Cryptography and Data Security: Using a Personal Device to Strengthen Password Authentication from an Untrusted Computer[M]. Berlin: Springer, 2007: 88-103

[6]Starnberger G, Froihofer L, Goeschka K M. QR-TAN: Secure mobile transaction authentication[C] //Proc of Availability, Reliability and Security. Piscataway, NJ: IEEE, 2009: 578-583

[7]Acar T, Belenkiy M, Kupcu A. Single password authentication[J].Computer Networks, 2013, 57(13): 2597-2614

[8]Chen C L, Lee C C, Hsu C Y. Mobile device integration of a fingerprint biometric remote authentication scheme[J].International Journal of Communication Systems, 2012, 25(5): 585-597

[9]Su Q, Tian J, Chen X. A fingerprint authentication system based on mobile phone[C] //Proc of Audio-and Video-Based Biometric Person Authentication. Berlin: Springer, 2005: 151-159

[10]Xu Qingui, Huang Peican,Yang Taolan. An enhanced biometrics-key-based remote user authentication scheme with smart card[J].Journal of Computer Research and Development, 2015, 52(11): 2645-2655 (in Chinese)(徐钦桂, 黄培灿, 杨桃栏. 增强的基于生物密钥智能卡远程身份认证方案[J].计算机研究与发展, 2015, 52(11): 2645-2655)

[11]Matt Z. FBI has accessed san bernardino shooter’s phone without apple’s help[EB/OL]. 2016 [2016-03-29]. http://gadgets.ndtv.com/mobiles/news

[12]Boyen X. Hidden credential retrieval from a reusable password[C] //Proc of the 4th Int Symp on Information, Computer, and Communications Security. New York: ACM, 2009: 228-238

[13]Boyen X. Halting password puzzles[C] //Proc of the 16th USENIX Security Symp. Berkeley, CA: USENIX Association, 2007: 119-134

An Di, born in 1992, Master candidate in Xidian University. Her main research interests include cloud computing and storage security.

Yang Chao, born in 1979. Received his PhD degree in computer science and technology from Xidian University in 2008. Associate professor in Xidian University. His main research interests include cryptography and information & network security.

Jiang Qi, born in 1983. Received his PhD degree in computer science and technology from Xidian University in 2011. His main research interests include security protocols and wireless network security.

Ma Jianfeng, born in 1963. Professor and PhD supervisor in Xidian University. His main research interests include network and information security, cryptography.

A New Password Authentication Method Based on Fingerprint and Mobile Phone Assistance

An Di, Yang Chao, Jiang Qi, and Ma Jianfeng

(SchoolofCyberEngineering,XidianUniversity,Xi’an710071) (ShaanxiKeyLaboratoryofNetworkandSystemSecurity(XidianUniversity),Xi’an710071)

Mobile phones and Internet applications are widely used nowadays,which enables users to authenticate with the server with the help of mobile phones. However,existing schemes need to store the user’s secret or ciphertext on the mobile phone. Once the mobile phone is lost, opponents may get the secret information on the phone, which will bring irreparable loss to the user. Aiming at the above problems, we propose a kind of authentication scheme based on fingerprint and password which has no need to store a secret in the mobile phone. The core idea is to store the encrypted text on the server side. When the user logs in, he uses his mobile phone to generate the private key which is used to decrypt the ciphertext generated during the registration phase. The user needs to enter his password and fingerprint at the private key generation process.When the computer interacts with the mobile phone, the user’s password will be blind so that it can be protected from adversaries’ attacks. Theoretical analysis and experimental results show that our scheme reinforces the security of the user’s secret. Meanwhile,our scheme can resist dictionary attacks,replay attacks and phishing attacks while reducing the storage pressure of the mobile phone along with easy deployment.

password-based authentication; authentication based on terminal assistance; fingerprint authentication; password attack and protection; blind password based on fingerprint

2016-06-16;

2016-08-17

国家自然科学基金青年基金项目(61303219);国家自然科学基金面上项目(61672415)

杨超(chaoyangcn@163.com)

TP391

This work was supported by the National Natural Science Foundation for Young Scholars of China (61303219) and the General Program of National Natural Science Foundation of China (61672415).

猜你喜欢
密文口令安卓
iPhone不卡的秘密曝光:安卓也能享受
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
高矮胖瘦
文物表情包
口 令
好玩的“反口令”游戏
一种基于安卓系统的手机侧抓包分析方法
SNMP服务弱口令安全漏洞防范
一种基于密文分析的密码识别技术*