OTP概念及实现原理简析

越来越多的信息系统基于安全的考虑加入了多因素认证的功能,实现多因素认证有多种方案,OTP就是其中一种实现相对简单便捷的方案。本文概要介绍了OTP的概念、原理和实现步骤。

一、什么是OTP

OTP:One Time Password,又称一次性口令、一次性密码、动态密码、单次有效密码。

OTP基于专门的算法每隔一定的时间间隔生成一个不可预测的随机数字组合。

OTP的密码有效期仅在一次会话或者交易过程中,因此不容易受到重放攻击。

OTP一般分为计次使用和计时使用两种,计次使用的OTP产出后,可在不限时间内使用;

计时使用的OTP则可设置密码有效时间,从30秒到两分钟不等,而OTP在进行认证之后即废弃不用,下次认证必须使用新的密码,降低了不经授权访问限制资源可能性。

获取一次性密码的方法一般有以下几种:

1、手机短信:这种方式非常普及,可用于信息系统登录,交易时二次验证,信息系统密码遗失时的找回验证等,因为手机的普及,这种方式非常普及,但对于中间人攻击抵抗性低。

2、手机令牌:手机上的APP,软件生成动态密码,用户在信息系统中输入后在服务端完成验证。也可以直接通过与服务端的交互更便捷完成验证过程。这种方式如果移动设备有系统漏洞,存在密钥泄露风险。更换手机时,也需要完成令牌的转移或在新手机上重新生成令牌。

3、硬件令牌:在网银业务中比较普遍,比如银行的U盾,在设定的大额交易场景下,需要使用硬件令牌生成动态口令完成身份确认。由于单独的硬件需要电池,存在寿命问题,令牌遗失一般也需要去营业网点注销后再重新申领。

4、纸张:某些系统采用预打印方式提供一次性密码,比较少见。


二、HOTP与TOTP的差异

HOTP:HMAC-based One-Time Password ,基于 HMAC 算法加密的一次性密码。事件同步,通过某一特定的事件次序及相同的种子值作为输入,通过 HASH 算法运算出一致的密码。


TOTP:Time-based One-Time Password写,基于时间戳算法的一次性密码。 时间同步,基于客户端的动态口令和动态口令验证服务器的时间比对,一般每 60 秒产生一个新口令,要求客户端和服务器能够十分精确的保持正确的时钟,客户端和服务端基于时间计算的动态口令才能一致。


OTP 基本原理计算 OTP 串的公式:OTP(K,C) = Truncate(HMAC-SHA-1(K,C))

其中,K 表示秘钥串;C 为随机数;HMAC-SHA-1 表示使用 SHA-1 做 HMAC;

Truncate 表示怎么截取加密后的串,并取加密后串的哪些字段组成一个数字。

对 HMAC-SHA-1 方式加密来说,Truncate 实现如下:

HMAC-SHA-1 加密后的长度得到一个 20 字节的密串;取这个 20 字节的密串的最后一个字节,取这字节的低 4 位,作为截取加密串的下标偏移量;按照下标偏移量开始,获取4个字节,按照大端方式组成一个整数;截取这个整数的后 6 位或者 8 位转成字符串返回。


HOTP 只是将其中的参数 C 变成了随机数,一般规定 HOTP 的散列函数使用 SHA2,即:基于 SHA-256 or SHA-512 [SHA2] 的散列函数做事件同步验证;

TOTP 只是将其中的参数 C 变成了由时间戳产生的数字:

C = (T - T0) / X; T 表示当前 Unix 时间戳:T0 一般取值为 0,也就是 1970 年 1 月 1 日。X 表示时间步数,也就是说多长时间产生一个动态密码,这个时间间隔就是时间步数 X,系统默认是 30 秒;


三、OTP认证原理

下图展示了OTP认证的过程:

Step1:在服务器端:,将用户账号与令牌种子建立关联。

Step2:当用户登录时,输入账号和动态令牌口令并将其提交至服务器,对比校验完成认证过程。


在实际的业务部署中,为了用户使用的便捷性,可以采用消息推送确认的方式,只需要用户的手机令牌处于运行状态,即可免去输入认证码的过程。


四、OTP的实现

根据以上的介绍,一个信息系统要集成OTP的认证方式,需要完成以下的工作:

1、开发手机令牌

2、开发认证的服务端,服务端需要完成令牌种子生成、令牌种子分发、动态口令生成等功能。

3、在OTP认证的服务端需要将业务系统的用户与分发的令牌建立关联,这样才能完成最终的登录验证。


上海安当技术有限公司致力于开发身份认证、数据加密类产品,依托集中化、跨平台的密钥管理系统,专注于为金融、政府、企业等客户提供更加安全,便捷的身份认证管理和数据加密解决方案。公司主要产品及服务简称为4S:身份认证服务平台(Authentication Service Platform),密钥管理平台(Key Safe Platform),硬件加密机(Hardware Security Module),数据加密集成服务(Data Security Integration)。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 在一些互联网公司的面试中,面试官往往会问这样一个问题: “如果禁用浏览器 cookie,如何实现用户追踪和认证?”...
    ThoughtWorks阅读 1,535评论 0 12
  • 零、读者和教师指南WilliamStalling.com/ComputerSecurity 一、概述计算机安全:为...
    为梦想战斗阅读 2,303评论 0 2
  • 概览 工作中,我们时刻都会和接口打交道,有的是调取他人的接口,有的是为他人提供接口,在这过程中肯定都离不开签名验证...
    代码技巧阅读 2,731评论 0 2
  • 一.什么是OTP和TOTP OTP全称叫One-time Password,也称动态口令,是根据专门的算法每隔60...
    小诸葛686阅读 1,818评论 0 2
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 5,980评论 0 4