第S1期 2015年3月 华东师范大学学报(自然科学版) Journal of East China Normal University(Natural Science) NO.S1 Mar.2O15 文章编号:1000-5641(2015)S1—0246—06 基于动态口令的增强身份认证 章思宇, 黄保青, 白雪松, 姜开达 (上海交通大学网络信息中心,上海200240) 摘要:传统基于口令的身份认证易受弱口令、暴力猜解和重放的攻击.基于动态口令的增强身 份认证系统通过多因子认证,在静态口令泄漏后依然能提供账户安全保护.基于开放标准 OATH—TOTP构建的动态口令认证系统与统一身份认证集成,支持硬件令牌和手机软件令牌, 并通过定制的RADIUS服务器提供静态和动态口令组合输入验证.的应用密码为Email等 应用客户端提供向后兼容,防止动态口令绕过,并避免明文协议泄露单点登录口令.该系统能有 效提高统一身份认证系统及各应用系统的安全性. 关键词:动态口令; 身份认证; 多因子认证;令牌 中图分类号:TP393.08 文献标识码:A DOl:10.3969/j.issn.1000—5641.20l5.z1.039 Enhanced authentication with one-time password ZHANG Si—yu, HUANG Bao—qing, BAI Xue—song, JIANG Kai—da (Network&In-如rmation Center,Shanghai Jiao Tong University,Shanghai 200240,China) Abstract:Traditional password-based authentication iS vulnerable to weak password,brute force and replay attacks.Enhanced multi-factor authentication(MFA)with one-time password(0TP)provides protection even after the password is compromised.Our OTP authentication system uses OATH— T0TP。an open standard。and is well integrated with web-based sgo.Both hardware and software tO— kens on mobile phones are supported。and a modified RADIUS server implementation is built to sup— port concatenated password and OTP.Separate application passwords are designed for backward corn— patibility with client software(e.g.email clients),avoiding MFA bypasses or password sniffing on clear-text network traffic.Our OTP-based authentication system significantly enhanced the security level of SSO and related inforrnation systems. Key words: one-time password; authentication; multi—factor authentication;token 0 引 言 基于静态口令的身份认证的脆弱性不言而喻,除了弱口令和暴力猜解的风险,用户口令 收稿日期:2014—10 第一作者:章思宇,男,硕士,助理工程师,研究方向为网络与信息系统安全.E-mail:dfxbb@sjtu.edu.cn. 第二作者:黄保青,男,本科,中心实验师,研究方向为数据中心运维.E-mail:bqhuang@sjtu.edu.cn. 第三作者:白雪松,男,工程师,研究方向为信息系统认证与授权.E-mail:dinosi@sjtu.edu.en. 第四作者:姜开达,男,硕士,工程师,研究方向为网络与信息系统安全.E-mail:kaida@sjtu.edu.cn. 第s1期 章思宇,等:基于动态口令的增强身份认证 247 在通过明文传输、不安全的终端输入等众多场景中都有可能被攻击者截获.尤其现在许多高 校和企业都已建成统一身份认证体系,用户一个口令就能登录与之关联的各种信息系统,口 令泄露的危害更大,而泄露的途径又随之增多,各种系统中不可避免地会存在FTP、POP3、 SMTP等明文传输密码的应用.除此以外,口令泄露的风险也可能来自于外部,如果用户在 互联网其他站点使用了相同的用户名和口令,那么任何一个站点的数据库泄露,都会威胁到 用户在其他站点的账户安全,即所谓的“撞库”攻击. 动态口令,也称为一次性口令(One-Time Password,OTP),是只在一次登录会话有效 的口令,能够规避传统密码的诸多弱点,尤其是可抵御重放攻击.实际应用中,动态口令通常 作为静态口令的补充,成为多因子认证(或称为两步认证)的一部分 ]. 本文介绍开放标准的动态口令算法、基于动态口令的增强身份认证的实现,以及此方案 在上海交通大学统一身份认证和网络信息中心内部系统中的应用. 1 动态口令算法 动态口令生成算法主要可以分为以下三类. (1)哈希链:利用单向散列函数构建哈希链,由Lamport在1981年的文献[3]提出,新 的口令由之前的口令验证; (2)基于时间同步:认证服务器与客户端时间同步,口令根据时间和共享密钥生成; (3)挑战应答:口令根据挑战数和共享密钥生成,挑战数由服务器随机生成,或者使用 一个计数器值. ‘1.1 基于HMAC的oTP HOTP是一种基于HMAC的OTP算法,也是OATH(Initiative For Open Authenti— cation)的基础.OATH作为一个业界的合作组织,旨在利用开放的标准,开发并推广公开的 强认证参考架构. HOTP算法在IETF RFC 4226【4]发布,HOTP值的计算基于HMAC_SHA一1算法,其 输入是密钥K和计数器值C,算法定义为 HOTP(K,C)一Truncate(HMAC—SHA一1(K,C)), 其中,Truncate是将160 bit HMAC值转换为32 bit HOTP的函数.它以HMAC最后一个 字节的低4位为偏移量(范围在0到15),取HMAC从该偏移量开始的4字节,返回低31 bit的值.Truncate将4字节的最高位置零,为了明确输出是一个无符号整数,避免歧义. 由于HOTP口令是6到8位十进制数,因此,上述过程产生的32 bit无符号整数值,还 要取对10 的模后作为HOTP口令.这里d是HOTP口令位数. HOTP每次使用时,计数器值c都会自增,从而每次产生的HOTP口令都不相同. HOTP的安全性基于HMAC—SHA一1算法的安全性. 1.2基于时间的OTP 基于时间的TOTP算法在RFC 6238[5 公布,它根据一个共享密钥和当前时间计算动 态口令,算法基于HOTP,用时间戳取代计数器值.TOTP算法定义为 TOTP—HOTP(K,T), 其中K是共享密钥,T代表初始时间T。到当前时间 所经历的时间步长数: T一(丁…一To)/x. 248 华东师范大学学报(自然科学版) 默认的时间步长X一30,即每30 S更换一个TOTP口令. 和T。用UNIX时间戳表 示,默认T。一0.最后,同样根据口令位数d,将TOTP值取对1O 的模后作为口令. TOTP算法在公布后得到了广泛的应用,目前Google、Microsoft、Amazon、Facebook、 GitHub、WordPress、Dropbox等网站账号的两步认证中都采用了TOTP标准的令牌. 1.3 TOTP验证与时间同步 在一个时间步长内生成的TOTP口令是不变的,但认证服务器收到客户端的口令时, 并不知道客户端的准确时间戳.由于客户端的时钟漂移,以及用户输入和网络延迟,认证服 务器必须设定策略,接受当前时间步长及其前后数个时间步长对应的口令. 首先,默认时间步长X一30 S是一个安全性和易用性的平衡,提高步长尺寸会向攻击 者暴露更大的攻击时间窗口.并且,出于防止重放攻击的考虑,认证服务器不允许同一口令 使用两次,因此,用户希望再次提交TOTP认证必须等到下一个时间窗. 认证服务器为了适应客户端令牌的时间漂移,可实现自动同步机制.假设认证服务器策 略允许接受当前口令及其前后各2个时间步长的口令,那么认证服务器最多进行5次验证 来确定用户提交的口令是否合法,允许约±1 min的时间漂移.在验证通过之后,服务器记 录检测到的时间漂移值,以漂移的时间步长数D表示.在该客户端下一次认证时,服务器以 调整后的时间戳T 一T 。 +D・X作为基准进行TOTP验证.自动同步机制可以自动适 应硬件令牌长时间使用过程中的累计时间漂移,而认证服务器及软件令牌的时间同步易于 用NTP服务保证. 当硬件令牌长时间未使用,累计时间漂移已超过自动同步机制所能处理的阈值,则需要 通过额外的步骤完成手动同步.在手动同步步骤中,认证服务器开放更大的验证窗口,而客 户端则需要提供连续的多个TOTP口令供服务器校验,考虑到伪造连续多个TOTP口令比 猜解一个TOTP值要困难得多. 2 TOTP身份认证系统实现 由于TOTP是一个开放的标准,基于TOTP实现动态口令身份认证系统在成本和兼容 性上都有明显优势,有众多开源软件能够实现对TOTP的支持. 2.1系统架构 在上海交通大学网络信息中心部署的动态口令认证系统,作为上海交通大学统一身份 认证的一个安全扩展功能,对账户安全有较高要求的用户可选择启用基于・TOTP的两步认 证.而登录网络信息中心内部系统和VPN,则必须通过OTP认证.动态口令身份认证系统 的架构如图1所示. 动态口令系统分为客户端(IB户)所持有的动态口令令牌和服务器端的动态口令认证系 统这两部分.对于启用了两步认证的统一认证账户,在通过Web界面单点登录时,除了输入 用户名和静态口令以外,还会被要求输入动态口令.该认证系统提供基于HTTP的认证 API:SSO在通过原有的基于LDAP的机制验证用户的静态口令之后,调用动态口令认证 API,对用户输入的OTP进行验证.在进行关键的账户信息修改时(例如密码、绑定的手机 号),也需要进行额外的OTP验证. 动态口令系统同时提供管理API,支持软件TOTP密钥生成、硬件令牌绑定等操作.管 理与认证API通过SSL保护的HTTPS调用,并且,API服务器与SSO服务器之间通过共 第s1期 尊思字,等:丛于动态[I令的增强身份认证 249 静态u令●一 厂~ 令牌 ~ 、l 一 :硬件令牌 一: /’ \ 图1 动态口令身份认证系统架构 享密钥认证,以避免未经授权的第三方操作动态口令系统的API. 2.2动态口令令牌 用广1所持有的动态口令令牌分为软件令牌和硬件令牌两种. T()TP作为一个开放的标准,在许多互联网服务中被采用,各个手机系统平台上都有 支持 FOTP算法的令牌软件.用户在统一身份认证管理界面中生成T()TP密钥(或称为种 子)后,将该密钥输入到手机令牌软件(通常以t六进制或Base 32编码形式),即可通过该 软件随时获取当前的T()TP口令.软件令牌的优势主要在于:1)无硬件成本;2)直接安装在 手机软件中,无需携带额外令牌;3)手机可以自动校时,从而保证与认证服务器时间同步. 软件令牌在安全性上仍有欠缺,例如手机系统的不安全性可能造成TOTP密钥被窃取,密钥 生成时必须明文显示给用户以输入到令牌软件中,该过程也可能造成密钥泄露.因此,硬件令牌 的安全性相对较高,其密钥在生产时已经写入硬件内,难以读取,并且在绑定到用户账户时,只需 输入硬件令牌编号,硬件令牌的密钥已经加密存储在认证服务器中,绑定过程不会泄露密钥. 上海交通大学的动态口令认证系统对软件和硬件令牌均提供支持,可由用户根据自己的 需要选择.罔2显示了同一个密钥在软件 和厂商定制的硬件令牌中生成的一致的口令值. 罔2软件与硬件令牌 2.3 RADIUS集成 基于Web的统一身份认证,在集成了动态口令系统之后,可以通过一个额外的密码文 本框要求用户输入动态口令。 VPN等应用的客户端通常不支持两重口令的输入,因此, 埘于此类应用我们实现了一个定制的RADIUS服务器,用以支持静态口令和动态口令的组 合认证.用户在VPN客户端登录时.在账户密码处。将自己的静态口令和当前的TOTP动 态口令拼接成一个密码字串输入,形如“secret432555”. PAP、cH八P和MS-CHAP是目前使用最广泛的密码认证协议,为了使集成了T()TP验证的 250 华东师范大学学报(自然科学版) RADIUS服务器支持上述认证方式,我们需要对静态口令在服务器端的存储方式作额外考虑. PAP(Password Authentication Protoco1)_7 认证的客户端将用户名和密码以明文形式 发送给服务器,由于服务器可以得到原始的静态和动态口令字串,因而可以将拼接后的字串 切分为静态和动态口令部分分别进行验证,服务器端对静态口令的存储,可以使用明文(或 可逆加密)、散列或者带盐的散列形式,其中后者最为安全.PAP的风险在于中间人攻击可 以截获客户端提交的明文口令,因此,若使用PAP认证登录VPN服务器,应首先通过SSL/ TLS( ̄[I SSTP VPN)或预共享密钥(适用L2TP/IPsec VPN)验证服务器身份. CHAP(Challenge—Handshake Authentication Protoco1)[_fj 认证时,服务器向客户端发 送挑战challenge及标识符 ,客户端将标识符、口令和挑战值拼接后进行散列计算,作为 应答返回给服务器,即MD5(id∥passphrase∥challenge).在本系统中,passphrase为静态 口令和动态口令拼接字串.为了验证口令的正确性,服务器必须保存有口令的明文形式.在 与T0TP组合认证时,服务器计算所有接受窗口内的TOTP口令totp ,然后验证与之对应 的MD5(id∥secret∥totp //challenge)是否与客户端的应答一致,这里secret是服务器端 保存的明文的静态口令. MS-CHAP是微软的CHAP版本,在挑战应答过程中,用户口令首先经过MD4散列计算, 因此,服务器只需存储口令Unicode编码后的MD4散列(NT_Hash).但是,在应用到集成了 TOTP的认证系统时,由于服务器在进行验证时需要知道MD4(secret∥totp),因此,服务器必 须保存明文的静态口令secret,方可根据目前可接受的TOTP口令计算当前合法的Nrr_Hash. 表1总结了为支持上述三种认证协议,RADIUS所能采用的静态口令存储方式.为同 时实现三种协议的支持,用户的静态口令必须以明文或可逆加密形式保存.考虑到RADI— US服务器同时需要读取明文或可逆加密的TOTP密钥,两者具有同等的重要性,明文存储 静态口令对整体的安全性影响有限. 表1服务器端静态口令存储方式支持 动态口令认证系统的密钥存储必须得到有效保护,以避免静态口令和TOTP密钥泄 露.我们定制开发的RADIUS服务器采用JAVA实现,用户的静态FI令、TOTP密钥及参 数存储在MySQL数据库中,并使用RSA加密保护.作为未来的改进方向,可考虑使用硬件 安全模块(HSM)进行密钥存储的加密,以避免攻击者窃取加解密密钥.在我们的部署中, RADIUS仅作认证使用,与授权分离.此外,带有TOTP验证的RADIUS服务器,在每次认 证时需要增加一次或多次HMAC—SHA一1计算(根据允许的时钟漂移窗口而定),但这部分 额外开销对目前主流的服务器并不构成太大压力. 2.4应用密码 在启用了基于动态口令的增强身份认证之后,由于一些应用的客户端软件并不支持动 态口令输入,若要继续兼容这些应用,则可能开放绕过动态口令认证的漏洞.3.3节的VPN 就是一个例子,我们通过定制的RADIUS服务器,解决了静态口令和动态口令组合输入的 认证.然而,这一方法并不适用于所有的应用,一个典型的例子就是Email服务.动态口令保 第s1期 章思宇,等:基于动态口令的增强身份认证 [251 [ [ 1 ] 2 ] 3 ] 护了通过Web方式的邮箱访问,但攻击者获取了用户统一身份认证口令之后,仍能够通过 POP3、IMAP等途径访问用户邮件.Email客户端需要频繁检查新邮件,若采用类似3.3节 对VPN服务RADIUS的改造方式,用户每隔数分钟就需要输入一个新的OTP供Email客 户端认证,显然是不合理的. 我们参考了微软和Google的解决方案,设计了针对这些客户端应用的应用密码, 即针对邮件客户端等,专门生成一个不同于统一身份认证口令的专用的密码.该密码只能用 于POP3/SMTP/1MAP协议的客户端认证,且不需要动态口令.由于应用密码是随机 生成的,且仅保存于Email客户端中,潜在的泄露途径较少.并且,应用密码与特定应用 绑定,例如Email客户端密码泄露仅影响电子邮件应用,攻击者不能使用该密码访问统一身 份认证授权的其他服务. 此外,对于FTP等明文传输用户口令的协议,我们也提供应用密码的设定,以避免 此类明文协议使用过程中暴露用户的统一身份认证口令.而3.3节中VPN系统所使用的 静态口令也是应用密码的一个应用. 3 结 论 本文阐述了基于开放标准OATH—TOTP动态口令的增强身份认证在上海交通大学统 一身份认证和VPN系统中的部署和应用,通过定制的RADIUS服务器实现了静态口令和 动态口令的组合认证,并且同时支持硬件令牌和手机软件令牌.应用密码的设计为客户 端软件提供向后兼容,防止绕过动态口令认证或明文协议泄露统一身份认证密码.引入动态 口令双因子认证之后,可降低弱口令、暴力猜解和用户密码泄露后的账户风险,大幅提升统 一身份认证及相关的应用系统的安全性. [参 考 文 献] ()’GORMAN L.Comparing passwords,tokens,and biometrics for user authentication[J].Proceedings of the IEEE。2003,91(12):2021—2040. B0NNEAU J,HERLEY C,VAN OORSCHOT P C,et a1.The quest to replace passwords:a framework for comparative evaluation of web authentication schemes[c]//2012 IEEE Symposium on Security and Privacy. IEEE。2()12:553—567. LAMPORT L.Password authentication with insecure communication[J].Communications of the ACM,1981,24 (11):770—772. M’RAIHI D,BELLARE M,HooRNAERT F,et a1.HOTP:An HMAC—based one—time password algorithm [DB/OL].2005—1212014—7—13].http://tools.ietf.org/html/rfc4226. M’RAIHI D,MAcHANI S,PEI M,et a1.TOTP:Time-based one—time password algorithm[DB/OL'].2011-5 [2014—7—13].http://tools.ietf.org/html/rfc6238. SOPHOS GmbH.Sophos Authenticator[CP/OL].(2014—7—8)[2014-7—283.https://itunes.apple.com/us/app/ sophos—authenticat0r/id864224575. LLOYD B,SIMPSON W.PPP authentication protocols[DB/OL].1992—10[2014 7—273.http://tools.ietf.org/ html/rfcl334. SIMPSON W A.PPP challenge handshake authentication protocol(CHAP)[DB/OL].1996—8[2014-7—27].ht— tp://tools.ietf.org/html/rfcl994. (责任编辑王善平)