Я работаю над приложением ASP.NET, где наши пользователи проходят аутентификацию с использованием клиентских сертификатов через HTTPS. Наши пользователи используют только IE7.Как очистить состояние SSL в браузере при истечении срока действия пользователя?
После того, как сертификат клиента был успешно использован для аутентификации, он остается в кеше браузера SSL до тех пор, пока процесс не будет закрыт или пользователь не очистит SSL-кеш пользователя вручную. Мы хотим очистить кеш SSL всякий раз, когда пользователь выходит из системы или истекает срок их сеанса, чтобы повысить безопасность системы.
Наши клиенты уже используют смарт-карты для доступа к системе, которые автоматически выгружают сертификаты, когда карта удаляется с клиентского компьютера, но это совсем не очищает кеш браузера, оставляя потенциальный аспект атаки от другого пользователя, который доступ к тому же компьютеру, что и настоящий пользователь.
Я узнал, как сделать фактическую очистку кэша из JavaScript:
document.execCommand ("ClearAuthenticationCache");
, который отлично работает, когда пользователь явно выходит из системы, так как мы можем выполнить скрипт на клиенте, прежде чем разрешить пользователю снова войти в систему.
ПРИМЕЧАНИЕ. IE7 позволяет только очищать кеш программным способом, если на веб-сервере отключены блокировки HTTP.
Вот сложный бит - если срок действия клиента истекает, я не знаю, как это можно обработать в браузере, прежде чем пользователь снова войдет в систему. Я не могу очистить состояние, когда они попадают на страницу входа, потому что мне нужно очистить состояние и выбрать новый сертификат до того, как страница будет выполняться на сервере.
Любые идеи? Извинения за длительность вопроса, но для этого важна предыстория.
Как вы можете «вывести их из системы»? Если это JS-вызов «ClearAuthenticationCache» на стороне клиента, PowerUser может обойти этот вызов (взломать код на стороне клиента). –
bump на вопрос Лорана –
Мы выходим на сервер, просто обычный метод FormsAuthentication.SignOut() - без взаимодействия с клиентом. – Sam