問題タブ [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.
tcp - TCP のスリーウェイ ハンドシェイクが ack 時にシーケンス番号をぶつけるのはなぜですか?
最初のハンドシェイク中に ack すると、TCP スリーウェイ ハンドシェイクがシーケンス番号をバンプするのはなぜですか? 確認応答番号をシーケンス番号と同じままにしておくよりも、どのように良いのでしょうか?
との接続が確立されます。
それはどのように優れていますか
security - クライアント認証時のセキュリティと TLS ハンドシェイク
クライアント認証で構成された TLS ハンドシェークでは、サーバーがクライアントの証明書を受信し、それを信頼するかどうかを選択するステップがあります (たとえば、Java では TrustManager を介して行われます)。
サーバーからの最終的な「信頼の失敗」メッセージが、クライアントが実際にその公開鍵を所有していることをサーバーが確認する前または後に送信されるかどうかを知りたいです(たとえば、クライアントの秘密でエンコードされたハンドシェイクから最初のいくつかのメッセージを受信することによって)鍵)。
私の質問の目的は、このクライアントのふりをして彼の公開鍵を使用することにより、サーバーがクライアントを信頼しているかどうかをサードパーティが確認できるかどうかを確認することです。
注: TLS が特定のセキュリティ要件を持つコンテキストで使用される場合、リスクは現実のものになります。たとえば、ピア間で TLS を使用し、連絡先リストからピアを認証する方法として TrustManager を使用する P2P アプリケーションを考えてみましょう。この連絡先リストは非公開にする必要があります。ISP は、ノードが通信する相手の IP を一覧表示し、それから TLS ハンドシェイクを開始して公開証明書を取得し、IP リストにあるノード同士を接続しようとすることができます。最終的に、ISP は非公開であるはずの連絡先リストの大部分を取得できます。
websocket - WebソケットリクエストのOrigin値とその方法を変更できますか?
コンピューターでサーバーを起動し、ローカルのhtmlファイルをロードします。Webソケット要求をサーバーに送信し、クライアントのハンドシェイクとサーバーから送信されたハンドシェイクを確認すると、Originの値が異なります。この値を操作したり、どこかからどのように設定したりできますか?
curl - startssl.com 認証はどのように機能しますか?
無料のクラス 1 SSL 証明書を提供する Startssl.com は、非常にユニークでシンプルな認証システムを使用しています。ログイン プロセス中にクライアントをhttps://auth.startssl.com/にリダイレクトし、ブラウザは一意の証明書を要求します。その段階が終了すると、ユーザー名/パスワード認証なしでコントロール パネルにリダイレクトされます。
HTTP(s) がこの種の認証をネイティブに実行できることさえ知りませんでした。
このリクエストを分析するために使用しようとしましcurl
たが、通過する値の HTTPS リクエストを取得できません。
curl はこのタイプの HTTPS 接続をサポートしていますか? サポートしている場合、サーバー側とクライアント側の両方でどのように構成されますか?
serial-port - シリアル ポート ハンドシェイク。ハードウェアとなしのハンドシェイクの違いは何ですか?
ハードウェア ハンドシェイクとハードウェア ハンドシェイクなしでシリアル ポートを開くときの違いを判断しようとしています。
どちらの場合も、信号を制御する必要があるようですRTS/CTS
(1 つの COM デバイスでテストしただけです)。では、ハードウェア ハンドシェイクを使用してシリアル ポートを開く場合と、ハンドシェイクを使用しない場合の違いは何でしょうか?
私の以前の理解から、私たちが働くときwithout handshaking
、私たちは信号を気にしませRTS/CTS
んDTR/DSR
。いつでもデータを送受信するだけです。私は間違っていましたか?
もう1つ質問です。モードのみwithout handshaking
で作業できますか?full duplex
android - x509 証明書での SSL ハンドシェイク エラー
私のアプリケーションでは、信頼されていないサーバー証明書をプログラムでキーストアに追加する必要があります。X509 証明書を取得しました。keyStore.setCertificateEntry() メソッドを使用してキーストアに追加する必要があると思います。
しかし、このメソッドは java.security.cert.Certificate を受け入れます。X509 証明書を渡すと、エラーが発生します。しかし、Android ソース コードの多くの場所で、java.security.cert.Certificate の X509 証明書を渡しています。
私が間違っていることは何ですか?
一方、サーバー証明書を適切に処理するためのリンクがある場合は、共有してください。私が見つけたすべてのリンクは、証明書を無視することでした。
前もって感謝します。
websocket - websocket ハンドシェイク: 開発者はこれに対して何かする必要がありますか?
Websocket テストを正常に完了しましたが、Websocket ハンドシェイクについて知りたいです。私のWebクライアントでは、以下のコードを使用してWebSocket通信を開始しました
私のWebサーバー(Javaを使用)では、Jetty libを使用し、以下のようなサーバーを実装しました:
Web ソケット通信は正常に機能していますが、ハンドシェイクについては何もしていません。それはどのように機能していますか?
node.js - Node.js - 実行時に HTTPS サーバーの SSL 証明書を動的に変更する
で HTTPS プロキシを構築していますnode
。基本的に、人々が私のプロキシ マシン (ワイルドカード DNS がセットアップされている) に DNS CNAME エイリアスを設定し、SSL 証明書を (AWS Elastic Load Balancer のように) 私のアプリケーションにインポートして、CNAME ホスト名が適切に保護され、すべての要求でクライアントによって認識されます。
現在、プロキシ側で作業しており、クライアントとの SSL ハンドシェイクの前に適切な証明書を動的にロードする方法を見つけようとしています。ワークフローは次のとおりです。
- サーバーが新しいリクエストを受け取る
- クライアントから要求されたホスト名を取得します (つまり、ユーザーが設定した DNS CNAME エイリアスです)。
- そのホスト名に属する正しい証明書をロードします
- ロードされた証明書を現在のリクエストで使用します (ここでヘルプが必要です)
- ハンドシェイク (ロードされた証明書を使用 - リクエストごとに異なります)
それを行う方法はありますか?
html - hybi-17を使用したHTML5WebSocket
更新: pimvdbのおかげで、デコードの問題を解決しました
解決策に従います(PHP):
***元のトピックの始まり***
hybi-17ハンドシェイクを使用して、個人用アプリケーション用のHTML5WebSocketを開発しようとしています。
私はphpwebsocketから始めましたが、変更したのは、元の関数からこれまでのハンドシェイク関数だけです。
クライアント(http://code.google.com/p/phpwebsocket/source/browse/trunk/+phpwebsocket/client.html)とサーバー( http://code.google)の両方にphpwebsocketソースコードを使用しました。 com / p / phpwebsocket / source / browser / trunk / + phpwebsocket / server.php)。
この時点で、アプリケーションをテストしました。サーバーのデバッグに従います。
そしてこれはクライアントのデバッグです:
私がしたことは、単にクライアントに接続して、コマンド「Hello」を送信することでした。ご覧のとおり、サーバーはプレーンテキストではなくエンコードされたデータを受信しました:なぜですか?
hybi-17を使用してhtml5WebSocketを開発するのを手伝ってくれる人を探しています。
Cyaz
PS:this(hybi-17のハンドシェイクの実装)トピックとthis(Decoding network chars(HTML5 Websocket))が役立つかもしれません。
PPS:Chromium 15 .0.874.106〜r107270-0ubuntu0.11.04.1でテストしました
websocket - Websocketバージョン8秒-WebSocket-不一致を受け入れる
WebSocketプロトコル00(ハンドシェイクヘッダーにkey1、key2があるサーバー)で正常に動作するWebSocketサーバーをC++で作成しました。
今、新しいアップデートで、私は新しい方法のハンドシェイク作業のために同じことをしようとしています。ハンドシェイク要求に対するサーバーの応答は次のとおりです。
"HTTP /1.1101スイッチングプロトコル\r\ nアップグレード:websocket \ r \ n接続:アップグレード\ r \ nSec-WebSocket-承認:" + serverKey + "\ r \ n \ r \ n";
serverkeyが正しく計算されます。例として:
ハンドシェイクリクエスト:
GET / test HTTP / 1.1
アップグレード:websocket
接続:アップグレード
ホスト:192.168.123.102
Sec-WebSocket-Origin: http
://192.168.123.5 Sec-WebSocket-Key:YB0mPvJ5t8ggCeGUWY39uQ ==
Sec-WebSocket-Version: 8
ハンドシェイク応答ヘッダー:
HTTP / 1.1 101スイッチングプロトコル
アップグレード:websocket
接続:アップグレード
Sec-WebSocket-Accept:xt9iyCNryQTseELUkHPWjzxA2ts =
また、 https: //datatracker.ietf.org/doc/html/draft-ietf-hybi-thewebsocketprotocol-08の例を使用してアルゴリズムを確認すると、まったく同じ応答が生成されました。
ただし、それでも次のエラーが発生します:
「WebSocketハンドシェイク中のエラー:Sec-WebSocket-不一致を受け入れる」
ブラウザとしてChrome15を使用しています。
何がうまくいかないか考えていますか?
(Chrome Inspector Networkでも、ハンドシェイクを受け入れない場合のような応答は表示されません(古いバージョンでも))