Turn off MathJax
Article Contents
MING Yue, ZOU Junwei, SHEN Tinget al. Password authenticated key exchange protocol in electronic vehicle key enviromment[J]. Journal of Beijing University of Aeronautics and Astronautics, 2021, 47(4): 698-705. doi: 10.13700/j.bh.1001-5965.2020.0246(in Chinese)
Citation: MA Jin-lin, HE Kang-kang, MA Zi-ping, et al. Weighted bidirectional feature pyramid fusion-based liver tumor detection method for CT images[J]. Journal of Beijing University of Aeronautics and Astronautics. doi: 10.13700/j.bh.1001-5965.2023.0636(in Chinese)

Weighted bidirectional feature pyramid fusion-based liver tumor detection method for CT images

doi: 10.13700/j.bh.1001-5965.2023.0636
  • Available Online: 01 Feb 2024
  • 随着汽车产业智能化的不断发展,电子车钥匙成为车联网生态链中的关键一环。但是,汽车电子模块频繁被攻击,使得电子车钥匙与汽车车锁之间的通信安全问题成为亟待解决的问题。口令认证密钥交换(Password Authentication Key Exchange,PAKE)协议可以有效实现身份认证和密钥交换。针对上述通信安全问题,本文提出了电子车钥匙场景下的口令认证密钥交换协议。

    口令认证密钥交换协议引起了学者的广泛关注,主要有安全性、计算性2个方面的问题。口令认证密钥交换协议由Bellovin等[1]首次提出,参与方共享隐私数据,从而完成身份验证,避免中间人攻击。Wang等[2]提出了一种匿名两因子身份验证方案,但是该方案会面临智能卡丢失攻击。Xie等[3]提出了基于动态ID的匿名两因子口令认证密钥交换协议,但是该协议还是存在一定的安全风险[4],敌手可以通过获取智能卡中的信息,伪装成合法用户来完成后续流程。Reddy等[5]提出的口令认证密钥交换协议是基于生物特征的,但是该协议被指出无法抵御中间人攻击和服务器攻击[6]。Xiao等[7]提出了基于口令和生物特征的双因子认证密钥交换协议,该协议解决了智能卡管理不便的问题,但是需要借助安全信道,这导致在实际应用中很难实现。Dhillon和Kalra[8]提出了适用于物联网环境的多因子认证方案。Chen和Om[9-10]等提出了三因子口令认证密钥交换协议,能够保护协议安全和用户隐私。2017年,Challa等[11]提出了一种可证明安全的三因素用户身份验证和密钥协商协议,该方案支持多种功能,如动态传感器节点添加、密码和生物特征更新、智能卡吊销及无线传感器网络中用户身份验证所需的其他常用功能。Li等[12]为物联网环境中的无线传感网络(Wireless Sensor Network,WSN)提出了一种三因素匿名身份验证方案,其中采用模糊方案来处理用户的生物特征信息。上述方案计算开销巨大,不能满足轻量级的需求。

    为了解决协议计算开销过大的问题,一些轻量级协议被提出。Wazid等[13]提出了轻量级三因子远程认证方案,但是该方案面临严重的安全漏洞[14]。董晓露等[15]采用模糊提取技术和生物识别技术相结合的手段,计算成本较低。Taher等[16]提出了一种轻量的适用物联网设备的身份验证协议,该协议基于单向哈希函数和异或操作。但是,文献[15-16]的协议都利用了模糊提取器对生物特征进行模糊提取,这导致只能对有熵的信息源进行一次提取,且在公开信息被篡改后生成错误的密钥。

    总结发现,单因子口令认证密钥交换协议的最大缺点是安全性低,双因子口令认证密钥交换协议大多会面临智能卡攻击的风险,多因子口令认证密钥交换协议的优点是安全性高,但是计算和通信开销过高。

    综上,本文首先设计了电子车钥匙场景下的安全模型,然后提出了一种基于智能手机的电子车钥匙口令认证密钥交换(Digital-Key Password Authenticated Key Exchange,DK-PAKE)协议,协议考虑了电子车钥匙的实际场景,选取轻量级的运算,通过智能手机协助完成盲签,缓解了服务器端的计算和存储压力,最后对该协议进行了严格的安全证明和性能分析。

    安全模型本质上是用来证明协议的安全性。从可证明安全的理论出发,一个合适的安全模型是分析协议是否安全的基础。安全性证明模型分为理想型和标准型。由于标准型的方案以牺牲效率为代价,其实用性较低。理想型又分为随机预言机和理想密码模式,其中理想型下的随机预言机被认为是平衡安全性与效率的有效解决办法。本文DK-PAKE协议(详细介绍见第2节)的参与方包括用户、汽车和智能手机。因此,本文在Wang等[2]的安全模型的基础上,提出一个适用于智能手机的DK-PAKE协议的安全模型。

    随机预言机可以看作是抽象化的哈希函数,若敌手想要获取某一哈希值对应的输入值,只能通过查询随机预言机。用预言机来模拟协议的参与方实例,对预言机的查询则是模拟敌手对协议发起的各种类型的攻击。从协议的参与方、协议执行过程敌手的查询、新鲜度和AKE安全等4个方面对安全模型进行详细的阐述。

    1) 参与方。假设存在参与方用户U、汽车C和智能手机M。它们都可以有多个实例,并且允许并发地执行协议。用户U从字典集合D中任意选取口令pwd。Ui表示用户的第i个实例,Cj表示汽车的第j个实例。

    2) 协议执行。假设存在概率多项式时间敌手, 可以进入通信信道中并有能力修改或创建信息。该敌手可以通过查询以下预言机,进而实现与参与方的交互,如图 1所示。

    图  1  协议执行中的攻击
    Figure  1.  Attacks in protocol execution

    ① Execute(Ui, Cj)。该预言机模拟被动攻击,允许敌手访问UiCj之间协议的真实执行过程。当进行执行查询时,敌手发起被动攻击。用户U发送认证请求时,需要携带身份信息如口令等。敌手监听完整的通信过程,可以获得用户信息。该预言机对于处理字典攻击至关重要,字典攻击与敌手对协议进行的交互次数息息相关。

    ② Send(Ui/Cj, message)。该预言机模拟主动攻击,即敌手UiCj发送消息并得到Ui或处理message的响应。当进行发送查询时,敌手发起主动攻击,篡改用户或汽车端的消息并发送给对方。当用户或汽车收到被修改过的信息后依然执行了协议,将执行结果发送给敌手

    ③ Reveal(Ui)。该预言机模拟会话密钥泄露,敌手允许获取Ui持有的会话密钥。当进行此次查询时,敌手可以获取当前执行过程中的会话密钥。

    ④ Corrupt(U, a)。该预言机模拟双因子泄露,敌手允许获取用户U的口令pwd或存储在智能手机里的相关信息。如果a=1,则敌手可以获取到用户的口令信息pwd。如果a=2,敌手可以获取到保存在智能手机M中的相关信息。该查询可对防御智能手机M丢失攻击的安全性进行建模。

    ⑤ Test(Ui)。该预言机不模拟敌手的攻击能力,而是判断敌手胜利的优势。当进行此次测试查询时,敌手测试新的会话,如果没有计算出会话结果,此次查询终止,并输出错误信息。否则随机选择一个数j,若j=0,则返回一个随机数。若为j=1,则返回真正的会话密钥。

    3) 新鲜度。会话密钥的新鲜度可确保对手无法轻松获得密钥,以此限制敌手攻击能力。实例Ui在以下情况下被认为是新鲜的:①敌手未执行过Reveal(Ui)查询;②敌手未执行过Corrupt(U, a)查询。

    4) AKE安全。AKE安全证明指的是认证密钥交换安全证明,也叫语义安全证明。AKE安全需要保证敌手无法得到会话密钥的任何相关信息,这是设计一个口令认证密钥交换协议必须要保证的安全属性。当敌手通过Test(Ui)查询得到比特j′。如果j=j′,则敌手取得胜利。用Succ表示敌手正确猜出返回值j的事件,敌手攻击协议成功的概率为Adv=2Pr[Succ]-1。

    当敌手完成攻击操作后,如果内部敌手获胜的优势满足Adv≤qs/|D|+neg(k),则称协议是AKE安全的。如果外部敌手获胜的优势为Adv≤qs/|D|+2T/|D|τ+neg(k),则称协议是AKE安全的。式中:qs为敌手最多执行Send(Ui/Cj, message)查询的次数;|D|为用户U的口令集合的长度;T为敌手对Hkdf.ext发起字典攻击的次数;neg(k)表示可忽略函数;τ为HKDF加密循环次数。

    本文提出的DK-PAKE协议是电子车钥匙系统通信安全机制的核心内容,保证通信参与方在正式传送消息前,完成身份认证和密钥交换的工作,最终实现参与方之间共享密钥的目标。

    DK-PAKE协议的设计思路是:让用户任意选取随机数来替代私钥参数,通过智能手机完成盲签,执行过程中不会在智能手机端存储认证的相关数据。该协议在计算方面没有过于复杂的运算,并且无需对密钥进行长期存储,有效地缓解了服务器端的计算和存储压力。协议的具体流程分为身份注册阶段和密钥认证阶段,如图 2所示。

    图  2  DK-PAKE协议流程
    Figure  2.  DK-PAKE protocol flowchart

    该协议的初始化定义如表 1所示。

    表  1  DK-PAKE协议的初始化定义
    Table  1.  Initial definition of DK-PAKE protocol
    对象 描述
    G 阶为素数P的循环群
    g G的生成元
    pwd 用户口令
    Hash() 哈希函数
    Hkdf() 密钥派生函数,分为加密和解密2部分
    IDU 用户的身份信息
    IDC 汽车的身份信息
    下载: 导出CSV 
    | 显示表格

    用户如果想要和汽车端进行通信,要先在系统中进行注册,获取合法的身份信息。注册阶段的实现过程如图 3所示。

    图  3  注册阶段协议
    Figure  3.  Protocol in registration phase

    步骤1   用户U在注册阶段需要随机选取自己的口令pwd∈{0, 1}*,选取一个生成元gG和一个随机整数s∈{1, …, p-1}。

    步骤2   用户利用随机数s来计算hgs和签名值σ←Hash(pwd)s。计算后续验证过程要用到的认证密钥k和认证密文v

    (1)

    式中:r为随机参数;t为循环次数。用户可以自己选择t的值,t值的大小影响着运算量的大小。t值越大,则生成的密钥安全性越高。

    步骤3   用户随机选择代表自己的身份信息IDU,将IDU和步骤1、步骤2中得到的kvgh发送给汽车C。汽车端将上述信息进行存储。

    步骤4   用户U通过单向散列函数计算id,id←Hash(IDU, IDC)。接着用户U将id和s存储在智能设备中。

    在注册阶段,利用Hkdf函数[17]生成强口令,用户可以自由地选择参数及计算代价。注册阶段只需要一次交互,且没有直接传送口令值。用户无需记忆任何难记且重要的数值,智能手机中只存储了用户的身份信息和随机数值,并没有保存与密钥直接相关的数据。

    用户具有合法身份后,需要完成身份认证。汽车端对认证数据进行计算和比较之后,反馈是否同意此次通信。图 4展示了认证阶段的通信过程。

    图  4  认证阶段协议
    Figure  4.  Protocol in authentication phase

    步骤1   用户U在发起会话的同时,给汽车端发送身份信息IDU。汽车端C收到IDU后回去检索IDU匹配的对应数据vhg,并将这些值返回给用户U

    步骤2   用户U收到vhg后,输入自己的口令pwd,并且选取一个随机数dd∈{1, …, p-1}。用户U通过单向散列函数计算id:

    (2)

    用户U计算盲签结果c:

    (3)

    用户将id和c发送到智能手机上。

    步骤3   智能手机收到来自用户发送的id和c后,检索出与id对应的随机数s,利用sc进行盲签fcs。智能手机M接着将结果f返回给用户U

    步骤4   用户U在收到f后,需要对f值进行去盲化,计算出签名值σ:

    (4)

    使用σ对认证密文v进行解密,从而获取到认证密钥k:

    (5)

    完成了以上4个步骤,接下来的步骤就是用户和汽车之间进行的认证密钥交换过程。具体实现如下:

    步骤5    用户任意选取一个随机数su,并将该随机数发送给汽车C。汽车C随机选取一个整数sc,计算ac

    (6)

    式中:k为在注册阶段存储的认证密钥。汽车Cscac返回给用户U

    步骤6   用户U在接收到汽车C发送的数据之后,需要对ac进行验证。U计算ac

    若验证不通过,则用户拒绝此次通信,并要求汽车C重新发送数据。若验证通过,则用户计算会话密钥sk及会话密钥的确认信息au:

    (7)

    (8)

    最后将au作为确认信息发送给汽车C

    步骤7    汽车C在收到确认信息au后要对其进行验证,验证方式和式(8)一致。若是验证失败,则拒绝此次认证的请求。若验证通过,汽车C计算会话密钥sk,计算方式和式(7)一致。此后,汽车C和用户U便可以建立会话。

    在认证和密钥交换阶段,设计使用了盲签名体制,保证了参与者的匿名性。用户先对口令进行盲化,隐藏传输的信息gdHash(pwd)。此后M对经过盲变化的值进行盲签,最后用户对盲签过的值进行去盲化,从而得到签名值σ。将盲签名加入到认证过程中,可以保证消息对签名方不可见,签名方无法将盲变换的数据与待签名的信息关联起来。在计算认证密钥步骤时,采用Hkdf算法[17]中的解密算法。

    本节将对DK-PAKE协议进行AKE安全证明,从外部攻击和内部攻击2方面进行模拟攻击。

    通过假设敌手攻击的场景,对定理1[2]进行验证,如果定理1得证,则协议是AKE安全的。

    定理1    在DK-PAKE协议中,如果概率多项式时间敌手是攻击DK-PAKE协议的AKE安全的外部敌手,它获胜的优势满足:

    (9)

    式中:D为口令集合;|D|为集合长度;qγ为敌手发起查询的次数;γ为用户的私钥; |γ|为私钥的位数。

    如果概率多项式时间敌手是攻击DK-PAKE协议的AKE安全的内部敌手,它获胜的优势满足:

    (10)

    式中:T为敌手对Hkdf.ext发起字典攻击的次数;t为Hkdf的加密循环次数。

    当式(9)和式(10)都满足时,就认为DK-PAKE协议满足AKE安全。

    证明   Π作为敌手执行Test查询的对象实例。假设存在一个模拟器,其能够控制敌手访问的预言机并响应敌手对预言机的查询。

    为了证明DK-PAKE协议的安全性,要先分别还原外部攻击和内部攻击的场景。外部攻击还原为下述场景1、场景2和场景3,内部攻击还原为场景4。

    1) 外部攻击

    场景1:敌手冒充用户,向汽车端发起Send查询,并获取密文v

    因为v是通过Hkdf函数派生而来,敌手没有掌握正确口令的话,就无法解密密文,所以敌手不能从v中获取到口令的信息。故敌手获胜的优势可忽略不计,为

    (11)

    场景2:敌手冒充用户,不对口令进行攻击,而是直接猜测私钥。

    γ是用户的私钥,|γ|表示私钥的位数。敌手猜对某一位上字符的概率为1/2,故敌手猜出完整私钥进而获胜的优势为

    (12)

    场景3:敌手模拟智能手机端,获取用户盲变化后的口令数据。

    敌手在此场景下成功猜出口令即获胜,则敌手获胜的优势为

    (13)

    根据场景1、场景2、场景3可知,敌手取得外部攻击游戏胜利的优势为

    故DK-PAKE协议对于外部攻击是安全的。

    2) 内部攻击

    场景4:敌手对汽车端进行Reveal查询,获得此次会话密钥。

    敌手试图利用密钥解开密文,但是密文是通过Hkdf函数进行解密,由Hkdf安全特性可知,敌手在此次解密过程中获取口令的优势为

    (14)

    所以敌手获取口令的优势为

    故DK-PAKE协议对于内部攻击是安全的。

    综上可知,DK-PAKE协议是AKE安全的。

           证毕

    从安全性能和计算性能2方面对本文DK-PAKE协议进行性能分析。

    除了AKE安全,本节还对DK-PAKE协议做出了其他的安全性能分析,保证该协议能够抵御字典攻击、中间人攻击、重放攻击、用户伪装攻击、服务器泄露攻击、智能手机遗失攻击等。

    1) 抗字典攻击

    在执行DK-PAKE协议过程中,用户U和汽车C在通信过程中,没有直接将用户口令pwd及其相关的信息带入通信信道。即使敌手对口令进行猜测,发起字典攻击,也无法根据任何依据来验证所猜测口令的正确性。

    2) 抗中间人攻击

    本文将挑战应答模式应用在DK-PAKE协议的执行过程,参与方可以通过验证随机数与私有数据来确认所传递消息是否被中间人进行过伪造。故中间人无法篡改通信信道中的传输信息。另外,参与双方之间的消息都是共享的,中间人即使监听或截获也无济于事。

    3) 抗重放攻击

    攻击者在进行重放攻击时,监听并截获到上一次用户发送的身份信息IDU,此后攻击者将该信息再次发送给汽车端CC会向攻击者返回该身份信息对应的数据hgv。但是此时攻击者还是无法执行后续盲签和验证过程,无法恢复认证密钥k,因此接下来的执行步骤无法继续。

    4) 抗用户伪装攻击

    攻击者伪装成参与通信的其中一方,向另一方发送信息时,首先需要伪造身份信息IDU,并将身份信息IDU发送给接收方。但是IDU的选取发生在注册阶段且是随机的。攻击者猜测出身份信息难度很大,即使真的猜中身份信息,也无法实现盲签、去盲化及最后的认证过程。

    5) 抗内部攻击

    如果出现内部攻击者,他可以获取到真实用户的信息IDUhkgv。但是攻击者缺少智能手机的协助,无法正常完成认证操作。

    6) 抗服务器泄露攻击

    当服务器遭遇泄露攻击时,敌手可以轻松获取用户信息。但是由于认证密钥k是无法被恢复的,故会话密钥还是安全保密的。

    7) 抗智能手机遗失攻击

    当存储了用户信息的智能手机遗失且被敌手获取时,敌手可以得到标识符id和随机数s的值。然而智能手机里存储的标识符是哈希值,无法复原出原来的有效信息。另外s只是随机数,不具有任何指向性的信息。

    表 2给出了DK-PAKE协议与其他相关协议在安全性能方面的对比。

    表  2  协议安全性能比较结果
    Table  2.  Comparison results of protocol safety
    安全特征 文献[3] 文献[18] 文献[19] 文献[20] DK-PAKE
    抗字典攻击
    用户匿名性
    抗重放攻击
    抗用户伪装攻击
    抗内部攻击
    抗智能手机遗失攻击
    下载: 导出CSV 
    | 显示表格

    当敌手暴力破解时,文献[20]提出的协议无法抵御字典攻击。而本文协议采用了Hkdf算法,从破解的时间成本、空间成本和访问频次等方面增加了破解的成本,即使敌手破解了口令字典,其付出的代价远远高于破解的成本,故可认为本文DK-PAKE协议在抵御字典攻击方面表现优异。文献[3, 18-19]忽略了内部攻击问题。本文利用智能手机的协助,即使在面对内部攻击时也保证了协议安全。在多因子口令认证密钥交换协议中,文献[18, 20]都未考虑到智能手机遗失的风险,本文拓展了Wang等[2]提出的安全模型,充分考虑了协议在智能手机遗失后的安全性。智能手机只存储标识符id和随机数s,这样可保证敌手得到智能手机后也无法与用户的信息进行相关联。

    本文在计算机端和移动设备端测试了该协议的计算性能。具体的测试环境如下。

    电脑端:在虚拟机Ubuntu 14.04.3 LTS上运行。该计算机配备了Core 3 GB I7处理器(2.4 GHz),8 GB DDR3内存和Windows 7 64位Service Pack 1操作系统。

    设备端:操作系统基于Android 6.0.1 MIUI 9 8.3.29开发版本,CPU为高通骁龙801(2.5 GHz)处理器,运行内存为2 GB。

    连接工具:Android Debug Bridge。

    编译环境:gcc 4.8.4和与之相对应的arm-none-linux-gnueabi编译器。

    本文还从用户和汽车端的计算消耗方面衡量了DK-PAKE协议的性能。实验选取了近3年的协议进行对比。

    图 5展示了DK-PAKE协议与最新相关协议在服务端计算时间、额外计算成本和总成本时间方面的差别。比较发现,DK-PAKE协议至少减少了8.7%、53.59%、50.7%的计算消耗量。分析可知,本文协议只使用了2种操作(单向哈希函数和加解密),且轻量级的哈希操作占比更大,另外协议借助智能手机完成盲签过程,交互次数更少。而其他文献协议采用了诸如模糊提取、点乘运算等,且交互次数多造成了计算开销大的结果。因此,DK-PAKE协议更适合于物联网环境[21-23]中的受限设备。

    图  5  计算消耗性能对比
    Figure  5.  Performance comparison of calculation consumption

    1) 本文提出的安全模型适用于电子车钥匙口令认证密钥交换协议。

    2) 本文提出的基于智能手机的DK-PAKE协议,通过智能手机的协助,弥补了现有方案的不足。

    3) DK-PAKE协议在安全模型下可证安全,能够抵御字典攻击、中间人攻击、重放攻击、用户伪装攻击、内部攻击等, 且计算消耗低于同类协议,非常适用于对安全性要求高且设备计算能力受限的电子车钥匙场景。

    本文提出的协议是在理想模型(随机预言模型)下可证安全的。考虑到标准模型更加贴近实际状况,下一步将完善在标准模型下可证安全的电子车钥匙口令认证密钥交换协议。

  • 加载中

Catalog

    通讯作者: 陈斌, bchen63@163.com
    • 1. 

      沈阳化工大学材料科学与工程学院 沈阳 110142

    1. 本站搜索
    2. 百度学术搜索
    3. 万方数据库搜索
    4. CNKI搜索

    Figures(1)

    Article Metrics

    Article views(115) PDF downloads(0) Cited by()
    Proportional views
    Related

    /

    DownLoad:  Full-Size Img  PowerPoint
    Return
    Return