0

Wininetライブラリを使用して、クライアント証明書(スマートカードに保存されている)とのSSL接続を確立しています。

問題は、送信されたHttpRequestごとにスマートカードにアクセスしていることです。

Fidlerとwiresharkから、次のことがわかります。1.すべてのリクエストはHTTP1.1ではなくHTTP1.0です。2.接続ごとに完全なSSLハンドシェイクが実行されます。3。要求ごとにPINコードを入力するように求められるのではなく(最初の要求のみ)、送信する要求ごとにスマートカードにアクセスします。

アイデア/リードはありますか?実際には、問題はWindowsに関するものではない可能性がありますが、証明書ストアで実行する追加の手順が必要ですか?

ありがとう、ザハール

4

1 に答える 1

0

OK、wininet ssl 接続が HTTP 1.1 ではなく HTTP 1.0 である理由をまだ理解できませんでした (MSDN によれば、HTTP 1.1 である必要があります)。

完全なハンドシェイクについて: INTERNET_FLAG_IGNORE_CERT_CN_INVALIDまたはINTERNET_FLAG_IGNORE_CERT_DATE_INVALIDまたは関連する証明書無視フラグを使用して、証明書エラーまたは証明書検証チェックを無視することはできません。IE wininet コードはチェックを実施し、通常の IE ルーチンを使用してセキュリティを処理していないかどうかを確認します。セキュリティ チェックが無視されるか無効になっている場合、wininet は個々の要求ごとに新しい SSL ソケットを強制します。つまり、セキュリティ チェックが無効になっている場合、リクエストは一緒に共有されません。検証されていない SSL セッションが複数のリクエスト間で共有されるのではなく、単一のリクエストごとに証明書チェックを本当に無視/無効にすることを確認するためのセキュリティ設計です。

よろしく、 ザハール

于 2013-01-01T07:44:56.663 に答える