問題タブ [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 投票する
1 に答える
807 参照

authentication - mongo ログに多数の「bad nonce received or getnonce not called」が記録される

  こんにちは、みんな、

  現在、mongo をデータベースとして使用しています。mongo 接続が自動リセットされるか、時々失敗することがわかりました。次に、mongo ログ ファイルに奇妙なメッセージが見つかりました。

  私はそれをグーグルで調べましたが、この問題に遭遇したユーザーはほとんどいなかったようで、リンクhttps://github.com/mongodb/mongo/blob/master/db/security_commands.cppで github のソース コードしか見つかりませんでした。コードから、クライアントは認証のために user_name、use_password、nonceをサーバーに送信します。ログ メッセージは、クライアントによって送信された nonce とサーバーによって配布された nonce の違いによって発生します。

  私のmongoドライバーに何か問題がありますか? 誰もこの問題に遭遇しましたか?

0 投票する
1 に答える
12205 参照

php - PHP に相当する Java Webservice Client UsernameToken

UsernameToken を認証メカニズムとして使用する Web サービスを PHP でビルドしています。この Web サービスにアクセスできる PHP クライアント側コードがあります。これを Java で行う必要があります。多分あなたは私を助けることができます!

このサービスには、次の php コードを使用してアクセスできます。

これらの値は、この SOAP ヘッダーに解析されます。

このコードを使用すると、問題なく Web サービスにアクセスできます。これを Java で行う必要があります。

必要なファイルを作成し、UsernameToken を使用して SOAP ヘッダーを追加するハンドラーを実装しました。しかし、WS にアクセスしようとすると、常に「認証されていません」というエラーが表示されます。passdigest または nonce エントリの作成中に何かが足りないと思います。

これが私がそれらを計算する方法です:

これらの値は、soap ヘッダーの作成中に使用されます。

結果の SOAP ヘッダーは次のようになります。

誰かが私が間違っていることを見ていますか?

0 投票する
4 に答える
24696 参照

oauth - Nonce を 1 回しか使用できない場合、OAuth のタイムスタンプのポイントは何ですか?

私は最初、OAuth のタイムスタンプの実装を誤解して、現在時刻から 30 秒以内にないタイムスタンプは拒否されることを意味すると誤解していました。各システム クロックは、タイム ゾーンに関係なく、分と秒まで十分に同期していました。次に、より明確にするためにもう一度読みました。

「サービス プロバイダーによって特に指定されていない限り、タイムスタンプは 1970 年 1 月 1 日 00:00:00 GMT からの秒数で表されます。タイムスタンプ値は正の整数である必要があり、以前に使用されたタイムスタンプ以上である必要があります。要求します。」

ソース: http://oauth.net/core/1.0/#nonce

つまり、タイムスタンプは、サーバー システム クロックと比較するのではなく、同じソースからの以前のリクエストと比較してのみ比較されます。

次に、ここでより詳細な説明を読みます: http://hueniverse.com/2008/10/beginners-guide-to-oauth-part-iii-security-architecture/

( TL;DR? - 以下の太字部分までスキップしてください)

侵害されたリクエストが再び使用される (リプレイされる) のを防ぐために、OAuth は nonce とタイムスタンプを使用します。nonce という用語は「一度だけ使用される番号」を意味し、署名された各リクエストを一意に識別するための一意で通常はランダムな文字列です。リクエストごとに一意の識別子を持つことで、サービス プロバイダはリクエストが複数回使用されるのを防ぐことができます。これは、コンシューマーがサービス プロバイダーに送信される各要求に対して一意の文字列を生成し、サービス プロバイダーが使用されるすべての nonce を追跡して、2 回目の使用を防止することを意味します。nonce 値は署名に含まれているため、攻撃者は共有秘密を知らずに変更することはできません。

nonce を使用すると、受信したすべての nonce 値の永続的なストレージが要求されるため、サービス プロバイダーにとって非常にコストがかかる可能性があります。実装を簡単にするために、OAuth は各リクエストにタイムスタンプ値を追加します。これにより、サービス プロバイダーは限られた時間だけ nonce 値を保持できるようになります。保持された時間枠よりも古いタイムスタンプを持つリクエストが受信されると、サービス プロバイダーにはその期間の nonce がなくなったため、リクエストは拒否されます。許可された時間制限の後に送信されたリクエストは、リプレイ アタックであると想定しても安全です。OAuth は、タイムスタンプを実装するための一般的なメカニズムを提供しますが、実際の実装は各サービス プロバイダーに任されています (多くの人が仕様で再検討する必要があると考えている領域)。セキュリティの観点から、実際の nonce は、タイムスタンプ値と nonce 文字列の組み合わせです。これらを組み合わせて初めて、攻撃者が二度と使用できない永続的な一意の値が提供されます。

私が混乱している理由は、Nonce が 1 回しか使用されない場合、サービス プロバイダーがタイムスタンプに基づいて拒否するのはなぜですか? 「サービス プロバイダーにはその期間の nonce がありません」というのは混乱を招き、最後に使用されてから 30 秒以内であれば、nonce を再利用できるかのように聞こえます。

それで、誰かが私のためにこれを片付けることができますか?nonce が 1 回限りの使用であり、タイムスタンプを自分のシステム クロックと比較していない場合、タイムスタンプのポイントは何ですか (明らかに信頼できないため)。タイムスタンプが相互に関連するだけであることは理にかなっていますが、一意の nonce 要件では無関係に思えます。

0 投票する
0 に答える
143 参照

zend-framework - zend openid auto clean nonce ファイルはありませんか?

私は zend OpenID ライブラリを使用しています: https://github.com/marcinwol/zfopenidはうまくいきます 。ただし、問題は tmp フォルダー ファイル [nonce ファイル] をクリーニングしていません。Zend_OpenId_Consumer_Storage_File の purgeNonces メンバーは、実行中に呼び出されていないようです。 http://framework.zend.com/manual/1.11/en/zend.openid.consumer.html dbstorage は期限切れのデータをクリアしているようです。しかし、それもナンスをクリアしていません。dbstorage を使用する予定です。任意の例をいただければ幸いです。
ありがとう

いくつかの情報が見つかりました。単一の ID のためであるため、検出ファイルを削除する必要はありません。 http://openid.net/specs/openid-authentication-2_0.html#verify_nonce このように、Zend_OpenId_Consumer_Storage_File は nonce ファイルを削除しません。purgeNonce を呼び出したいときはいつでも、「タイムスタンプを使用して、現在の時刻から離れすぎている応答を拒否することができます」を使用する必要があります。そのため、古い nonce ファイルを削除できます。また、dbstorage の例の isUniqueNonce は、すべての OP ではなく、同じ OP の重複ナンスをチェックする必要があります。間違っている場合は、私の理解を修正してください。

0 投票する
5 に答える
8102 参照

java - Java認証ライブラリ

データを送信する前にクライアントを認証する必要があるサーバー/クライアントJavaアプリケーションを開発しています。また、認証後に送信されたデータを暗号化し、その鮮度を確保する必要があります。

それを行うために使用できる最高のライブラリは何ですか?

0 投票する
2 に答える
6044 参照

ajax - Wordpress ナンス チェックは常に false

ajax リクエストによる基本的な nonce 検証に問題があります。

これらは私のスクリプト ローダーと css ローダー関数です: (gallery.php 内)

私のjavascrtipファイルで:(gallery.jsで)

私の ajax 呼び出しは、php から do_upload アクションにアクセスします。これは、受信した nonce フィールドを応答に追加します... (gallery.php に戻ります)

受信した結果は次のようになります: c4817b947a {"success":false,"debugNonce":"c4817b947a"}

最初の c4817b947a は、ノンス生成関数からのエコーによるものです。検証が行われる方法には影響しません。

私の結論は、 wp_verify_nonce は常に失敗するということです。

ローカルホストで wp 3.2.1 を使用しています。新規インストールで、プラグインは使用していません。

0 投票する
2 に答える
8290 参照

.net - WSE 3.0 (.NET) で UsernameToken の Nonce 要素に EncodingType 属性を追加する方法

WSE 3.0 を使用して MVC3 .NET Web アプリから Java Web サービスを呼び出そうとしています。

ただし、Web サービスでは、UsernameToken の Nonce 要素に「EncodingType」属性が必要です。以下は、この Java Web サービスで正しく動作する SOAP エンベロープのサンプルです。

以下は、VS2010 が生成した (Fiddler でキャプチャされた) プロキシから生成された SOAP エンベロープです。

この属性が欠落している場合、この Web サービスは「無効なセキュリティ トークンが提供されました (ユーザー名トークンの処理中にエラーが発生しました)」を返します。

EncodingType 属性を追加するにはどうすればよいですか?

0 投票する
1 に答える
145 参照

cocoa - 同一の暗号化(IV)ココアで暗号文を変更しますか?

暗号化を安全にするためにキーをソルトする方法についてのチュートリアルを読んでいましたが、それを十分に活用できませんでした。暗号化についてはよくわかりません。助けが必要です。私はcommoncryptoを使用してファイルを暗号化していますが、安全ではないという事実を除いて、完了しています...ユーザーが同じ正確なファイルを同じ正確なキーで2回暗号化する場合、暗号文は同じであってはなりません。

これは私が持っているものです:

誰かが私を助けてくれて、私がどのようにソルトを実装するかを正確に教えてくれるなら、それは素晴らしいことです!再度、感謝します!

0 投票する
1 に答える
4860 参照

wordpress - WordPressプラグインでAjaxでNonceを使用する

WordPressプラグインでナンスを使おうとしています。ノンスを使いたいフォームがあります。

PHPの場合:

jQueryファイルの場合:

ナンスをjQueryに正しく投稿していますか?

PHPの場合:

助言がありますか?ナンスに関するすべてのコードを取り除くと、すべてが正常に機能します。なぜそれが機能しないのかについてのアイデアはありますか?または、どうすればデバッグできますか?ありがとうございました!

ありがとうございました。