問題タブ [sslstream]

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

c# - C# を使用した生の FTP SSL

SSLの仕組みを理解しようとしています。SSL をサポートする小さな FTP クライアントを作成したいのですが、いくつかの問題に遭遇しました。

send_cmd は単なる FtpWriter.WriteLine(text); です。FtpWriter.Flush(); 関数。

私の「問題」は次のとおりです。最初にFTPへの(非ssl)接続を作成する必要があり、次にssl接続(AUTH SSL)を行うように指示します。その後、新しい接続を作成する必要があると思います-何かお気に入り:

msdn から取得。予期しないパケット形式が原因でハンドシェイクが失敗し続けます(グーグルで試しましたが、作成者が間違ったポートに接続したためだとすべて言われています)。それ。だから私の質問は、これを「ハイブリッド」接続にして、サーバーへの SSL 接続を確立するにはどうすればよいですか?

どんな助けでも大歓迎です!

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

.net - X509Certificate または他の .NET クラスを使用して自己署名証明書の署名を取得する方法は?

既知の/信頼できる公開鍵で署名を復号化し、復号化されたハッシュが元の証明書ハッシュと一致するかどうかを確認して、ルート/自己署名証明書を検証しようとしています。

sslStream クラスで RemoteCertificateValidation コールバックを使用して、リモート証明書を取得します。

証明書は X509Certificate クラスとして提供されます。署名を除くこのクラスを使用して、この証明書のすべてのプロパティを取得できます。

X509Certificate クラスまたはその他のクラスを使用して署名のバイト配列を取得する方法はありますか?

よろしくアルバート

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

c# - .NET UDP & DTLS

.NET で UDP ソケットに DTLS サポートを提供するネイティブな方法はありますか?

ネイティブによる編集とは、すぐに使用できる.NETフレームワークにあるものを意味します。

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

c# - 非アクティブ後の SslStream の遅延

サードパーティのサーバー アプリと通信するクライアント アプリを作成しました。その通信は、SslStream クラスを使用して SSL を使用するカスタム ポートを介して行われます。

サーバーは永続的な接続を許可しますが、適切なレベルの応答性を維持するには、60 秒以内にコマンドでサーバーに ping を送信する必要があることがわかりました。60 秒後も通信は機能しますが、応答の受信に顕著な遅延があります。接続を切断して再接続するのではありません。いつもより時間がかかるだけです。60 秒以内に別のコマンドを送信すると、再び高速になります。60 秒後に別のコマンドを送信すると、遅延が発生します。

60 秒後に、SslStream がサーバーと再ネゴシエートし、通過時間が 2 倍になるかのようです。SSL がセッション ベースであることはわかっていますが、これが原因でしょうか? 不要なコマンドをサーバーアプリに送信してアプリを維持する以外に、できることはありますか?

私のコードは以下です(抜粋):

...

誰かがこれに光を当ててくれることを願っています!

私のクライアント アプリは、Windows 2003 および 2008 でホストされている C# / .NET 2.0 & 4.0 で記述されています。

ありがとう

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

.net - SSLStream によるクライアント/サーバー認証

SSLStream を使用してポート 80 経由で通信するクライアントおよびサーバー アプリケーションがあります。クライアントとサーバーの両方が Windows サービスとして実行されています。

私のテスト環境 (私の開発用コンピューター、OS Windows 7 Ultimate の下) ではすべてが動作します。私の問題は、クライアントとサーバー アプリケーションをそれぞれの展開環境 (サーバーは Windows Server 2008 上にあり、クライアントは Windows Server 2003 上にある) に展開しようとすると、それが機能せず、次のエラーが表示されることです。それらは共通のアルゴリズムを持っていないため、サーバーは通信できません」 makecert コマンドを使用して同じ証明書をインストールしたことに注意してください (以下の「最初に」セクションにリストされています)。

さらに、クライアントを Windows Server 2003 コンピューターで認証することをあきらめたとき、それをまったく新しい/別の Windows Server 2008 コンピューターに移動したところ、「資格情報が提供されました」という行に沿って新しいエラーが発生しました。パッケージに認識されません。」

この問題について経験がある場合は、アドバイスをお願いします。私は過去 3 日間これに取り組んでおり、20 時間以上の開発時間を費やしました。サーバーとクライアントが認証を試みると、問題が発生し続けることに注意してください。

まず、makecert.exe 経由で次のコマンドを使用して、自己署名 (?) X509 証明書を生成しました。

