家庭网络中基于HOTP的用户认证方案
1. 引言
如今,家庭网络成为研究的重点领域之一。它能让居民通过互联网远程控制家中的信息家电和设备,比如在办公室用手机开关家里的燃气灶。不过,家庭网络存在诸多安全隐患,因其由多种有线/无线介质和协议构成,易遭受网络攻击,且家用信息设备计算能力有限,难以构建完善的安全功能。而家庭网络服务包含私人信息,甚至涉及医疗保健等直接影响生活的服务,所以网络攻击可能侵犯用户隐私,威胁用户生命安全。因此,家庭网络需要强大的安全服务,尤其是远程用户认证。
在现代互联网时代,用户认证无处不在,密码认证是常用的远程用户认证方式。为防止开放网络环境中的窃听攻击,许多现代密码认证方案采用一次性密码(OTP),OTP是保障网络访问安全的简单且流行的双因素认证形式。本文提出一种基于HMAC的OTP(HOTP)算法的认证协议,适用于家庭网络环境。
2. 相关工作
基于密码的认证方案是远程用户认证最广泛使用的方法,可分为弱密码和强密码两种类型。目前已提出许多基于一次性密码的认证方案,其目的是增加非法访问受限资源的难度。
有研究提出基于OTP协议和智能卡的家庭网络用户认证方案,既能防止非法访问家庭服务,又能避免合法用户的不必要服务访问。HMAC-Based One-Time Password Algorithm (HOTP) 基于HMAC - SHA - 1算法,在HMAC计算中使用递增的计数器值表示消息。本文提出了一种基于HMAC的OTP算法的新型用户认证方案,具有更好的安全特性。
3. HOTP:基于HMAC的一次性密码算法
在客户端和服务器端,选择用于生成验证码的算法只要能提供足够的安全性且便于用户使用即可。本文选择了基于计数器的HOTP算法,该算法相对容易实现且满足可用性要求。
HOTP算法基于单调递增的计数器值和客户端与服务器端共享的静态对称密钥。使用HMAC - SHA - 1算法创建HOTP值,每个客户端有一个唯一的共享密钥,通常为128位或160位。共享密钥与递增的计数器结合生成当前验证码,HOTP的计算公式为:
HOTP(K,C) = Truncate(HMAC - SHA - 1(K,C))
其中,Truncate是将HMAC - SHA - 1值转换为HOTP值的函数,密钥(K)、计数器(C)和数据值按高位字节优先进行哈希处理。
实际的HOTP算法相对容易理解。首先,使用共享密钥初始化SHA - 1 HMAC生成器;然后计算当前计数器的HMAC;接着通过动态截断过程从HMAC中提取特定字节;最后,将这些字节对10^n取模(n为验证码所需的位数)得到当前验证码。
为使客户端向服务器端认证,双方必须生成相同的验证码,这就要求客户端和服务器端的计数器同步。当计数器不同步时,需要进行重新同步。HOTP算法有两种重新同步机制:一是客户端将计数器值发送给服务器端,服务器端只需验证新计数器值是否大于当前计数器值;二是服务器端维护一个未来验证码的前瞻窗口,如果客户端提供的验证码在该窗口内,服务器端会要求用户生成下一个验证码并发送,若两个连续的验证码匹配,服务器端将进行重新同步。本文项目选择使用前瞻窗口以遵循行业惯例。
4. 基于HOTP的用户认证方案
本文提出一种基于HOTP算法和智能卡的高效远程密码认证方案,其安全性依赖于安全的HMAC函数和加密技术,使用随机数避免重放攻击和时间同步问题。该方案的相关符号说明如下表所示:
| 符号 | 描述 |
| — | — |
| IDC | 用户标识符 |
| IDIAS | IAS标识符 |
| PIN | 用户PIN识别号 |
| x | 远程系统维护的密钥 |
| h(.) | 单向哈希函数 |
| ⊕ | 异或运算 |
| ∥ | 连接运算 |
| Hi(K, C) | 第i个基于HMAC的一次性密码 |
| CX | 8字节计数器值,移动因子(C - 客户端,S - 服务器,M - 最大允许值) |
| K | 客户端和服务器之间的共享密钥 |
| SK | 会话密钥 |
| KIAS−HG | IAS和HG之间的对称密钥 |
| T | 时间戳 |
| EKX(M) | 用KX对消息M进行加密 |
该方案包括注册阶段、登录/认证阶段和服务请求阶段,对家庭网络的开销较小。用户在登录和认证阶段通过安全通道将HOTP操作所需信息传输给集成认证服务器(IAS),IAS将所需信息写入智能卡并发放给用户。用户在注册阶段可自行选择PIN,IAS不存储每个用户的密码表,而是存储用户标识的单向抗碰撞哈希函数。服务订阅者在访问家庭网络服务时需要IAS和家庭网关服务器(HG)之间的相互认证,并且在授予特权服务时能够进行服务访问控制。用户通过单点登录(SSO)进行认证后,无需额外认证即可访问其他家庭服务。
4.1 注册阶段
用户向远程系统提交身份和PIN进行注册:
1. 用户将IDC和PIN发送给IAS。
IAS收到注册请求后执行以下操作:
1. 计算vT = h(IDC ⊕ x)
2. 计算eT = vT ⊕ h(IDC ∥ PIN)
3. 保存IDC和h(IDC ∥ PIN)
4. 将h(.)、eT、K、CM写入智能卡
5. 安全地将卡发放给用户
4.2 登录/认证阶段
用户登录远程系统时,需插入智能卡并输入IDC和h(IDC ∥ PIN),智能卡执行以下操作:
1. 生成当前HOTP:Hi(K,CC) = HOTP(K, CC, h(IDC ∥ PIN))
2. 将CC增加到CC + 1
3. 计算G = h(eT ⊕ Hi(K,CC))
用户将ID∗C和G发送给IAS服务器。
IAS收到认证请求后执行以下操作:
1. 检查ID∗C
2. 用CS计算Hi(K,CS) = HOTP(K, CS, h(IDC ∥ PIN))
3. 用收到的ID∗C计算v′T = h(ID∗C ⊕ x)
4. 计算G′ = h(v′T ⊕ h(IDC ∥ PIN) ⊕ Hi(K,CS))
5. 检查Hi(K,CC) = Hi(K,CS)且G′ = G是否成立
6. 若两个等式都成立,则将CS增加到CS + 1
7. 计算K1 = h(Hi(K,CS) ∥ K)
8. 生成随机数K2作为共享密钥
9. 计算SK = h(K1 ∥ K2 ∥ T)和AS = h(SK ∥ IDC)
10. 计算EK1(IDC, IDIAS, K2, AS, T)和EKIAS−HG(IDC, IDIAS, K2, K1, T)
11. 将认证响应EK1(IDC, IDIAS, K2, AS, T)和认证票据EKIAS−HG(IDC, IDIAS, K2, K1, T)发送给用户
用户执行以下步骤:
1. 计算K1 = h(Hi(K,CC) ∥ K)
2. 用K1解密EK1(IDC, IDIAS, K2, AS, T)得到K2
3. 计算S′K = h(K′1 ∥ K2 ∥ T)和A′S = h(SK ∥ IDC)
4. 检查A′S = AS是否成立以验证认证响应
4.3 服务请求阶段
认证后的用户可向HG请求家庭服务:
1. 用户将EKIAS−HG(IDC, IDIAS, K2, K1, T)和ESK(IDC, service_req)发送给HG。
HG收到服务请求后执行以下操作:
1. 用KIAS−HG解密EKIAS−HG(IDC, IDIAS, K2, K1, T)得到K2、K1和T
2. 计算SK = h(K1 ∥ K2 ∥ T)
3. 用会话密钥SK解密ESK(IDC, service_req)
4. 验证认证票据和服务请求中的IDC
5. 将ESK(K1 ∥ T)发送给用户
用户通过以下过程认证HG:
1. 用会话密钥SK解密ESK(K1 ∥ T)
2. 验证K1和T
5. 方案分析
5.1 方案特点
本方案具有以下重要特性:
-
用户自由选择PIN
:用户可以自由选择自己的PIN,而非由系统决定。
-
无需时间同步
:与基于时间戳的认证方案不同,本方案基于计数器和随机数,无需系统和用户计算机时钟同步,也不受登录消息传输延迟时间的限制。
-
服务器认证
:在本方案中,没有(K, C)的非法服务器无法欺骗用户登录其系统。因为它无法获得特定用户的正确HOTP,用户可通过验证AS′ = AS终止登录过程,还可通过验证K1来认证HG。
-
会话密钥协商
:每次会话都会生成用户和远程系统协商的会话密钥。
-
低通信成本
:由于使用了HOTP算法,通信成本相对较低。
此外,本方案还能提供OTP的重新同步功能。当客户端和服务器端的计数器不同步时,HOTP算法会使用前面提到的两种机制进行重新同步。与Jeong等人的方案相比,本方案在功能上的对比如下表所示:
| 特性 | Jeong等人的方案 | 本方案 |
| — | — | — |
| 用户自由选择PIN | 是 | 是 |
| 无需时间同步 | 是 | 是 |
| 服务器认证 | 是 | 是 |
| 会话密钥协商 | 是 | 是 |
| 低通信成本 | 是 | 是 |
| OTP重新同步 | 否 | 是 |
5.2 方案安全分析
本方案假设IAS和HG之间共享对称密钥,并且在家庭网络外部存在可信的IAS,它管理家庭网关、认证用户、授予特权并控制计费。HG和用户之间的认证通过IAS授予的认证票据实现,用户在认证票据有效期内无需每次请求服务时都登录。
- 窃听攻击 :本方案能抵抗窃听攻击,因为所有重要消息如认证响应、认证票据、服务请求和服务响应分别用K1、对称密钥和会话密钥进行加密。
- 重放攻击 :发送给IAS的HOTP使用基于计数器的HMAC - SHA1计算,攻击者在截获用户密码后无法重放密码到认证服务器。
- 中间人攻击 :本方案基于HMAC一次性密码协议,攻击者无法重用用户的验证码,因为每次登录和认证请求时验证码都会改变,且消息经过加密,攻击者无法修改消息。
- 拒绝服务(DoS)攻击 :本方案使用基于HMAC的OTP作为验证码,保护用户的认证消息,且HOTP在每次登录和认证阶段都会改变,因此能防止DoS攻击。
- 被盗验证器攻击 :在注册阶段,用户和认证服务器共享HOTP操作所需的共享密钥,因此本方案是安全的。即使攻击者从IAS服务器获取了h(IDC ∥ PIN),也很难获得HOTP操作所需的HOTP值,因为认证数据通过HMAC函数计算。
- 相互认证 :本方案使用三方挑战 - 响应握手协议提供相互认证。认证服务器向用户传输认证数据(认证票据),用户检查时间戳T,若T值允许,则成功认证认证服务器。
6. 结论与未来工作
家庭网络的主要服务是提供对家电的远程控制访问,但该服务也带来了重大安全威胁。为提供安全的远程访问,本文提出了一种适用于家庭网络环境的简单认证方案。该方案基于HOTP算法,使用低成本智能卡,所需通信成本低,能为家庭网络提供高安全性,还能防止家庭网络内外的非法访问。
未来,将对本方案与现有代表性方案进行详细的性能评估,并对本方案进行形式化分析。
家庭网络中基于HOTP的用户认证方案
7. 方案流程可视化
为了更清晰地展示基于HOTP的用户认证方案的流程,下面给出mermaid格式的流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(注册阶段):::process
B --> B1(用户发送IDC, PIN到IAS):::process
B --> B2(IAS计算vT = h(IDC ⊕ x)):::process
B --> B3(IAS计算eT = vT ⊕ h(IDC ∥ PIN)):::process
B --> B4(IAS保存IDC, h(IDC ∥ PIN)):::process
B --> B5(IAS写入h(.), eT, K, CM到智能卡):::process
B --> B6(IAS发放智能卡给用户):::process
B6 --> C(登录/认证阶段):::process
C --> C1(用户插入智能卡并输入IDC和h(IDC ∥ PIN)):::process
C --> C2(智能卡生成当前HOTP: Hi(K,CC) = HOTP(K, CC, h(IDC ∥ PIN))):::process
C --> C3(智能卡将CC增加到CC + 1):::process
C --> C4(智能卡计算G = h(eT ⊕ Hi(K,CC))):::process
C --> C5(用户将ID∗C和G发送给IAS服务器):::process
C --> C6(IAS检查ID∗C):::process
C --> C7(IAS用CS计算Hi(K,CS) = HOTP(K, CS, h(IDC ∥ PIN))):::process
C --> C8(IAS用收到的ID∗C计算v′T = h(ID∗C ⊕ x)):::process
C --> C9(IAS计算G′ = h(v′T ⊕ h(IDC ∥ PIN) ⊕ Hi(K,CS))):::process
C --> C10{Hi(K,CC) = Hi(K,CS)且G′ = G?}:::decision
C10 -->|是| C11(IAS将CS增加到CS + 1):::process
C11 --> C12(IAS计算K1 = h(Hi(K,CS) ∥ K)):::process
C12 --> C13(IAS生成随机数K2作为共享密钥):::process
C13 --> C14(IAS计算SK = h(K1 ∥ K2 ∥ T)和AS = h(SK ∥ IDC)):::process
C14 --> C15(IAS计算EK1(IDC, IDIAS, K2, AS, T)和EKIAS−HG(IDC, IDIAS, K2, K1, T)):::process
C15 --> C16(IAS发送认证响应和认证票据给用户):::process
C16 --> C17(用户计算K1 = h(Hi(K,CC) ∥ K)):::process
C17 --> C18(用户用K1解密EK1(IDC, IDIAS, K2, AS, T)得到K2):::process
C18 --> C19(用户计算S′K = h(K′1 ∥ K2 ∥ T)和A′S = h(SK ∥ IDC)):::process
C19 --> C20{用户验证A′S = AS?}:::decision
C20 -->|是| D(服务请求阶段):::process
D --> D1(用户将EKIAS−HG(IDC, IDIAS, K2, K1, T)和ESK(IDC, service_req)发送给HG):::process
D --> D2(HG用KIAS−HG解密EKIAS−HG(IDC, IDIAS, K2, K1, T)得到K2、K1和T):::process
D --> D3(HG计算SK = h(K1 ∥ K2 ∥ T)):::process
D --> D4(HG用会话密钥SK解密ESK(IDC, service_req)):::process
D --> D5(HG验证认证票据和服务请求中的IDC):::process
D --> D6(HG将ESK(K1 ∥ T)发送给用户):::process
D6 --> D7(用户用会话密钥SK解密ESK(K1 ∥ T)):::process
D7 --> D8{用户验证K1和T?}:::decision
D8 -->|是| E([结束]):::startend
C10 -->|否| F(登录失败):::process
C20 -->|否| F
D8 -->|否| F
这个流程图详细展示了从注册阶段开始,经过登录/认证阶段,最后到服务请求阶段的整个认证过程,包括各个步骤的操作和判断条件。
8. 实际应用场景
基于HOTP的用户认证方案在家庭网络中有多种实际应用场景,以下是一些具体示例:
-
智能家居设备控制
:用户可以通过手机等手持设备远程控制家中的智能家电,如电视、灯光、洗衣机和冰箱等。在这个过程中,基于HOTP的认证方案可以确保只有授权用户能够对这些设备进行操作,保护用户的隐私和设备安全。
-
家庭健康监测系统
:对于一些家庭健康监测设备,如智能手环、血压计等,用户的数据需要得到严格的保护。通过使用本认证方案,只有经过认证的用户才能访问和管理这些健康数据,防止数据泄露和非法访问。
-
远程家庭安防系统
:当用户外出时,可以通过远程访问家庭安防系统,查看家中的实时监控画面、控制门锁等。基于HOTP的认证方案可以有效防止非法入侵,确保家庭安全。
9. 总结
基于HOTP的用户认证方案为家庭网络提供了一种安全、高效的远程用户认证解决方案。该方案具有用户自由选择PIN、无需时间同步、服务器认证、会话密钥协商、低通信成本和OTP重新同步等优点,能够有效抵抗窃听攻击、重放攻击、中间人攻击、拒绝服务攻击和被盗验证器攻击等多种安全威胁。
通过与其他方案的对比,本方案在功能上更加完善,特别是在OTP重新同步方面具有明显优势。同时,通过详细的流程说明和可视化的流程图,我们可以更清晰地理解该方案的工作原理和操作步骤。
在实际应用中,该方案可以广泛应用于智能家居设备控制、家庭健康监测系统和远程家庭安防系统等多个领域,为家庭网络的安全提供有力保障。未来,随着家庭网络的不断发展和安全需求的提高,基于HOTP的用户认证方案有望得到更广泛的应用和进一步的优化。
超级会员免费看
69

被折叠的 条评论
为什么被折叠?



