问题标签 [one-time-password]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
176 浏览

security - 使用计数器而不是盐进行散列

我正在开发自己的安全消息交换协议。每条消息都包含以下字段:HMAC、时间、盐和消息本身。使用已知密钥对所有其他字段计算 HMAC。

协议应防止回复攻击。在大的时间间隔“时间”记录可以防止重放攻击(双方应该有同步的时钟)。但是为了防止短时间间隔内的重放攻击(时钟不太准确),我计划在发送新消息时将“salt”字段替换为每次增加的计数器。接收方将丢弃计数器值小于或等于前一个消息计数器的消息。

我做错了什么?

初始计数器值可以不同(我可以使用参与方标识符作为初始值),但攻击者会知道(以未加密形式传输的参与方标识符)。(https://security.stackexchange.com/questions/8246/what-is-a-good-enough-salt-for-a-saltedhash

但是攻击者可以预先计算 counter+1、counter+2、counter+3 的彩虹表……如果我不使用真正随机的盐?

0 投票
0 回答
1042 浏览

c# - 管理员帐户的 Windows 预登录一次性密码

所以我们在工作中遇到了一个有趣的问题,我知道其他公司也有这个问题。基本上归结为,我们将笔记本电脑运送给仅使用 VPN 的用户(像承包商一样思考。)他们使用域登录和登录前 VPN 连接(所有 Windows 客户端。)这一切都很好,但是,在某些情况下,用户无法连接到 VPN 并且无法使用其缓存帐户登录,因此解决方案是让他们使用本地帐户登录。问题是,这些密码需要以某种方式轮换,我们不会给他们本地管理员密码。所以我正在寻找一个产品,或者一个开始编码的好地方。

想法: 登录前可用的按钮。单击此按钮时,它会生成一个管理员用户(或者我们使用预先配置的用户)并提供一个号码。然后,他们将此号码转发给我们的帮助台,后者将其输入到 web 应用程序或控制台应用程序中,它会吐出刚刚生成的按钮的密码并转发给用户,以便他们可以使用该帐户登录,帮助台引导他们完成故障排除。那么有没有可以做到这一点的产品呢?

The Code: 如果不存在任何产品,您认为生成一次性密码的最佳方法是什么?后端很简单,用户创建/修改,帮助台工具等。我很好奇的是,是开始尝试堆叠到 gina.dll 和想法中的按钮东西上更好还是只是创建一个服务与桌面交互并等待按下按键序列,例如 ctrl+alt+backspace+f12?当然,该服务将在计时器上运行,例如 4 小时后,重置该用户密码并在已登录时强制注销。如果需要较低级别的挂钩,很可能会用 C#、C++ 编写此代码。

0 投票
2 回答
571 浏览

sha1 - 是否可以在 javacard 框架 2.2.1 版本中使用“Signature”类中的“ALG_HMAC_SHA1”方法?

我想使用 javacard.security.Signature 类中的 ALG_HMAC_SHA1 方法。但是我的 javacard 框架版本是 2.2.1,所以 Signature 类不包括这个版本的这个方法。它在2.2.2之后包含了这个方法。是否可以在不升级框架版本的情况下使用此方法?

0 投票
1 回答
264 浏览

javascript - OTP Owncloud 标签隐藏

我使用 Owncloud 的一次性密码应用程序,女巫在登录表单上添加了第二个密码字段,女巫针对多 otp 服务进行身份验证。

问题是来自 otp 输入字段的文本字段的标签没有被隐藏。

以下 .js 是相关的:

或在这里查看:http: //pastebin.com/8YX2FEGt

也许有人解决了这个问题?

0 投票
3 回答
14525 浏览

ios - 如何直接在 iPhone 中将 OTP 从用户的消息框填充到应用程序?

我正在开发一个提供移动和 iPhone 应用程序的互联网交易应用程序。随着最近的市场趋势,我们正在努力包括两因素身份验证。为此,我们将在用户注册的手机号码上以短信形式发送一次性密码。

有没有办法,OTP 可以从 iPhone 中的用户消息框自动填充到应用程序中?我应该使用什么算法让我的应用程序读取用户的消息框?

提前致谢:)

