私は、ユーザーが HTTPS 経由でクライアント証明書を使用して認証する ASP.NET アプリケーションに取り組んでいます。ユーザーは IE7 のみを使用しています。
クライアント証明書を使用して正常に認証されると、プロセスが閉じられるか、ユーザーが手動で SSL キャッシュをクリアするまで、ブラウザーの SSL キャッシュに残ります。システムのセキュリティを向上させるために、ユーザーがログアウトするかセッションが期限切れになるたびに SSL キャッシュをクリアできるようにしたいと考えています。
クライアントはすでにスマートカードを使用してシステムにアクセスしており、カードがクライアント コンピューターから取り外されると自動的に証明書がアンロードされますが、これはブラウザーのキャッシュをまったくクリアしないため、同じアクセス権を持つ別のユーザーから攻撃を受ける可能性があります。真のユーザーとしてマシン。
JavaScript から実際のキャッシュをクリアする方法を見つけました。
document.execCommand("ClearAuthenticationCache");
これは、ユーザーが明示的にログアウトした場合に完全に機能します。これは、ユーザーが再度ログインできるようにする前にクライアントでスクリプトを実行できるためです。
注: IE7 では、Web サーバーで HTTP キープアライブが無効になっている場合にのみ、キャッシュをプログラムでクリアできます。
ここで注意が必要な点があります。クライアントのセッションが期限切れになった場合、ユーザーが再度ログインを試みる前にブラウザーでこれを処理する方法がわかりません。サーバーでページが実行される前に、状態をクリアし、新しい証明書を選択する必要があるため、ログインページに到達したときに状態をクリアできません。
何か案は?質問が長くなって申し訳ありませんが、これには背景が重要です。