标签: nonce

如何计算wsse nonce?

我在尝试向服务器发送soap请求(soapCall)时收到错误.

Fatal error: Uncaught SoapFault exception: [ns1:InvalidSecurity] An error was discovered processing the <wsse:Security> header
Run Code Online (Sandbox Code Playgroud)

我需要发送ws-security标头

<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

<wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">

<wsse:Username>userID</wsse:Username>

<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">passwd</wsse:Password>

<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">ZTQ3YmJjZmM1ZTU5ODg3YQ==</wsse:Nonce>

<wsu:Created>2013-07-05T19:55:36.458Z</wsu:Created>

</wsse:UsernameToken>
</wsse:Security>
Run Code Online (Sandbox Code Playgroud)

经过大量的研究后,我认为我得到的问题是nonce没有达到要求.正如我正在编制肥皂标题看起来像我得到的例子.唯一未知的因素是计算这个随机数......

从我得到的示例nonce,它是一组24个数字+字母+特殊字符

像这样的东西

ZTQ3YmJjZmM1ZTU5ODg3YQ==
Run Code Online (Sandbox Code Playgroud)

但是,我不太确定你如何从php计算wsse nonce ...有什么标准吗?

我的代码

$nonce = sha1(mt_rand());
Run Code Online (Sandbox Code Playgroud)

结果

dabddf9dbd95b490ace429f7ad6b55c3418cdd58
Run Code Online (Sandbox Code Playgroud)

这与示例完全不同......我相信这就是为什么这段代码无效的原因.

所以我正在做更多的研究,现在我正在使用它

$NASC = substr(md5(uniqid('the_password_i_am _using', true)), 0, 16);
$nonce = base64_encode($NASC); 
Run Code Online (Sandbox Code Playgroud)

结果

NzJlMDQ4OTAyZWIxYWU5ZA==
Run Code Online (Sandbox Code Playgroud)

现在,它看起来类似于示例,但我仍然从头开始显示该错误.

有人可以帮我一把吗?

用soapUI进行一些进一步测试.

相同的userID和passwd,将passwordtype设置为passwordtext

它正在发挥作用.

有谁知道soapUI如何计算nonce?或者知道soapUI如何通过ws-security?

php ws-security soap nonce

4
推荐指数
2
解决办法
2万
查看次数

Google Chrome从脚本标记中剥离现时值

我正在尝试将nonce值添加到内联脚本中以满足更严格的CSP。但是,我遇到了一个奇怪的问题,即chrome正在从现时属性中剥离值。当我卷曲页面时,会出现现时值。这导致脚本现在无法通过CSP测试,因此无法执行。我以为这可能是由于流氓扩展引起的,但是在完全干净的chrome版本上却失败了。(OSX上的版本73.0.3683.103)随机数的值是一个随机的256位基本编码的字符串,因此它应满足随机数的所有要求。

有人知道发生了什么吗?难道我做错了什么?

google-chrome nonce content-security-policy

4
推荐指数
1
解决办法
348
查看次数

在Apache/PHP中管理Nonce

我一直在讨论关于nonce生成和PHP的各种问题,但没有找到关于管理nonce的"一次"方面的细节的任何讨论.

这是我的情况.

我有一些PHP需要访问web服务,并且对webservice的请求需要我的PHP生成一个nonce并签署请求(即,我不是从webservice请求nonce).那部分很容易.

我正在努力寻找一个好的解决方案,以防止在有多个会话进行时重用nonce.

在我看来,我可以做三件事.

一种是将nonce/timestamp对存储在数据库中,然后实现逻辑以检查数据库中是否存在现有的nonce,使旧的等效期满等.这也需要一个TRANSACTION或者LOCK TABLE用于线程安全.呸.

二,是将存储器中的nonce存储在APC中的nonce(在我的情况下不能使用memcached),并让TTL处理到期.在这种情况下,线程安全是否需要将逻辑包装在sem_acquire()/ sem_release()apc_add()真正的线程安全?我的这个主要关注的是如何处理这种情况,如果apc_add()还是apc_store()实际上失败,因为缓存已满.

三,是使用Cache_Lite而不是APC.

还有其他选择吗?据我所知,OpenID使用Cache_Lite管理nonce,所以我怀疑这是最好的解决方案,但我想在提交之前检查所有选项.

谢谢.

php apache nonce

3
推荐指数
1
解决办法
1621
查看次数

如何生成WordPress插件安装链接

我创建了一个插件,取代了我之前编写的插件,并添加了一些额外的东西.我想在我的旧插件的设置页面中创建一个警报,其中包含下载和安装我的新插件的链接,并告知他们开发人员不再支持旧插件.目前,从我的管理面板的插件页面,安装链接如下所示:

http://www.example.com/wp-admin/network/update.php?action=install-plugin&plugin=wptouch&_wpnonce=a8d64aa295
Run Code Online (Sandbox Code Playgroud)

在我看来,创建URI时至少要记住两件事:

  1. 检查这是否是多站点设置
  2. 确保我生成正确的nonce.

