Мое веб-приложение проверяет подлинность пользователей с помощью предварительной аутентификации (каждый запрос включает сертификат на стороне клиента, который сервер использует для аутентификации запроса).Возможная производительность узкого места в системе Client-Cert
Установка: веб-сервер Apache, сервер приложений Tomcat, разъем mod_jk
- Клиент попадает сервер Apache и выбирает сертификат
- SSL рукопожатия начинается там, где браузер клиента проверяет сертификат сервера, а сервер гарантирует, что passed- клиента в сертификате действует
- После SSL установлен, сервер передает SSL_CLIENT_CERT на Tomcat для проверки подлинности
EDIT:
Кроме того, сертификат клиента клиента проверяется на Список отзыва сертификатов (CRL).
Дополнительное время, необходимое для загрузки CRL или CRL Delta, а затем проверить, что сертификат клиента не был отозван, вероятно, потребует много времени?
Используя ActivClient (программное обеспечение для чтения карт), он несколько раз мигает на панели задач, то есть для нескольких HTTP-запросов, когда я ударил свою веб-страницу. По словам другого разработчика на моей работе, он сказал, что он моргает всякий раз, когда он считывает учетные данные карты. Всякий раз, когда учетные данные читаются, он добавляет задержку (возможно, 1 секунду или около того на запрос). –
Что такое клиентское программное обеспечение? Браузер? Ваш код? – EJP
Как я понимаю, поскольку я использую предварительную аутентификацию Spring Security, каждый запрос аутентифицируется, то есть каждый запрос уже аутентифицирован. Spring Security просто захватывает пользователя/принципала из HTTP-запроса. Не все мои HTTP-запросы требуют полного сертификата клиента, однако их довольно много. В результате я считаю, что ответ «мой код». –