有关匿名协议的基本概念整理
匿名身份认证的基本概念
匿名性
广泛存在于通信、认证等领域的安全需求,指系统中的某些信息对除了相关实体之外是不确定的或无关联性的。
过程 | 匿名性 |
---|---|
发送方 | 发送者的匿名性 |
通信信道 | 通信关系的匿名性 |
接收方 | 接收者的匿名性 |
消息集合 | 消息间的无连接性 |
通过可信第三方实现匿名
前提:认证服务器完全信任可信第三方的判断。
在身份认证的场景中,若用户 A 想实现对认证服务器的匿名认证,用户 A 可以将自己的身份信息发送给可信第三方,可信第三方在确认用户 A 的身份信息后,判断其是否为合法用户,然后将判断结果直接发送给认证服务器。认证服务器无法知道用户 A 的真实身份,但是可以获知该用户是否为合法用户,进而决定是否为用户 A 提供服务。
假名
用户在方案场景中不使用自己的真实身份,而通过使用假的身份参与方案的执行,是实现匿名性的一种方法。在使用假名实现匿名时,若用户长时间使用同一假名,那么这一假名会由用户的各种行为产生稳定的关联性,容易被攻击者发现这种 关系,破坏用户的匿名性。
关联性
关联性是指系统中实体的某一行为或信息导致的该行为或信息与方案实体间的联系。
例如,
在通信系统中,用户 A 将信息 M 发送给用户 B,那么信息 M 与用户 A 和用户 B 都具有关联性,用户 A 是信息 M 的发送者,用户 B 是信息 M 的接收者,用户 A 和用户 B 通过信息 M 实现了一次通信。
打破实体与信息、行为间的关联性是实现匿名性的一种方式。
例如
打破信息 M 与用户 A 和用户 B 间的关联,我们就无从得知信息 M 的发送者及接收者,也不能推断用户 A 和用户 B 是否建立通信连接,由此实现通信的匿名,如下图所示。
身份认证
- 两个实体:一是提出认证请 求的用户 ,二是认证服务器;
- 两者在交互过程中传递的内容称为认证消息。
- 研究内容:如何实现用户和认证服务器间的安全认证,即保证认证过程中交互信息的可用性、不可否认性及完整性
匿名身份认证
内容 | 说明 |
---|---|
定义 | 用户在认证过程中不希望自己的身份及认证信息被其他用户或攻击者得到,甚至对认证服务器也实现匿名 |
通攻击目的 | 获取匿名认证用户的真实身份及其认证信息,包括认证时间、认证地点,以分析得到用户的行为习惯或破坏用户的正常认证 |
无线网络中用户的身份认证的基本思想
验证用户是否具有真实有效的能证明其身份的信息,进而防止非法用户接入网络。为了实现身份认证的匿名性,不允 许用户将自己的身份标识以明文方式在与认证服务器的交互过程中传递。
基于共享密钥的匿名身份认证下的技术研究
假名认证
在用户无需向认证服务器匿名的情况下, 用户可以和认证服务器协商出一种更换假名的方法,并确保用户和认证服务器存储的假名同步。
两个问题
- 设计假名的更新算法时需要确保每一个假名只能唯 一确定一个用户,防止假名冲突的情况出现 ,影响认证服务器对用户的认证。
- 确保用户的不同假名之间不具有关 联性,防止攻击者根据用户某次使用的假名,推测出用户以前使用的假名或以后可能会使用的假名,从而导致攻击者可以追踪用户的假名,泄露用户的身份和认证信息。
攻击者模型的基本概念
Dolev-Yao模型
主动攻击
攻击者先窃听通信线路获取信息再尝试破解获取到的信息。
模型攻击者假设
假设 | 说明 |
---|---|
1 | 攻击者可以窃听网络传输中的消息,也可以截获这些消息。 |
2 | 攻击者可以存储从网络中截获的信息,也可以自己构造信息。 |
3 | 攻击者可以发送从网络中截获的信息,也可以发送自己构造的信息。 |
4 | 攻击者可以作为一个合法的用户参与协议的运行。 |
经典的攻击方式:窃听攻击、假冒攻击、重放攻击
攻击者目的
目的 | 说明 |
---|---|
伪装成其他用户进行身份认证 | 当攻击者想通过身份认证获得自己本无权获得的服务时 ,通过伪装成有权使用该服务的用户完成身份认证,获得服务 |
阻碍其他用户的身份认证 | 攻击者可以通过破坏认证流程,阻止用户的正常的身份认证 |
加强的Dolev-Yao模型
求交集攻击
连续查询的用户不断地向数据库服务器提交自己 的位置信息,即使用户将一个查询的精确位置隐匿成一个 区域,攻击者还是可以通过把连续时间内的多个查询快照相联系,进而辨别出提出查询的用户。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zutGwZ8S-1631240580348)(/Users/jiangpeifeng/Library/Application Support/typora-user-images/image-20210826050813924.png)]
在匿名认证的应用场景中,用户在每次认证的时候可以发送自己构造的 k-假名集来实现匿名认证。攻击者可以截获用户 的多次认证 信息,并可以将这些信息相关联做进一步的处理和分析,发起求 k-假名集交集攻击。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q5WtN1gc-1631240580350)(/Users/jiangpeifeng/Library/Application Support/typora-user-images/image-20210826051016583.png)]
攻击者能力
对于增强Dolev-Yao模型,其攻击者的能力具有如下定义:
定义 1. 加强的 Dolev-Yao 模型. 在该攻击模型下,攻击者不但具有 Dolev-Yao模型中规定的攻击能力,而且还拥有发起求交集攻击的能力。
攻击者发起求交集攻击的目的是获取匿名认证中进行认证的用户的真实身份。
基于 k-假名集合的用户匿名身份认证协议
三个问题
- 如何实现用户的身份匿名
- 如何确保用户身份认证的安全性
- 如何高效的实现用户的匿名身份认证
交互过程
用户与认证服务器进行四步交互,最后双方按照同一个计算公式生成相同的会话密钥。
-
Step1:用户向认证服务器发送匿名认证请求,认证请求为长度为 32 比特的字符串。
-
Step2:认证服务器收到用户的认证请求后,生成随机数 N1,发送给用户。
-
Step3:用户在接到 N1 后,首先生成一个随机数 N2,然后计算 M1。在 M1 的计算中,需要哈希运算的内容包括 k 个用户身份标识,这样主要是为了防止攻击者修改或利用本次交互过程中明文传输的 k-假名集合。
M 1 = H M A C ( N 1 ∣ ∣ N 2 ∣ ∣ C ∣ ∣ K e y ∣ ∣ k I D s ) M1 = HMAC(N_1 || N_2 || C || Key || kIDs) M1=HMAC(N1∣∣N2∣∣C∣∣Key∣∣kIDs) -
Step4:认证服务器接收到来自用户的消息后,按照 k-假名集合中用户标识的先后顺序依次在数据库中查询用户对应的共享密钥,并计算对应的 M1’ . 并验证M1’是否等于M1, 如果 M1’ 等于 M1,则认证服务器可以确定 C 即为真实用户的身份,计算M2。
M 2 = H M A C ( N 2 ∣ ∣ K e y ) M2 =HMAC(N2 || Key) M2=HMAC(N2∣∣Key)认证服务器将M2发送给用户。用户利用上述公式计算并判断是否与认证服务器发送的 M 结果一致。完成认证后,双方生成会话密钥。
S K = P R N G ( K e y ⊕ N 1 ⊕ N 2 ) SK=PRNG(Key⊕N1⊕N2) SK=PRNG(Key⊕N1⊕N2)
K-假名用户标识集的形成方法
模型 | 方法 | 优点 | 不足 |
---|---|---|---|
Dolev-Yao | 由用户自己生成其他k-1个用户标识 | k-假名集合完全由用户自己来生成,比较容易实现 | 如果攻击者具有一定背景知识,它能够以较大概率从形成的k-假名集合中推断出真实认证的用户 |
可以根据不同的隐私需求来适应性的调整k值的大小 | 如果用户自己所伪造的k-假名集合不恰当,会给网络的带来较大的开销 | ||
无需认证服务器辅助,避免认证服务器的资源消耗 | |||
由认证服务器为用户统一分配形成k-假名集合时所需要的其他k-1个用户 标识 | k-假名集合的构造完全交给认证服务器来完成,用户不用关心如何构造合适的假名 | 形成 k - 假名集合需要认证服务器的参与,增 加了认证服务器的负担,服务器资源消耗过多会严重影响方案的性能 | |
认证服务器了解假名的构造规则,其构造的假名同真实认证的 用户身份具有一致性,可以避免由用户随意构造所带来的问题 | |||
加强的 Dolev-Yao 模型 | 由用户自己生成其他k-1个用户标识。用户在每次认证时 须使用相同的k-假名集合,即保证假名集合的用户数量k值相同以及集合内的用户保持不变 | ||
由认证服务器为用户统一分配形成k-假名集合时所需要的其他k-1个用户标识,用户每次匿名认证时必须使用相同的假名集合 |
方案安全性分析及性能分析
安全性影响因子
因子 | 解释 | 本协议 |
---|---|---|
匿名成功率 | 这 里的匿名主要是指在用户身份认证过程中,用户的身份对于其他合法用户或攻击者保持匿名, 不包括认证用户对于认证服务器的匿名 | |
双向认证 | 认证服务器对用户的认证可以防止攻击者的假冒攻击或针对认证服务器发起的拒绝服务攻击等攻击。用户 对认证服务器的认证可以防止攻击者伪装成合法的认证服务器获取用户的身份信息,甚至窃取用户的隐私信息 | |
前项保密性和后向保密性 | 前向保密性可 以保证攻击者即使获得了此次的会话密钥 ,也无从推断之前会 话的密钥,不能获取用户之前的认证信息;后向保密性可 以确保攻击者即使获得了此次会话的密钥 ,因为下次会话中用户和认证服务器 会协商新的会话密钥 ,攻击者也无法推断出以后的会话密钥 | |
抗别名去同步攻击 | 去同步攻击主要是攻击者通过妨碍用户和认证服务器存储的用户假名或别名的同步导致用户无法实现匿名认证。需要更新别名的匿名身份认证方案中一般通过存储当次以及上次认证中用户的别名以及密钥来抵抗去同步攻击 | |
抵抗重放攻击 | 重放攻击是指攻击者将以往的交互信息用于身份验证的过程中欺骗用户或认证服务器以达到破坏认证的目的。抵 抗重放攻击需要在认证过程中验证消息的新鲜性,防止攻击者利用以前的信息进行破坏 | |
抵抗假冒攻击 | 攻击者假冒成用户, 向服务器提出认证请 求,以达到某些攻击目的;攻击者假冒成认证服务器,企图 获得认证用户的信任,窃取用户隐私信息。 |