有谁知道如何正确地做到这一点?生成此URI时还需要考虑其他事项吗?

在此先感谢您的帮助.

wordpress wordpress-plugin nonce

3
推荐指数
1
解决办法
907
查看次数

在zend形式上的nonce

有没有人知道是否存在以zend形式使用nonce的方法.

注意:nonce字段用于验证表单的内容来自当前站点上的位置而不是其他位置.nonce不提供绝对保护,但应防止大多数情况.在表单中使用nonce字段非常重要.

提前致谢

forms security zend-framework nonce

3
推荐指数
1
解决办法
482
查看次数

check_ajax_referer()如何真正起作用?

Smart Wordpress的人说插件开发人员应该在每个AJAX请求中使用一个nonce,这个请求从页面发送回wordpress博客(admin-ajax.php).

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

$nonce = wp_create_nonce  ('my-nonce');
Run Code Online (Sandbox Code Playgroud)

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

function myplg_emit_scriptblock() {
    $nonce = wp_create_nonce('myplg-nonce');
    echo "<script type='text/javascript'>\n" .
        " var WpPlgSettings = {\n" .
        "   ajaxurl : '" . admin_url( 'admin-ajax.php' ) . "',\n" .
        "   nonce : '" . $nonce . "'\n" .
        " };\n" .
        "</script>\n";
}
add_action('wp_print_scripts','myplg_emit_scriptblock');
Run Code Online (Sandbox Code Playgroud)

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

    var url = WpPlgSettings.ajaxurl +
        "?action=my-wp-plg-action&" +
        "nonce=" + WpPlgSettings .nonce +
        "docid=" + id;

    $.ajax({type: "GET",
            url: url,
            headers : { "Accept" : 'application/json' },
            dataType: …
Run Code Online (Sandbox Code Playgroud)

ajax wordpress nonce

3
推荐指数
1
解决办法
6063
查看次数

OpenIdConnectProtocolValidator - 随机数错误

我在我的 azure 网站(azure Active Directory、C#、MVC)上使用 OpenIdConnect 身份验证,并且随机收到此错误

IDX10311:requireNonce 为 true(默认),但validationContext.Nonce 为 null。无法验证随机数。如果不需要检查随机数,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为 false

我正在使用 KentorOwinCookieSaver,据我所知,它是这个问题的解决方案,但显然我错了,因为它不断发生。我怎样才能阻止这个?

在ConfigureAuth方法中我有这一行

app.UseKentorOwinCookieSaver();
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc azure nonce openid-connect

3
推荐指数
1
解决办法
1万
查看次数

如何在 AES 加密中用随机数解密

我是密码学的新手。我需要使用具有某些配置的 AES 加密文本

Encryption mode: GCM
Key size: 256 bits
Nonce size: 96 bits
MAC size: 128 bits
Run Code Online (Sandbox Code Playgroud)

由于 AES 是一种对称算法。所以我有一个秘密钥匙。我用谷歌搜索并发现

nonce 是一个随机数,用于确保消息是唯一的

但我有疑问,如果 nonce 是随机数,我该如何进行解密。我是否需要将随机数与每个加密一起存储。或者我需要使用密钥拆分 nonce、cipher 和 mac 的任何其他方式。我如何使用提供的配置进行加密。

encryption cryptography aes nonce

3
推荐指数
2
解决办法
5371
查看次数

生成nonce c ++

我想知道是否有办法使用OpenSSL或Crypto ++库生成Cryptographic Nonce.还有什么比使用autoseeded池生成一组随机字节更多的东西吗?

c++ openssl cryptography crypto++ nonce

2
推荐指数
1
解决办法
3621
查看次数

为什么带有 GCM 的 AES-256 在密文大小上增加了 16 个字节?

我正在使用 Golang 的加密包,特别是 crypto/aes,带有 32 字节的密钥(因此,AES-256)和 GCM 方法(Galois/Counter Mode)。
我从一个文件中读取了多个 16384 字节的块并生成了一个密码块、一个 GCM 方法和一个 12 字节的随机数。
然后,我将随机数添加到密文中,以便在解密时将它们拆分,以访问随机数(因为 12 字节的大小是已知的)。

人们会期望生成的密文是 16384 + 12 个字节 = 16396;但是,在实际加密时,我得到的大小为 16412 字节,因此添加了 16 字节。解密每个块后,我得到 16384 的“正常”大小。

这是一个快速示例。

block, _ := aes.NewCipher([]byte("W9FLKnyv397R82kKuFpfp6y8usGRf49a"))
gcm, _ := cipher.NewGCM(block)
nonce = make([]byte, gcm.nonceSize()) // nonceSize is 12 bytes
_, _ = io.ReadFull(rand.Reader, nonce) // populate nonce with random data


for {
    src := make([]byte, 1024 * 16) // let's hypotise this src is a chunk of a file, …
Run Code Online (Sandbox Code Playgroud)

encryption aes go nonce aes-gcm

2
推荐指数
1
解决办法
862
查看次数