问题标签 [nonce]

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 投票
0 回答
2370 浏览

java - 如何在 Java 中实现摘要认证?

我知道这是一个非常广泛的问题,但我不打算问你一个完整的实现(我知道有一些库会为我做这件事)我只是有一些关于它的小问题。

  1. nonce 值是否应该放在 http 标头中?
  2. 如何从客户端的 http 标头中读取 nonce?
  3. 如何将随机数发送回服务器?也许在一个隐藏的领域?或者浏览器会为我为每个后续请求执行此操作吗?
  4. 关于客户端随机数(cnonce)我应该以与任何其他字段或隐藏字段相同的方式发送它吗?
  5. 如何从服务器取回 cnonce?和nonce一样吗?

在我的项目中,我使用 servlet 来生成 html 页面,并且我有一个 servlet 来处理 http 登录表单。

0 投票
1 回答
564 浏览

ios - iOS - NSURLConnection - 连接到服务器并获取 Nonce

我正在编写 iOS 应用程序。有一个与一些房地产有关的服务器。我必须向服务器发送以下请求以获取 Nonce。

我正在使用带有以下代码的 ASI HTTP 进行发布:

我得到的响应是
错误:无法启动 HTTP 连接

有人能告诉我如何建立成功的连接吗?

0 投票
0 回答
319 浏览

security - 从服务器获取挑战后的 RESTFul 身份验证

我对如何向服务器提供挑战以进行身份​​验证感到困惑。它是一个 RESTFul 架构。从我的服务器,我返回这个:

现在在客户端上,如何向服务器提供包含用户名和密码的挑战?只需告诉我需要使用从服务器获得的值执行的过程即可。

0 投票
2 回答
968 浏览

php - CSRF 令牌和随机数中的熵

我正在使用 Zend Framework 制作一个分类广告网站(出于投资组合的目的,是的,我知道世界没有空间容纳“又一个 Craigslist 克隆”)。我正在尝试实现无需帐户即可发布/编辑/删除的功能。

为此,我觉得我需要在提交后生成一个 Nonce 并将其存储在数据库中。然后通过电子邮件将链接发送给发出 GET 删除请求的用户,如下所示:

http://www.somesite.com/post/delete/?id=123&nonce=2JDXS93JFKS8204HJTHSLDH230945HSLDF

只有用户拥有这个唯一的密钥或随机数,提交后我检查帖子 ID 下的数据库,并确保在删除之前随机数匹配。

我的问题是随机数实际上有多安全。如果我使用 Zend Framework 的Zend_Form_Element_Hash,它会像这样创建散列:

在阅读 mt_rand() 时,一位评论者说这个函数的熵是有限的。所以,如果你想创建随机字符串,无论字符串的长度如何,它只会产生大约 20 亿个不同的字符串。这可能是严重的安全性如果您将此类字符串用于会话标识符、密码等,则会出现问题。 "

由于应用程序中的随机数/令牌的生命周期,可能是用户选择删除帖子之前的几天或几周,我认为有足够的时间来进行潜在的黑客攻击。

我意识到mt_rand()这是一个巨大的升级,从左侧和右侧的视觉映射像素rand()中可以看出。但够了吗?是什么让“ 20 亿个不同的字符串”成为安全问题?randmt_rand

最终,我怎样才能增加 nonce/token/hash 的熵?

0 投票
2 回答
3944 浏览

android - Android HttpClient Digest Authentication Authorization 标头“nc”硬编码

我们尝试在一个 HttpClient(一个会话)中向目标服务器发送多个请求。目标服务器将首先使用摘要身份验证(基于 MD5-sess)对所有请求进行身份验证。结果表明只有第一次访问成功。服务器拒绝以下访问,因为服务器将以后的访问视为重放攻击,因为“nc”值始终为“00000001”。

似乎Android HttpClient硬编码摘要授权标头将“nc”设置为“00000001”?

发送新请求时,客户端有什么方法可以增加此值?谢谢。

