智能家居中基于假名的全匿名认证方案*
2021-03-21王玉霞李凤银郭效泉
王玉霞,王 华,李凤银,郭效泉
(曲阜师范大学,山东 日照 276826)
0 引言
智能家居中的智能设备通常由用户的手机控制,主要通过无线通信的方式进行数据传输。物联网环境下,数据是纯文本还是加密文本,决定了数据传输是否安全。一般情况下,用于数据传输的文本加密只使用相对简单的加密算法。攻击者可以通过拦截传输信息的数据包获取用户的私密信息,造成用户隐私泄露。
针对上述问题,文章提出在智能家居环境下的客户端与服务器间的相互认证和密钥协商方案。该方案共包含3个实体,分别是客户端、服务器和第三方可信机构。客户端与服务器端通过向第三方可信机构注册获取私钥,然后根据各自的公私钥对信息签名进行身份认证,认证成功后可获取会话密钥,从而实现客户端与服务器端的安全通信。方案模型如图1所示。
图1 方案模型
1 基础知识
1.1 双线性映射
令G1、G2是两个q阶循环群。一个双线性对e是一个从G1×G1→G2的双线性映射,满足以下性质[1]。
(1)双线性。对于任意两个元素P,Q∈G1,且a,b∈Zq*,存在e(aP,bQ)=e(bP,aQ)=e(P,Q)ab。
(2)非退化性。存在P,Q∈G1,满足e(P,Q)≠1。
(3)可计算性。存在有效的算法,使对任意的P,Q∈G1,均可计算e(P,Q)。
1.2 椭圆曲线离散对数问题
椭圆曲线密码学(Elliptic Curve Cryptography,ECC)是基于有限域上椭圆曲线的离散对数计算困难性。换句话说,离散对数问题就是乘方过程的求逆。
椭圆曲线离散对数问题(Elliptic Curve Discrete Logarithm Problem,ECCDLP)定义如下:给定素数p和椭圆曲线E,P和Q是曲线E上的两个点,令Q=kP,在P、Q已知的情况下,求出小于p的正整数k。可以证明:已知k和P计算Q比较容易,而由Q和P计算k则是困难的,通常比离散对数问题更难解[2]。
1.3 计算Diffie-Hellman问题
给定循环群G,阶为素数q,P∈G为群G上的一个任意生成元,计算Diffie-Hellman问题定义为:对于随机选择的a,b∈Zq*,给定aP、bP,计算abP是困难的。
2 基于假名的全匿名认证方案
本方案共分为3个阶段,分别为系统初始化、匿名注册和身份认证[3]。方案中涉及的符号定义如表1所示。
表1 符号定义
2.1 系统初始化
可信机构选取随机数s∈Zq*作为主密钥,秘密保存。设G1和G2是素数q阶的两个加法循环群,P是G1的生成元。计算系统公钥Ppub=sP,选择3个哈希函数,即[4]:
e为G1×G1→G2的双线性映射。由可信机构公开系统参数{G1,G2,q,P,H1,H2,H3,e,Ppub}。
2.2 匿名注册
2.2.1 客户端注册
该阶段客户端用假名向可信机构申请注册,可信机构为客户端生成基于假名的私钥完成注册。
图2 客户端注册阶段
注册成功后,客户端获取基于其假名的私钥,进一步计算得到基于真实身份的私钥。该私钥仅客户端知道,用于后续与服务器的身份认证。
2.2.2 服务器端注册
该阶段服务器用假名向可信机构申请注册,可信机构为服务器生成基于假名的私钥完成注册。
注册成功后,服务器获取基于其假名的私钥,进一步计算得到基于真实身份的私钥。该私钥仅服务器知道,用于后续与客户端的身份认证。
图3 服务器注册阶段
2.3 身份认证
本阶段客户端与服务器相互进行身份验证。客户端将计算的信息用公私钥签名后发送给服务器进行身份验证。同样的方式,服务器生成的信息经过公私钥签名发送给客户端进行验证。验证成功后获取会话密钥,用于后续通信。
2.3.1 服务器端验证用户的身份
客户端选取随机数a∈Zq*,计算Mc=a·PKc,Nc=a·P,选取时间戳T1,计算h1=H3(Mc,T1,Nc)。计算签名Sc=SKc+(a+h1)·Mc,客户端将计算的Mc、Nc、Sc、h1以及时间戳T1发送给服务器。
服务器收到客户端发来的消息后,检查时间戳的有效性。若时间戳无效,拒绝请求。若时间戳有效,验证签名的有效性,即验证e(P,Sc)=e(Ppub,PKc)*e(Nc,Mc)*e(h1P,Mc)是否相等。若相等,则身份验证成功,服务器计算会话密钥;否则,验证失败。
2.3.2 客户端认证服务器的身份
服务器选择随机数b∈Zq*,计算Ms=b·PKs,Ns=b·P,选取时间戳T2,计算h2=H3(Ms,T2,Ns)。计算签名Ss=SKs+(b+h2)Ms,服务器将计算的Ms、Ns、Ss、h2以及时间戳T2发送给客户端,同时服务器计算会话密钥SSK=b·Nc=abP。
客户端收到服务器发来的消息后,先检查时间戳的有效性。若时间戳无效,拒绝请求。若时间戳有效,验证签名的有效性,即验证e(P,Ss)=e(Ppub,PKs)*e(Ns,Ms)*e(h2P,Ms)是否相等。若不相等,验证失败;若相等,则身份验证成功,客户端计算会话密钥SSK=a·Ns=abP。
至此,客户端与服务器认证了彼此身份,客户端与服务器便可通过会话密钥加密信息进行后续的数据传输。验证如图4所示。
图4 客户端-服务器身份认证阶段
2.4 安全性分析
匿名性。客户端与服务器向可信机构申请注册时将自己的身份用随机数加密。即使被攻击者截获,攻击者也无法猜出客户端与服务器的真实身份。
重放攻击。方案引入时间戳,因此可抵抗重放攻击。
相互认证。方案中客户端与服务器使用其公私钥和随机数对信息进行签名来验证双方的身份。攻击者不知道客户端与服务器的私钥以及选取的随机数。因此,只有具有正确私钥和随机数的合法用户才能计算签名。
中间人攻击。客户端和服务器向可信机构申请注册时,客户端与服务器分别与可信机构协商会话密钥,可信机构将计算的私钥用会话密钥加密传给客户端与服务器,客户端与服务器分别用各自的会话密钥解密得到私钥,因此中间人无法获取用户和客户端的私钥。
会话密钥安全性。会话密钥是由客户端和服务器分别随机选取随机数计算得出的。要想获取会话密钥,必须先解决CDH困难问题。因此,该方案具有会话密钥安全性。
2.5 效率分析
在预估方案的计算成本前,先定义一些符号:PM表示椭圆曲线上的点乘法运算,PA代表椭圆曲线上的点加法运算,H代表散列运算运算。效率分析比较结果如表2所示,可见所提方案比其余方案计算成本更低,效率更高。
表2 效率分析对比
3 结语
本文提出了一个在互联网智能家庭环境中的匿名身份认证方案,并进行了高效的认证和密钥协商,支持用户的匿名性。经安全性分析,该方案可抵抗重放攻击和中间人攻击,且更具轻量级。