APP下载

可视密码安全方案在物联网应用层的研究与设计

2018-12-13韩妍妍闫晓璇

计算机应用与软件 2018年12期
关键词:令牌攻击者密码

韩妍妍 张 京 闫晓璇 李 娜

1(北京电子科技学院通信工程系 北京 100070)2(西安电子科技大学通信工程学院 陕西 西安 710071)

0 引 言

近年来,物联网作为信息时代的第三次浪潮得到了迅猛的发展。WoT,即Web of Things,Web技术作为跨平台的资源和服务共享基础框架,成为物联网实现泛在计算与异构资源共享的技术选择[2]。当前的WoT环境中存在着多种威胁,譬如:丢失身份信息、泄露个人信息以及滥用资源等,身份认证和授权是抵御这些威胁的一种重要手段[3]。

Hasan等[4]提出了一个通过委托许可结合OAuth协议的认证授权方案,但是该方案存在着无法控制令牌权限等缺陷。Google提出了一种扩展OpenID和OAuth的协议[5],但是该协议存在无法满足依赖方RP(Relay Part)和OAuth使用者不同时的认证需求。OpenID Connect协议是2014年发布的重要单点登录认证协议标准,目前该协议已经被广泛应用到WoT行业中。但是,该协议存在认证不完整以及用户口令安全性强度不够的缺陷[6]。

本文提出一种多秘密可视密码方案,通过两种叠加方式能够恢复出两个不同的秘密可视密码方案,结合OpenID Connect协议能够有效地解决该协议中认证不完整以及口令安全性强度不够的问题,也可以实现控制权限。可视密码技术可以在少量分存中隐藏多个秘密信息[7],具有技术实现简单、计算复杂度低等优点。

1 基础知识

1.1 多秘密可视密码技术

常规的可视密码方案生成的共享图像是类噪声的,以此来确保秘密信息不可读。由于无法判断所要恢复的秘密图像对应的是哪些共享图像,一旦用户持有的共享图像数量变得庞大,问题会变得更加复杂。具有标签信息的可视密码技术TVC(Tagged Visual Cryptography)将标签图像隐藏在每个共享中,通过折叠每个单个共享图像就能在视觉上显现出来。然后通过这种有意义的标签图像来识别属于特定秘密图像的共享对,从而方便用户区分管理多个类噪声共享图像。通过将标签图像设置为与每个共享图像相关联的唯一符号,以此建立对未经授权或发生欺骗行为的参与者的验证机制,凡是未经授权或有欺骗行为的共享图像,其标签图像将不能正确地恢复[8]。

1.2 图像伪装

图1 伪装后的图像

在对噪声图像进行传输时,不希望让攻击者获取实际图像的大小,因此,需要在不能改变图像原有的信息的同时对传输图像的大小进行伪装处理。本方案采用的处理方法是对原有图像进行扩大,即将原来图像的尺寸由H×W变为(H+a)×(W+b),伪装后的图像如图1所示。扩大后的图像中的H×W部分与原图重合,而多余的边缘部分随机分配二值像素0或1。这样扩大后的图像仍是噪声图,即使攻击者获取了图像,也不能轻易确定原图的大小,加大了暴力破解原图的难度[9]。而服务器和用户在对图像进行传输处理时,会提前约定好图像的大小,服务器在收到用户发来的图像之后会毫无差错地提取出原图。这种方法对于噪声图像的伪装传输是有效的,而对于有意义的图像传输需要视图像信息进行具体伪装。

2 方案的设计与实现

本文提出一种新的TVC方案,不仅具有TVC方案原有的性能,使得分享图像中可以隐藏标签图像的信息,而且恢复的秘密数量有所增加,为可视密码方案增加了更多的信息量。当对齐叠加这两个共享图像,第一个秘密图像就会出现;当把一个共享图像上下翻转再互相叠加,第二个秘密图像就能出现。方案中恢复的秘密图像和标签图像具有良好的视觉识别度[10]。

列举本方案所需要的几个角色,分别是终端用户EU(End User)、OAuth2中受信任的客户端RP(Relying Party)以及用来为RP提供EU的身份认证信息OP(OpenID Provider)。其中,OP包含令牌端点TE(Token Endpoint)、授权服务器(OAuth2服务器)以及UserInfo EndPoint,TE是主要用于令牌的生成与发送。本方案的总流程图如图2所示。

图2 方案流程

主要步骤如下:

(1) RP向OP发送一个请求认证;

(2) OP通过使用多秘密可视密码技术对EU进行身份认证,并进行授权;

(3) OP将ID Token和Access Token返回给RP;

(4) RP使用Access Token发送一个令牌请求;

(5) 令牌响应。

