Смягчение угона сеанса в java для запроса https - PullRequest
1 голос
/ 12 апреля 2020

Я уже установил useHttpOnly=true в контексте tomcat. xml и использует самозаверяющий сертификат, сгенерированный с помощью java keytool на сервере. xml Поддержка элемента соединителя для поддержки SSL следующим образом:

context. xml

<Context useHttpOnly="true">
<!-- other code -->
</Context>

server. xml

<Connector port="80" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
            maxThreads="150" scheme="https" secure="true"
            clientAuth="false" sslProtocol="TLS" 
            keystoreFile="my key file location"
            keystorePass="keystore password" />

После перезапуска сервера я подтвердил, что изменения вступили в силу с помощью инструментов chrome dev :

enter image description here:

Полагаю, это фактически не делает сайт невосприимчивым к перехвату сеансов, поскольку, если злоумышленник смог получить действительный идентификатор сеанса нюхая Если пользователя заставляют аутентифицировать себя с помощью известного идентификатора сеанса, а затем перехватывать подтвержденный пользователем сеанс, зная используемый идентификатор сеанса. Затем злоумышленник может предоставить действительный идентификатор сеанса веб-приложения и попытаться использовать его в браузере жертвы.

Я проверил это с помощью пакета Burp, прослушивая идентификатор сеанса пользователя (с ролью администратора) и используя его в качестве идентификатора сеанса пользователя с другой ролью. Сервер не смог распознать, был ли активный запрос сеанса исходным устройством или злоумышленником, который незаконно использует сеанс. Я полагаю, что здесь приходит SSL! Браузер не доверяет моему самозаверяющему сертификату, и это заставляет меня задуматься о том, как бы это изменилось, если бы я использовал другие SSL. Действительно ли это делает мой сайт более безопасным, чем самозаверяющий сертификат? Или это просто надежность сертификатов, если вы посмотрите с точки зрения браузера? Может ли сервер проверить, поступает ли запрос от аутентифицированного пользователя, а не от злоумышленника, который захватил сеанс?

1 Ответ

0 голосов
/ 12 апреля 2020

Затем злоумышленник может предоставить допустимый идентификатор сеанса веб-приложения и попытаться заставить браузер жертвы использовать его

Вышеуказанное называется фиксация сеанса .

Чтобы смягчить фиксацию сеанса после успешного входа в систему, временно сохраните информацию о пользователе, аннулируйте текущий сеанс, создайте новый сеанс, скопируйте информацию о пользователе в новый сеанс.

Таким образом, если злоумышленник использовал идентификатор сеанса, который он генерировал, не будет сеансом жертвы.

...