問題タブ [challenge-response]
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.
security - セキュリティ、暗号化: 愚かな挑戦 - 応答プロトコル?
わかりました、ちょっとしたゲームです:
プロジェクトの仕様がいくつかあります。ある時点で、彼らはネットワーク上でパスワードを暗号化するために次のように要求し、それはチャレンジ レスポンス プロトコルであると述べています。
ご存じない方のために説明すると、SHA は Secure Hashing Algorithm の略で、暗号化の標準アルゴリズムです。
私はそれが明確であることを願っています。質問: パケット 2 と 3 (「チャレンジ」と「チャレンジ xor パスワード」) を盗聴した場合、実際のパスワードはそれらの間に別の xor があるだけです!?!? この種のプロトコルを実装する他の方法があります。 ??
security - 誰かがドングルを持っているときだけ Web サイトにアクセスできるようにするにはどうすればよいでしょうか?
SSL で暗号化されたログイン/パスワードの上に資格情報のレイヤーを追加したいが、ユーザーにとって複雑さを増したくないとします。既存のクロスプラットフォーム ブラウザ機能を備えた Web サーバー認証スキームに、ドングルを所有するという要件を追加する方法はありますか?
つまり、Web サイトにアクセスするには、ユーザー名、パスワード、およびクライアント コンピュータに接続されている USB ドングルが必要です。ドングルはおそらく、ある種のチャレンジ/レスポンスを行うでしょう。
このドングル ソリューションが Firefox で自動的に、またはプラグインを追加するだけで動作することが理想的です。
考えや提案は大歓迎です。
c# - バックドア エントリ スキームのチャレンジ/レスポンスを生成する効率的な方法は何ですか?
パスワード認証を使用してデータベースにアクセスするシステムがあり、ユーザー名と暗号化されたパスワードがデータベースに保存されます。ユーザーがパスワードを忘れた場合 (または管理者がより環境に優しい牧草地に移動した場合)、現在の管理者の新しいパスワードを生成するか、新しい管理者を生成できるようにする必要があります。
お客様との電話サポートを行っております。したがって、次のシナリオを使用します。
ユーザーが電話をかけます - パスワードを忘れました。
クライアント ソフトウェアは、サイト ライセンスに基づいてチャレンジ コードを生成します。
ユーザーが電話サポート スタッフにチャレンジ コードを伝える
電話サポート スタッフが応答コードを伝える
ユーザーはチャレンジとレスポンスのコードを入力し、バックドアに入ります (新しいユーザーが作成されるか、現在のユーザーのパスワードがリセットされます)。
チャレンジ/レスポンスが一度だけ機能するようにしたいので、バックドアを開いたままにしたくありません。
どうすればいいですか?
java - Java SASL API と CRAM-MD5 の使用方法
私は現在 Java SASL API で遊んでおり、CRAM-MD5 を使用してチャレンジ/レスポンス シーケンスをシミュレートする小さなプログラムを作成しました。ただし、SaslClient と SaslServer には evaluateChallenge(...) と evaluateResponse(...) メソッドしかないため、これを行う方法がわかりません。SaslServer には issueChallenge(...) などのメソッドがあると思いますが、そうではありません。それで、これを行う正しい方法は何ですか?
以下に私の(動作していない)コードがあります。
ごきげんよう、フレッド
delphi - Delphiを使用して、アプリケーションへのアクセスを復元するための視覚的なチャレンジ/レスポンスを作成するにはどうすればよいですか?
Delphiでチャレンジ/レスポンスタイプのプロセスを作成することに興味があります。シナリオは次のとおりです...2台のコンピューターがあります...1台はユーザーに属し、1台はサポート技術者に属しています。
ユーザーは特定のプログラムからロックアウトされており、1回のアクセスを取得するには、次のようにします。
- 「28394LDJA9281DHQ」などのチャレンジフレーズまたはある種の合理的に一意の値が表示されるユーザー
- ユーザーはサポートスタッフに電話し、このチャレンジを読みます(サポートスタッフが本人確認を行った後)
- サポート担当者は、このチャレンジ値をシステム上のプログラムに入力します。このプログラムは、「9232KLSDF92SD」など、応答と同じくらいユニークな応答を生成します。
- ユーザーが応答を入力すると、プログラムはこれが有効な応答であるかどうかを判断します。
- そうである場合、ユーザーにはアプリケーションへの1回のアクセスが許可されます。
さて、これを行う方法は私の質問ですか?相互にネットワークアクセスできない2つのアプリケーションがあります。このタスクを支援するWindows内の機能はありますか?
CryptoAPI内でいくつかの機能を使用できると思いますが、どこから始めればよいのかよくわかりません。私はあなたが提供できるどんな助けにも感謝します。
security - チャレンジレスポンスプロトコルは、man-in-the-middle攻撃に対してどのように役立ちますか?
チャレンジレスポンス認証は、man-in-the-middle攻撃をどのように防止しますか?wikiの記事を読みましたが、それでも理解できません。
cryptography - 社会主義ミリオネア プロトコルは、CHAP のような単純なチャレンジ/レスポンスとどう違うのですか?
これは手がかりのない質問ですが、一般的に OTR メッセージングと組み合わせて使用される社会主義ミリオネア プロトコルでは、CHAP のような「従来の」チャレンジ/レスポンス メカニズムではできないことは何ですか?
http://en.wikipedia.org/wiki/Socialist_millionaire
http://en.wikipedia.org/wiki/Challenge-handshake_authentication_protocol
PS: 誰か「OTR」というタグを追加することを検討できますか?
security - ブラウザと SSL を使用しない OAuth / チャレンジ/レスポンス モデル
REST-ful を使用してモバイル アプリケーションを開発する計画があります。SSL を使用しないため、OAuth 2.0 ではなく OAuth 1.0a を適用したいと考えています。また、Web ブラウザーも使用したくありません (PIN ベースの UX は使いにくいと考えています)。通常の OAuth フローでは不可能であることはわかっています。
私はセキュリティ アーキテクチャの専門家ではありませんが、ネットで Google を検索すると、誰かがチャレンジ レスポンス モデルのようなメソッド ログインを使用して実装していることがわかります。
アプリがユーザー名を安全に保つ必要がなく、ユーザーがアプリにパスワードを入力することで私たちを信頼している場合、この方法を使用してアクセス トークンを交換できますか? 欠陥はありますか?
- サーバーが無許可のリクエスト トークンに応答した後、クライアントはチャレンジ/レスポンス フローを開始します。
クライアントは、OAuth require: oauth_consumer_key, oauth_token, oauth_signature_method, oauth_timestamp, oauth_nonce のようなパラメーターと、追加のユーザー名パラメーター username="username" (ユーザーのパスワードから計算されたパスワード パラメーター) を使用して、 http://www.example.com/login に要求を送信します。 (サーバーに保存されます)、KDF 鍵派生関数/ハッシュ関数を使用した oauth_nonce。クライアントは、OAuth の説明を使用してリクエストの署名を計算しますが、パスワード パラメータを省略した後、パラメータ username およびその他の必要なパラメータを使用してリクエストを送信します。
サーバーはリクエストをチェックし、アクセス トークンを返します。
python - (Python)ツイストxmlrpcサーバーに認証を追加する方法
user:password @ hostを使用せずにxmlrpcサーバー(P2Pネットワークのノードで実行される)に認証を追加しようとしています。これにより、すべての攻撃者にパスワードが明らかになります。認証は、基本的にプライベートネットワークを作成し、許可されていないユーザーがそれにアクセスするのを防ぐためのものです。
これに対する私の解決策は、これに非常によく似たチャレンジレスポンスシステムを作成することでしたが、これをxmlrpcサーバーコードに追加する方法がわかりません。ここで同様の質問(カスタム認証が必要な場所)を見つけました。
そこで、クライアントがサーバーに接続するたびに呼び出されるモジュールを作成してみました。これは、クライアントで実行されているチャレンジレスポンスサーバーに接続し、クライアントが正しく応答した場合はTrueを返します。唯一の問題は、モジュールを1回しか呼び出せなかったため、reactorを再起動できないというエラーが発生したことです。では、「check()」関数が呼び出されるたびに接続してこれを実行するクラスを作成する方法はありますか?
最も簡単なことはSSLを使用して接続することでしょうか?それはパスワードを保護しますか?ただし、すべてのノードに対してSSL証明書を生成する必要がないようにしようとしているため、このソリューションは最適ではありません。