2.1 多秘密可视密码方案构造

假设有两个大小为H×W的秘密图像S1和S2,还有两个将要被加密为分享图像的大小为H/2×W的标签图像T1和T2,即标签图像的大小与秘密图像对折之后的大小相同。经过方案的加密过程,将会产生两个共享图像。当直接对齐叠加两个共享图像时,秘密图像S1将会显示,将其中一个共享图像上下翻转,再相互叠加,此时将恢复出秘密图像S2。另外,对于每个共享图像,沿着图像的横向对称轴上下对折,将会分别呈现出隐藏的标签图像。

仿真实验如图3所示。加密过程分为如下几个阶段:第一步利用(2,2)随机栅格技术[2],将给定的两个秘密图像S1和S2(图3(a)(b))加密成一组过渡图像G1、G21和G22。第二步,将标签图像加密成两个过渡图像L1和L2。最后,将5个过渡图像G1、G21、G22和L1、L2组合起来形成最终的共享图像F1和F2(图3(e)(f))。

(a) 秘密图像S1 (b) 秘密图像S2

(c) 标签图像T1 (d) 标签图像T2

(e) 共享图F1 (f) 共享图像F2

(g) F1叠加F2(h) F1与上下翻折的F2叠加

(i) 恢复F1的标签图像 (j) 恢复F2的标签图像图3 恢复后的图像q=0.5

步骤1根据秘密图像S1和S2利用(2,2)随机栅格技术[8]生成过渡图像G1、G2。对共享图像G1中的某个像素G1(i,j)以相同的1/2的概率进行随机取0(白色)或1(黑色)的操作,直至全部像素G1(i,j)都被处理。分别将S1和S2和G1按照(2,2)随机栅格技术生成过渡G21和G22,再将G22经过上下翻转得到G22’。随机生成一个数k且0≤k≤1。如果k≤1/2,则将像素G21(i,j)分配给G2(i,j),否则将G22’(i,j)分配给G2(i,j),直到所有像素处理完。

步骤2根据标签图像T1和T2(图3(c)(d))生成过渡图像L1和L2。先按照(2,2)随机栅格技术将Tx(x=1,2)生成两个过渡图像Cx1和Cx2,再将Cx2上下翻转再与Cx1上下拼接起来,形成Lx,其中x=1,2。

步骤3将过渡共享图像Gx(x=1,2)和Lx(x=1,2)组合为最终共享图像Fx(x=1,2)。给定一个概率值p,再随机生成一个数q且0≤q≤1。如果q≤p,则将像素Gx(i,j)分配给Fx(i,j),否则将Lx(i,j)分配给Fx(i,j)。

方案的解密过程只需要通过简单的叠加及翻转。当叠加分享图像F1和F2,秘密图像S1即可恢复(图3(g));将F1与上下翻转过的F2记为F2’相互叠加,秘密图像S2即可恢复(图3(h))。并且通过将共享图像按其横向对称轴进行对折,就可看到隐藏在共享图像中的标签图像(图3(i)(j))。

2.2 整体方案设计

2.2.1 认证请求

RP要获取EU在OP上的私有数据,首先向OP发送身份认证请求信息。该请求消息包括client_id、response_type、scope、redirect_uri和state这五种重要参数。其中:client_id是指客户端的id;response_type是指授权方式的响应类型;scope是指访问阈值;redirect_uri是指重定向地址;state表示请求和反馈之间的状态值。

2.2.2 向认证及授权

Authorization Server首先判断来自RP发送的请求信息中client_id的有效性,如果无效则停止认证。如果有效则Authorization Server产生认证EU的请求消息。EU将一张随机栅格图像g和注销认证码存储起来,同时,自动生成临时随机数N。再根据自己的ID生成对应的标志图像TUSER,根据随机数N生成对应的随机数图像SN。将图像SN和TUSER作为两个秘密图像,将图像g作为其中的一个分享图像,利用之前的多秘密可视密码算法,加密生成对应另外一个分享图像F1。将F1的大小进行伪装后和ID一起发送给Authorization Server。

Authorization Server先判断ID的有效性,如果无效就停止认证。如果有效,则Authorization Server根据ID找到对应的图像g,从伪装的F1图像中提取出真正的F1图像,将g与F1进行叠加;从恢复的第一个秘密图像中读取EU标志信息ID,并验证与Authorization Server发送的ID是否一致。再将F1上下翻转后再与g叠加,从恢复的第二个秘密图像中读取用户发送的随机数N。以上过程完成了Authorization Server对EU的认证。

Authorization Server将图像SN和自己的标志图像TSERVER作为两个要隐藏的秘密图像,将EU的分享图像g作为其中的一个分享图像,加密生成对应的分享图像F2。然后将图像F2进行大小伪装后发送给EU进行验证。

