身份鉴别的目的是向参与方证明自己的身份,而基于鉴别的结果,可以信息共享、实现授权管理和访问控制,这些在日常生活中都不可或缺。身份鉴别技术是用户数据和隐私保护的第一道防线,防止未经授权,对数据和账户的访问。
一、概念
鉴别(Authentication)常与另外两个词认证(Certification)和标识(Identification)一起被提起,三者经常被混淆使用。认证是证实某特定实体具有某种或某些属性,更进一步是证实某个属性到达一定预设程度,是三方的交易;标识是在一定范围内,唯一能够区分各个实体的命名体系或方法,标识是认证的产出,例如身份证、设备ID等;鉴别通常指身份鉴别,即,获知通信对方的身份标识并验证的过程,是两方的交易。在中文环境中,有时候也用“身份认证”来表示“身份鉴别”。进一步,有数据源鉴别,即,在通信过程中,获知数据生成方或发送方的身份标识并验证的过程。
二、身份鉴别方式
身份鉴别主要利用something you have、something you know、something you are这三个方面实现,常见的身份鉴别有口令鉴别、SocialAuthenticcation、生物特征鉴别、基于可信设备的身份鉴别和多因素身份鉴别等。口令鉴别的方式有两种,一种是熟悉的数字口令、另一种是图形口令,口令鉴别的安全性依赖于口令的保密性和复杂度,很容易遭受弱口令攻击、暴力破解攻击、涂抹攻击和肩窥攻击等。Sosial鉴别是通过关联的社交人际关系对用户进行身份鉴别,比如当微信被锁时,需要几个好友发送消息帮忙解锁,这样的鉴别方式使得这种身份鉴别方法的适用范围很小。FiDO U2F鉴别器、智能卡和早期的USB-Key等这些需要额外硬件设备的身份鉴别方式被统一归类到基于可信设备的身份鉴别。生物特征鉴别方式是利用用户独一无二的生物特征来鉴别用户身份,常见的有大家熟知的指纹、虹膜和面部识别,这些都属于生物特征鉴别里的生理特征鉴别方式。近两年,由于持续性身份鉴别逐渐受到重视,行为特征用于身份鉴别也被人熟知,虽然行为特征的身份鉴别准确率比生理特征低,但是不需要额外的硬件设备,可以持续性的鉴别也是行为特征的优势。
三、常见攻击方法
针对身份鉴别,常见的攻击类型有被动攻击、主动攻击、暴力破解攻击、字典攻击、重放攻击、中间人攻击和并行会话攻击等。
Ø被动攻击
u攻击者无法与通信任一参与方交互
u攻击者可以根据获取到的通信数据破坏通信过程
Ø主动攻击
u攻击者可以干涉通信,改变会话内容
u 攻击者可能创建、伪造、更改、替换、阻止或重放通信会话内容
Ø暴力破解攻击
u通过猜测可能构成密码的所有组合,测试密码的正确性
u 随着密码的长度增加,找到正确密码的时间开销也会逐步增加
Ø字典攻击
u相比于暴力破解攻击,字典攻击的猜测范围更精准(常见弱口令、系统/设备默认口令)
u成功率较高,因为很多人的密码习惯使用单一、简单的密码
Ø重放攻击
u恶意重复或延迟有效数据
Ø中间人攻击
u攻击者恶意重放甚至改变双方之间的通信内容,让通信双方误以为他们正在直接通信
Ø并行会话攻击
u同时执行两个或多个会话
u从一个会话中截取到的信息被用于另一个会话中
针对多个身份鉴别协议的一系列攻击,需要制定一套安全标准以避免此类攻击,我们用基本的协议来举例说明。协议2-1允许B对A进行身份验证;中间人攻击、重放攻击。协议2-2允许相互认证;A、B的动作都是相同的操作,所以很好重放,就可以让A帮攻击者解密信息。修改2-2为协议2-3,A必须证明他有能力解密当前值;B必须证明他有能力加密,入侵者不能再将一方误用为oracle“解密服务器”,但是,当A的服务器支持双向鉴别,可同时作为发起/响应方,并且每一个会话使用单独的TCP处理线程,通常而言线程之间不会相互比较,2-3会受到并行会话攻击。
协议2-3中能被并行会话攻击的原因是对N1和N2的加密操作是相同的,即N1与E(N1)的关系,和N2与E(N2)的关系相同,所以在由A启动的协议中运行的值可以用于由B启动的协议运行,不同方向的加密表达式必须是非对称的,协议2-4中,引入异或操作,作为发起方or响应方,能力/动作不一样,即N1与E(N1 xorB)的关系,不同于N2与E(N2)的关系。
但其实,2-4换汤不换药,也很容易被利用,异或操作的特性导致攻击能够成功。
四、移动设备近距离身份鉴别
这些基本协议,又是怎么用在实际应用的呢?随着移动设备用户的普及,移动设备之间的交互也越来越频繁。这些交互一般有有线和无线两种方式,使用有线进行交互要求用户在通信时必须携带数据线,且由于市场上移动设备的种类有很大差异,数据线的接口适配范围也需要考虑,可适用性较差。相比这种方式,利用无线(例如移动网络数据、wifi和蓝牙)进行移动设备之间的通信,成本低,不需要额外的硬件,是比较经济实用的通信方式。
然而,由于连接是无线的,设备之间无法确定与之相连的目标设备的身份,攻击者可以冒充目标设备与另一个目标设备通信,即身份欺诈。为了避免身份欺诈,需要对移动设备进行身份鉴别。
近距离身份鉴别中,通过邻近的共同无线电环境(RSS、CSI)来确认两个设备处于相似环境,但是该方案需要丰富的环境信号变化,可能需要配置定制的收音机来感知额外的信号。可以利用蓝牙、WiFi来测试移动设备之间的距离,证明两个设备的物理邻近性,达到两个设备之间的身份鉴别的目的,但是由于蓝牙或WiFi通讯范围是米级别的,只能实现粗粒度的身份鉴别。当两个设备近距离身份鉴别时,最常采用的是NFC技术,但是很移动设备通常没有内置NFC芯片。利用用户对移动设备的一些行为产生的行为数据对设备进行身份鉴别,结合密钥生成协议生成会话密钥,不需要任何额外硬件、也不容易受到肩窥攻击,密钥熵值也比较高,是适用范围广、经济实用的一种新兴移动设备身份鉴别方式。
2015年LiLingjun(A Proximity Authentication Systemfor Smartphones,TDSC 2015)等人提出了用于近距离移动设备在无线网络中通信时新的身份鉴别方式,主要思想是将两个移动设备并列,在屏幕上滑动手指,获得相似手指移动轨迹,利用屏幕上的传感器在两个设备上获得两组原始数据,由于两个手指在同一只手上,所以峰值之间的时间间隔比较相近,在做了大量统计分析后,得出相邻峰值之间的时间间隔在【0,130】之间,其中在【0,48】之间最为集中,而右下角这张图是两个移动设备上获得的峰值时间差对比情况,黄色条表示同一设备上获得时间差的差异,小于3的占82.97%,而在不同设备上时间差的差异是绿色条,小于3的占74.73%。这样获取到的两个设备上的原始特征即时间差无法完全相同,无法直接作为共同特征对两个设备进行身份鉴别。
因此,LiLingjun等人引入了特征协商来计算共同特征。左下角这张图就是特征协商中比较关键的一步,前面说到,两个移动设备获取的原始特征之间差值3,假设Alice的一个原始特征为ai,扩展这个特征成7个特征,构成对应特征子集,将扩展后的每个值哈希后发送给Bob,Bob把自己的特征b哈希后对比特征子集哈希,如果有相同的哈希,则留下对应的原始特征作为共同特征,发送对应的哈希给Alice,由于Alice有所有扩展特征的哈希,所以Alice也能获得收到的哈希值对应的特征值,最后,Alice和Bob获得相同的特征集。转化为字符串w,用于生成会话密钥,这密钥协商协议其实是DH密钥协商协议的变体,原始的DH很容易遭受中间人攻击,加入了字符串w后,可以有效抵抗中间人攻击。Alice和Bob就可以用协商好的会话密钥进行通信。