王志强 黄玉洁 庞舒方 欧海文
1(北京电子科技学院网络空间安全系 北京 102627)
2(国家信息中心博士后科研工作站 北京 100045)
(wangzq@besti.edu.cn)
远程医疗信息系统(telecare medical information systems,TMIS)依托现代通信技术旨在提供专业的医疗服务,充分优化配置现有医疗资源,促进各级医疗资源共享和合理分配,实现资源利用的最大化[1].与传统的临床服务相比,远程医疗是一种经济、高效的替代方案[2-3].然而,TMIS经常通过不安全的互联网提供远程访问服务,实际上也面临着互联网中各种类型的安全风险.医疗服务器维护注册用户的各项数据,其中包括姓名、性别、年龄、家庭住址、电话号码、电子病历等,这些信息与患者的隐私直接相关[4].因此,安全和隐私是当前TMIS场景研究中需要应对的关键挑战.
认证密钥交换协议对于保护用户隐私及TMIS的数据完整性、机密性和可用性至关重要.具体来讲,用户隐私是指协议执行过程中用户及其对应智能卡身份的匿名性和不可追溯性.匿名性是隐藏用户的身份,不可跟踪性是指敌手无法获得同一用户的多个会话信息.身份认证提供对医疗服务器的访问控制,并防止非法用户使用该服务器的资源.通信双方生成的共享会话密钥建立安全的通道,并防止非法服务器获得用户与医疗服务器间传输的信息.
Lamport[5]于1981年首次提出基于口令和单向哈希函数的远程用户认证协议.该协议使用由服务器维护的口令表,容易受到离线口令猜测攻击和口令表篡改攻击,还会导致维护口令表的开销增加.为解决这些问题,Chang等人[6]提出了利用智能卡构建的口令认证协议.此后一些具有更高安全性和效率的认证密钥交换协议被提出[7-9].但是这些协议的性能不够好,不适用于TMIS.2012年,Wu等人[10]采用一个额外预计算阶段来避免指数计算,并声称该协议是安全的,非常适用于计算能力有限的移动设备如TMIS的移动智能设备.He等人[11]研究发现Wu等人[10]的协议无法抵抗内部攻击和冒充攻击,并且缺乏对丢失或被盗的智能卡的撤销阶段.Wei等人[12]指出,Wu等人[10]和He等人[11]的协议在用户智能卡丢失时容易受到离线口令猜测攻击,不能实现所谓的双因素安全.Zhu等人[13]声称他们的协议克服了Wei等人[12]的协议中存在的缺陷.Khan等人[14]证明Zhu等人[13]的协议容易受到拒绝服务攻击.然而,Giri等人[15]发现Khan等人[14]的协议仍无法抵抗离线口令猜测攻击,并提出了用于TMIS的新协议.
上述大多数协议的共同点是会话中用户身份是静态的,会导致用户隐私信息的泄露以及身份的冒充,缺乏用户匿名性和不可追溯性.为了增强安全性,Radhakrishnan等人[16]改进了Lee等人[17]的协议,为TMIS提出了新的认证和隐私保护协议.此外,Li等人[18]为远程医疗信息系统提出了基于云的身份验证和隐私保护协议,声称该协议可以抵抗已知的各种攻击.随后,Kumar等人[19]分析Li等人[18]的协议发现它容易受到用户冒充攻击并提出了改进协议.
综上,本文提出了一个安全高效的基于椭圆曲线密码体制的认证密钥交换协议,具有用户匿名性和不可追溯性.协议考虑了TMIS的实际场景,选取轻量级的运算降低计算和通信成本,通过用户的动态身份实现用户身份认证及隐私保护.
有限域GF(p)(p是一个大的素数)上的椭圆曲线Ep(a,b)为满足方程y2≡x3+ax+b(modp)的所有整数点及无穷远点的集合,其中a,b∈GF(p),4a3+27b2≠0(modp).
利用公钥密码体制设计的认证密钥交换协议具备安全性强、密钥短等优点.本文所提出的协议正是基于椭圆曲线密码体制.
哈希函数(Hash)又称为杂凑函数、散列函数.它是一个确定性算法,对于输入的任意长度二进制串,能够映射生成较短的、固定长度的二进制串,即h:{0,1}*→{0,1}.单向哈希函数通常用于消息认证、数字签名、完整性校验、入侵检测、构建随机函数等.安全的单向哈希函数具备以下性质:
1) 有效性.给定一个输入值m,很容易计算出哈希值H(m).
2) 单向性.给定哈希值H(m)=m′,无法通过计算H-1(m′)得到m.
3) 抗弱碰撞性.给定m以及其哈希值H(m),找到一个m*(m≠m*),使得H(m*)=H(m)在计算上是不可行的.
4) 抗强碰撞性.找到2个任意数m和m*(m≠m*),使得H(m)=H(m*)计算上是不可行的.
Corrupt(U,a):此查询模拟了双因素即用户口令和智能卡的泄露.敌手A允许获取用户的口令或存储在智能卡的相关信息.若a=1,敌手能得到用户的口令信息.若a=2,敌手能得到存储在智能卡的相关信息.该查询可对抵抗智能卡丢失攻击的安全性进行建模.
语义安全:语义安全即敌手A无法得到会话密钥以及用户身份的任何相关信息.当敌手A通过TestID或TestAKE查询得到比特b′,如果b=b′,那么敌手获胜.用Succ表示敌手正确猜出返回值b的事件,A取得胜利的优势为Adv=2Pr[Succ]-1.
患者暴露在公共网络中的医疗信息很容易受到安全威胁与攻击,为了给TMIS中敏感的医疗数据提供保护,本文提出了用于TMIS的安全、高效的双因素匿名认证密钥交换协议TMIS-AKE,保证参与协议的实体即患者和医疗服务器之间完成身份认证及密钥交换,最终达到共享密钥的目标.TMIS系统包括用户、远程医疗服务器、医生以及智能卡4部分,如图1所示:
图1 TMIS系统架构
TMIS-AKE协议包括4个阶段,分别是注册阶段、认证和密钥交换阶段、口令更新阶段、智能卡撤销和重新注册阶段.文中使用的符号及其含义如表1所示:
表1 符号及其描述
患者Ui如果想要和远程医疗服务器S进行通信,首先要注册以获得合法的身份信息.注册阶段的过程如图2所示:
图2 注册阶段
步骤1.患者Ui随机选取自己的身份IDi,然后通过安全通道将其发送给远程医疗服务器S.
步骤2.服务器S收到消息后,选取自己的身份IDS、智能卡的身份IDSC以及随机数x,接着计算ID=IDi‖IDS‖IDSC,EID=Ev(ID‖x),L1=H1(IDi‖v),将消息{EID,L1}存储在智能卡SC中.最后,把存储有患者隐私数据的智能卡SC交给患者Ui.S还将{ID,IDSC,Ns}存储在后台数据库中,其中Ns是智能卡连续认证失败的次数,用于防范在线字典攻击,初始值设置为0.n是检测在线字典攻击的阈值.
步骤3.患者Ui收到智能卡SC以后,随机选取选择口令PWi,计算L=L1⨁H1(PWi),并将L1替换为L.然后将Ni的初始值0写入智能卡,Ni是Ui连续登录失败的次数.最终,智能卡SC中存储的数据为{EID,L,Ni,n}.
为了实现患者Ui和远程医疗服务器S的相互认证以及会话密钥交换,在患者Ui获得合法身份后执行以下步骤,如图3所示.
图3 认证和密钥交换阶段
步骤1.患者Ui把智能卡SC插入读卡器中,输入相应的身份IDi、口令PWi,检查Ni 步骤2.服务器S收到消息后,首先检查T2-T1≤ΔT是否成立,T2为S收到消息时的时间戳,ΔT为最大传输时延.若成立,则服务器S用自己的秘密值v解密动态身份EID以恢复患者Ui、服务器S、智能卡SC的原始身份IDi、IDS、IDSC,验证得到的身份与数据库中存储的身份是否一致.若一致,成功验证Ui的身份.服务器S进一步验证Ns 步骤3.患者Ui收到来自服务器S的消息后,首先检查时间戳T4的新鲜性,通过后计算d=sb,RID=L3⨁H2(d).利用d和RID得到H2(RID‖d‖T3)的值,验证与L4是否相等.若等式成立,计算L5=H2(L2‖d)以及会话密钥sk=H2(d‖b‖c).接着用新的动态身份RID替换EID,并将Ni重置为0.否则,终止协议,Ni=Ni+1.最后,将消息M3={L5}发送给服务器S. 步骤4.服务器S收到消息M3后对其进行验证,即检查等式L5=H2(L2‖d)是否成立.验证通过,则计算得到相同的会话密钥sk=H2(d‖b‖c),并将Ns重置为0.否则,终止协议,Ns=Ns+1. 当已完成注册的患者Ui需要更新口令时,首先完成在线的认证过程,然后再按照图4所示步骤完成口令的更新: 图4 口令更改阶段 步骤1.输入新密码PW*,计算: 步骤2.用L*替换智能卡SC中的L. 定理1.设P是本文提出的协议;D是一个均匀分布的密码字典;|D|是字典的大小;Ep是有限域Fp上的一个椭圆曲线群.对于任何在概率多项式时间内运行的敌手A,如果A至多进行qsend次Send查询、qexe次Execute查询、qh次哈希查询,则A破解P的会话密钥安全性的概率为 证明.假设有游戏G0~G5.Succi是A能够区分游戏Gi中执行Test查询返回的数是随机数还是会话密钥最终赢得游戏的事件(i=0,1,…,5).Pr[Succi]是A赢得游戏的概率.Δi是任意2个连续游戏间的成功概率的差值,即Δi=|Pr[Succi+1]-Pr[Succi]|. AdvP,D(A)=2Pr[Succ0]-1= 2Pr[Succ0]-1+2Pr[Succ4]-2Pr[Succ4]= 2Pr[Succ4]-1+2(Pr[Succ0]- 上式表明当Δi能够忽略不计时,A赢得游戏G0的概率与赢得游戏G5的概率几乎相同.如果能够证明Pr[Succ5]可以忽略不计,那么Pr[Succ0]和AdvP,D(A)也是可以忽略不计的. 游戏G0:该游戏是真实的.由语义安全的定义:AdvP,D(A)=2Pr[Succ0]-1. 结合以上不等式可以推出: 定理1得证. 证毕. 3.2.1 抗离线字典攻击 TMIS-AKE协议使用H1(L1‖IDi‖)对临时公钥加密,由临时公钥组成会话密钥[20].假设敌手能够获得患者与服务器传输的所有消息,并通过侧信道攻击获得智能卡中存储的信息.敌手验证猜测密码的正确性需要通过计算RID和L4,最终判断H2(RID‖d‖T3)与L4是否相等.由于椭圆曲线上Diffie-Hellman问题的难解性,敌手无法计算出d的值,无法完成验证.因此,TMIS-AKE协议能够抵抗离线字典攻击. 3.2.2 抗重放攻击 TMIS-AKE协议使用时间戳技术并规定验证时间戳的阈值ΔT.如果敌手重放消息{L2,EID,T1},那么它将由于时间戳T1的无效而无法通过身份验证.除此之外,患者与服务器间传输的信息均包含随机数,即使敌手在时间戳T1的有效期内发起重放攻击,消息接收方均可在身份验证中排除重放的会话,有效地抵御此类攻击. 3.2.3 抗冒充攻击 3.2.4 抗内部特权攻击 由于患者仅在注册阶段通过安全通道将自己的身份发送给服务器,服务器不知道有关患者的口令PWi的任何信息.因此,TMIS-AKE协议能够抵抗特权内部攻击. 3.2.5 匿名性和不可追溯性 首先,敌手无法通过患者丢失的智能卡获取患者的身份.一方面,智能卡中并未存储患者的身份IDi;另一方面,假设敌手通过侧信道攻击获取智能卡中存储的信息,由于IDi受到秘密值v的保护隐藏在EID和L1中,敌手也无法通过离线口令猜测攻击等得到IDi.因此,TMIS-AKE协议能够提供用户匿名性. 其次,敌手无法通过患者的通信过程获得用户身份.由于IDi和IDSC受到L1和RID的保护,敌手在不知道PWi,H1(L1‖IDi‖T1)和Diffie-Helelman值d的情况下,无法从传输的消息中得到关于患者及其智能卡的身份IDi和IDSC的信息.并且每个会话中传输的所有消息都是新鲜和不同的,敌手无法区分是否为同一用户在进行会话.因此,TMIS-AKE协议能够提供用户不可追溯性. 3.2.6 已知密钥安全性 协议的会话密钥依赖于产生的随机数.这些随机数不在消息流中传输,不能从协议记录中恢复,并且在所有会话中都是独立的.因此,敌手无法通过已泄露的密钥计算出未知的会话密钥. 本节从计算成本和通信成本2方面将本文提出的协议与其他相关的TMIS认证密钥交换协议进行对比.一般来说,认证和密钥交换阶段的执行比注册阶段、口令更新阶段等的执行要频繁得多,因此只考虑前者的计算成本. TH,TE,TS,TM分别表示哈希函数、模幂运算、对称加解密、椭圆曲线点乘所需的计算时间.异或运算和字符串连接运算的计算时间很小,可以忽略不计.文献[21]给出了测试上述操作所需的时间.测试结果如表2所示: 表2 不同操作所需的近似时间 表3列出了本文协议以及相关协议在认证和密钥交换阶段的计算成本.首先,本文协议的计算量明显低于文献[22-23]中的协议,略高于文献[24-25]中协议的计算量.文献[24-25]中的协议容易受到特权内部攻击、智能卡丢失攻击以及冒充攻击,文献[25]中的协议容易受到口令猜测攻击以及冒充攻击,均存在严重的安全缺陷,无法满足实际需求.因此,本文协议在保证安全性的同时还具备较高的效率,适合在实际应用中部署. 表3 计算成本比较 表4 通信成本比较 本文针对TMIS中患者的隐私保护以及安全问题,利用椭圆曲线密码体制,提出了一种基于智能卡的口令认证密钥交换协议.该协议通过加密用户及其对应智能卡的身份,以及随机化传输消息和限制连续失败登录认证次数等方式,实现远程用户和服务器之间的互相认证,并生成后续通信的会话密钥,达到远程医疗诊断中隐私保护的目的.此外,该协议在保证安全性的同时,保持了较高的效率,更加适用于远程医疗信息系统. 未来的研究方向主要是在保证安全性的前提下,进一步提高协议的效率.此外,考虑将本文协议扩展到更加复杂的多服务器的应用场景,以适应不断变化的医疗需求.2.3 口令更改阶段
2.4 智能卡撤销和重新注册阶段
3 安全性分析
3.1 安全性证明
3.2 其他安全性分析
4 性能分析
4.1 计算成本
4.2 通信成本
5 结 语