当EU收到伪装图像F2,先提取出真正的F2,将其与g进行叠加,从恢复的第一个秘密图像中读取标志信息,并验证与此时通信的服务器是否一致。再将F2进行翻转后再与g叠加,可从恢复的第二个秘密图像中读取用户发送的随机数N,并验证是否与Authorization Server此次会话发送的随机数一致。如果都一致,则这一过程完成了EU对Authorization Server的认证。

双向认证之后,再发送授权验证码。EU将随机数N+1生成图像SN+1,以图像g作为一个分享图像,再利用(2,2)随机栅格可视密码算法,生成另一个分享图像F3,将F3大小伪装处理后发送给Authorization Server。Authorization Server收到伪装大小的图像F3,从中提取出真正的F3,与分享图像g直接叠加,验证收到的图像信息,如果是N+1,可确认是刚才会话的EU,则开始分发授权验证码。Authorization Server随机生成会话密钥m,再生成对应的验证码图像Sm,然后将图像SN+1和图像Sm作为两个要隐藏的秘密图像,将EU的分享图像g作为其中的一个分享图像,利用所构造的多秘密可视密码算法,加密生成对应的分享图像F4。将图像F4进行大小伪装处理后返回给EU。

当EU收到大小伪装后的F4,从中提取出真正的F4,将其与g进行叠加,从恢复的第一个秘密图像中读取随机数,并验证是否是N+1以确保发送密钥的Authorization Server是会话的服务器,没有被第三方欺骗。如果不是,则拒绝会话。如果是,将F4进行旋转再与g叠加,可从恢复的第二个秘密图像中读取授权验证码信息m,此时需要用户将验证码m手动输入,会在客户端生成对应的图像。此时的文字不再是扭曲的,以便Authorization Server可以自动识别。EU将验证码图像和随机数N+2当作两个秘密,以g为分享图像,用同样的算法加密生成另一个分享图像F5发送到Authorization Server。最后Authorization Server验证收到的随机数是否等于N+2,以及验证码是否等于m,如果相等,则EU产生一个授权消息End_user grant给Authorization Server。认证和授权过程如图4所示。

图4 认证流程

2.2.3 认证响应

Authorization Server收到EU的授权消息之后,将包含有授权码code和身份令牌id_Token的认证响应消息生成分别包含授权码code和令牌id_Token的两个图像S1和S2。然后通过之前提到的多秘密可视密码构造方案进行加密处理,发送给RP。

2.2.4 令牌请求

RP收到秘密图像之后,先进行解密处理,获取到授权码code。然后检查授权码是否合格,验证成功之后,生成一个令牌请求。该请求消息中包含了4个主要参数,分别是code、client_id、radirect_uri、RP和OP公用的随机栅格图像g。其中,RP需要用授权码code换取访问令牌Access Token。最后RP将令牌请求(Token Request)发送给OP。

2.2.5 令牌响应

当OP收到令牌请求消息之后,首先验证授权码和时间戳,验证成功之后,产生令牌响应消息Token Response。其中,令牌响应消息中包括4个主要参数:Access Token、token_type、id_token以及express_in(Access Token的生命周期)。

3 性能分析

3.1 可行性分析

在本协议中主要运用了(2,2)双秘密可视密码算法进行秘密信息的传递。EU和授权服务器具有公共的分享图像,双方根据要传递的秘密图像和公共分享图像g,使用本节的多秘密可视密码算法,加密生成另外一个分享图像。通过传递该分享图像来秘密传输各自的标志图像信息、随机数信息及验证码信息进行判断及认证,并且从每个分享图像不会得到原始秘密图像的任何信息。当对两个分享图像进行叠加,就能显示出原始的标志图像、随机数图像以及验证码图像,双方均通过传送各自的标志图像实现了相互认证。在每次交互式通信过程中一项重要的安全防护措施就是对随机数信息的传递,协议全程以此随机数为主线,保障了认证过程中一定是此次会话中的合法用户及合法服务器,增加了认证的安全性。在协议交互认证的最后,服务器向用户发送了只有人类视觉系统能识别的验证码,确保了人类的参与,避免使用计算机代理技术自动登录代替用户采取行为。

3.2 安全性分析

3.2.1 冒充攻击