公共类 HttpService {

}

0 投票
1 回答
1834 浏览

cryptography - PIV 智能卡 - 一般认证 - 签署随机数

我希望有人可以帮助我了解PIV 智能卡标准

我想通过使用先前生成的 RSA 1024 位模数数字签名密钥 0x9C 对 PKCS#1 填充随机数进行签名来验证智能卡。这是我的测试应用程序的输出:

这是细分:

我还使用所有不同的密钥(已经成功生成所有密钥)并使用链式消息与单部分消息运行测试。查看更多测试数据

0 投票
4 回答
2648 浏览

android - Android InApp Billing - 什么是真正的随机数?

是的,我已经阅读了@developer.android.com 的所有文档,并且我确实理解了这一切,但有一个基本例外——它是为了什么而引入的。

由于来自 Google Play 的所有订单响应都由任何人都无法访问的私钥签名,并且正在通过配对的公钥进行验证(在我的情况下是在外部服务器上,因此第三人也无法访问)所以根本(几乎)没有办法欺骗。

所有这些随机数只是确保购买的多余方式。更重要的是,文档对这种情况只字未提,当:

  1. 我购买了一件物品;
  2. 生成随机数并将其发送到 Google Play;
  3. 发生崩溃,所以我所有已知的随机数都丢失了;
  4. 让我的应用重新启动并从 Google Play 获得回调;
  5. ...并因未识别 nonce 而拒绝此呼叫!

在上述情况下,用户支付了一个项目并且从未得到它,这是可耻的。当然,我可以将 nonce 存储在某个文件中,并在我的应用程序返回时重新读取它,但这违反了 nonce 的所有原则。

恕我直言,有人刚刚说“嘿,验证过程太简单了,让我们随机添加一些东西,它会更酷!”。所以有人做到了。

或者,你会敞开心扉接受我错过的其他用例吗?否则,我将从我的代码中删除整个随机数部分。

0 投票
1 回答
635 浏览

ruby - ruby sinatra openid 应用程序回复“Nonce 已使用或超出范围”

我在 Ubuntu 映像上的 sinatra 上运行以下 ruby​​ openId 示例。

输入谷歌网址(https://www.google.com/accounts/o8/id)时,我被重定向到谷歌,输入我的凭据,但我没有被授予访问权限:

Nonce 已使用或超出范围:“2012-05-09T13:50:xxxxxxxxxxxxxxx”

(顺便说一句,我正在使用“ruby”而不是“shotgun”执行 ruby​​ 程序)。有人可以为我提供一些关于输出的含义以及补救措施的见解吗?谢谢!

0 投票
2 回答
8562 浏览

ajax - check_ajax_referer() 究竟是如何工作的?

聪明的 Wordpress 人说插件开发人员应该在从页面发送回 wordpress 博客 (admin-ajax.php) 的每个 AJAX 请求中使用随机数。

这是通过 (1) 在服务器端生成一个随机数来完成的,通过

...(2) 使该 nonce 可用于发送 AJAX 请求的 Javascript 代码。例如,您可以这样做:

...然后 (3) javascript ajax 逻辑引用该全局变量。

...最后(4)在服务器端逻辑中检查接收到的随机数。

但是检查是如何真正起作用的呢?

0 投票
1 回答
1751 浏览

wordpress - 我可以让我的 wordpress 随机数更快过期吗?(通过 wp_verify_nonce)

Wordpress 有一个随机数机制,插件可以将随机数发送到客户端代码中,然后在客户端与服务器通信时验证随机数。

我查看了wp_verify_nonce() (在 wp-includes/pluggable.php 中)的源代码,如果 nonce 是 24 小时或更短时间,它会返回 true。

我是否有可能创建一个可以验证为...假设... .1 分钟前的随机数?

如何?

我认为有一种方法通过add_filter() and nonce_life。但我不希望无处不在的随机数短命。我只希望我的插件使用的 nonce 寿命很短。