首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次人类密码算法

一次人类密码算法
EN

Security用户
提问于 2017-02-02 12:43:52
回答 3查看 4.3K关注 0票数 18

是否有一次密码生成算法(基于预定义的秘密和更改值/时间/计数器/等)足够简单,可以由一般人进行处理,但足够安全,以至于仅用几个密码(例如5-10)就无法找到秘密?

我见过关于各种具体密码方案的问题,以及它们的安全性。但我想更笼统地知道是否存在一些著名的算法。

直觉告诉我,如果某些东西很容易被人类处理,那么它也很容易被打破。但是,我再次感到非常惊讶的是,非对称加密是可能的,或者安全密钥交换(DH)。所以,给我个惊喜!

编辑:一些澄清.

这个问题是在我思考关于户外使用的双因素认证时提出的。安全环境的典型双因素认证(家庭、办公室、.)在设备或电话中使用密码和OTP生成器。如果你把设备/电话弄丢了,还有密码。键盘记录器盗取你的密码,还有设备/电话。

但在这种情况下两者都可能被偷呢?例如,你可以使用一个应用程序在街上捡起一辆电子自行车,或者在火车站打开一个储物柜。当你在手机上输入密码时,有人可能会观看,然后还会窃取手机本身。

这个问题可以通过使用在短时间内变得无用的密码来解决(例如。10分钟)。此外,电话将有一个单独的秘密(例如SSL客户端证书),使得对密码身份验证的暴力攻击更加困难。

斯普里亚先生关于Blum的HCMU算法的建议非常接近我正在寻找的内容。对于普通人类来说,这看起来还是有点太重了,但是如果有一些练习的话,那是可行的。

EN

回答 3

Security用户

发布于 2017-02-02 13:45:02

您可以有一个查找表,就像一个时间垫。

查找书中的每一页都是一天的OTP值,您可以在当前日期/时间上查找这本书,以便在这一时刻得到正确的OTP。这模拟了一个TOTP。您可以在安全性( TOTP更改的频率)和查找簿的厚度之间进行权衡。

票数 6
EN

Security用户

发布于 2017-02-02 18:24:36

史蒂夫·吉布森( Steve )把一个叫做“完美纸密码”的东西拼凑在一起,作为如何做到这一点的示范。https://www.grc.com/ppp为您提供详细信息。该站点有可下载的代码,可用于构建一个更复杂的实现。

这不是基于时间的,而只是一系列的一次性密码,只能按顺序使用。即使当前密码被监听,它也不提供有关下一个密码的信息。每个密码的字符数和“字母表”是可调的。

这里我们看到代码1A-D已经被使用,接下来要使用的代码是E1 (Tygq)。

票数 4
EN

Security用户

发布于 2017-02-02 15:45:38

老实说,即使是官方的TOTP算法也不是非常复杂,尽管您必须非常专注于计算头脑中的HMAC。但是,这确实表明您可以使用大多数相同的构建块,合理地使用基于时间的计算密码系统。

主要的问题是人们在很多事情上不如电脑好:

  • 人们没有内置的时间源,所以你需要足够的灵活性来处理某个人从源头“走出”的合理时间。从最小化计算错误的角度来看,你可能不能指望某人在正确的时间内超过5分钟,甚至更长的时间可能更好。
  • 人们计算速度慢。您可以依靠计算机在一秒钟内执行数以百万计的计算。一个人一旦得到了所需的值,很可能就能处理一次计算。这也意味着您需要为某人输入一个有效值留出更长的时间。
  • 人们在重复操作时会犯错误。这意味着,如果他们在过程中犯了一个错误,那么他们更有可能需要输入多个值。每次尝试都需要一定的时间。

因此,直接调整TOTP算法将涉及:

  1. 用一般人能做的事情代替HMAC步骤
  2. 定义一个时代,人类可以计算出与精神上的不同--也许是今天的午夜,并进行一些基于日期的修改。
  3. 定义一个足够长的间隔,使一个人都能够在其中执行某些计算,并且可以识别为从所选的时代起的给定的间隔--5分钟是可行的,因此在0912处计算代码的值为(9*12 + 2*5 = 118 )
  4. 使用HMAC替换值和记忆键。
  5. 将值转换为适当的范围,可能会丢弃其中的位。

这将不如基于计算机的计算机安全,因为攻击者将能够快速计算许多潜在值,因此您还需要限制在给定时间间隔内允许多少次尝试。

不,我不知道什么是合适的HMAC替代品.

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

https://security.stackexchange.com/questions/150168

复制
相关文章

相似问题

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