横向联邦学习环境基于身份认证及密钥协商协议
2023-03-18任杰黎妹红杜晔尹李纶谨
任杰,黎妹红,*,杜晔,尹李纶谨
(1.北京交通大学智能交通数据安全与隐私保护技术北京市重点实验室,北京 100044;2.北京交通大学计算机与信息技术学院,北京 100044)
人工智能的高速发展离不开大数据的支持,但是绝大多数企业数据质量低,尤其是对数据隐私保护的要求低,无法支撑构建精准的模型。为了解决“数据孤岛”的情况,联邦学习应运而生[1]。目前已有许多横向联邦学习的商业落地应用案例,但仍处于初级阶段,尤其是数据安全方面仍存在许多技术挑战,而认证及会话密钥协商是保证通信实体之间安全传输、可靠通信的关键技术和基本的安全保障。
随着用户量的增大,基于对称密码体制和基于公钥基础设施(public key infrastructure,PKI)的密码体制认证和密钥协商协议中存在密钥管理和维护的问题。1985 年Shamir[2]提出基于身份的密码体制,将用户身份与公钥绑定,省去证书的参与,大大降低了PKI 存储和管理上的消耗。因此,越来越多的基于身份的认证及密钥协商协议被相继提出。Boneh 和Franklin[3]利用双线性对的理论设计基于身份的认证密钥协商协议。随后Jegadeesan 等[4]及Bakhtiari-chehel cheshmeh 和Hosseinzadeh[5]提 出 适用于分布式云计算环境下的移动设备的认证及密钥协商协议,具有双向认证、用户的不可追踪和不可否认等特性。但是Wu 等[6]证明文献[5]提出的协议很容易受到中间人攻击和伪造攻击,因此,文献[6]改进了该协议,提供了具有更高安全性和有效性的协议。
由于双线性对的计算开销较大,且找出满足双线性对的群很困难,因此,一些研究提出了基于非双线性对进行密钥协商[7-17]。Zhu 等[7]和Cao 等[8]提出非双线性对基于身份的两方认证密钥协商协议(ID-2PAKA),该协议中采用3 次信息交换实现密钥协商。随后,Cao 等[9]又在此基础上做了改进,通过2 轮信息交换完成密钥协商,降低了计算开销和通信轮数。但是Islam 和Biswas[10]分析了文献[9]提出的协议,发现该协议易受到已知会话特定临时信息攻击(known session-specifictemporary information attack,KSTIA)和密钥偏移攻击(key of f-set attack,KOA),因此,文献[10]弥补了文献[9]的安全缺陷,可以对其他参与方的会话密钥做哈希检查,避免在信息交互的过程中出现篡改和假冒攻击。但是该协议中缺少前向安全性。针对此问题,Daniel 等[11]针对文献[10]的协议做出了改进,并证明在扩展的CK(extended Canetti-Kraw czyk,eCK)模型[12]下是安全的。但是结合横向联邦学习环境,该协议只有在计算会话密钥后才能认证双方的身份。若协商阶段存在中间人攻击,则此次的会话密钥计算无效,给双方带来不必要的计算开销和通信开销。因此,本文结合横向联邦学习环境,提出了基于身份的椭圆曲线无证书的轻量级认证及会话密钥协商协议,在保证安全性的同时,权衡计算开销和通信开销,在实际的应用场景下具有更好的平衡性。
1 准备工作
1.1 相关困难问题及假设
本文的认证及会话密钥协商协议的安全性和证明条件依赖于以下问题:
1)椭圆曲线离散对数问题(elliptic curve discrete logarithm prob l em,ECDLP)。设Pe和Q是椭圆曲线E上的2 个解点,n为任意正整数,且1 <n<|E|,其中|E|为椭圆曲线E的阶数。对于给定的Pe和n,计算nPe=Q是 容易的。但若已知Pe和Q两 点,计算出n是极其困难的。
2) 计 算 性 假 设(computat ional diffie-hellman,CDH)。对于一个q阶 环群G, 其中,q为素数,P为群G的生成元,取任意整数a,b∈,其中,为乘法群,在给定P,aP,bP情况下无法在多项式时间内计算出abP。
3)决 定 性 假 设(dec is ion diffie-hellman,DDH)。对于一个q阶 环群G, 取任意整数a,b,c∈,在给定P,aP,bP,cP的 情况下,判断是否有CDH(aP,bP)=cP即cP=abP,是无法在多项式时间内完成的。
1.2 Forking 引理
给定一个安全参数为k的签名机制(Kgen,sign,verf),其中,Kgen 为密钥生成算法,sign 为签名算法,verf 为验证算法。假设A为概率多项式时间内的图灵机,其输入为公共数据,并用qh>0 表 示A访问随机预言机H的次数。假设在时间T内,A以概率ε ≥7qh/2k得到的有效签名 (m,r,h,s),其中,m为消息内容,r为承诺内容,h为关于m和r的哈希值,s为关于h和r的答案,则通过重放攻击,可以在有效时间T′≤16QT/ε内 ,以概率 ε′≥1/9获得2 个消息内容与承诺内容相同的有效签名(m,r,h,s)和(m,r,h′,s′), 且满足h′≠h, 其中,h′、s′为通过重放攻击后计算不同于h与s的哈希值和解密值。
1.3 eCK 安全模型
eCK 模型主要是针对两方认证及密钥协商协议的一种安全性较强的形式化分析模型,虽然证明过程较为复杂,但是其安全性优势明显。在eCK 模型中每个参与者或攻击者都被模拟成一个具备概率多项式时间的预言机,其以多项式次数执行协议,预言机表 示用户i与 服务器sj 的第t次密钥协商。攻击者可以控制各方交换通信,还可以利用多种方式在eCK 模型下被允许进行监听、篡改、重放等基本的攻击方式。在该模型下攻击者A可以请求以下查询。
2)StaticKeyReveal(U)查询。攻击者A可以通过该查询获得参与方U的长期私钥。
5)Establishedparty(U)查询。攻击者A可以利用此查询获得参与方的长期私钥。因此,若攻击者有发起该请求,则参与方是诚实的。
攻击者A会根据所有发起的查询请求,猜测bit的值为bit',若bit'=bit,则攻击者A在本次游戏中获胜,定义获胜的优势(A)如下:
式中:Pr 为概率。
定义 1匹配会话。若某会话 Πi,sj发起的消息被传输到 Πsj,i, Πsj,i的 应答消息被传回到 Πi,sj,则两会话互为匹配会话。
定义 2新鲜会话。如果预言机计算后得到了一个会话密钥SK,并满足以下条件:
定义 3安全的会话密钥协商协议。若认证及密钥协商协议满足以下条件:
1)2 个相互匹配的随机预言机计算出相同的会话密钥;
2)对于任意攻击者A,(A)成功的概率是可忽略的。
此时该密钥协商协议在eCK 模型下是安全的。
1.4 攻击者模型
在实际训练环境下,会遭到各种类型的攻击和安全威胁。本文在方案设计中,是基于横向联邦学习环境,主要考虑以下几个方面的安全威胁。
1)窃听攻击。在横向联邦学习环境中,用户更多利用无线通信传递消息,信道处于开放的状态,因此,攻击者可以监听通信信道传输的信息,进而实现窃听攻击。
2)攻击者可以对监听的信息进行拦截、重构和重放,实现篡改攻击、伪造攻击、重放攻击等。
3)密钥生成中心(k ey gene r a t i on center,KGC)的半诚实性。在密钥生成中心会产生内部攻击,恶意的参与方会盗取用户的密钥信息并利用在后续的密钥协商中。
2 认证及会话密钥协商协议描述
结合横向联邦学习环境中要求参与方在协议中的控制权,本文提出单服务器环境下基于身份的无证书轻量级认证及密钥协商协议。在本文方案中,首先,KGC 生成公开系统参数集合,参与训练的用户和服务器在KGC 完成注册,并计算各自的临时密钥和长期密钥。之后,参与方可对服务器发起认证协商请求。本节详细阐述了本文方案中的初始化模块、注册模块、认证及密钥协商模块。
2.1 初始化模块
在该系统中,KGC 定义循环加群G,G的素数阶q。KGC 为循环加群选择生成元P,并选择随机值x∈,x为系统主私钥,计算系统公钥Ppub=xP。KGC 还需要定义4 个哈希函数H1,H2,H3,HMAC,其式分别为
式中:l为最终会话密钥的长度。
完成式(2)~式(5)的计算后,KGC 会将x保密存储,并公开系统参数集合{G,q,P,Ppub,H1,H2,H3,HMAC}。
2.2 注册模块
当存在参与方申请参与联邦学习模型训练时,需要参与方在KGC 注册,其注册详细流程如图1 所示。注册过程描述如下。
图1 注册模块Fig.1 Registration module
1)用户i给KGC 发送身份标识 IDi,KGC 给用户i随 机选择ri∈并 计算Ri=riP,si=(ri+xH1(IDi,Ri)) ,因此,KGC 为用户生成部分私钥 (si,Ri),并由安全信道发送给用户i。
2)当用户i收到KGC 传来的部分私钥(si,Ri),首先验证其准确性,用户需要计算siP=Ri+H1(IDi,Ri)Ppub。若等式成立,则证明用户i收到的为KGC 发送的部分私钥组。
3)用户私钥生成。用户私钥由3 部分组成,长期私钥、临时私钥和部分私钥。因此,用户i随机选取一个随机数di∈和ti,di和ti分别为长期私钥和临时私钥。计算公钥Pi=diP。因此,用户i的私钥组为 {di,ti,(si,Ri)} , 公钥为Pi, 其中Pi可以放在公共目录中,供其他密钥协商方使用。
服务器sj 注册过程同用户i。
2.3 认证及会话密钥协商模块
注册完成后,用户和服务器进行双向身份认证和会话密钥协商,其协商流程如图2 所示,协商过程描述如下:
图2 认证及密钥协商模块Fig.2 Authentication and key agreement module
1)用户i首先计算Ti=tiP,利用私钥组{di,ti,si}计算Qi, 其式为Qi=ti(si+di)−1modq,其中mod 为模型运算。随后参与方选择一个新鲜随机数nonce,利用H2, 计算Hi=H2(IDi,Ti,nonce)。当完成Hi的计算后,用户i将 消息 (IDi,Ri,Qi,Hi,nonce)发送给服务器sj。
2)当服务器sj 收到来自用户i的认证请求后,首先,检查收到的新鲜随机值nonce,若该值在本次通信中具有新鲜性,服务器sj 即可将其作为后续会话密钥协商及模型训练的参数,保证训练的安全性和训练参与方身份的有效性。然后,服务器计算=Qi(Pi+Ri+Hi(IDi,Ri)Ppub),利用计算=H2(IDi,,nonce)是否等于用户i传送过来的Hi,若相等则证明服务器进入密钥协商阶段。
服务器利用私钥等参数,计算Wi=Ri+H1(IDi,Ri)Ppub、接下来计算会话密钥参数,即会话密钥K2sj,i) HMAC=,服务器对SK 计算哈希值,生成完成第2 步中的计算后,服务IDsj,Tsj,Hsj,RsjHMAC器将消息 发送给用户i。3) 当用户收到来自服务器的消息后,首先,计算Hsj其结果是否等于 ,若相Tsj等,则可以判断 的正确性及身份的合法性。然后用户计算会话密钥参数和,其中:
3 安全性分析与证明
定理 1假设CDH 是困难问题,哈希函数H1、H2、H3是随机预言机,则提出的模型在eCK 模型下是安全的[11]。
证明在1.3 节提出的认证及密钥协商协议的正确性要求相匹配的会话要返回相同的会话密钥,因此,根据协议安全性要求,只需要证明攻击者无法在概率多项式的时间内有不可忽略的概率赢得游戏来证明协议的安全性。
我国的地震区划工作自1954年就已开展,至今已历时五版,随着地震观测技术的发展与概率设计概念的引入,地震区划的依据也逐渐由基本烈度即100 a以内,一般场地条件下该地区可能遭受的最大烈度向概率标定后的基本烈度,即50 a期限内,一般场地条件下,可能遭遇超越概率为10%的烈度值,与国际大的发展方向相接轨。
3.1 随机预言机安全模型
会话密钥SK 的计算需要利用元组(IDi,IDsj,Ti,Tsj,,), 发起H3请 求,挑 战 者C会 维 护3 个独立列表来模拟H1、H2、H3,挑战者C会将每一条输入输出记录在列表中。如果攻击者A发起了哈希请求,并在列表中可以找到相匹配的某个参与方的值,则挑战者C会将匹配的值输出给攻击者A,否则挑战者C会随机生成一个值输出,并将其记录在列表中。
H1预 言机。挑战者C为H1预言机初始化一个空列表,在列表中每一个实体组成是(IDi,Ri,H1)∈{0,1}len(IDi)×G×,len(·)为计算消息bit 长度的函数,当挑战者C计算参与方的部分私钥后,将该元组插入列表中。在游戏过程中,若攻击者发起H1请求,挑战者C会在列表中查找是否有匹配的信息,将查找元组输出给攻击者A,否则挑战者C随机选择一个随机数Nrad(Nrad∈),返回给攻击者A,同时将该值记录在中。
H2预 言机。挑战者C为H2预言机初始化一个空列表,在列表中每一个实体组成是(IDi,Ti,nonce,H2)∈{0,1}len(IDi)×{0,1}len(Ti)×{0,1}len(noncei)×。在游戏过程中,攻击者如果发起了H2请求,挑战者C会在列表中查找是否有匹配的信息,如果有则直接将查找元组输出给攻击者A,否则挑战者C要随机选择一个随机数Nrad(Nrad∈),返回给攻击者A,同时将该值记录在中。
H3预 言机。挑战者C为H3预言机初始化一个空列表,在列表中每一个实体组成是(IDi,IDsj,挑 战者C需要确保SessionSecretReveal 请求与H3预言机一致,才能成功模拟H3预言机。但是在某些情况下,挑战者C可能无法得到所有元素以计算有效的会话密钥存储在中,因此,挑战者C会维护另一张表llist, 其中列表元素组成为( IDi,IDsj,Ti,Tsj,SK′)。当有SessionSecretReveal 请求时,会首先检查llist,若列表中存在匹配的元素,则返回对应的 SK′给攻击者A,并将其添加到。否则检查,并利用DDH oracle 模型检查共享密钥的正确性,正确则返回SK,并添加在llist中,否则挑战者C生成随机数Nrad,Nrad∈{0,1}l, 并记录在llist列表中。
3.2 安全游戏模型设计
如果验证成功,则返回H3中的值SK 作为答案,因此,攻击者可以获得此次会话协商的密钥。
假设 AdvA(λ)代表给定条件下,攻击者赢得游戏的优势, λ为安全参数, n s(λ)为攻击者可以发起的最多会话次数,n e(λ)为攻击者可以查询的最多参与者的数量, n as(λ)为攻击者可激活的最多会话次数,nq(λ)为 攻击者可激活的与预言机H3不同的哈希请求。由于H3是随机预言机模型,攻击者A可以有2 种方法,从测试会话中区分随机字符串。
1)密钥重放攻击。攻击者A强制不匹配的会话计算与测试会话相同的会话密钥,攻击者A可以通过查询不匹配会话的密钥获取测试会话的会话密钥。在安全游戏中,根据假设前提,H3是随机预言机,猜测输出的会话密钥的概率是O(1/2l),该值是可忽略的。由于2 次会话是不相匹配的会话,参与方是不同的,退一步讲,当攻击者选中的会话是重放密钥的协商双方,但是由于不同的会话其使用的临时密钥是不同的,因此,攻击者想要通过密钥重放攻击猜测出本次会话密钥等同于找到H3碰撞。而每一个攻击者最多可以请求nas(λ)次会话,因此发生碰撞的概率为O(nas/2l),该值是可忽略的,因此通过情景1,攻击者是无法赢得游戏的。
由于协议双方协商的机制,需要存在与测试会话相匹配的会话,基于该要求,提出以下2 个情景。
情景1。所有的诚实参与者均没有与测试会话相匹配的会话。
情景2。存在与测试会话相匹配的会话,而且该会话由某个参与者所有。
3.3 安全性证明
3.3.1 情 景1 分析
攻击者A需要在测试会话中计算出协商的会话密钥,当攻击者A发起测试会话的请求时,实际上并不存在与之匹配的会话,因此,这种情景下攻击者并不知道参与方 I Di、IDsj的 临时私钥和长期私钥。假设挑战者C随机选择一个用户i,在该情境下,挑战者C并不知道用户i的部分私钥及长期密钥,攻击者A模拟服务器 IDsj, 但是并不知道服务器sj 的部分私钥。因此,初始化阶段,挑战者C会模拟KGC 为每一个协议参与方生成部分私钥组(s,R)。挑战者C会首先选择系统主公钥X并选择随机数,计算Ri=siP−hiX,对于每一个参与者,挑战者C都会发送部分密钥组 (si,Ri)给攻击者A,并将元组 {si,Ri,hi}添 加到中,令hi=H1(IDi,Ri),挑战者C会给攻击者提供用户i的临时私钥Y,以及长期公钥Z。如果挑战者C选择了作为测试会话,则该游戏模拟不会失败。攻击者A会模拟服务器IDsj按照协议的要求计算相应的应答元组中的元素,在测试会话中,用户 IDi从攻击者A处收到消息(IDsj,Tsj,Hsj,Rsj,HMAC), 其 中Rsj是 由 攻 击 者A随机生成,对于 IDsj来说是不正确的,挑战者C设置H1(IDi,Ri)=∈。如果攻击者A以不可忽略的优势赢得游戏,则需要利用元组(IDi,IDsj,Y,Tsj,,)发起对H3请求,其中:
式中:D为解密。
因此基于式(10)~式(12)的计算,挑战者C仅能获取部分私钥si, 临时密钥ti=Y和长期密钥di=Z,tsj和dsj及 计 算 部 分私 钥 的rs j是 由 攻 击 者A选择的。攻击者A要获取临时密钥和长期密钥,需要发起LongKeyReveal 和EphemeralKeyReveal 请求。因此,为了解决CDH 问题,挑战者C会检查攻击者A是否利用元组( IDi,IDsj,Y,Tsj,,)发 起H3预言机的请求,其中要求:
因为攻击者采用假冒攻击的方式请求本次测试会话,因此挑战者C利用Forking 定理,采用与攻击者A相同的输入进行接下来的游戏分析。
挑战者C重新设置H1(IDi,Ri)=,其中要求,且攻击者还会利用元组(IDi,IDsj,Y,Tsj,,) 发 起对H3预言机的请求,以实现概率多项式时间内赢得游戏,其中:
因此,当挑战者C检查到攻击者A发起了H3预言机的请求时,会检查请求元组中是否满足条件:
并计算困难问题如下:
因此,基于Forking 引理,挑战者C与攻击者A的优势关系如下:
式中: δ为有效签名的概率。在情景1 中,挑战者C随机选择测试会话的匹配会话来模拟该协议中,基于eCK 模型下的分析,由于CDH 问题求解的困难性,所以攻击者在该情境下赢得游戏的概率是可忽略的。
3.3.2 情 景2 分析
接下来挑战者C会随机选择2 个协议参与方i和sj 并选择2 个其参与过的会话,利用eCK 模型中定义的匹配会话要求,验证选择的2 个会话是否匹配,而且每个参与方最多只能选择 ns(λ)次。因此,初始化结束后,攻击者已经知道参与者的部分私钥。由于在测试会话中不能对同一参与者发起LongKeyReveal 和EphemeralKeyReveal 请求,因此假设攻击者A模拟sj,在会话密钥协商中的长期私钥是由参与方自行生成,长期公钥在初始化阶段完成计算,并存储在公共目录中。在此假设攻击者A已知sj 和i的长期公钥,因此,攻击者在计算会话密钥中需要已知参与双方针对当前会话的临时私钥,结合该情景,攻击者主要面临如下问题:当测试会话存 在与之相匹配的会话,但是攻击者并不知道本次协商使用的临时私钥ti和tsj。
对于该问题,攻击者A发起EphemeralKeyReveal请求,获取参与方i和sj 的临时密钥。挑战者C在回答攻击者A的请求时会设置i临时密钥X,sj 临时密钥Y,假如攻击者A选中了测试会话,则该模拟可能不会失败。攻击者A若以不可忽略的概率赢得游戏,需要利用元组发起对H3预言机的请求,其中
为了解决CDH 问题,挑战者C会检查攻击者A是否发起H3预言机的请求,要求
若满足条件,则挑战者C计算如下CDH 问题:
攻击者A若在该问题成功进行伪造攻击,则挑战者C一定能解决上述的CDH 问题,因此,挑战者C与攻击者A的优势关系如下:
综合3.2 节中的安全问题及证明过程得出的挑战者C与攻击者A的关系,当 AdvΠ(A)是不可忽略的值时, A dvΠ(C)也是不可忽略的,攻击者若以不可忽略的概率赢得模拟游戏,则需要挑战者C解决CDH 问题,由于CDH 困难问题,因此,提出的该会话密钥协商协议在eCK 模型下是安全的。
4 性能分析
为了更好的评价所提协议的安全性和有效性,本节将分析Daniel 等[13]提出的方案、Xie 等[14]提出的方案、Islam 和Biawas[10]提出的方案、郭松辉等[15]提出的方案与本节提出的基于身份认证及会话密钥协商方案进行比较。表1 中对比分析了已有的4个协议及本节所提协议的安全属性,5 组协议中均满足已知会话密钥安全和前向安全性,但是Xie 等[14]和Islam 和Biawas[10]提出的方案中无法满足双向认证及临时密钥泄露攻击,Daniel 等[13]提出的方案可以对抗临时密钥攻击,但是无法进行双向认证,郭松辉等[15]提出的方案中会话密钥协商前需要进行双向认证后再进行计算会话密钥,但是存在临时密钥泄露的危险。
表1 相关协议安全属性对比Tab le 1 Security properties com parison am ong related protocols
本文所提协议中除了满足eCK 模型下基本的安全属性,还满足用户和服务器的双向认证后再进行会话密钥的计算,而且在计算过程中基于CDH困难问题混淆临时密钥。因此,结合横向联邦学习环境及现有的认证及密钥协商协议,所提方案优于其他4 个方案。
为了评估计算开销,本节定义TM为 标量乘操作的计算时间,TA为 点加运算[13]。分析协议计算性能比较如表2 所示。
表2 性能分析Table 2 Performance analysis
表2 的协议中均采用了无证书基于身份的认证及密钥协商协议,消除了双线性对运算,完成认证及密钥协商只需要2 轮通信,在通信开销上并没有频繁的信息交互,但是在计算效率上,虽然本文所提协议相对文献[14]提出的协议计算时间大于2TM,但是从安全性方面,本文所提协议安全性更高,因此,综合安全性和计算开销,所提方案更适合计算能力较低的终端设备作为用户完成与中央服务器的聚合,更具备经济价值。
5 结 论
1)本文结合横向联邦学习训练环境及现有的认证及会话密钥协商协议,提出无证书的基于身份的轻量级认证及密钥协商协议。
2)所提协议中在双方完成双向认证后再进行会话密钥协商,避免因为攻击问题产生不必要的计算开销。
3)在安全性分析方面,除了传统的正确性分析和基本的安全属性分析,还引入eCK 模型,通过模拟攻击者可能采用的攻击手段进行模拟游戏,证明所提协议的安全性能。
4)在计算性能和通信开销方面可以有效地控制成本,因此所提协议在实际应用场景中有较高的价值。