一种基于近距离无线通讯技术的双向认证方法
【技术领域】
[0001] 本发明属于电子信息技术领域,尤其涉及一种基于近距离无线通讯技术的双向认 证方法。
【背景技术】
[0002] 伴随着近距离无线通讯技术(NFC)的发展,各种基于该技术的应用随之发展起来, 作为一种短距离、高频率的通讯技术能够很好的适用于电子票券、小额支付以及门禁控制 等功能,从而广泛的应用于金融行业、交通传输、路禁管制等领域。
[0003] 然而,虽然该技术正在当前时代逐渐地被普及使用,但该技术也面临很多安全问 题、隐私问题,例如由于NFC通信双方没有对通信内容加密,所以很容易遭受到窃听甚至篡 改;由于交互双方没有相互认证这一环节,因此容易遭受中间人攻击;正是这些存在的安全 问题使之难以适应当今社会对于高安全性通信的要求,因此一直制约着NFC技术进一步的 推广。
【发明内容】
[0004] 本发明的目的在于提供一种基于近距离无线通讯技术的双向认证方法,旨在解决 NFC支付所存在的窃听,消息篡改,重放攻击以及中间人攻击的问题。
[0005] 本发明是这样实现的,一种基于近距离无线通讯技术的双向认证方法,所述基于 近距离无线通讯技术的双向认证方法包括:
[0006] 用户利用基于WTLS的无线通信方式在服务提供商的平台上进行注册并且共享密 钥;
[0007] 用户利用基于WTLS的无线通信方式进行电子票券的预定;
[0008] 用户利用移动设备在移动P0S机上通过NFC支付已预定电子票券的款项并且获取 电子票券安全信息;
[0009] 用户利用移动设备在验证器上通过NFC进行电子票券安全信息的验证。
[0010] 采用本方案首先提供了双向认证的功能以及对票券和支付信息加密,使得双方通 信更加的可靠安全。
[0011] 进一步,所述基于近距离无线通讯技术的双向认证方法具体包括:
[0012] 步骤一,用户注册,用户首先在票券提供商提供的平台上进行注册,保存到数据库 当中,信息包含移动设备NFC安全单元的1C序号以及共享的密钥信息{K〇,DK,m},根据共享 的密钥信息利用用户和服务器之间将会创建一组会话密钥SK MD-Sj,j = 1,2,3,…,m,在服务 器端将会生成一个(ID?,SKMD-Sj)键值对表,其中ID MD表示每个移动设备的身份标识;
[0013] 步骤二,用户票券预定,在注册完成之后,用户在平台上浏览并且预定自己需要的 票券了,预定完成之后,平台后台服务器将会把所示的支付信息发送到用户设备,而用户设 备和平台后台服务器在注册和订票阶段交互是通过无线安全传输层协议来完成的;
[0014] 步骤三,电子支付票券,票券预定并成功获取票券信息之后,用户利用移动设备在 移动POS上通过NFC通信进行支付操作;
[0015] 步骤四,离线电子票券验证,完成支付过程,移动验证设备将会去验证已经获取到 票券信息的用户移动设备,如果验证成功则放行,否则不予放行。
[0016]进一步,所述支付过程包括:
[0017] 第一步,MDpqs-MD:
[0018] Request
[0019] 首先MDpcis会向MD发送票券支付认证请求Request,从而开启认证会话;
[0020]第二步,MD-MDpos:
[0021 ] nl, IDmd
[0022] 在收来自MDpcis认证请求之后,MD将向MDpcis发送MD的身份标识IDmd以及用于对MDpos 进行认证的自身生成的可避免重放攻击的质询消息随机数nl;
[0023] 第三步,MDpqs-MD:
[0025] 在收到MD发来的质询信息之后,MDpcis会利用接收到的MD的身份标识IDmd去后台服 务器的数据库中搜索与之匹配的对称密钥组SK j;然后MDpos会利用SK」向MD发送质询响应消 息Φ: η.2 _Φ /Z)M£^以及用于对MD进行认证的质询消息随机数n2;
[0026] 在MD中能够查找到密钥Sf MD-Sj,使得计算出来的 /?? /?2 ? //\7;)与 接收的质询响应消息值%轉^€^?1發:》2思/__)相等,则10对1?)[^认证成功,然后方 案会继续进行;
[0027] 在MD中无法找到密钥值Sf MD-Sj,使得在上面情况下计算得出的 Λ/腿c'(S[LD-,》1 ? ?2 ? ZD·)等于接收的质询响应消息值腿W ? ?2 ? /Dmd ), 则MD对MDpcis认证失败,然后会忽略该消息;
[0028] MDpcis还会向MD发送对称密钥加密的支付信息{0} SKMD-sj;
[0029] 若MD对MDpcis的认证成功,则MD会利用已匹配找到的密钥Sf MD-sj来查看已加密的支 付信息〇,若支付信息与请求一致则完成支付,反之,则拒绝支付;
[0030] 第四步,MD-MDpos:
[0031] n3,Accept/Recject,
[0033] MD向ffipQs发送消息认证码n3,(从li;) @ /?2 S /Z).w;> (.B /k.t切 响应MDpcis对自己的认证质询;
[0034] 若MDpcis利用当前使用密钥值的下一个对称密钥SIT MD-Sj + 1计算出来的 .糾:,址 Φ ?.2.Φ?3 Θ /?扭 Φ 敬 与接收值 /识'(SAW) W|P,71 十 /?2 十 /;3 十 /£),,,> 十 处/初)相等,贝 案会继续进行;
[0035] 若MDpcis利用当前密钥值的下一个对称密钥值SIT MD-Sj + 1计算出来的
[0036] MD还会向MDpqs发送支付结果Accept/Recject,若MD成功支付,然后方案继续进行; 反之,则忽略此消息;
[0037] 第五步,MDpqs-MD:
[0038] Accept/Recject,n4,sl,s2,
[0040] {Title,Location,Seat,Time,Mark} SKMD-si+i
[0041 ] h{IDticket,ID company ,ICsn,R}
[0042] MDpqs向MD发送消息认证码n4, /郷從{级細^丨,h1 ? n2 十》3 十《4 ? ZD,/n Φ Jccep?/御'eei): 来通知完成,此时MD会利用当前密钥Sf m-Sj+1来进行消息完整和真实性验证;
[0043] 若在MD中利用当前密钥來十算出来白勺"沉.《破iro-s+i 诚如2 ? 由《.4 ffi Φ Ae辦./ ~ 与接收值細η? Φ?3 ? 由.乂⑶职/ /?〇/对)相等,则方案继续进行;
[0044] 若无法使得在上面情况下计算得出的? W2 ? Λ3 Θ ?4 ? ωΜβ Φ 御'eci) 等于接收值/?/._(认?"2@/?3Θ/?4? /D,", Φ 性验证失败,然后会忽略该消息;
[0045] MDpcis通知MD-定时间内购票和退票次数si和s2,在当si和s2达到一定阈值,那么 该注册用户会被列入黑名单;
[0046] MDpqs向MD发送票券信息,票券信息将被保存在MD的NFC安全单元中;
[0047] 票券内容部分信息{Title,Location,Seat,Time, Mark} SKMD-si+i,MD 利用该对称密 钥SKm-Sj+1查看用户票券信息;
[0048] 票券敏感信息11{10心1^,10_[^,1(^,1?}存储在安全单元中,以备验证使用。
[0049] 进一步,所述离线电子票券验证具体包括:
[0050] 第一步,MD-MDv: Request;
[0051 ] 首先MD会向MDv发送身份认证请求Request,从而开启认证会话;
[0052] 第二步,MDv-MD:rl;
[0053] MDv收到来自MD的请求Request之后,将会向MD发送用于对其进行认证的质询消息 随机数rl;
[0054] 第三步,MD-MDv:
[0056] 收到来M D v的质询消息之后,M D会向M D v发送质询响应信息I D μ d, hmac(SKun ? n2 ? 1Dm〇} ,MDv^fligIDMD^^ 对应密钥组中的对称密钥;
[0057] 若在MDv对应的密钥组中能够找到密钥Sf MD-S j,使得利用它计算出来的 /"仙rtS/T。丨 @ /72 @ /Dw/))与接收值 ν?"/?1 十 /72 十 //J,〃,)相等颅^ 证成功,然后方案会继续进行;
[0058]若在M D v对应的密钥组中无法找到密钥S K 7 μ d - s j,使得计算出的 /?"欣'乂级;",、,,/?1 十"2 ? /A,"J 等于为服,c'(SKUD-十"2 十 /D·.),贝幽^ 后会忽略该消息;
[0059] MD会向MDv发送对称加密的序列号信息{IC} SKmd-s j;
[0060] MDv会利用该找到的密钥来解密并查看序列号信息1C,该序列号将会用于验证票 券敏感信息;
[0061 ]第四步,MDv-MD:
[0062] Accept/Rec ject ,r3, hmac{SKυη v;1, ,?1 Θ nl ? /?3 Θ /〇,;,, ? Accept i Rccjcct);
[0063] 在M D v对M D认证成功之后,M D v就会向M D发送消息认证码 (从,/?l 十 /?2 Θ/;3 十 /Z\v> ? /icccyV/Aet.y'm1)来回应MD对自己的认证质询消息,此 时MD会在自身密钥组里面寻找匹配密钥进行认证操作;
[0064] 若M D利用当前密钥的下一个对称密钥S K ' μ d - s j + i计算出来的 ν?ι:十/72 十"3 十 /α,"(十 Jca# //?α7·?.以 功,然后方案会继续进行;
[0065]若MD利用当前密钥的下一个对称密钥SI^md-s川,无法使得在上面情况下计算得出 的 Vl 丨,"1 Φ· /?2 ? "3 十 /£>肋 ?: /?ei'/eci)等于 /?"咖(SA·,,,, ν/ι |,"丨十 〇2 十,?3 十 /D1//;十.4cay,///?er/?.外则MD对m 消息;
[0066] MDv会向MD发送身份认证结果:
[0067] 若MDv对MD认证成功,则MDv会向MD发送身份认证结果,然后方案继续进行;反之,则 会忽略此消息;
[0068] 第五步,MD-MDv:
[0069] Accept/Recjec