分享好友 最新动态首页 最新动态分类 切换频道
提升账户安全:一次性密码生成原理与实践
2024-12-28 16:59
 

​ 此工具提供基于时间的一次性密码(Time-based One-time Password,简称TOTP,只需要在手机上安装密码生成应用程序,就可以生成一个随着时间变化的一次性密码,用于帐户验证,而且这个应用程序不需要连接网络即可工作。

提升账户安全:一次性密码生成原理与实践

客户端和服务器事先协商好一个密钥K,用于一次性密码的生成过程,此密钥不被任何第三方所知道。此外,客户端和服务器各有一个计数器C,并且事先将计数值同步。

进行验证时,客户端对密钥和计数器的组合(K,C)使用HMAC(Hash-based Message Authentication Code)算法计算一次性密码,公式如下

 
 

​ 介绍完了HOTP,Time-based One-time Password(TOTP)也就容易理解了。TOTP将HOTP中的计数器C用当前时间T来替代,于是就得到了随着时间变化的一次性密码。非常有趣吧

虽然原理很简单,但是用时间来替代计数器会有一些特殊的问题,这些问题也很有意思,我们选取几个进行一下探讨。

​ 首先,时间T的值怎么选取?因为时间每时每刻都在变化,如果选择一个变化太快的T(例如从某一时间点开始的秒数,那么用户来不及输入密码。如果选择一个变化太慢的T(例如从某一时间点开始的小时数,那么第三方攻击者就有充足的时间去尝试所有可能的一次性密码(试想6位数字的一次性密码仅仅有10^6种组合,降低了密码的安全性。除此之外,变化太慢的T还会导致另一个问题。如果用户需要在短时间内两次登录账户,由于密码是一次性的不可重用,用户必须等到下一个一次性密码被生成时才能登录,这意味着最多需要等待59分59秒!这显然不可接受。综合以上考虑,Google选择了30秒作为时间片,T的数值为从Unix epoch(1970年1月1日 00:00:00)来经历的30秒的个数。

​ 第二个问题是,由于网络延时,用户输入延迟等因素,可能当服务器端接收到一次性密码时,T的数值已经改变,这样就会导致服务器计算的一次性密码值与用户输入的不同,验证失败。解决这个问题个一个方法是,服务器计算当前时间片以及前面的n个时间片内的一次性密码值,只要其中有一个与用户输入的密码相同,则验证通过。当然,n不能太大,否则会降低安全性。

​ 事实上,这个方法还有一个另外的功能。我们知道如果客户端和服务器的时钟有偏差,会造成与上面类似的问题,也就是客户端生成的密码和服务端生成的密码不一致。但是,如果服务器通过计算前n个时间片的密码并且成功验证之后,服务器就知道了客户端的时钟偏差。因此,下一次验证时,服务器就可以直接将偏差考虑在内进行计算,而不需要进行n次计算。

引入依赖

 

书写工具类( GoogleAuthenticator

 

生成验证码

如果用户是要进行绑定二次验证的话,使用 generateSecretKey() 方法生成密钥,返回给用户,用户使用这个密钥在验证器终端进行绑定,就可以获取六位数字。此方法返回的是字符串,用户只能手动输入的。也可以生成一个二维码,用验证器终端扫。

生成二维码的方式

文件中打印

 

其中《test@demo》 可以用登录名@产品名称给用户固定好 (自己测试可通过在线转换二维码,然后通过谷歌验证器扫描二维码添加到应用中,比如:https://cn.online-qrcode-generator.com/)

校验验证码

直接调用 check_code 方法即可。参数分别为 密钥,六位验证码,当前时间戳。


最新文章
SEO优化攻略,网站编辑助力网站排名与内容价值双提升
本内容旨在探讨网站编辑SEO策略,通过优化技术提升网站排名,确保内容价值得到充分展现和最大化利用。随着互联网的飞速发展,网站已经成为企业展示形象、拓展市场、实现销售的重要平台,在众多网站中,如何让自己的网站脱颖而出,吸引更多
最新品牌策划方案案例(5篇)
方案是从目的、要求、方式、方法、进度等都部署具体、周密,并有很强可操作性的计划。优秀的方案都具备一些什么特点呢?又该怎么写呢?接下来小编就给大家介绍一下方案应该怎么去写,我们一起来了解一下吧。熟悉品牌由来的人可能知道,品牌
刷关键词排名和刷百度指数,存在不为人知的风险!
  导读:随着搜索引擎的调整,竞价位置的减少,重视网站优化的企业越来越多,关键词自然排名竞争力就越来越大,加上SEO优化本身就需要积累,靠做优质内容才能获得搜索引擎青睐。  如果靠正常的优化方式走,那关键词上首页不知道何年何
策划计划(专业5篇)
一、庆典背景:电子信息工程系青年志愿者协会与计算机系青年志愿者协会历经三年的风雨征程。在这段岁月里,我们承受了辛苦与疲惫,但也收获了成长与成果。今天,我们的付出终于得到了各级领导的肯定,成绩的背后是无数的努力和坚持。回顾这
重大.来袭“个中至武宁双扣万能开挂器免费”必胜开挂神器
有 亲,根据资深记者爆料有没有微乐开挂成功的,确实有挂您好,微乐家乡麻将,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实
实用的在线网站
  目录 文档类 1. 轻松玩转PDF 2. Convertio:在线的文件转换器 3. CleverPDF 4. vvv文档在线导出工具 5. 微信公众号格式化编辑器 6. Process On:免费在线作图,实时协作 7. ALL TO ALL(在线格式转换) 8
刚建立了新网站但是排名一直不能上去站内优化要怎么弄啊还有怎么
站内优化核心要点1. 内容质量:高质量的内容是吸引用户和提升排名的基石。确保网站内容原创、有价值、与目标用户需求紧密相关。定期更新内容,保持网站的活跃度和新鲜感。  2. 关键词优化:合理布局关键词,确保关键词密度适中,提高网站
指数高的词要怎么做关键词优化?
做过seo优化的朋友们应该都会遇到这个特别难办的问题,对于一个高指数的词排名该怎样去做呢,由于这些词的竞争是比较激烈,上到首页排名的时间会比较久。维护起来的成本也是比较高的,对于一些想要做热门词的新站来说是很难的。下面本篇文
策略报告 | 丰产预期,替代品挤压饲用需求 玉米期价波动区间下移
要点:下游企业以按需采购为主,控制采购节奏。市场关注国储及进口玉米竞拍、超期水稻投放,下游企业收购动态,饲料企业使用替代品比例,新玉米上市情况等。玉米深加工需求平淡。饲料需求偏弱。下游企业普遍有降库操作,库存需求减弱。2024
搜狗百科(如何)怎么创建词条:共建知识的在线平台
搜狗百科(如何)怎么创建词条:共建知识的在线平台搜狗百科是一个开放式的在线知识平台,允许每个人参与内容的创建与编辑,类似于一个线上版的百科全书。无论你是对科普知识感兴趣,还是想了解历史事件、人物传记或艺术作品,这里都能为你
相关文章
推荐文章
发表评论
0评