加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 安全 > 正文

密码应用安全性评估要点之动态口令技术常见问题商讨

发布时间:2023-05-31 10:37:57 所属栏目:安全 来源:
导读:身份识别是信息安全领域中安全防护手段中的关键环节,它是一个无法绕开的、关键的话题。身份鉴别经常被解释为:根据“你知道什么”、“你拥有什么”、“你是谁”来证明“你&rdquo
身份识别是信息安全领域中安全防护手段中的关键环节,它是一个无法绕开的、关键的话题。身份鉴别经常被解释为:根据“你知道什么”、“你拥有什么”、“你是谁”来证明“你”的身份。身份鉴别信息介质从传统的物理钥匙、暗号,到静态口令、ID标签卡,到CPU卡、UKey、动态令牌,再到指纹、人脸、虹膜等,推陈出新、各有所长。多因素身份鉴别则是通过综合多种身份鉴别方式,以增强鉴别的强度。

从原理上看,无论是物理钥匙、暗号、静态口令、ID标签卡,还是指纹、人脸、虹膜等生物特征,都只是一种静态的身份鉴别信息介质,因此在理论上都存在着可复制、易丢失、难以抵抗重放攻击等风险。密码技术作为保障网络与信息安全最有效、最可靠、最经济的关键核心技术,具有内蕴的加密和认证属性,成为了实现身份鉴别最自然、最有力的手段。动态口令认证技术就是使用密码技术实现身份鉴别的典型例子。

动态令牌是生成并显示动态口令(OTP/One-Time Password)的载体,常见的银行电子密码器、Google的Authenticator身份认证器软件,都属于动态令牌的范畴。由于动态口令认证技术的实现原理不一,在对信息系统进行合规性检查时,给测评机构和信息系统责任单位带来了一定的困扰。本文总结了常见的动态口令认证技术,对动态令牌和动态令牌认证系统的主要功能和安全要求进行了简述,并对动态口令认证实现身份鉴别的测评实施和判定提出了一些建议。

一、相关概念与标准

OTP : One-Time Password

HMAC-Based One-Time Password

Time-Based One-Time Password

HMAC Keyed-Hash Message Authentication Code

RFC4226 HOTP: An HMAC-Based One-Time Password Algorithm

RFC6238 TOTP: Time-Based One-Time Password Algorithm

FIPS PUB 198 The Keyed-Hash Message Authentication Code(HMAC)

GM/T 0021-2012《动态口令密码应用技术规范》

GB/T 38556-2020《信息安全技术 动态口令密码应用技术规范》

GB/T 37092-2018《信息安全技术 密码模块安全要求》

GB/T 15852.2-2012《信息技术 安全技术 消息鉴别码 第2部分采用专用杂凑函数的机制》

GB/T 15843.1-2017《信息技术 安全技术 实体鉴别 第1部分:总则》

GB/T 15843.4-2008《信息技术 安全技术 实体鉴别 第4部分:采用密码校验函数的机制》

二、动态口令运算方法

对于动态口令生成方式,我们主要关注以下要素:

动态因子

种子密钥

动态口令生成算法

动态口令生成算法中使用的基础密码算法

 为了方便起见,我们将4从3数据库中独立了出来,但是如果此时设置的动态口令密码的生成算法不指定任何一个具体的基础密码算法,而是同一类理论上可替换的密码算法,如对称密码算法、杂凑密码算法。

HOTP生成:HOTP(K,C) = Truncate(HMAC-HASH(K,C)),其中HASH=SHA-1

TOTP生成:TOTP(K,T) = Truncate(HMAC-HASH(K,T)),其中HASH=SHA-1/SHA-256/SHA-512

GMOTP生成:GMOTP(K,T|C|Q)=Truncate(F(K,T|C|Q)),其中F=SM3/SM4

注1:K为种子密钥,T为时间因子,C为事件因子,Q为挑战因子,Truncate()为截位函数。

注2:T|C|Q的含义为T和C必选一个、Q可选,然后进行拼接。

注3:当F为SM3算法时,F(X,Y)=SM3(X|Y);当F为SM4算法时,F(X,Y)=SM4_ENCX(Y),采用类似于CBC的模式(IV为0串,异或改为算术加,高位溢出舍去)。

