問題タブ [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.

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

java - Javaでの独自の乱数を使用したTLSハンドシェイク

私は、乱数生成(スマートカードなど)のようないくつかの暗号機能を実現するハードウェアを持っています。TLSハドシェイク中にこのハードウェアを使用したいと思います。自分でTLSハンドシェイクを実装せずにこれを行うことは可能ですか?

クラス「SecureRandom」を拡張しようとしましたが、「next」メソッドがfinalであるため、「my」で生成された数値を返すようにオーバーライドできません。

したがって、基本的には、JAVAでTLSハンドシェイクを実装せずに、すべての暗号機能を「アウトソーシング」したいと思います。

ありがとう

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

java - スマートカードを使用したTLSハンドシェイク

TLSハンドシェイクにまだ問題があります(Javaでの独自の乱数を使用したTLSハンドシェイクを参照)。番号の生成は正常に機能します。

問題が発生しました。スマートカードでECキーとプリマスターシークレットを生成し、このキーをDiffie-Hellmanキー交換に使用する必要があります。KeyPairGeneratorSpi私はその仕事をするべきものを見つけました。しかし、ハンドシェイク中に自分自身を使用するKeyPairGenerator方法や、「ServerKeyExchange」中に送信されるクライアントの曲線パラメーターと公開鍵を読み取る方法はわかりません。

0 投票する
3 に答える
6932 参照

serial-port - Arduino:バイト配列の文字を一度に1つずつチェックします

一連のバイトを送信するプログラムを使用して、シリアル経由でArduinoと通信します。

Arduinoがジャンクではなくメッセージを受信して​​いることを認識するために、バイト配列の先頭に文字「S」「T」「A」「R」「T」のタグを付けました。この後、最終的には内部変数(まだ実装されていない)に割り当てられる一連のバイトが続きます。

Arduinoは各バイトを順番に読み取り、バイト配列と比較する必要があります。すべてが正しい順序で存在する場合は、プログラムの次の部分に進みます。それ以外の場合は、現在のバイトを破棄し、さらにバイトが到着するのを待つ必要があります。

一連のネストされたifステートメントを使用するのではなく、最も効率的で読みやすい方法で実装しようとしています。

これまでのところ私は持っています:

ただし、これは2バイト目を超えていないようで、理由はわかりません。

0 投票する
5 に答える
109978 参照

java - 「SSL ピアが正しくシャットダウンされませんでした」で SSL 接続に失敗する Java 6 を、Java 7 のように成功させるにはどうすればよいですか?

Java 6 を実行しているクライアントからの SSL 接続が失敗し、次のような例外が表示されます。

サーバーは Tomcat 7 ベースのアプリで、Java 7、Linux、および Amazon EC2 で実行されます。

SSL 以外のポートに誤って接続するなど、考えられる原因について多くの提案を見つけました。ほとんどの場合、まったく同じクライアントが Java 7 を変更せずに実行しているときに動作するため、すべて除外したと思います。(どちらの場合も OS X です。)

以下に、Java 6 および Java 7 の SSL 接続手順からのデバッグ出力を含めます。専門家への私の質問は、これは、Java 7 のデフォルトである可能性のある暗号またはプロトコル設定を Java 6 で有効にして機能させることができることを示唆していますか?

Java 6:

Java7:

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

http - SSLSocketFactory.createSocket は、https の代わりに http を使用して接続します

握手をしなければなりません。私は以下のコードでそれを行います。

アプレットでコードを実行していますが、サーバーに対して直接実行すると問題なく動作します。私が抱えている問題は、同じコードがプロキシ経由で実行されたときに発生します。トレース レベル 5 を有効にして Java コンソールを見ています。コード行「SSLSocket socket = (SSLSocket) factory.createSocket("www.theserver.com", 443);」の直後 実行すると、この行が Java コンソールに表示されます。「network: Connecting http://www.theserver.com:443 with proxy=DIRECT」この後、アプレットは動作を停止します。プロキシがポート 443 で http トラフィックを許可しないためだと思います。

http を使用して接続している理由と、https を使用して接続するにはどうすればよいか、誰か教えてもらえますか?

0 投票する
4 に答える
3134 参照

ssl - ハンドシェイク アラート: unrecognized_name エラー

Charles 3.7 を使用して SSL 接続をデバッグしています。ほとんどの HTTPS 接続を表示できましたが、デバッグしようとすると「SSLProtocol: handshake alert: unrecognized_name」を返したサイトが 1 つまたは 2 つあり、Charles をオンにして Web サイトを読み込めませんでした。Fiddler を使用してこれを行うことができます。この問題を解決する方法についてのアイデアはありますか? ありがとう。

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

asp.net - 予期しないパケット形式が原因で WebRequest ハンドシェイクが失敗する

同じコードを使用してサード パーティの Web サイトに "ログイン" する ASP.NET Web サイトと Web サービスが多数あります。これには基本的に、WebRequest を使用して Web サイトのログイン ページに認証情報で HTTP POST を実行し、結果の Cookie を CookieContainer に保存し、その CookieContainer を後続の WebRequest で使用して、サード パーティの Web サイトのページに対して Web サイトを承認することが含まれます。

コードは基本的に次のとおりです。

このコードは長い間 (数か月、半年以上) 機能しています。今週末から、非常に頻繁に失敗するようになりました (私が推定する 90% の確率ですが、100% の確率ではありません)。私が見続けるエラーは次のとおりです: System.Net.WebException: 基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。---> System.IO.IOException: 予期しないパケット形式のため、ハンドシェイクが失敗しました。 スタック トレースは次のとおりです。

このエラーをグーグルで検索すると、私が見続ける唯一の解決策は、WebRequest の KeepAlive プロパティを無効にするか、ProtocolVersion を HttpVersion10 に設定することです。両方を(可能な限りすべての組み合わせで)試しましたが、何も役に立ちません。

エラーは常に表示されるわけではありませんが、表示された場合は、好きなだけ試してみることができます。何度も何度もエラーが発生し続けます。数分間放置して再試行すると、機能する可能性があります (一度機能すると、しばらくは機能し続けます)。

奇妙な点は、私が何も変更していないことです。このコードは何ヶ月も問題なく実行されています。サード パーティの Web サイトが最後に何かを変更したか、私の Web ホスティング プロバイダーが何かを変更した可能性は十分にあります。しかし、この問題を解決するために何かできることがある場合に備えて、何か間違ったことをしていないかどうか尋ねたいと思いました.

サード パーティの Web サイト (おそらく応答が得られない) または Web ホスティングに連絡することもできますが、このエラーをそれらにスローしてもおそらく役に立たないため、正確に何が問題なのかをよりよく理解する必要があります。

それで、私にできることはありますか、それとも私のすべてのウェブサイトで突然このエラーが表示されるのには正当な理由がありますか (それらはすべて同じサードパーティのサイトに接続しています)?

ありがとう