林学聪,董 征,刘友武
(1.闽南师范大学 教务处,福建 漳州 363000;2.三明学院 网络中心,福建 三明 365000)
云计算是一种通过互联网允许用户随时随地以按次付费的方式访问信息技术服务的新模式[1,2],用户数据中可能包含用户隐私(如企业客户信息和医院患者信息),因此,数据安全和隐私问题是基于云的物联网应用程序构成的重要威胁之一[3,4]。用户通过共享其敏感数据并允许服务提供商获取、分析或将其数据货币化,从而存在暴露这些数据的风险[5]。此外,恶意云服务提供商或攻击者可以拦截用户的操作,然后访问用户身份信息或篡改用户数据,可能造成严重后果[6,7]。在云计算中保证用户隐私是至关重要的,使用身份验证技术来保护敏感信息免受对手攻击被认为是保证用户隐私的有效解决方案[8,9]。然而,现有技术的验证性能并没有达到要求的水平,因为客户的敏感信息暴露在云端的对手面前[10],实际上,数百个用户可以同时访问云服务。因此,用户访问的认证过程必须尽可能有效,并且计算复杂性必须最小[11]。因此本文将抑制方法和多阶段认证相结合来实现云计算环境下数据隐私保护的增强。
提出的算法最初由客户端向云服务器发送请求,在接受请求时云服务器使用客户端ID和密码、一次性令牌、条件属性等进行多阶段身份验证来验证客户端身份的真实性,当且仅当客户端是合法时,云服务器允许客户端获取所需的数据访问,以最短时间访问云数据的客户端的验证性能。图1给出用于隐私保护数据访问算法的具体架构。
图1 用于隐私保护的数据访问算法架构
云服务器S对系统进行初始化,S选取两个大素数p和q以及具有q阶加群G的生成器P,随后选择非奇异椭圆曲线E(Fq):y2=x3+ax+bmodp,S生成xs∈Fq并将其设置为密钥。
在提出的方法中,客户端在注册阶段将适当的身份信息发送给云服务器,云服务器借助抑制方法将客户端的身份信息存储在数据库中,并发出客户端ID、密码和一些条件属性。注册是在云环境中收集有关客户的个人信息的过程,有助于本文算法在与客户端的基于云的文件共享过程中获得集中控制。在获得任何数据服务之前,云环境中的客户端必须向云服务器注册其个人详细信息。为了做到这一点,每个客户机通过一个安全通道将他/她的个人详细信息发送给云服务器。
在传统的加密方案中,密码仅包括数值和特殊字符。在提出的算法中,除了包括数值和特殊字符之外,条件属性还包括一组问题,这些问题的构造是为了在访问云数据时验证客户的身份。完成注册过程后,云服务器通过以下公式提供客户端ID和密码
CS→Cid,PWD
(1)
式中:CS表示云服务器,Cid表示客户端ID,PWD为客户端密码,云服务器借助不同数量的条件为每个客户定义条件属性CAi。在此基础上,使用以下数学表达式构造条件属性
Cid→(CA1,CA2,…,CAn)
(2)
依据等式(2),云服务器为每个客户标识Cid设置条件属性CAi。对于每个注册个人信息的客户端,云服务器生成一个唯一的客户端ID、密码和条件属性,以安全地从云端访问数据,构造的客户端ID、密码和条件属性存储在云服务器数据库中。在云环境中,向对手秘密保存客户详细细节是一个亟待解决的问题。
K-匿名主要通过抑制和泛化的方法来保护需要对外公开的数据的隐私性,它以损失发布信息中的某些属性值为代价保护一些涉及个人隐私信息的属性值,尽可能的在发布数据的精确度和隐私保护的安全度之间达到一定的平衡。不仅保证数据整体趋势,对单条数据记录的精确性也加以保护,为发布的数据提供更好的可用性。为了将客户身份信息安全地保存在云服务器数据库中,本文首先通过抑制K-匿名方法替换客户密码的原始字符或值,以星号“*”替换客户的条件属性,然后将替换后的客户密码和条件属性存储在云服务器数据库中,使云环境中没有人知道客户端的真实身份。由此,客户敏感信息被安全地保存下来,并且不会在云环境中泄露给对手。实验结果表明,提出的技术比现有的技术提高了数据隐私保护率,通过对客户端身份信息的隐私保护,提高了云端的验证性能。
当客户端发送获取云服务的请求时,进行多阶段验证过程(即密码、一次性令牌和条件属性),以确认客户端是合法的还是非法的。当客户端使用ID和密码登录时,如果密码有效,则生成一次性令牌,然后将创建的一次性令牌传输到云环境中的相应客户端。借助于一次性令牌,本文以更高的准确性增强了云计算中的客户端身份验证性能。
图2给出了进行身份认证的具体流程。如图2所示,提出的算法验证向云服务器发送请求的客户端的密码、一次性令牌和条件属性。如果客户端是合法的人,则允许客户端使用加密或解密过程获得所需的数据服务;如果客户端是非法用户,则该算法不允许客户端从云端获取任何数据服务,从而提高认证准确性。
图2 身份认证流程
在提出的算法中,一次性令牌用于验证客户端,密码用于保护客户账户的安全和机密性,以防非法访问。每当客户端登录系统时,所提方法均提供一个新的一次性令牌。这个一次性令牌是系统本身使用以下公式随机生成的
Cid→OTT,OTT={r}
(3)
依据等式(3),通过随机选择一个大素数r来构造客户端ID的一次性令牌OTT。每次为客户端创建新的一次性令牌时,该客户端先前的一次性令牌被删除。生成的一次性令牌只用于本次登录。因此,只有具有一次性令牌的授权客户端才能访问所需的服务。
验证一次性令牌后,将验证客户端的条件属性,如您最喜欢的食物是什么、昵称是什么等等。在完成多阶段身份验证过程后,提出的技术只允许授权的客户端获得云服务。
考虑云计算中表示为Ci=C1,C2,…,Cn的客户端,对于每个客户端Ci,多阶段身份验证MFA在数学上表示为
(4)
式中:P表示PWD=PWD*,O表示OTT=OTT*,Q表示CA=CA*,一次性令牌和条件属性,PWD*、OTT*和CA*表示与相应客户端一起存储在CS数据库中的密码、一次性令牌和条件属性。如果密码、一次性令牌和条件属性是合法的,则确认客户端是可信的。否则,将验证客户端是否为云中的真实身份。
在对客户端进行身份验证之后,使用数据访问阶段来为客户端提供所需的服务。当该技术在云环境中获得授权后,即可提供所需的云数据服务。如果客户不是授权人,该技术不允许客户获取云数据服务。因此,该技术在较短的时间内增加了云中客户机的认证准确性。
在给客户请求的云数据之前,执行c=diPkimodPki进行数据加密以提高数据传输的安全性。其中c表示密码文本,di表示客户端请求的云数据,Pki表示客户端的公钥(即密码)。然后,密码文本发送给向云服务器发送请求的客户端。在接收端,对加密数据进行解密,目的是利用其私钥获得原始云数据。数据解密的数学实现方法如下
di=wSki*mod(α*β)
(5)
式中:Ski表示私钥(即一次性密码),di表示原始云数据,α和β表示两个质数。
基于多阶段认证的云计算隐私保护数据访问的具体算法如下:
该算法包含注册、认证和数据访问3个关键过程。输入客户数量,在注册过程中,对每个客户使用式(1)生成客户端ID和密码,使用式(2)设置条件属性“CA”,然后通过抑制方法将每个客户的密码和条件属性存储在云数据库中,云服务器向客户端发送密码和条件属性。在认证阶段,客户使用客户端ID和密码登录,云服务器生成一次性令牌,并将其使用式(3)和式(4)传输到相应的客户端,然后云服务器验证客户端的密码、一次性令牌和条件属性。如果客户端的密码、一次性令牌和条件属性有效,则认为客户端是合法的,否则,客户将被视为非法访问。在数据访问阶段,如果客户端经过认证,则通过执行数据加密/解密获得所需的服务;如果客户端没有经过认证,客户将被视为非法访问,不允许客户端获取云数据服务。
为了评估所提出的算法性能指标,所有实验均是在一台配置为Intel Core i7、3.4 GHz CPU和4 GB内存的Microsoft Windows 7平台上进行,所有测试均是用Java语言实现。从UCI机器学习库选取Amazon Access示例数据集,该数据集提供的匿名化样本有4个属性:人员属性、资源ID、组ID和系统支持ID。将测试结果与基于属性的签名外包ABS协议和云环境中基于属性模糊分组的隐私感知访问控制方法Priguarder[15]进行对比分析。
为了测量访问云数据服务时的客户端身份认证性能,选择身份认证准确度(authentication accuracy,AA)对实验性能进行分析比较。身份验证准确度(AA)是指被正确验证为已授权或未授权的客户端数量与客户端总数的比率。云数据访问的AA是在不同数量的客户机上估算的,AA由以下数学表达式确定:AA=Mc/n*100%,Mc表示正确认证的客户端数量,n表示实验过程中考虑的客户端总数。
计算复杂性(computational complexity,CC)决定了用于验证向云服务器发送请求的客户端的时间量。可以看出,用不同数量的客户来衡量确认客户身份所需的时间,可表示为:CC=n*T(ASC),T(ASC)表示用于验证单个客户端的时间,n表示客户端的数量,CC以毫秒(ms)为单位计算。
为了评估本文算法的安全性,采用隐私保护率(privacy preserving rate,PPR)对实验性能进行评价。隐私保护率(PPR)衡量的是只有授权客户端才能正确访问的云数据数量与云数据总数的比率。PPR由以下数学表达式确定
(6)
式中:LAC表示合法客户端正确获取的数据数量,N表示云数据的总数(合法客户端正确获取的数据数量和非法客户端正确获取的数据数量的总数),隐私保护率是根据百分比(%)确定。换言之,PPR是指合法用户使用加密或解密过程从云端获取任何数据服务的比率,PPR越高,非法用户从云端获取任何数据服务的次数越少,则算法的认证性能越高。
为了测量访问云数据服务时的客户端身份验证性能,图3给出了本文算法与基于属性的签名外包ABS协议和云环境中基于属性模糊分组的隐私感知访问控制方法Priguarder[15]的身份验证准确性。
图3 不同算法的身份验证准确性
可以看出,在对40个客户进行实验过程中,本文算法、Priguarder和ABS算法获得AA分别为98%、78%和73%。从图中曲线可以看出,与其它算法相比,本文算法提供了增强的AA,获得了更好的身份验证准确性。这是因为当客户端登录系统时,构造一次性令牌,并在口令正确时将其广播给相应的客户端,然后验证客户端的条件属性。如果客户端的密码、一次性令牌和条件属性合法,则客户端被验证为已授权。否则,客户端将被验证为云中未经授权的人。由此,本文算法增加了被完全认证的客户端数量。
图4给出了客户端数量不同时,3种算法的计算复杂度。可以看出,计算复杂度随着客户端数量的增加而增加。在对60个客户端完成实验评估时,本文算法、Priguarder和ABS算法获得CC分别为28 ms、34 ms和40 ms。从图中曲线可以看出,与Priguarder和ABS算法相比,本文算法将CC分别减少了19%和32%。这是因为本文借助多阶段身份验证的应用,对请求云数据服务的客户端进行时间利用率的精确验证,这有助于本文算法在访问云数据时比其它现有工作花费更少的时间来验证客户端。
图4 不同算法的计算复杂度
图5给出了云数据的数量不同时,3种算法的隐私保护率。可以看出,在对100个云数据进行实验时,本文算法、Priguarder和ABS算法获得的隐私保护率分别为97%、85%和66%。与Priguarder和ABS算法相比,本文算法将隐私保护率分别提高了20%和41%。因此,本文算法在云环境中实现了更高的隐私保护率。这是因为本文算法通过抑制方法将客户端数据安全地保存在云计算数据库中。同时,在多阶段验证的支持下,只允许合法客户获取云数据服务。
图5 不同算法的隐私保护率
提出了一种基于多阶段身份认证的云计算隐私保护数据访问算法,通过避免低计算复杂度云中的非法访问来提高云数据的隐私保护率。该算法利用抑制方法替换客户密码的原始字符或值以将客户的个人信息安全地存储在云数据库中,利用密码、一次性令牌和条件属性等进行多阶段身份认证,提高了认证准确性,以最短的时间高效地验证需要云数据服务的客户端。该算法当且仅当客户在密码、一次性令牌和条件属性有效时,云服务器允许客户使用加密或解密过程获得所需的云数据访问服务,从而获得了更高的隐私保护率。实验结果表明,与其它方法相比,提出的方法在隐私保护率、计算复杂度和身份认证精度方面均优于所对比的方法。未来的工作是通过采用不同的加密技术(即签密)来提高云计算的数据完整性和保密性。