私はクライアントがサーバの前に認証するセキュリティプロトコルが必要です。これはプライバシーの問題のために必要です。知られていない当事者に、彼らが誰に知り合わなければ誰に接続しているかを知らせたくない。 TLSプロトコルでは、サーバーが証明書を送信して、この可能性を排除します。自分のプロトコルを実装することは悪い考えであることを知っています。しかし、選択肢はありますか?私。他の順序で証明書を送信するようにプロトコルを変更する方法はありますか? TLSへのWikipideaの参照:http://en.wikipedia.org/wiki/Transport_Layer_Security#Client-authenticated_TLS_handshakeクライアントを最初に認証するにはどうすればよいですか?
答えて
クライアントとサーバーの役割を逆にすることができます。
通常、クライアントはconnect()
(そしてSYNを送信した)エンドポイントであり、サーバはaccept()
(SYNを受け取り、SYN | ACKを送り返した)エンドポイントです。しかし、いったん接続が確立されると、クライアントのソケットとサーバーのソケットとの間に差はなくなります。
あなたが使用している場合、たとえば、OpenSSLは、あなたが正常に成功したconnect()
後SSL_connect()
を呼び出して、あなたが正常に成功したaccept()
後SSL_accept()
を呼び出します。しかし、それを裏返して、クライアント側でconnect()
の後にSSL_accept()
と電話し、サーバ側でaccept()
の後にSSL_connect()
と呼んだら、OpenSSLは違いを知らないでしょう。クライアントはTLSサーバーとして動作し、最初に自身を識別します。
それは、クライアントがサーバーの資格情報をチェックすることを許可しないでしょうか?あなたは少し混乱して、ごめんなさい、もう少し説明できますか?ありがとう! – chacham15
サーバは、通常のTLSの場合と同様に、クライアントが最初に完了した後で証明書を提示することができます。 – Celada
+1。 [TLS RFCが示す](http://tools.ietf.org/html/rfc4346#appendix-B): "* client *: サーバとのTLS接続を開始するアプリケーションエンティティ。クライアントが の基本的なトランスポート接続を開始したことを意味するものではなく、サーバとクライアントの間の主な操作は で、サーバは と一般的に認証されています。 – Bruno
- 1. SSLクライアント証明書認証をサポートするにはどうすればよいですか?
- 2. クライアントのNLS_LANGを確認するにはどうすればよいですか?
- 3. 安全な方法でクライアント接続を認証するにはどうすればよいですか?
- 4. SignalR(.NETクライアント)でカスタム基本認証を使用するにはどうすればよいですか?
- 5. Google認証エンジンで認証と承認を変更するにはどうすればよいですか?
- 6. RestSharpクライアントに401認証エラーを返すにはどうすればよいですか?
- 7. Socket.io:2つのウィンドウを開く認証済みクライアントを扱うにはどうすればよいですか?
- 8. アンドロイドアプリのユーザーを認証するにはどうすればよいですか?
- 9. Gmail認証を削除するにはどうすればよいですか?
- 10. WorkflowService認証を設定するにはどうすればよいですか?
- 11. クライアントがXMLスキーマを確認できるようにするにはどうすればよいですか?
- 12. ノードアプリケーションでDjango認証を使用してユーザーを認証するにはどうすればよいですか?
- 13. 受信リクエストのクライアント証明書を認証するようにHeroku Rack/Railsアプリを設定するにはどうすればよいですか?
- 14. Google/OpenSocialガジェットの認証にasp.netフォーム認証を使用するにはどうすればいいですか
- 15. PHPでのユーザ認証にはどうすればよいですか?
- 16. 要素が親の最初か最後かをチェックするにはどうすればよいですか?
- 17. WATIR-WebDriverで証明書ベース認証を使用するにはどうすればよいですか?
- 18. UIPickerViewのようなピッカーを最初から作成するにはどうすればよいですか?
- 19. バイトをクライアントに転送するにはどうすればよいですか?
- 20. Gmailで認証を確認するにはどうすればよいですか?
- 21. - 認証ダイアログをポップアップで開くにはどうすればいいですか?
- 22. 単一ビューのクライアント側の検証を無効にするにはどうすればよいですか?
- 23. パスワードを認証して検証するにはどうすればよいですか?
- 24. Windows認証でカスタムログインページ(Windowsログインボックスではない)を使用するにはどうすればよいですか?
- 25. 認証によって一部のページを保護するにはどうすればよいですか?
- 26. Apache HttpClientでSSLクライアント証明書を使用するにはどうすればよいですか? Pythonで
- 27. クライアントでコレクションをリフレッシュするにはどうすればよいですか?
- 28. PythonでAPIクライアントをテストするにはどうすればよいですか?
- 29. JSON経由で認証するモバイルユーザーにセッションIDを返すにはどうすればよいですか?
- 30. c#signalrクライアントでhttps証明書の警告を無視するにはどうすればよいですか?
なぜこれをやろうとしていますか?本当にあいまいな自己署名証明書を作って、代わりにその証明書を信頼することができますか? – jglouie
@jglouie問題は、証明書に識別可能な情報(証明書の目的)が含まれており、任意の人物がユーザーを特定できないことです。 – chacham15
偽の識別データを自己署名証明書に入れることができます。そのアプローチはうまくいくのでしょうか、あるいはあなたのCAがすでにクライアントから信頼されている「本当の」証明書が必要ですか? – jglouie