1、基于无证书签名的云端跨域身份认证方案 杨小东 安发英 杨平 刘婷婷 王彩芬 西北师范大学计算机科学与工程学院 密码科学技术国家重点实验室 摘 要: 针对基于无证书的身份认证方案无法满足跨域匿名认证需求的不足, 利用双线性映射提出一种云环境下的跨域身份认证方案。基于无证书签名的合法性和消息的有效性, 实现用户与云服务提供商的身份真实性鉴别, 并在双向跨域认证过程中完成会话密钥的协商。引入分层 ID 树结构确保身份的唯一性, “口令+密钥”的双因子认证过程增强跨域身份认证方案的安全性。利用临时身份实现用户身份的匿名性, 对用户的恶意匿名行为具有可控性。分析结果表明, 该认证方案在 CK 模型中是安
2、全的, 并能抵抗伪造、重放与替换攻击, 具有较高的安全性。关键词: 云计算; 跨域; 无证书签名; 身份认证; CK 模型; 匿名性; 作者简介:杨小东 (1981) , 男, 副教授、博士, 主研方向为代理重签名、云计算安全作者简介:安发英, 硕士研究生;作者简介:杨平, 硕士研究生;作者简介:刘婷婷, 硕士研究生;作者简介:王彩芬, 教授、博士、博士生导师。收稿日期:2016-12-28基金:国家自然科学基金 (61662069, 61262057) Cross-domain Identity Authentication Scheme in Cloud Based on Certific
3、ateless SignatureYANG Xiaodong AN Faying YANG Ping LIU Tingting WANG Caifen College of Computer Science and Engineering, Northwest Normal University; Abstract: In view of the shortcoming of failure in cross-domain anonymous authentication scheme based on certificateless public key cryptography, a cr
4、oss-domain authentication scheme in cloud environment is proposed by using bilinear mapping. On the basis of the validity of certificateless signature and the legitimacy of the message, the proposed scheme can identify the authenticity of user and cloud service provider, and the negotiation of the s
5、ession key is completed in the bidirectional cross-domain authentication process. Furthermore, the introduction of hierarchical ID tree structure ensures the uniqueness of identity, and the two-factor authentication process of “ password + key “ strengthens the security of the cross-domain authentic
6、ation scheme. The scheme realizes the anonymity of user identity by using temporary identity and has controllability for anonymous malicious behavior. Analysis results show that the proposed scheme is secure in CK model, it can resist forgery attacks, replay attacks and replace attacks, and has high
7、er safety performance.Keyword: cloud computing; cross-domain; certificateless signature; identity authentication; CK model; anonymity; Received: 2016-12-280 概述随着云计算产业的快速发展, 云计算与各种行业的融合产生了新的产业和商业模式, 为社会创造了巨大的商业价值, 并逐渐应用到人们生活的各个领域。但云计算的发展面临诸多安全问题, 其中身份认证问题首当其冲。身份认证是云计算安全的基础, 为用户和云服务提供商的身份真实性提供保证1-2。身份
8、认证机制能确保合法用户访问云资源, 同时能阻止恶意云服务提供商获取用户的隐私信息, 从而造成用户的经济损失。但云计算具有超大规模、虚拟化、开放性等特点, 使得传统的认证技术无法解决云计算面临的身份认证问题, 因此迫切需要研究云计算环境下的身份认证机制。近年来, 身份认证已成为信息安全领域研究的一个热点, 国内外学者提出一系列适用于云计算环境的身份认证方案。文献3-5设计了基于数字证书的云端身份认证方案, 但证书验证频繁, 导致计算负载较重。文献6-8提出基于身份密码体制的身份认证方案, 能实现访问用户与云服务提供商之间的身份认证, 也解决了证书管理开销过大等问题, 但存在密钥托管问题, 无法避
9、免密钥生成中心 PKG (Private Key Generator) 的恶意行为。文献9-10提出基于无证书密码体制的匿名身份认证方案, 解决了传统密码体制和基于身份密码体制存在的不足, 但该方案无法抵抗中间人攻击, 因而无法确保云端用户身份的真实性。文献11提出了一种基于 PTPM 和无证书的身份认证方案, 实现了用户与云服务提供商之间认证结果的可信性, 但未考虑用户身份的匿名性和跨域认证等问题。当前各类云服务已开始呈现出整合趋势, 越来越多的云服务需要与其他异域的云服务互联, 云服务提供商利用跨域身份认证机制来识别异域用户身份。此外, 每个信任域都建立了各自的身份鉴别机制, 用户在不同信
10、任域切换身份时将会出现用户身份的多重性。由于目前已有的大部分云端身份认证方案不支持跨域认证, 因此有必要构建简单、高效且适用于云环境的跨域身份认证方案。为满足云环境下的跨域身份认证需求, 本文提出一种基于无证书密码体制的跨域认证方案。基于认证消息和响应消息的合法性, 实现用户与云服务提供商之间的双向跨域身份认证。利用分层 ID 树结构建立身份管理机制, 解决云端用户身份的唯一性问题。同时, 引入“口令+密钥”的双因子认证过程, 以提升方案的安全性。1 预备知识1.1 双线性映射设 G1和 G2是阶为素数 p 的循环群, g 是 G1的一个生成元, 若 eG 1G1G 2满足以下条件, 则称 e
11、 是一个双线性映射6。1) 双线性:对任意的 a, bZ p, 满足 e (g, g) =e (g, g) 。2) 非退化性: 是 G2的单位元。3) 可计算性:对任意的 g1, g2G 1, 存在一个有效的算法计算 e (g1, g2) 。1.2 安全性理论假设群 G1上的 CDH (Computational Diffie-Hellman) 问题:给定三元组 (g, g, g) G 1, 这里 a, bZ p是未知的, 计算 gG 1。定义 1 (CDH 假设) 任何一个概率多项式时间算法 B 成功求解 CDH 问题的概率为:如果 AdvCDH (B) 是可忽略的, 则称 G1上的 CDH
12、 问题是困难的11。1.3 CK 安全模型CK 安全模型定义了 2 种链路模型, 分别为认证链路的理想模型 (AM) 和未认证链路的现实模型 (UM) 12。AM 中的攻击者具有运行和攻陷协议以及查询、暴露和测试会话密钥的能力, 但同一个消息只能发送一次。UM 中的攻击者不仅具有 AM 中攻击者的所有能力, 还具备重放、篡改和伪造发送消息的能力, 使得攻击者不仅能获知参与者保留在存储器的秘密信息, 还能调度协议和通信链路。定义 2 假设 A 是 AM 中的任意一个攻击者, 如果协议满足以下条件, 则称协议在AM 中是会话密钥安全的13。1) 未被攻陷的参与者在完成协议执行后, 均能获得相同的会
13、话密钥。2) 攻击者 A 进行测试会话密钥查询攻击后, 如果 表示安全参数范围内可忽略的任意值, 则 A 能够区分真实会话密钥和随机值的概率不超过 。定理 1 如果协议在 AM 中是安全的, 并且认证器是可证安全的, 则 AM 中的协议被认证器转化为 UM 中的协议也是安全的12。定理 1 的具体证明过程见文献12, CK 安全模型的基本理论见文献13-15。2 云端跨域身份认证方案本文提出的跨域身份认证方案包括 3 个参与实体:1) 密钥生成中心 PKG。主要进行本信任域中用户部分密钥的生成与分发, 并负责追溯恶意匿名行为的用户真实身份。2) 云服务提供商。为用户提供各种云服务, 并使用可信
14、平台模块 (Trusted Platform M odule, TPM) 安全设备进行密钥和随机数等敏感数据的存储、数据加密与签名。3) 用户。利用支持便携式 TPM (Portable TPM, PTPM) 安全模块的任意终端设备访问云服务, 完成与云服务提供商之间的跨域身份认证过程。TPM 和 PTPM 能确保身份认证的可信性和认证结果的正确性。为了便于描述, 假设任意 2 个可信域分别为信任域 1 和信任域 2, PKG1是信任域 1 的密钥生成中心, PKG 2是信任域 2 的密钥生成中心, U A是信任域 1 中的任意一个用户, CSP B是信任域 2 中的任意一个云服务提供商。以
15、UA访问 CSPB的跨域资源为例, 通过认证消息和响应消息的合法性完成两者之间的双向身份认证, 具体过程如图 1 所示。图 1 云端跨域身份认证架构 下载原图2.1 系统建立令 G1和 G2分别是 2 个阶为素数 p 的循环群, g 是 G1的一个生成元, 双线性映射e:G1G1G 2。符号“”表示字符串的连接操作, H 1:0, 1G 1和 H2:0, 1Z p是 2 个抗碰撞的哈希函数, 系统参数 cp= (G1, G2, p, e, g, H1, H2) 。2.2 身份生成本文采用文献16的分层 ID 树结构定义用户身份的 ID 值, 实现用户身份的唯一性。在 2 层 ID 树结构中,
16、根节点是所属信任域的密钥生成中心的身份标识, 叶结点是信任域中用户和云服务提供商的身份标识。若密钥生成中心 PKG1的身份标识为 DN1, 用户 UA的身份标识为 DNA, 则定义 UA的身份 IDA=DN1DN A;同理, 密钥生成中心 PKG2的身份标识为 DN2, 云服务提供商 CSPB的身份标识为 DNB, 则定义 CSPB的身份 IDB=DN2DN B。2.3 密钥生成密钥生成过程如下:1) 密钥生成中心 PKG1随机选取 Z p作为主密钥, 计算 pk1=g;密钥生成中心PKG2随机选取 Z p作为主密钥, 计算 pk2=g;最后, 公开 2 个公钥 pk1和pk2。2) 用户 U
17、A随机选取 xA, rAZ p, 计算 pkA=g 和 RA=g;根据身份标识 DNA生成身份 IDA, 计算临时身份 TIDA=H2 (IDAR A) , 并将DN A, TIDA, RA, pkA发送给PKG1。3) PKG1收到 UA的消息后, 根据 DNA获取身份 IDA, 并验证 TIDA=H2 (IDAR A) 是否相等。如果不相等, 则终止执行;否则, 计算 QA=H1 (TIDA) , 将 (pk A) (QA) 发送给 UA, 同时在用户注册列表保存DN A, TIDA, RA, pkA。4) UA计算部分私钥 (pk A) (QA) / (pk1) = (QA) , 并验证
18、 e ( (QA) , g) =e (H1 (TIDA) , pk1) 是否成立。如果等式成立, 则用户 UA在 PTMP 中秘密保存私钥 skA= ( (QA) , xA) , 公开公钥 pkA;否则, 拒绝接受。与上述 UA生成密钥的过程相同, 云服务提供商 CSPB的私钥为 skB= ( (H1 (IDB) ) , xB) , 公钥为 pkB=g。2.4 跨域身份认证跨域身份认证过程如下:2.5 重复跨域认证重复跨域认证过程如下:3) UA收到重复认证响应消息后, 首先检查时戳 TB, i的新鲜性, 然后验证收到的 NA, i是否与重复认证消息中发送的随机数相同, 并计算验证 H1 (Y
19、i) 是否与收到的 H1 (Yi) 相同。如果以上验证中至少有一项未通过, 则终止验证;否则, UA完成对 CSPB的身份验证, 确认 CSPB是其议定的远程云服务提供商, 并计算会话密钥 。3 安全性证明本节采用文献13-15方法, 在 CK 安全模型下分析第 2 节提出的云端跨域身份认证方案的安全性。3.1 AM 中的身份认证协议在首次跨域身份认证阶段中, 用户与云服务提供商依赖于无证书签名来鉴别身份的真实性;在重复跨域认证阶段中, 双方依赖认证消息和响应消息来鉴别身份的合法性。为简化协议证明过程, 将跨域身份认证阶段和重复跨域认证阶段分别抽象描述为 AM 中的协议 和协议 。下面证明 和
20、 是 AM 中会话密钥安全的跨域身份认证协议。协议 的描述如下:1) 跨域认证请求。用户 UA随机选取 yZ p, 计算密钥协商参数 , 临时身份用户名与口令的哈希函数值 w=H2 (TIDApw) 和 hA=H2 (TIDAID BYYT AN Awpk A) , 生成 hA的签名 A=hAQA, 发送TID A, IDB, Y, TA, H2 (TIDApw) , N A, pkA, A给云服务提供商 CSPB。3) UA计算会话密钥。U A首先验证响应消息的完整性和时戳的新鲜性, 然后基于签名信息完成对 CSPB身份合法性的鉴别, 实现 UA与 CSPB之间的双向认证, 并计算会话密钥
21、。协议 的描述如下:3) UA计算会话密钥。U A检查时戳 TB, i的新鲜性, 验证 NA, i是否与发送的随机数相同, 计算验证 H1 (Yi) 是否与收到的 H1 (Yi) 相同。U A完成对 CSPB的身份验证后, 计算会话密钥定理 2 如果协议中的无证书签名算法是安全的且哈希函数是抗碰撞的, 则协议 和协议 在 AM 中是会话密钥安全的。证明:文献11已证明本文采用的无证书签名算法是存在不可伪造的, 因此只需证明协议 满足定义 2 的 2 个性质, 即可证明协议 在 AM 中是会话密钥安全的。2) 采用反证法证明协议 满足定义 2 的第 2 个性质。假设 AM 中存在一个攻击者 A
22、发起 q 轮猜测游戏后, 能以不可忽略的概率 正确猜测出测试应答是真实值还是随机值, 则存在一个算法 B, 利用 A 的猜测结果能以不可忽略的概率区分协议 的会话密钥是真实的还是一个随机值。给定系统参数 cp, B 的输入为 (Y, Z, K) , 随机选择 t1, 2, , q, 将 cp 发送给 A, 并与 A 模拟完成用户 UA与云服务提供商 CSPB间的身份认证过程。除第 t 轮会话外, A 必须严格执行协议完成会话密钥的建立或获取新的消息, 并能获得已被攻陷参与者或已暴露会话密钥的全部信息。在第 t 轮会话中, U A向 CSPB发送的密钥协商参数为 Y, CSPB向 UA发送的密钥
23、协商参数为 Z, 则 B 返回给 A 的询问应答为 K。下面分 2种情况进行讨论:(1) A 的第 t 轮会话被选作测试会话。在第 t 轮会话中, 如果 B 的输入 (Y, Z, K) 是真实的会话密钥协商参数 (Y, Z) 和真实的会话密钥 K, 则返回给 A 的应答 K 就是 UA与 CSPB间的真实会话密钥 K;如果 B 的输入 (Y, Z, K) 是一组随机值, 则 A 收到的应答 K 也是一个随机值。因此, 如果 A 能以 1/2+ 的概率正确猜测出测试应答是真实值还是随机值, 则 B 将以 1/2+ 的概率猜对输入 (Y, Z, K) 是真实的会话密钥还是随机值。(2) A 的第
24、t 轮会话未被选作测试会话。由于选择了第 t 轮会话外的某一次会话作为测试会话, 此时 B 输出一个随机值并结束会话, 因此 B 只能以 1/2 的概率猜对输入是真实值还是随机值。同理可证, 协议 在 AM 中是也会话密钥安全的, 与上述证明过程类似。3.2 认证器构造文献13对基于时戳的签名认证器 Sig进行了匿名性和安全性等方面的证明, 本文方案的跨域认证阶段采用该认证器完成用户 UA与云服务提供商 CSPB间的身份认证。 Sig中用户 A 和 B 的交互过程如下:1) A 基于时戳 TA和消息 m 生成签名 Sig (m, TA, IDB) , 发送m, Sig (m, T A, IDA
25、) 给 B。2) 如果收到消息中时戳 TA是新鲜的且签名是合法性的, 则 B 完成对 A 的身份真实性验证。文献12对基于身份的匿名认证器 ID进行了匿名性和安全性等方面的证明, 本文方案的重复跨域认证阶段采用该认证器鉴别用户 UA与云服务提供商 CSPB身份的合法性。 ID中用户 A 和 B 的交互过程如下:1) A 生成临时身份 TIDA, 读取时戳 TA和消息 m, 发送m, T A, TIDA给 B。2) 如果收到消息中时戳 TA是新鲜的且临时身份 TIDA是合法性的, 则 A 通过 B的身份可信性验证。3.3 UM 中的协议将 3.1 节 AM 中的认证协议通过 3.2 节的 2 种
26、认证器转换为 UM 中的协议, 为了防止攻击者获得用户 UA的真实身份, 在不影响协议安全性的条件下隐藏 UA的真实身份, 并利用文献17的方法对协议进行优化, 得到如图 2 所示 UM 中的跨域身份认证协议。图 2 UM 中的跨域身份认证协议 下载原图在 3.1 节已证明协议 和 在 AM 中是会话密钥安全的, 认证器 Sig和 ID已被文献12-13证明是安全的, 因此根据定理 1 很容易得知协议 和 在UM 中也是会话密钥安全的。4 方案分析4.1 会话密钥的前/后向安全本文方案在用户与云服务提供商实现双向身份认证的同时, 根据收到的消息和秘密参数完成了双方之间会话密钥的协商。由于会话密
27、钥 中 zi和yi均是随机选取的, 因此会话密钥具有新鲜性和随机性。即使攻击者获得会话密钥 ki, 既不能获取以前的会话密钥, 也不能计算出后续的会话密钥, 因此, 新方案的会话密钥满足前/后向安全性。4.2 抗伪造攻击首次跨域身份认证阶段的安全性取决于无证书签名的合法性, 文献11已证明该签名是不可伪造的, 因此攻击者无法伪造有效的认证消息和响应消息。重复跨域认证阶段中用户 UA发送的认证消息中包含口令的哈希函数值 w 和签名 i=yi+xAhA, i, 如果攻击者伪造认证消息, 则无法通过 CSPB对消息的有效性验证;CSP B发送的响应消息中包含密钥协商参数的哈希函数值 H1 (Yi)
28、, 只有CSPB利用私钥 skB从 Yi计算出 Yi, 如果攻击者伪造 H1 (Yi) , 则无法通过 UA对 H1 (Yi) 的有效性验证。因此, 本文新方案能抵抗伪造攻击。4.3 抗重放和替换攻击由于认证消息和响应消息中含有时戳和随机数, 因此本文方案能抵抗重放攻击。首次跨域认证阶段中认证消息通过 hA=H2 (TIDAID BYYT AN Awpk A) 将签名 与 UA的身份进行了绑定, 响应消息通过 hB=H2 (IDBZZT BN A) 将签名 B与 CSPB的身份进行了绑定;重复跨域认证阶段中利用 hA, i=H2 (TIDAID BY iY iT A, iN A, iw) 和
29、w=H2 (TIDApw) 将认证消息和 UA的身份进行绑定, 利用 NA, i和 H1 (Yi) 将响应消息与 CSPB的身份进行绑定。如果攻击者替换认证消息和响应消息中的身份信息, 则无法通过消息的有效性验证, 因此本文方案能抵抗替换攻击。4.4 匿名的可控性认证消息中用 UA的临时身份 TIDA代替真实身份 IDA, 实现用户身份的匿名性。如果 UA发送了非法消息, 则 CSPB将 TIDA及相应的消息提交给密钥生成中心PKG1。验证消息的有效性后, PKG 1根据 TIDA在用户注册列表中查找DN A, TIDA, RA, pkA, 并验证收到的 TIDA是否与 H2 (IDAR A)
30、 相等, 如果相等, 说明发送非法消息的用户身份是 IDA, 并将验证结果反馈给 CSPB, 同时将用户加入到公开的撤销列表中。因此, 本文方案的匿名性是可控的。4.5 性能分析由于云服务提供商具有强大的计算能力, 因此只对本文方案与已有基于无证书的云端身份认证方案中用户的计算开销进行比较, 结果如表 1 所示。如果将本文方案中 2 个不同的信任域替换为同一个信任域, 则本文方案是一个本域身份认证方案。为便于比较, 假设所有方案选择相同的群 G1和 G2, 阶为相同的素数p。由于乘法、加法、HMAC 算法及哈希函数的计算量相对较小, 因此下文的计算开销只考虑计量算较大的双线性对和指数运算。用 Exp 表示一次指数运算, Pa表示一次双线性对运算。表 1 用户的计算开销和安全性能比较 下载原表 如表 1 所示, 本文方案比文献9-10方案在密钥生成阶段多 2 次指数运算, 但这 2 个方案的认证开销比较大, 并且存在安全缺陷, 同时需要建立安全信道进行用户部分密钥的分发。虽然本文方案与文献11方案的计算开销基本相同, 但该方案不满足用户身份的匿名性, 并且不支持跨域身份认证。因此, 本文方案的计算效率和安全性能优于对比方案。5 结束语