注4:其他细节本文档暂不详解,如时间因子的转化、数据编码/填充/截断等,请以相关标准为准。

三、动态令牌实现身份鉴别

将动态因子对应到时变参数:

时间因子T→时间戳

事件因子C→序号

挑战因子Q→随机数

鉴别发起方和验证方共同拥有种子密钥(鉴别密钥),并约定好动态因子的选取,两方通过相同的动态口令算法(校验函数),对相同的动态因子和种子密钥(时变参数和鉴别密钥)进行计算,分别生成相同的动态口令(校验值),因此满足GB/T 15843.4-2008《信息技术​安全技术​实体鉴别​第4部分:采用密码校验函数的机制》规定的鉴别机制。仅含时间因子或事件因子时,为一次传递单向鉴别;含挑战因子时,为两次传递单向鉴别。

四、动态令牌认证系统工作流程

动态口令认证系统为应用系统提供动态口令鉴别服务,由动态令牌、鉴别模块、密钥管理模块组成。

动态令牌生成动态口令,鉴别模块验证动态口令的正确性,密钥管理模块负责动态口令的密钥管理,应用系统将动态口令按照指定的协议报文发送至鉴别模块进行鉴别。

五、时间同步

动态令牌可以当作是一个离线设备,通过内部时钟或维护的计数器或应用服务产生的挑战码(手动输入进令牌)来与认证系统保持相同的动态因子。当通过内部时钟生成实时时间来作为时间因子时,在动态令牌的使用年限内,是有可能出现小幅偏移的情况的,此时需要对令牌进行同步。注意令牌同步并不是调整令牌本身,而是修改认证系统中对应令牌的偏移量。

同步分大窗口(±10认证周期)、中窗口(±5认证周期)、小窗口同步(±2认证周期),用于判断偏移量的大小。

六、常见问题分析

(1)HOTP与TOTP有什么区别?

HOTP的“H”意为“HMAC-Based”,即“基于HMAC”。从形式上看,TOTP也可以认为是一种广义的HOTP。

当然,现行标准已规定了HOTP和TOTP的动态因子和特定算法,因此在实践中还是有必要区分:HOTP使用事件因子C(具体为计数器),通过HMAC-SHA-1算法进行计算;而TOTP使用时间因子T,通过HMAC-SHA-1 / HMAC-SHA256 / HMAC-SHA512算法进行计算。

(2)使用短信验证码进行认证是否属于动态口令认证技术?

不属于。短信验证码是应用服务商为确认用户身份是否真实而采用的有别于传统静态口令验证的认证手段,在接收到客户端请求后,通过第三方服务向用户手机发送一条即时的包含一串定长字符的短信,用户将该串字符输入应用的鉴别界面,以确认是机主本人在进行登录等敏感操作。

注意到此处仅利用到真实用户持有一种不同于静态口令的鉴别介质——一台在注册时与用户绑定的可收发讯息的移动终端(准确来说是SIM卡),并没有利用到用户及用户终端的计算能力,用户及用户终端未持有密钥这一关键鉴别信息。此外,下发短信中的字符串本身就是敏感信息,而在合规的身份鉴别过程中(包括动态口令验证),鉴别方不发送数据,或者仅发送不含显式敏感数据的中间信息。因此短信验证码认证不属于动态口令认证技术,也不是合规的身份鉴别方式。

(3)国密OTP是否就是将SHA系列哈希算法替换成SM3算法,根据采用的动态因子成为国密版的HOTP和TOTP?

国密OTP不仅是基础密码算法与HOTP/TOTP不一致,动态口令生成算法本身也不一样。国密OTP可以采用SM3算法或SM4算法。当采用SM3算法时,并不是采用HMAC算法对种子密钥和动态因子进行运算,而是将种子密钥和动态因子拼接后进行SM3杂凑;当采用SM4算法时,用种子密钥对动态因子进行加密处理,这种使用对称密码算法实现的方法比较别致。但是,由于sm3算法的计算量大,而且需要大量的数据,所以目前只有少数研究人员在使用。

 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!