Как работает истечение HSTS

В приложении ASP.NET Core 2.2 мы включили HSTS, используя app.UseHsts();, который добавляет HSTS с max-age из 30 дней в заголовок ответа.

В скрипаче

Strict-Transport-Security: max-age=2592000

Затем в Chrome, если я перехожу к chrome://net-internals/#hsts и запрашиваю наше доменное имя, я получаю:

Найдено:

static_sts_domain:  
static_upgrade_mode: UNKNOWN  
static_sts_include_subdomains:  
static_sts_observed:  
static_pkp_domain:  
static_pkp_include_subdomains:  
static_pkp_observed:  
static_spki_hashes:  
dynamic_sts_domain: subdomain.example.com //our domain name here  
dynamic_upgrade_mode: FORCE_HTTPS  
dynamic_sts_include_subdomains: false  
dynamic_sts_observed: 1572023505.777819  
dynamic_sts_expiry: 1574615505.777818  

Вопросы

  1. Какова единица измерения dynamic_sts_observed и dynamic_sts_expiry. Не похоже, что это секунды. Как рассчитывается значение?
  2. Если пользователь продолжает посещать сайт каждый день, значение постоянно обновляется? Другими словами, это скользящая экспирация?
  3. Что происходит после истечения срока?
  4. Что произойдет, если пользователь уже посещал сайт и его браузер уже кэшировал HSTS в течение 30 дней. Но через пару дней мы изменили значение с 30 дней на 90 дней. Когда браузер пользователя получит обновленное значение? По истечении срока или при следующем посещении?
  5. URL-адрес, который пользователь просматривает, уже является субдоменом, например https://subdomain.example.com. Сертификат SSL, который мы используем, является сертификатом с подстановочными знаками. *.example.com. Итак, нужно ли включать в конфигурацию HSTS субдомен? нравится Strict-Transport-Security: max-age=2592000, includeSubDomain

person LP13    schedule 25.10.2019    source источник
comment
1) unixtimestamp.com/index.php   -  person Joachim Isaksson    schedule 25.10.2019


Ответы (1)


  1. Это секунды в эпоху Unix (т.е. с 01.01.1970). Как сообщает Joachim'scommebt, вы можете просмотреть и преобразовать его здесь: https://www.unixtimestamp.com/index.php

  2. Да.

  3. Это как если бы вы никогда не видели заголовок HSTS (т. е. HTTPS не будет применяться).

  4. После следующего визита, согласно пункту 2, это скользящий срок действия, который пересчитывается при каждом посещении.

  5. Если политика находится на верхнем уровне, вам нужно использовать includeSubDomains (обратите внимание на S, поскольку вы пропустили это в своем вопросе), чтобы она повлияла на поддомены. Вы также можете опубликовать отдельную политику (такую ​​же или другую) для каждого поддомена. Ваша политика верхнего уровня загружается, только если посетители переходят на этот сайт (например, https://example.com), поэтому, если они перейти только на поддомен (например, https://www.example.com), тогда браузер не будет кэшировать политика высшего уровня. Лучшей практикой является использование includeSubDomains для всех политик и загрузка ресурса (например, одного пикселя или, возможно, логотипа компании) из домена верхнего уровня, чтобы принудительно использовать эту политику верхнего уровня, чтобы все другие поддомены были защищены как Что ж. Это работает, только если у вас нет сайтов только для http (например, http://intranet.example.com или http://blog.example.com), и в этом случае лучше всего иметь политика верхнего уровня без includeSubDomains, а затем другая политика для каждого поддомена, которая полностью поддерживает HTTPS с includeSubDomains. Сертификат не имеет отношения к HSTS (за исключением того факта, что вам, очевидно, нужен один для каждого защищенного домена!).

person Barry Pollard    schedule 26.10.2019