問題タブ [handshake]
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.
curl - OpenSSL1.0.0サーバーに対してOpenSSL0.9.8でcurlを実行すると、ハンドシェイクエラーが発生しますか?
たとえば、OpenSSL1.0.0eを実行しているマシンに対してcurlを実行すると、次のようになります。
OpenSSL 0.9.8rを実行しているマシンで、次のエラーが発生します。
OpenSSL 1.0.0eを実行しているマシンで同じcurlコマンドを実行すると、コマンドは問題なく完了します。
2つのOpenSSLバージョン間の互換性がないため、ハンドシェイクが正しく完了していないようです。
これを修正する方法はありますか?
tcp - TCP ハンドシェイク: サーバー送信イベントと WebSocket?
私はネットワーク技術にあまり詳しくありません。
SSE と WebSocket の両方が HTTP 経由で通信するのはいつかと思っていましたが、HTTP 接続の前に有名な TCP 3 ウェイ ハンドシェイクもありますか?
はいの場合、WebSocket には 2 つの 3 ウェイ ハンドシェイクがありますか? 1 つは TCP 経由で、もう 1 つは HTTP 経由のアップグレード方法ですか?
前もって感謝します!
java - Javaゲームクライアント/mysqldbの認証メカニズム
別のサーバー上のmySQLデータベースに対して、C ++ゲームクライアントから接続しているユーザーを最適に認証する方法を理解する必要があります。これを実現するために、JavaWebサービスを作成する予定です。
セキュリティが最大の関心事です。ネットワークを流れるデータが暗号化されていることを確認する必要があるため、SSLを利用します(当初はws-securityを使用したメッセージレベルの暗号化について考えていましたが、オーバーヘッドが大きすぎると思います)。
私が本当に理解する必要があるのは、どのような認証メカニズムを提供する必要があるかということです。これらのユーザーはユーザー名とパスワードを提供し、サービスにWebリクエストを発行します。
サービスを従来のSOAPWebサービスにするかRESTfulサービスにするかは決めていません。Restの背後にある全体的な考え方は、サーバーをステートレスにすることです。クライアントは基本的にサービスとのセッションを確立するため、ここでRESTを使用する意味はありません。
そうは言っても、私が本当に理解する必要があるのは、ハンドシェイクを正確に実行する方法と、セッションを継続する方法です。
mySQLデータベースに対してこれを行うためのAPIを提供する人気のあるフレームワークはありますか?
この場合も、クライアントはサーバーにUN / PWを提供します。サーバーはそれらを復号化し(SSLが処理する必要があります)、mysql DBに保存されているアカウント情報に対して認証し、何らかのハッシュなどを返します。これにより、ユーザーのセッションを継続できるようになり、ユーザーが追加のリクエストを発行するためにログインする必要がなくなります。
誰かが私が一瞥するためのフレームワーク/いくつかの読み物をお勧めできますか?
c++ - ウェブソケットハンドシェイク
私はc ++を使用してwebsocketサーバーを作成していますが、クライアントとしてchrome 17を使用するハンドシェイクで保留されていました。
サーバーがクライアントにハンドシェイク応答クロムを送信すると、常にコンソールに以下のエラーが表示されます。
WebSocket ハンドシェイク中のエラー: Sec-WebSocket-Accept の不一致
クロムのイベントは次のとおりです。
助けてください。
java - ハンドシェイクに失敗するのはなぜですか(Java SSL)
HTTPS経由でWebサービスに接続しています。それを機能させるために必要だと思うことはすべて実行しましたが、最終的にはハンドシェイクに失敗します。
私は、新しいユーザーとして、「スパム保護」のために2つ以上のリンクを投稿できないことを知りました-たくさんのstackoverflowに感謝します...とにかくここにすべてのリンクが綴られたペーストビン投稿へのリンクがあります...私はここに「link#1」と書きます。これはこれらのリンクへの参照です:http://pastebin.com/y4zGNRC7
- HttpClient(サービスURLのGET)を使用して同じ動作を確認し、実際にCXFプロキシを介してWebサービスを呼び出しました
- キーストアとトラストストアの両方を設定しています-「コード内」の方法(リンク#1)とシステムプロパティの設定の両方を試しました-つまり、System.setProperty( "javax.net.ssl.keyStore"、 "mykeystore.jks" );
- SSLデバッグがオンになっています(javax.net.debug = all)
- SSLデバッグは、キーストアとトラストストアの両方の内容をぼかします(つまり、Javaが「それらについて知っている」ように見えます)-link#2
- クライアント/サーバー通信が行われているようですが、何らかの理由でクラッシュしますlink#3
- ブラウザ(Chrome)とopenssl s_clientの両方でクライアントとCA証明書を使用して、サーバーに正常に接続しました
- wiresharkは、たとえばChrome(link#5)よりもjava(link#4)からのクライアント/サーバートークが少ないことを示しています。
もう1つの奇妙なことは、キーストアを設定したときと設定しないときで同じ動作が発生するように見えることです(唯一の違いは、キーストアの内容がコンソールに出力されることですが、それだけです)。
問題をグーグルで調べてみたところ、stackoverflowで同様の投稿が多数見られましたが、何も役に立ちませんでした。プロトコルバージョン(「TLSv1」、「SSLv3」、さらには奇妙なv2 Hello)を変更してみました。助けていただければ幸いです-私が見落としていたかもしれないいくつかの基本的なことがあるかもしれません...私はここで必死になっています...ありがとう
PS私はFedoraCore15(64ビット)でjava 1.6update30を実行しています
lua - Lua から websocket ハンドシェイクを生成するにはどうすればよいですか?
Lua でサーバーの応答キーを生成する既存の関数はありますか? これがpythonの解決策です:websocket handshake problem
私は2つのキー番号をキャプチャし、スペースを数え、3番目の文字列をキャプチャし、残りが既存の関数にあることを願っています...
c++ - 3ウェイハンドシェイク中のパケット損失
割り当てのために、c ++(winsock 2を使用)で記述されたクライアントアプリケーションとサーバーアプリケーション間で3ウェイストップとハンドシェイクを待機する必要があります。クライアントはSYNを送信します。サーバーはクライアントシーケンス番号をインクリメントし、SYN-ACKを送信します。クライアントはサーバーシーケンス番号をインクリメントし、ACKを送信します。
パケット損失をシミュレートするために、クライアントとサーバーは、パケットを転送しないことがある中間ルータープログラムに接続されているため、損失が発生します。パケット損失の可能性を考慮して、sendto()、select()、recvfrom()ステートメントをどのように構成する必要がありますか?
たとえば、SYNが失われ、クライアントがタイムアウトした場合は、SYNを再送信します。SYN-ACKが失われると、クライアントはタイムアウトしてSYNを再送信します。ACKがなくなったらどうしたらいいのかわかりません。
編集:それは基本的に私のクライアントでは次のようになります:
- SYNを送信します。
- select()ステートメントが失敗している間にループし、SYNを再送信します
- SYN-ACKを受信する
- ACKを送信する
- ACKが失われた場合は、ループしてSYN-ACKを再受信する可能性があります。
ループを停止するタイミングを知るにはどうすればよいですか?
html - Websocket-強制プロトコル
Chromium / Firefoxがnode.jsインストールでハンドシェイクするのに問題があります。どちらも現在hybi10プロトコルを使用しているためです(ノードWebSocketはまだサポートしていないようです)。
私はそう思っているのは正しいですか...
...ブラウザに古いプロトコルの使用を強制する必要がありますか?それは私の問題を解決していないようです
java - 双方向 SSL Handskake (クライアントおよびサーバー証明書) を使用して Netty をセットアップする
私は現在、クライアントとサーバーの両方が証明書を提示して検証する双方向SSLハンドシェイクでNettyをセットアップしようとしています。
これは SslHandler では実装されていないようです。誰かがこれをしましたか?SslHandler.handshake 操作に入って、javax.net.ssl.SSLEngine に委任されると思いますか?
ヒント/ヒント/既存の実装はありますか?
ありがとう!
回答 (stackoverflow では通常の方法で投稿できません) SslHandler を設定する前に SSLEngine オブジェクトに needClientAuth フラグを設定すると、問題が解決することがわかりました。
https - SSLv3 レコード層内の TLS ハンドシェイク
私のサーバーは、SSLv3 と TLS1.0 プロトコルの両方を受け入れるように構成されています。しかし、少数のクライアントが以下のハンドシェイク パラメータを送信しており、サーバー ハローの後、クライアントは接続を切断し、'handshare failure(40)' アラートを送信します。それがクライアントの障害なのかサーバーなのか不明です。
最初のクライアント hello パケットは次のとおりです。
レコード層は SSL 3.0 ですが、内部のハンドシェイク プロトコルは TLS 1.0 です。私の質問は、これは正しい方法ですか、つまり、レイヤーごとに異なるバージョンを使用することですか? それはどのような方法ですか?どこにも見つかりません。RFC を調べましたが、参照が見つかりません。また、どうすればそのようなリクエストを作成できますか?
編集: 問題のトラブルシューティングや修正には興味がありません。そのようなパケットを送信する方法を知りたいだけですか? 何かコマンド?そして、このメソッドに何と名前を付ける必要がありますか? つまり、curl または openssl を使用して ssl3 または tls1 を使用できますが、レコード レイヤーとハンドシェイク レイヤーの両方で同じバージョンを送信します。
上記の curl コマンドは、wireshark を参照します。
EDIT2:これは合法ですか?私はグーグルで探し回っていますが、例が見つかりません。rfc標準に違反していますか?
ありがとう