假设攻击者猜测到一个合法的用户ID并伪造出一个随机数N,试图生成一张分享图像发送给服务器。然而用户能够生成一张合法的分享图像的前提是具有用户和服务器共享的分享图像g,而攻击者在知道分享图像真实大小的前提下猜测成功的概率为(1/2)H×W。若攻击者截获到用户发送给服务器的分享图像F1,企图模拟合法服务器,此时攻击者需要生成分享图像F2,而F2是由服务器的标志图像及随机数N还有共享合法图像g所确定。由于攻击者只有F1,从中无法推出随机数信息,也没有共享图像g的信息,即使伪造服务器的标志图像也无法通过用户的验证[11]。因此,冒充攻击是无法实现的。

3.2.2 重放攻击

对于每个新的登录请求,本协议生成不同的随机数N。如果攻击者获取到上一次认证中用过的F1,并将其转发给服务器,即使攻击者收到服务器返回的F2,没有用户和服务器的共享图像g,攻击者也无法解密此次会话中的随机数N,也无法构造F3继续向服务器请求验证码图像,因此可有效抵制重放攻击。

3.2.3 中间人攻击

假设攻击者通过各种技术手段,可以截取用户和服务器之间的通信信息,并试图修改信息进行欺骗。当攻击者获取用户发送给服务器的F1,由于F1是噪声图像,无法得到任何相应的秘密信息,能够成功解密的唯一途径就是具有用户和服务器的共享图像g。但此共享图像g并没有在认证过程中进行传输,攻击者获取的任何信息都无法解密,也无从伪造后续传递的信息,因此在第三步服务器要确认随机数N+1时就会被拒绝,所以中间人攻击也会失败。

3.2.4 口令猜测攻击

本方案中的认证协议的安全性很大程度上决定于用户与服务器之前的共享图像g,一旦图像g遭到成功的猜测,则攻击者将会完成控制整个认证过程。但要猜测出正确的共享图像g具有两大问题:(1) 因为在信道中传输的图像的大小是经过伪造的,而且每次的大小都是不同的,所以攻击者无法确定共享图像g的大小。(2) 即使攻击者确定了共享图像的大小,假设其尺寸为128×128,则能够成功暴破的概率为(1/2)128×128。综合这两种因素,试图猜测共享图像g也基本无法成功。

3.3 效率分析

本文设计的认证授权协议中采用的加密方法主要是基于随机栅格的多秘密可视密码算法,而常规身份认证协议中采用的加密方法主要有对称加密算法如AES和非对称加密算法如RSA。本文采用的基于随机栅格的可视密码算法基于图像像素点的逻辑运算,AES算法基于数据的排列和置换,而RSA算法基于大数分解,三种算法的计算复杂度依次升高。为了对这三种算法进行定量分析,本文对它们的加解密速度进行测试,即同时加密相同长度的明文,比较三种算法完成加密及解密所消耗的总时间如表1所示。

表1 三种密码算法对比图

文献[12]除了运用可视密码方案,还用到对称加密算法和MAC消息验证码,相较而言,本文的认证效率相对较高。文献[13]使用公钥对方案中的图像密钥进行更新,而本方案只是重新生成随机栅格实现密钥的更新,在计算成本上有所减小。与文献[14]相比,两个方案都用到随机数发生器,但文献[14]使用消息验证码对消息进行验证,而本方案使用随机数N来实现验证功能,确保消息没有被篡改,效率更高。

综上,本文提出的结合多秘密可视密码方案的OIDC协议能够有效完成EU与服务器之前的双向认证,并能抵抗常见的攻击,具有良好的安全性能。另外,相比于常规的现代密码算法更加简单,易于实现,而且加解密速度更快。此方案在WoT下可以节省更多开销,提高计算性能。

4 结 语

OIDC协议使用安全传输层协议等来保证其安全性,但是,部署安全传输层协议需要很大且十分复杂的开销,大大降低了通信的效率。同时,该协议在EU和授权服务器的双向认证上,假设攻击者获取到相关参数进行攻击会使得双方失去相互认证性。并且,攻击者能够截取到用户口令,这使得用户口令失去秘密性。本方案采用多秘密可视密码技术,其保证在少分存的前提下,安全有效地完成EU和授权服务器的双向认证,其中未涉及到用户口令,从而保证了用户口令的秘密性。本方案在交互过程中可以一次传递两个互相制约的秘密信息,而且每次交互过程中通过随机数信息来保证会话的一致性,增强方案的安全性能。此外本方案的登录验证码可以防止机器暴力破解。可行性、安全性和效率分析表明了本协议能够提供有效安全的认证和授权功能,此方案不仅在运行效率上具有优势,而且安全性也具有保障。

猜你喜欢

令牌攻击者密码
基于贝叶斯博弈的防御资源调配模型研究
密码里的爱
称金块
基于路由和QoS令牌桶的集中式限速网关
一种高精度均匀取样算法及其网络应用
密码抗倭立奇功
正面迎接批判
正面迎接批判
密码藏在何处
夺命密码