DOBON.NET DOBON.NETプログラミング掲示板過去ログ

SSL 状態のクリア

  • 題名: SSL 状態のクリア
  • 著者: くろいぬ
  • 日時: 2005/08/30 10:19:37
  • ID: 12473
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WindowsXP]
分類:[.NET]


はじめまして。
現在下記ボタン"SSL 状態のクリア"と同等の機能を
VB.NET上に実装したいと考えております。

WindowsXPの「コントロールパネル」→「インターネット オプション」
    →「コンテンツ」→「SSL 状態のクリア」

また実装の際、クリアされるものは
IEのSSL 状態キャッシュというより
Formに貼り付けたWebBrowserコンポーネント
のSSL 状態キャッシュのクリアです。

現在まで調べたところSSL 状態は、IE上でメモリ保持されているという
事らしいのですが、Formの再起動およびボタンを直押しする以外の方法で
実装方法を探しています。
(インスタンスを解放することは可能です)

どなたかご存知の方おられましたら、
ご教授の程よろしくお願いいたします。
■No12473に返信(くろいぬさんの記事)
>
> はじめまして。
> 現在下記ボタン"SSL 状態のクリア"と同等の機能を
> VB.NET上に実装したいと考えております。
>
> WindowsXPの「コントロールパネル」→「インターネット オプション」
>     →「コンテンツ」→「SSL 状態のクリア」
>
> また実装の際、クリアされるものは
> IEのSSL 状態キャッシュというより
> Formに貼り付けたWebBrowserコンポーネント
> のSSL 状態キャッシュのクリアです。
>
> 現在まで調べたところSSL 状態は、IE上でメモリ保持されているという
> 事らしいのですが、Formの再起動およびボタンを直押しする以外の方法で
> 実装方法を探しています。
> (インスタンスを解放することは可能です)
>
> どなたかご存知の方おられましたら、
> ご教授の程よろしくお願いいたします。
>

自己レスです。
SChannel.dllやlsass.exeなども含め実装方法を
探ってはいますが、いまだ発見に至りません。
どなたかご存知ないでしょうか?
> どなたかご存知ないでしょうか?
# 知らないのですが、レスが付かないようなので。

そもそも、[SSL状態のクリア] (Clear SSL State)ボタンが、
どのような働きをするのかすら理解していないのですが(汗)
認証系APIを探ってみると、こんなのがありました。

http://msdn.microsoft.com/library/en-us/secauthn/security/sslemptycache.asp

関数名からすると、何となくそれっぽいのですが……関係無いですかね?

お返事ありがとうございます。

> http://msdn.microsoft.com/library/en-us/secauthn/security/sslemptycache.asp
>
> 関数名からすると、何となくそれっぽいのですが……関係無いですかね?

以前実装は試してみたのですが、駄目でした。

Public Declare Function SslEmptyCache Lib "SChannel.dll" Alias "SslEmptyCacheW" (ByVal pszTargetName As String, ByVal dwFlags As Integer) As Boolean

と宣言し、ボタンクリックイベントでSslEmptyCache(vbNullString,0)
としています。

特別エラーは起こらず、TRUEが返ってきます。

SSLの状態クリアボタンの機能は
http://support.microsoft.com/?scid=kb;ja;290345&spid=2073&sid=283
"SSL のセッション情報のキャッシュを削除する"
であるそうです。

記述不足で、申し訳ありません。
実際に、目的とする機能は
IEが持つSSLサーバ・クライアント証明書のキャッシュ削除です。
例えば
SSL認証のあるWebページ (で認証局の認証を受けていないページ)
にアクセスするとIEではセキュリティの警告が表示されると思います。

ここで、ブラウザを閉じない状態で同ページに再アクセスした際に、
証明書情報は表示されなくなります。
(つまり証明書情報がキャッシュされているのでは)

ですが、違うプロセスからアクセスしなおすと、証明書は
再び表示されます。

これは、Microsoftのヘルプ通り、iexplorerまたはexplorerの
プロセスでSSL情報をキャッシュしているからであると推測しています。
同時に証明書もキャッシュしているのではと思います。

ちなみに、SSL 状態のクリアボタンを押しても証明書などのキャッシュ
が消えてる感じはしません。(^^;

追記です。

先ほどVB.NETで確認してみたのですが、
Webブラウザコンポーネントのインスタンスを
作りなおすだけではセッションが切れないようです。

そちらも含めて、調べてみます。
  • 題名: Re[5]: SSL 状態のクリア
  • 著者: くろいぬ
  • 日時: 2005/09/08 17:17:22
  • ID: 12693
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示

なかなか見つからないですね。

内容がタイトルと異なってきたため、
No12692に
「Webブラウザコンポーネントのセッション破棄」
として 再投稿します。

「SSL 状態のクリア」としては解決とします。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板