Несколько дней назад я прочитал сообщение в блоге о возобновлении сеанса в nginx.
В этом тексте автор утверждает, что nginx не предоставляет возможности регулярно очищать кеш сеанса. По истечении «ssl_session_timeout» сеанс больше не используется, но файл все еще находится на жестком диске и может быть прочитан злоумышленником, поэтому «Прямая секретность» на этом этапе будет бесполезна.
Вместо использования идентификаторов сеанса он предлагает деактивировать кэш сеанса и использовать билеты сеанса. Для этого не реже одного раза в день необходимо создавать "ticket_key" с 80 байтами случайности.
Я искал в Интернете дополнительную информацию, но не нашел ничего полезного.
Q1: Где находится кеш сеанса nginx и как я могу проверить, находятся ли данные (сеансы) TLS-соединения на жестком диске?
Q2: Целесообразно ли использовать билеты сеанса?
Я не могу ответить на первый вопрос, но могу рассказать немного о втором.
Это сообщение в блоге дает некоторую полезную информацию о недостатках сессионных билетов на TLSv1.2: https://blog.filippo.io/we-need-to-talk-about-session-tickets/.
Итак, как говорит Майкл, у них обоих есть свои проблемы, и только если вы используете TLSv1.3 (буквально только что подписали и поэтому просто становясь доступным в реализациях на момент написания) вы можете полностью безопасно использовать возобновление TLS.
Тем не менее, если говорить о том, что отказ от использования возобновления сеанса TLS требует значительных затрат на производительность, и ИМХО риски относительно низкие (если у кого-то есть доступ к вашему серверу, то, насколько я понимаю, игра окончена). Так что пока я рекомендую использовать как идентификаторы сеанса, так и билеты сеанса. Тем более, что некоторые клиенты (Safari и IE в Windows 7 и ранее) не поддерживают билеты сеанса. В частности, у Safari по-прежнему много пользователей на мобильных устройствах и планшетах - вы действительно хотите значительно замедлить всех пользователей iOS?