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

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

0 голосов
/ 25 октября 2019

В приложении 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 мне нужно включить Subdomain? как Strict-Transport-Security: max-age=2592000, includeSubDomain

1 Ответ

0 голосов
/ 26 октября 2019
  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 (кроме того факта, что он вам явно нужен для каждого защищенного домена!).

...