(Windows サービスが LocalSystem アカウントを介してこのストアの場所を使用することを理解しているため、ストアの場所 'LocalMachine' を使用したことに注意してください。間違っている可能性がありますか?)

次に、サーバー上で、次のコードを使用してストアから証明書を取得します。

3 番目に、サーバーで、ポート 80 で TCP クライアントのリッスンを開始します。

4 番目に、サーバー上で、クライアントが接続したときに処理するコードを準備します。

最後に、クライアントで、クライアントをサーバーに接続するためのコードを準備します。

-- 上記は、この問題に関して私が入手できるすべてのものです --

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

c# - GZipStream を使用した C# SslStream

C#でSslStreamを渡すGZipStreamを使用することは可能ですか? つまり、できますか

これが可能である場合、SslStream はこの後も使用可能な状態にあるのでしょうか、それとも閉じる必要がありますか?

ありがとう。

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

c# - SslStream.AuthenticateAsClient の管理者アクセスを回避していますか?

クライアントとサーバーの証明書と共に .NET SslStream クラスを使用するアプリケーションがあります。このアプリケーションは、Windows XP でうまく機能します。ただし、Windows 7 (おそらく Vista も) では、SslStream.AuthenticateAsClient を呼び出すと、次の例外が表示されます。

アプリケーションが Windows 7 で「管理者として実行」されている場合、すべてがうまく機能します。ここでの根本的な原因は、AuthenticateAsClient がクライアント証明書 (ローカル マシンの個人証明書ストアにインストールされている) の秘密キーを必要とし、そのアクションには管理者アクセスが必要であることだと推測しています。

私の質問は、これを改善するためにできることはありますか? それとも、クライアント証明書で AuthenticateAsClient を使用するには管理者権限が必要であることは、単なる現実なのでしょうか?

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

c# - Python または Ruby または Perl を使用して .NET Sslstream x.509 ソケットに接続する

奇妙な要件があります。C# で記述されたサーバーと通信しようとしています。基本的には次のようになります。

X509 証明書を使用してサーバーに接続する C# のサンプル コードもあります。cert.pfx ファイルのパスワードも知っています。

私がやりたいことは、ソケットに接続し、数バイトを送信して応答を受信できるシェルスクリプトをセットアップすることです。(Python、Ruby、Perl を見ていましたが、実際にはどの言語でも構いません)

Python の SSL ラッパーを使用してみましたが、サーバー/クライアントが通信する既知のアルゴリズムではないというエラーが表示されます。

私のPythonコードの例:

CERT では、.pfx と、openssl を使用して .pfx から抽出したいくつかの異なるファイルを試しました。

私も多くの異なる例を試しました (ssl.wrap_socket の引数)。私もこれらの接続にあまり慣れていません。

ここに誰か手を貸してくれませんか?

ありがとう!

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

c# - C#のさまざまな暗号の長所とアルゴリズムを使用してSSL経由でサーバーに接続します

少し調べて、弱い暗号をチェックするためのさまざまなツールを見つけました。サーバーが.net/c#を介してサポートしている暗号/アルゴリズムを確認するにはどうすればよいですか?

(ssl.protocols.ssl2 / ssl3 / tls)を介してsslv2、sslv3、およびtlsをテストできます。

C#を介してアルゴリズムやその他の弱い暗号を確認するにはどうすればよいですか?私はSSLDiagnosを見ていますが、それはcにありますか?

何か案は?

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

c# - SslStream を使用した XMPP TLS 接続

Gtalk に接続する単純な xmpp クライアントを作成しようとしています。ハンドシェイクの最初の部分は機能しているようです。Ror TLS ハンドシェイク クライアント SslStream を作成し、目的のサーバー (talk.google.com) に接続し、認証に成功しました。

最初の SSlStream.Read は、挨拶の返信を受け取るためのもので、うまくいきました。最初のコマンドを送信するために SslStream.write を実行しますが、応答を取得するために Sslstream.Read() を実行すると、このエラーが発生します。"System.IO.IOException: トランスポート接続からデータを読み取れません: 確立されたホスト マシンのソフトウェアによって接続が中止されました。」

誰かが私を正しい方向に向けることができますか?

msdn http://msdn.microsoft.com/en-us/library/system.net.security.sslstream.aspxの例と非常によく似たコードを使用し ていますが、TLS のときにネットワーク ストリームから Sslstream に切り替える点が異なります。交渉した。