問題タブ [mutual-authentication]

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 投票する
5 に答える
9619 参照

wcf - 相互 SSL (サービスとクライアントの間) を使用するセルフホスト WCF サービスが 403 Forbidden で失敗する

セルフホステッドWCF サービスとクライアント アプリ (今のところコマンド プロンプト) の間で相互 SSL のデモをセットアップしようとしています。最後に、着信接続に証明書を使用するサーバーと、それぞれを一意に識別するために使用できる個別の証明書を持つ複数のクライアントとの間にトランスポート セキュリティ(メッセージ セキュリティではない) があるソリューションにたどり着こうとしています。クライアント。

私はこれに対して多くの異なるアプローチを試みましたが、どれもうまくいきませんでした (私がやろうとしていたことの正確な例を見つけることができませんでした)。近づいていると思うたびに、サービスを呼び出そうとすると、クライアントで例外が発生します。私が遭遇した最も一般的な例外は次のとおりです。

上記のシナリオで相互SSLをセットアップする方法について、私が間違っていた可能性があること、またはおそらくより良いウォークスルーについて考えている人はいますか?

完全な開示 - 現在、私はクライアントとサーバーの両方を同じコンピューターで実行しています。それが重要かどうかはわかりません。

以下の構成スニペット

サービスとクライアントのコードは比較的単純なので、うまく機能させることができたと確信しています。アプリの構成 (具体的にはバインディングと動作) と証明書は「より興味深い」ので、私はそこに自信がありません。

証明書の作成方法 (実際のコマンドは逐語的に)

証明書をポートに関連付ける (実際のコマンドは逐語的に)

サーバー設定

バインディング:

動作:

クライアント

バインディング:

行動

アップデート

そのため、デフォルトの動作をオーバーライドし、提示された資格情報に関係なく常に許可するために、カスタムのユーザー名とパスワードのバリデーターをサーバーに追加しました (ここでも、ユーザー名/パスワードの検証は本当に必要ありません)。 このバリデーターが呼び出されることはありません。 クライアントは引き続き「認証スキーム「匿名」」を取得します。例外。

サービス動作の更新

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

java - Java 相互認証 - クライアント サーバー

サーバーとの接続を確立して文を送信し、サーバーがその応答を送信する単純なJavaクライアント/サーバープログラムを作成しています。これは実際には簡単な例です。

上記のシナリオでは、SSL ベースの相互認証を探しています。Javaで実装する必要があります。

例や Java での実装方法があれば教えてください。

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

ios - RESTful Web サービスで相互認証を使用して DER でエンコードされた証明書を使用するには?

現在、REST インターフェイスと通信するために相互認証を使用するアプリに取り組んでいます。私はこのトピックに非常に慣れていないため、いくつかの例を調べましたが、いくつか質問があります。プロセス全体をよりよく理解するために、すべての知識をまとめられることを願っています。

プロセスは次のようになります。

  1. サーバーの公開鍵を含むエクスポートされたサーバー証明書を取得し、それをアプリ バンドルに追加しました (これは後で SSL ピンニングに使用されます)。
  2. 双方向認証の開始を表す最初のリクエストは、クライアント証明書を取得するための証明書署名リクエストも含むポスト リクエストです (これは、REST インターフェースのセキュリティで保護された部分と通信するために必要です)。CSR は、openSSL lib を介してコードで動的に生成されます。
  3. サーバーの応答は、クライアント認証に使用される署名付き証明書を返します。この証明書は DER 形式であり、Base64 でエンコードされています。

最初のリクエストで SSL ピニングを実行するために使用するコードは次のようになり、SSL ピニングは期待どおりに機能します。

しかし、サーバーから返された証明書をどのように処理すればよいでしょうか? 私が知る限り、次の NSURLConnection デリゲート メソッドを使用する必要があります。また、この証明書を何らかの方法でサーバーに提供する必要があります (さらなる要求のために)。

今私の質問。サーバーに対して自己認証を行うために、DER でエンコードされた証明書の代わりに PKCS12 形式 (秘密鍵と認証局が必要) を使用する例をいくつか見ました。しかし、`didReceiveAuthenticationChallenge の DER 形式の署名付き証明書を今後の要求に使用するにはどうすればよいですか? 相互認証に同じプロセスを使用する Android アプリもあり、PKCS12 証明書は必要ありません。

何かのヒントになれば幸いです。どうも。

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

tomcat - Apache tomcat 相互認証自己署名証明書 REST サービス

REST サービス (war) を Apache Tomcat にデプロイし、自己署名証明書と相互認証を使用して HTTPS を有効にしたいと考えています。自己署名証明書を使用するクライアントを考え出す必要があります。クライアントとサーバーで証明書を交換したい。

これをどのように行うことができるかについての提案が必要です。

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

c# - ServiceStack で証明書を使用してクライアントを認証する方法は?

WCF の代替として ServiceStack の使用を検討しています。私の要件の 1 つは、サーバーとクライアントが証明書を使用して相互に認証する必要があることです。クライアントはサービスであるため、ユーザー入力を伴う認証は使用できません。また、クライアントは mono を使用して Linux で実行できる必要があるため、Windows 認証は無効になります。

netsh.exe を使用してサーバー証明書をサーバーのポートにバインドし、クライアントがサーバー証明書を取得しており、wireshark を使用してデータが暗号化されていることを確認しました。ただし、クライアント証明書を要求するようにサーバーを構成する方法を理解することはできません。

一部の人々は、クライアント証明書を検証するために要求フィルターを使用することを提案しましたが、すべての要求がクライアント証明書をチェックするため、非常に非効率的です。パフォーマンスは非常に高い優先度です。カスタム IAuthProvider を作成することは有望に思えますが、すべてのドキュメントと例は、証明書ではなく、ある時点でのユーザー操作を伴う認証タイプを対象としています。

https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization

証明書を使用して、セルフホステッド ServiceStack サービスでクライアントとサーバーを相互に認証することはできますか?

これが参考のための私のテストサービスです。

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

iis - リクエストを介して送信されているクライアント証明書を監視するにはどうすればよいですか?

現在、すべての証明書は別の自己署名 CA 証明書を使用して生成されています。プロジェクトの POC を行っています。

クライアントの要求を通じて受け取ったクライアント証明書に関する情報を取得する方法を見つけ出すことは、私にとって不可欠です。どうすればいいですか?

編集:より具体的には、2 つの異なる受信 Web 要求からの 2 つのクライアント証明書が類似しているかどうかを確認したい