0

現在、OpenSSLなどの外部依存関係なしにWindowsでSSL対応プロトコルを使用できるようにするために、SSPISchannelAPIサポートをlibcurlに追加しています。

すでにSSL/TLSの実装が機能していますが、関数AcquireCredentialsHandleによって返される資格情報ハンドルの再利用に関して非常に具体的な質問があります。

新しいハンドルを作成し、既存のハンドルを再利用して、それをInitializeSecurityContextに複数回渡す代わりに、SSL / TLSセッションを再利用することは正しく、可能ですか?

libcurlのSchannelモジュールに関する私の作業はここにあり、再利用を試みる実験的なバージョンはここにあります。

これに関するヒントやフィードバックをいただければ幸いです。では、クレデンシャルハンドルをそのような方法で再利用できますか?そしてそれは正しいですか?

前もって感謝します!

4

1 に答える 1

3

私は自分の質問に対する答えを見つけて、他の人のためにここに記録します:

  1. 以前にも質問されており、最初の回答はここにあります。
  2. 次の情報は、この MSDN ページにあります。

アプリケーションは、要求された資格情報のハンドルを返すAcquireCredentialsHandle関数を呼び出して資格情報を取得します。資格情報ハンドルは構成情報の保存に使用されるため、同じハンドルをクライアント側とサーバー側の両方の操作に使用することはできません。つまり、クライアント接続とサーバー接続の両方をサポートするアプリケーションは、少なくとも 2 つの資格情報ハンドルを取得する必要があります。

したがって、複数の接続に同じ資格情報ハンドルを再利用しても安全であると見なすことができます。そして、実際に Schannel が SSL/TLS セッションを再利用することを確認しました。これは、Windows 7 Professional SP1 でテストされています。

于 2012-04-10T15:13:06.960 に答える