苑津莎,李亚,李梅燕
(华北电力大学电子与通信工程系,保定071003)
现有的物联网环境只是单一用户管理,不允许其他用户或组织操作的私有环境[1],即封闭式物联网。本文提出一种公共环境物联网,公共环境物联网是指多用户数据资源存储在同一物联网环境中,是一个多用户资源的开放的物联网环境。本文以药品信息物联网为例,多个药品制造商把数据资源存储在同一物联网环境中,以满足不同用户对药品信息真伪查询等需求。
目前我国药品防伪方式存在有:标识防伪、条形码防伪、包装结构防伪以及油墨印刷防伪等几种[2]。利用条形码对药品防伪是条形码功能之一。当前市场上流通的药品都已经采用条形码技术,然而条码技术存在着易复制的缺点,因此利用条形码进行防伪目前并没有得到广泛认可。而随着低成本RFID 标签的不断出现,商品防伪已被视为RFID 最具潜力的应用领域[3-4]。文献[5]等利用RFID 技术设计了多功能防伪系统,但其仅仅依靠RFID 读写技术无法对仿制的标签进行辨识。文献[6]等引入了加密算法提高系统的安全性,但其使用的对称加密算法,高强度的对称加密算法难以在低成本的RFID 标签中实现。
为此,本文设计了药品信息公共环境物联网XML模型,并且把基于非对称密钥和Hash 函数的双向认证协议(AKHF)[7]和基于哈希函数的物联网三方安全认证协议[8]应用在药品真伪认证中,设计了药品真伪认证方案。
XML 概念数据模型是直接面向用户的需求信息结构,是对各种对象和复杂关系的直观描述。本文采用Aspect-Oriented Modeling(AOM)新型建模方法,并使用Power Designer 模型设计工具建立基于XML 的药品信息模型。由AOM 概念数据建模方法得到的XML 模型,根据公共环境物联网中用户的访问权限对XML 模型进行调整,图1 的XML 模型中,从“批准药”分离出“厂家销售信息”,包括“出厂价”、“库存”等便于访问控制。此外,访问的主体一般有管理员、经销商、普通用户等,为了方便各主体对药品信息的访问控制,使访问主体拥有访问权限的药品信息在XML 树状结构中处于一条“枝干”,故而将“生产厂家”节点与“尼斯药品类”节点调换位置。
为了增加药品认证功能,图1 中增加了“阅读器信息”和“标签信息”,其中电子监管码(追溯码)与标签ID相对应。
图1 药品物联网XML模型图
标签内信息包括标签唯一ID 值和认证数字串num。标签生产厂商售出标签的同时,会向药品生产厂商管理员提供包括标签ID 和认证数字串的数据。
在药品生产完成后管理员要给每一个药品标签在数据库中建立电子身份档案,包括标签唯一标识符ID、加密后的药品信息(药品名称、生产批号、生产日期、有效期、剂型、规格、使用方法等信息)、公钥加密后的标签认证数字串等信息。药品信息在上传阶段,应用服务器会提供一个专门的接口,当药品生产厂商管理员需要上传药品信息时,先通过身份认证和登录系统,然后通过接口将药品信息传至物联网服务器。
由于药品销售的主要地点是医院和零售药店,因此在医院和药店可以设置专门的RFID 阅读器,连接药品信息公共环境物联网EPC-IS 数据系统进行认证。经销商进行药品入库时,也可以通过相同的途径查询其是否为假药,这样就防止了药品在运输过程中被掉包的可能。
一般情况下,阅读器与EPC-IS 数据系统之间为有线连接,安全措施相对完善,标签和阅读器之间的为无线连接,其通信信道是公开的,攻击者可通过通信过程读取标签中的信息,并复制到其他RFID 标签中,从而达到伪造的目的。
本文针对不同情况,采用两种方法认证,一种是基于哈希函数的物联网三方安全认证方法。另一种是非对称密钥AKHF 协议。基于哈希函数的物联网三方安全认证协议对标签、阅读器、应用服务器三方认证,确保药品信息的有效认证。AKHF 协议采用标签和阅读器双向认证的方式验证相互身份,并通过非对称密钥对认证数字加密的方式保证了私密数据在公共环境物联网存储的安全。
(1)认证数字加密
认证数字代表的是药品标签中与药品相关联的字符串,除了标签中认证数字,数据库中也存放着药品认证数字。在认证阶段,阅读器通过数据库返回的认证数字num 的哈希运算值,并与标签返回的num 哈希运算值比较,从而判断标签真伪。
由于认证数字num 是进行药品信息真伪认证的关键信息,虽说药品信息公共环境物联网设有访问控制措施,但直接将标签认证数字存放至公共环境物联网数据库中仍有危险,如果被其他人员访问到,或者一旦有人非法入侵数据库,则会造成数据泄漏的威胁。文献[8]中的基于哈希函数的物联网三方认证方法对认证数字是没有加密的。因此,在药品信息存储至数据库之前需要对其中的认证数字进行加密。本文利用药品信息物联网的应用服务器对其进行加解密运算,密钥存储在应用服务器中。一旦药品厂商管理员上传药品信息时,应用服务器会对认证数字部分进行加密,加密完成后将药品信息传至数据库。如果消费者请求进行真伪认证,数据库将存储的相关信息传至应用服务器,应用服务器先利用密钥对加密的认证数字解密,再进行相关运算判断真伪。由于加解密运算都是在应用服务器中运行,所以只须利用对称加密算法即可保证信息安全。
(2)基于哈希函数的物联网三方认证方法认证过程
协议中用到的符号定义如表1 所示。
表1 符号说明
安全认证之前标签应存储的信息:TID,Tnum,M;阅读器应存储的信息:RID,Rnum;应用服务器应存储的信息:L;EPC-IS 数据库应存储的信息:TID,RID,DTnum,DRnum,DM;具体过程见图2。
图2 中Tag 表示标签,Reader 表示阅读器,As 表示应用服务器,DB 表示EPC-IS 数据库。
协议详细认证步骤如下:
步骤1 应用服务器认证阅读器和标签
步骤1.1 阅读器向药品标签发送Request 请求,产生随机数r1并传给标签;
步骤1.2 标签根据阅读器命令产生随机数r2,将Tnum 和随机数r2与r3进行Hash 运算H1=h(Tnum‖r1‖r2),并将计算结果H1、随机数r2和标签TID 发送给阅读器;
步骤1.3 阅读器根据标签发送的H1和阅读器的Rnum 进行Hash 运算H2=h(Rnum‖H1),并将计算结果H2,RID,TID 和随机数r1与r2发送给应用服务器;
步骤1.4 应用服务器将RID 和TID 发送给数据库服务器进行检索;
步骤1.5 数据库服务器根据TID 和RID 的数值在数据库中检索到与之相对应的DTnum,DM 和DRnum并返回给应用服务器;
步骤1.6 应用服务器对DTnum,DM 和DRnum 进行解密得到Tnum、M、Rnum,并计算H=h((Rnum‖h(Tnum‖r1‖r2))),比较H 值和H2值是否相等,若相等,则认证此药品标签和阅读器合法,既药品得到认证,根据用户的需要决定是否将药品信息M 传送给阅读器;若不相等或者数据库未检索出结果,则认证失败,返回阅读器此药品标签认证失败信息。
步骤2 标签认证阅读器和服务器
图2 基于哈希函数物联网三方认证协议的方案
步骤2.1 应用服务器产生随机数r3,并对解密后Tnum、Rnum 与r3进行计算H3=h(Tnum‖h(Rnum‖r3)),随后将r3和H3发送给阅读器;
步骤2.2 阅读器计算H4=h(Rnum‖r3)值,将H3、H4、r3发送给标签;
步骤2.3 标签根据发送过来的数据信息进行计算H=h(Tnum‖H4),并对H3与H 进行比较,相等则阅读器和服务器认证成功,不相等则认证失败,此认证过程结束。
步骤2 可以认证阅读器和药品信息物联网服务器,但并非必须的,如认为药品信息物联网是可信的,则可省略该步骤。
文献[7]的AKHF 协议中,数据库存储的是经过加密处理的标签TID、Tnum,则不必考虑数据库中的认证数字的加密问题,但必须药品标签和阅读器同时合法才能验证成功。
安全认证之前标签应存储的信息:DTID,Tnum,M;阅读器应存储的信息:L,L-1;应用服务器应存储的信息:L;EPC-IS 数据库应存储的信息:TID,DTnum,M
步骤1 应用服务器认证标签
步骤1.1 当药品标签进入到阅读器射频作用范围内,阅读器发送请求Request 给标签;
步骤1.2 药品标签收到阅读器的请求后,生成随机数r1,计算H=h(Tnum‖r1),并把DTID,r1,H 发送给阅读器;
步骤1.3 阅读器收到信息后用存储的私钥L-1对DTID 进行解密,得到药品标签TID,并发送TID,r1,H给服务器;
步骤1.4 服务器把TID 发送给EPC-IS 数据库;
步骤1.5 EPC-IS 根据TID 查找相对应的信息{DTnum,M}并发送给服务器;
步骤1.6 服务器对DTnum 进行解密得到Tnum,计算H1=H(Tnum‖r1),并比较H1、H 是否相等,若相等,则此药品标签合法,完成认证。若不相等,此药品标签非法,终止会话;
步骤2 标签认证应用服务器
步骤2.1 应用服务器产生随机数r2,并对解密后Tnum 与r2进行计算H2=h(Tnum‖r2),随后将r2和H2发送给阅读器;
步骤2.2 阅读器将H2、r2发送给标签;
步骤2.3 标签根据发送过来的数据信息进行计算H3=h(Tnum‖r2),并对H3与H2进行比较,相等则应用服务器认证成功,不相等则认证失败,此认证过程结束。
GNY 逻辑是对BAN 逻辑方法的一种改进,不仅继承了BAN 逻辑的优点,例如其易于扩展、简单等[9]。同时又取消了一些全局假设,新增了一些逻辑规则,使用范围也得到了更加广泛的应用[10]。因此,本文利用GNY 逻辑对协议进行证明。
图3 基于AKHF协议的方案
GNY 逻辑分析过程包括以下步骤:
(1)按照GNY 分析方法,分析协议的基本逻辑表示方式。将安全认证协议的模型进行理想化。
(2)对协议进行初始化假设,并给出协议在初始化阶段必须满足的一些基本条件。
(3)根据推理规则对协议进行形式化分析,最终推断出目标是否可行。若达到预期目标则该认证协议是安全可行的。
GNY 逻辑的基本符号和推理规则:
(1)基本语法说明:
P ⊲*X:P 是公式X 的接受者,但不是公式X 的首发者,P 是第一次接收到X。
P ⊲X :主体P 被告知X,X 既可以是消息本身,也可以是经过一定计算后的内容。
P ∍X:主体P 拥有公式X。
P|~X :主体P 曾经在过去的某个时刻传递过公式X。
P|≡Φ(X):主体P 相信X 是可以被识别的。
P|≡#(X):表示主体P 信任公式X 的新鲜性,即在此之前,P 都没有使用过X。
P|≡P↔SQ:S 表示的是密钥,此语法代表的是主体P 相信S 是P 和Q 独有的共享密钥。即S 仅能被P、Q 拥有,不会被除此之外的第三方获取。
(2)本文用到的基本逻辑推理公式说明:
基于GNY 逻辑的三方认证协议安全性证明:
为了便于描述,把应用服务器和公共环境物联网EPC-IS 数据库作为一个整体,统称为公共环境物联网应用服务器As,标签、阅读器分别简称为T、R。
对协议做出的初始化假设如下:
A1:T ∍TID
A2:T ∍Tnum
A3:T ∍h()
A4:T|≡#(ri)
A6:R ∍RID
A7:R ∍Rnun
A8:R ∍h()
A9:R|≡#(ri)
A11:As ∍L
A12:As ∍h()
A13:As|≡#(ri)
A16:As|≡#(Tnum)
A17:As|≡#(Rnum)
本协议的理想化模型:
M1:R→T:Request,r1
M2:T→R:TID,r2,H1
M3:R→As:RID,TID,r1,r2,H2
M4:As→R:r3,H3
M5:R→T:r3,H3,H4
将上述理想化模型中的M1-M10 转化为逻辑语言规范化为:
M1:T ⊲*Request,*r1
M2:R ⊲*TID,*r2,*H1
M3:As ⊲*RID,*TID,*r2,*r3,H2
M4:R ⊲*r3,*H3
M5:T ⊲*r3,*H3,*H4
协议的证明目标:
G1:As|≡T|~#(H1)
G2:As|≡R|~#(H2)
G3:T|≡As|~#(H3)
G4:T|≡R|~#(H4)
协议的证明过程如下:
(1)根据M2:As ⊲*RID,*r1,*H1,由被告知规则T1可 得 到 As ⊲RID,r1,H1,由 拥 有 规 则T3 可 得 到As ∍RID,r1,H1。 由 识 别 规 则 R6 可 得 到As|≡Φ(Rnum,r1),又由A13、A17,和新鲜性规则F10 可推出As|≡#(H1),上述已推出As ⊲h(Rnum‖r1),即等价于,又由A14 和消息解释规则I1 可推出As|≡T|~#(H1)。
(2)根据M5:As ⊲*RID,*TID,*r2,*r3,*H3,由被告知规则T1 可得到As ⊲RID,TID,r2,r3,H3,由拥有规则P1 可 得 到As ∍r2,r3,H3。因H3=h(Rnum‖H2)=h((Rnum‖h(Tnum‖r2‖r3)),由拥有规则P2 可得到As ∍H2,由被告知规则得到As ⊲H2,由A13 和新鲜规则F1 可得到As|≡#(H2),由A14: As|≡R ↔RnumAs 和消息解释规则I3 可推出As|≡R|~#(H2)。
同理,G3、G4 的证明过程与上述证明过程类似,此处将不再赘述。因此,由上述证明可知,基于哈希函数的物联网三方认证协议的方案在满足假设的前提下,标签、阅读器、公共环境物联网应用服务器三方之间可以得到有效地相互认证。而在基于AKHF 的方案中,也是要证明通信双方在相互认证过程中的安全性。由于证明过程和上述证明过程相同,将不再叙述。
方案的安全性能既要考虑认证过程中消息的安全传输又要保证隐私信息不被泄露。为进一步证明系统的安全性,并考虑到实际情况中,系统可能遭受到的攻击手段,接下来从可抗攻击类型对协议进行安全分析。
在基于哈希函数的物联网三方认证协议认证过程中,即使通过已监听信息伪装成合法标签与阅读器进行通信,但因阅读器每次生成的随机数都是随机的,也无法认证成功。而在基于AKHF 方案中,标签ID 值加密,即使被截获,没有正确密钥也无法解密,所以即使想复制其ID 值制造假冒标签也无法实现。并且,方案认证过程中即便被重放攻击干扰中断,并不影响认证的正确性,可在适时重新进行认证。
由于阅读器与标签之间信息传输是通过无线通信传递,其信道容易遭受窃听攻击。在基于哈希函数物联网三方认证方案中,标签和阅读器传输的数据类型包括2 类。第1 类随机数ri的传输,由于其随机性,即使截获到某次随机数对攻击者也没有用处。第2 类计算结果H、标签TID,H 值分别通过HASH 运算的数值,通过此数值并不能推断出算法的逻辑关系,且每次的随机数都不同,也获取不到有效信息。而标签TID,即使对ID 值进行了非法复制,没有与之对应的Tnum值,也无法完成认证。而在AKHF 中,标签和阅读器传输数据分别为步骤1.2、2.2 三次。步骤1.2 是DTID 的传送,但由于方案采用对TID 值加密,没有正确密钥也无法解密。步骤2.2 包括随机数和H(Tnum‖r2)计算过的H2传输,对于此两种值,上面也已做分析,此处不作解释。
药品信息公共环境物联网的信息资源查询或认证通常是一次性操作,并没有涉及到被跟踪的问题。
在基于AKHF 方案中,步骤2 完成反向认证,阅读器对DTID 进行解密得到TID,并将标签TID 值传输给应用服务器,应用服务器通过标签认证数字和随机数的哈希计算H1=H(Tnum‖r1)与标签计算的H 值比较进行双向认证。基于哈希函数物联网三方认证方案中,步骤2 完成反向认证,标签计算H=h(Tnum‖H4),其中H4=h(Rnum‖r3),并与应用服务器计算的H3=h(Tnum‖h(Rnum‖r3))比较验证阅读器与应用服务器的合法性。
对于标签中的认证数字部分,前端的认证不传输认证数字,所以阅读器无权访问认证数字信息。在基于AKHF 方案中,对于DTnum,此解密部分在应用服务器内部完成,在基于哈希函数物联网三方认证方案中,涉及到认证数字传输的部分,则是数据库与应用服务器之间传输DTnum 和DRnum,其解密过程在应用服务器独立完成,均未传输到阅读器。
本文提出并设计了药品信息公共环境物联网认证方案,将物联网AKHF 认证协议、基于哈希函数的物联网三方认证协议应用在物联网药品真伪认证中,设计了两种药品信息公共环境物联网认证方案。并通过性能分析,得到方案可抗重放、窃听、位置跟踪等攻击。同时,利用GNY 逻辑对方案中的协议进行推理证明可知,方案中的通信三方均相信对方的真实性,并证明了认证过程中数据传输的有效性和安全性。