陈俊杰,周豫苹,,周小方
(1.闽南师范大学粒计算重点实验室,福建漳州 363000;2.闽南师范大学计算机学院,福建漳州 363000)
无线体域传感网[1](Wireless Body Area Sensor Network,WBASN或BAN)作为无线传感器网络(Wireless Sensor Network,WSN)的一个分支,是人体上的生理参数收集传感器或移植到人体内的生物传感器共同形成的一个无线网络,这些传感器节点能够采集身体重要的生理信号(如温度、血糖、血压等)、人体活动或动作信号以及人体所在环境信息,处理这些信息并将它们传输到身体外附近的本地基站。
图1 远程医疗系统服务流程图
目前,WBASN被广泛应用到远程医疗系统,远程医疗系统的信息采集传感器终端可部署在病人家中或移动穿戴在病人身上,所采集的生理参数将通过远程医疗系统及时传输给医生。医生可根据实时监测生理指标获知病人们的健康状况,并及时给出诊断报告。远程医疗系统的服务流程如图1所示。
然而,随着远程医疗系统的逐步普及,医疗数据的安全和隐私性问题越来越严峻。例如,远程医疗系统很容易受到中间人攻击[2],致使医疗数据被截取、篡改。这将严重影响病人隐私,也可能会影响医生准确诊断与治疗。另一方面,病人不想让医生知道自身隐私(例如姓名与身份证号),只想匿名地享受远程医疗系统的服务。
近年来,大量以传统密码学为基础的无线体域网中数据传输的隐私保护方案被提出。Jang C[3]等对无线体域网的安全需求进行总结并详细地分析无线体域网所面临的安全威胁,以此为依据提出了无线体域网的安全框架;高鹏[4]指出无线体域网安全传输隐私保护协议设计是基于密码算法和认证机制保证敏感信息的机密性、完整性、新鲜性、可靠性、可用性以及消息认证等安全特性;张建安[5]利用AES与ECC混合密码构建的混合密码层,设计出一种具有较高的强度和较快的速度的网络安全传输模型,可满足无线体域网中对资源有严格限制的安全性要求。董晓蕾[6]指出应重视密文医疗数据的访问控制问题,即仅被授权的医生或医疗服务结构才能正确恢复病人的个人健康信息;利用假名和其他隐私保护技术来构造匿名认证方案也有许多相关成果;曹进[7]提出的方案可以在用户出现紧急情况时,通过群管理员揭示用户的真实身份,给予用户及时的诊疗。
以上方案在安全性方面存在着一定的局限性。这些方案不支持传感器节点的安全秘钥更新。一旦秘钥被破解,数据传输时的隐私将全部被暴露。
本文整合了以上方案的优点,提出远程医疗系统在安全性方面的具体要求包括:①匿名性[8],非授权用户不能把医疗数据和病人的身份联系起来;②保密性,中间人在远程医疗监护系统监听时,无法直接获知医疗数据的真实内容。传感器节点可以对部分通信的秘钥做变更;③完整性,保障医疗数据在信道传输的过程中没有被篡改;④真实性,在病人与医护服务器之间,在医生与医护服务器之间,可以互相验证医疗数据来源是否正确;⑤可跟踪性,允许系统的高级用户来揭露用户的真实身份信息。方案在保证远程医疗诊断系统整体安全可靠的同时,利用临时身份对病人进行匿名保护,实现病人的匿名问诊,保护了病人在远程医疗系统中的隐私。
ElGamal算法[10]可用于数据加密,其安全性依赖于计算有限域上离散对数这一难题。对于有限域GF(q)(或Fq),q是一个大素数(为了保证加密安全,p-1要有大的素因子),g是模q的一个原根,选择x(0 ElGamal的加密过程为:①选择随机数k(0 远程医疗系统的参与方包括病人(Patient,pID)、医护服务器(Medical Server,sID)、医生(Doctor,dID)以及私钥生成器(Private Key Generator,PKG),远程医疗系统框架如图2所示。 图2 远程医疗系统框架 表1 安全需求分析表 在系统中,医护服务器无法获悉病人的诊断结果,而医生无法知道接收的医疗数据所属病人的真实身份。本系统假设医护服务器和医生是两个相互独立的部分,他们都是诚实的,虽然有可能遭到外部攻击,但是不会出现联合攻击的问题。 系统初始化的主要工作是密钥预分配,步骤如下: 步骤二:PKG用事先共享[11]的方式将步骤一的密钥对配送给与之对应的病人、医护服务器以及医生。 为实现病人的匿名问诊,系统在采集数据之前先对病人身份做匿名化处理。远程医疗系统由病人发起诊断请求。医疗数据先从病人提交给医护服务器,再从医护服务器提交给医生。而诊断结果将先从医生返回医护服务器,再从医护服务器返回病人。本文协议的具体执行如图3所示。 在系统中,病人、医护服务器以及医生都会充当数据的发送者和接收者。一般化的数据发送者与数据接收者间的通信流程如图4所示。 图3 远程医疗系统的消息流 图4 一般化的数据发送者与数据接收者间的通信流程图 图3消息流:①病人→医护服务器:{DR,{pID}PKsID,δ1}. 远程医疗诊断的操作由病人发起。病人对pID进行数字签名,如公式(1)(2)所示。 h=H(pID). (1) (2) 图3消息流:②医护服务器→病人:{{tID}PKpID,δ2}. 医护服务器在接收到{DR,{pID}PKsID,δ1}后,通过解密{pID}PKsID得到pID来确定提出DR的病人身份。接着计算h=H(pID)并验证等式(3)是否成立。 (3) 如果等式成立,签名验证通过,则说明诊断请求确实来自病人本人,可继续操作,否则忽视该诊断请求。 为了对病人身份做匿名化,医护服务器为病人分配临时身份tID,使用PKsID加密{tID,pID}得到{tID,pID}PKsID,并在本地保存{tID,pID}PKsID。利用公式(4)(5)对tID做数字签名,得到签名δ2。 h=H(tID). (4) (5) 图3消息流:③病人→医护服务器:{{tID,PKtID}PKsID,δ3}. 病人在接收到{{tID}PKpID,δ2}后,通过解密{tID}PKpID获取tID,接着计算h=H(tID)并验证等式(6)是否成立。 (6) 如果等式成立,签名验证通过,则说明tID确实来自医护服务器,可继续操作,否则舍弃信息tID。 (7) h=H(tID,PKtID). (8) (9) 医护服务器在接收到{{tID,PKtID}PKsID,δ3}后,解密{tID,PKtID}PKsID,得到tID与PKtID。接着计算h=H(tID,PKtID)并验证等式(10)是否成立。 (10) 如果等式成立,则说明信息{tID,PKtID}具备真实性和完整性,操作继续,否则舍弃信息{tID,PKtID}。医护服务器用PKsID加密{tID,PKtID}得到{tID,PKtID}PKsID,并在本地保存{tID,PKtID}PKsID。 (11) (12) (13) (14) (15) 图3消息流:⑥医生→医护服务器:{{tID,{result}PKtID}PKsID,δ6}. (16) h=H(tID,{result}PKtID). (17) (18) 图3消息流:⑦医护服务器→病人:{{tID,{result}PKtID}PKtID,δ7}. 医护服务器在接收{{tID,{result}PKtID}PKsID,δ6}后,解密{tID,{result}PKtID}PKsID,得到tID和{result}PKtID;接着计算h=H(tID,{result}PKtID)并验证等式(19)是否成立。 (19) 如果等式成立,签名验证通过,操作继续,否则舍弃信息{tID,{result}PKtID}。通过PKsID加密{tID,{result}PKtID}获得信息{tID,{result}PKtID}PKsID。通过公式(20)(21)对{tID,{result}PKtID}做数字签名。 h=H(tID,{result}PKtID). (20) (21) 病人在接收到{{tID,{result}PKtID}PKtID,δ7}后,解密{tID,{result}PKtID}PKtID,得到tID、{result}PKtID。接着计算h=H(tID,{result}PKtID)并验证等式(22)是否成立。 (22) 如果等式成立,签名验证通过,操作继续,否则舍弃信息{tID,{result}PKtID}。通过SKtID解密{result}PKtID,得到诊疗结果result。 远程医疗系统的安全性主要体现在匿名性、保密性、完整性、真实性、可追踪性。 5.1.1 匿名性 远程医疗统能保证病人在通信信道以及医生端不会暴露真实身份。 在协议中每个病人都与医护服务器约定了一个病人临时身份tID,病人以临时身份向医护服务器提交医疗数据,医护服务器同样以病人临时身份向医生转发医疗数据,而临时身份对应的真实身份对医生保密,从而对通信信道的监听者以及医生隐藏病人的真实身份信息pID,能保证病人的数据被匿名地传输。 5.1.2 保密性 只有授权用户能解密并获取信息,非授权用户因没有密钥而无法解密信息。 在协议中运用ElGamal公钥算法对传输的医疗数据以及诊断结果进行加密。ElGamal算法的安全性依赖于在有限域上计算离散对数的困难性,有较强的安全性,保证了信息在通信信道中的保密传输;在系统中,PKG负责生成部分的密钥对,而在远程医疗诊断过程中,病人为自己生成临时身份的密钥对(PKtID,SKtID),医护服务器知道病人的临时身份tID,而不知道tID对应的SKtID。在医生向医护服务器提交诊断结果时,使用tID对应的公钥PKtID来加密诊断结果,可以保证医护服务器无法获知医生做出的诊断结果,使得医护服务器和医生彼此权利分散。 5.1.3 完整性 医疗数据和诊断结果在传输的过程中保证不被篡改。 在协议中运用了单向散列函数的抗碰撞性,散列函数根据医疗数据与诊断结果的内容计算出散列值,进而用来检查医疗数据和诊断结果的完整性。这种算法对辨别篡改非常有效。 5.1.4 真实性 确保医疗数据以及诊断结果在整个传输过程中来源的真实性。 协议中病人、医护服务器、医生在传输数据给其他参与方的时候,均使用自己的私钥对信息进行数字签名,同时他们在接收到信息时均使用双线性对来验证签名是否真实,以确保信息来源正确和信息发送者的不可否认。 5.1.5 可跟踪性 信息接收者可以获知信息来自哪个真实参与方,并使信息发送者及接受者对信息操作具有不可否认性。在发生医患纠纷时可以保障病人和医生各自的权益。 本协议运用了数字签名技术,数字签名可以认证数据来源的真实身份信息,使得系统参与方无法否认他们传输过的信息。 系统性能从计算开销、通信开销两个方面分析。 5.2.1 计算开销 忽略协议中的模乘和散列函数。用BP、E分别表示双线性映射运算、指数运算。设系统有1个病人、1个医护服务器与1个医生同时在线,系统计算开销如表2所示。 表2 系统计算开销统计表 在一次远程医疗过程中,病人的计算开销为9E+4BP,医生的计算开销为4E+2BP。医护服务器的计算开销为9E+8BP。因为病人的计算开销较小,所以可以符合无线体域网低能耗的要求。 5.2.2 通信开销 表3 系统通信开销统计表 本文提出了一种无线体域网中隐私保护的远程医疗诊断系统。系统应用临时身份匿名技术,ElGamal算法和基于双线性映射的数字签名技术保障病人的身份匿名性、诊断结果的保密性和传输信息的完整性、真实性与可跟踪性。系统的可跟踪性这一安全特性可以在特殊情况下保障病人和医生的权益。安全性和性能分析证明系统能有效保护用户的隐私并具有较小计算开销和通信开销,符合无线体域网资源受限的场景。 未来的研究将考虑进一步减少系统的计算开销与通信开销。例如,运用混合密码系统解决公钥密码速度慢的问题,运用椭圆曲线,以更小的密钥量达到相同的安全性,运用无线体域网节点数据压缩节能算法[12],减少数据采集量和传输量,有效地降低WBAN节点能耗。3 系统模型
4 方案设计
4.1 病人发起诊断请求
4.2 对病人身份做匿名化
4.3 病人将医疗数据传输给医护服务器
4.4 医护服务器将医疗数据传输给医生
4.5 医生将诊断结果传输给医护服务器
4.6 医护服务器将诊断结果传输给病人
4.7 病人查阅诊断结果
5 安全性和性能分析
5.1 安全性分析
5.2 性能分析
6 结语