0 投票
1 回答
292 浏览

cryptography - 如何在计算 OTP 时对 HMAC-MD5 结果长度应用填充?

在生成一次性密码时,我使用了 hmac-md5 算法(相对于 RFC 2104),hmac 结果为 128 位。使用 hmac-SHA1 算法时,结果为 160 位。我需要对我的 hmac-md5 结果应用填充以生成 20 个字节。我应该使用哪些值来填充?

0 投票
1 回答
977 浏览

azure - Azure 多因素身份验证如何在登录页面上进行密码验证

我想集成Multi-Factor Authentication到我的自定义构建的 Azure 托管网站中。

我希望用户获得一个OTP (One Time Password) over SMS然后在登录页面上输入该 OTP。

我应该如何验证用户在登录页面输入的 OTP?我无法在SDK在线文档和在线文档中找到与此相关的任何内容。

SDKMSDN http://msdn.microsoft.com/en-us/library/dn422962.aspx上的文档告诉我们:

“短信。WindowsAzure Multi-Factor Authentication可以向任何手机发送带有一次性密码的短信。要完成登录过程,系统会提示用户使用密码或密码和 PIN 进行回复,或者在应用程序登录屏幕。”

但不幸的是,它并没有说明如何通过SDK自身或其他方式验证发送的密码。

0 投票
0 回答
340 浏览

hmac - HOTP/TOTP 客户端令牌唯一性

是否可以使用TOTP从多个通道生成令牌(其中通道被定义为“用户”,使用通道c的某个共享密钥K_c),并这样做从 OTP 中识别通道本身?

例如,如果两个 OTP 分别使用时间序列常数i_0和共享密钥K_1K_2 生成,则:

A = HMAC-SHA-1(K_1, i_0)B = HMAC-SHA-1(K_2, i_0)

其中 A 和 B 是生成的 OTP。我的问题是:在验证期间是否有可能在服务器端毫无疑问地确定(从数学上讲)A 与通道 1(K_1)“链接”,而 B 与通道 2“链接”?换句话说,使用K_1生成的每个 OTP都将不同于使用 K_2 生成的那些 OTP,不管 HMAC 的 160 位输出的截断。

我的第二个问题是,如果是这种情况(两个“序列”不同),它们的差异可以用汉明距离来量化吗?

0 投票
1 回答
199 浏览

security - 我实施一次性密码是否足够安全?

我想实现一种登录机制来验证我的网络应用程序的管理员。但是由于我没有使用 ssl,所以我不能依赖用户通过 html 表单发送他的密码。

所以我想到了使用一次性密码(我其实不知道这个东西,我最终重新发明了这个概念,最终发现这样的东西已经存在了)

我想要的只是您对我的实施安全性的看法:

1) 客户端请求一个随机且唯一的哈希。服务器生成该散列,将其存储在会话变量中并将散列​​返回给客户端。

2) 客户端使用只有他和服务器知道的自定义算法从该哈希中导出密码。该密码被发送回服务器。

3)服务器做同样的事情并检查密码是否匹配,如果它们匹配,则用户已通过身份验证。

这完全可以破解吗?

0 投票
0 回答
2119 浏览

laravel - 在 Laravel 4 上实现 OTP Google Authenticator

我正在使用https://github.com/ChristianRiesen/otp在 Laravel 4.1.23 站点上集成 2 因素身份验证:秘密生成得很好,二维码图像也是如此,Google Authenticator 能够扫描图片。

但是,我的 iPhone 在 Google Authenticator 应用程序中生成的代码无法验证。我遵循了 README.md 中的示例。

在我的控制器中,我有如下代码:

然后在我看来(2fa.blade.php),我有如下代码:

这一切似乎都在起作用。表单发布到以下控制器函数:

这是非常接近 repo 中的用法示例,但密钥(令牌)永远不会验证。我在这里错过了什么吗?Laravel 是不是在搞什么鬼?

任何帮助表示赞赏。