首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TOTP :在每一次会话中更改秘密

TOTP :在每一次会话中更改秘密
EN

Stack Overflow用户
提问于 2014-08-28 04:17:51
回答 1查看 737关注 0票数 0

我有这样的要求:为生成OTP而更改每个会话的用户秘密。我们决定使用TOTP作为算法来做到这一点。我们将短信中的OTP发送给用户进行授权验证(不需要在客户端生成OTP )。

代码语言:javascript
复制
TOTP = HOTP(WhereSessionCalculate(SecretKey), TC)

那么,改变用户会话智慧的秘密是很好的实践吗?否则,可能产生的后果是什么。如果需要更多的信息,请解释并告知我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-17 21:11:23

双因素(或多因素,更准确地说)认证的基本前提是用一个或多个不同类型的附加因素来补充正常的用户名/密码组合(这是您知道的事情)。最常用的是你拥有的东西(例如你的手机,带有谷歌认证应用程序或RSA、Gemalto等令牌)或关于你身份的东西(比如虹膜、指纹等)。

有人可以从肩冲浪中学习用户名和密码(如果密码短的话很容易),甚至可以从不安全的网络连接中嗅探到用户名和密码(希望您正在使用SSL和AES256或somesuch加密会话到您的应用程序!)但是2FA的加入阻止了这一点。

因此,让我回到您的问题,以及您的方法是否提高了对用户身份验证的安全性。一旦用户的OTP密钥被设置并存储在数据库中的用户记录中,并且该密钥被用来为TOTP生成器注入种子,那么用户用一个新的密钥重新种子会实现什么呢?是的,生成OTP代码并通过SMS发送可以验证登录的人当时是否带着他们的手机,但是使用Google身份验证器也是如此;而且,我在这里背叛了我的Apple扇波偏见(!)传入的SMSes显示在我的iPhone的锁定屏幕上,因此它也会显示你的OTP,而要访问应用程序,我必须用PIN解锁我的手机。

还要记住,大多数系统都是在网络或系统级别被破坏的,整个数据库的用户名和密码被窃取才能被破解--损害单个用户的访问通常是不值得的,除非你有一个非常高价值的资产吸引了国家行为者的注意!

在为我自己的应用程序探索了这些问题之后,我带了一个用户名和密码初始登录(至少20个字符来迷惑彩虹表,但没有关于复杂性或频繁更改的规定),在锁定帐户之前尝试的次数最多,失败登录的时间越来越长,第二次登录使用谷歌身份验证(因为它是免费的,运行在iOS、安卓和BB10上,而且很容易使用)。为了改进这一点,我会考虑生物识别,但我的申请是商业的,而不是军事的等等,所以我所拥有的足够我来评估风险。

我希望这能帮助您找到应用程序的最佳方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25540639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档