Как Firefox реализует HSTS в деталях?

Я подробно исследовал, как Firefox и Chrome реализуют HSTS (HTTP Strict Transport Security).

Оказывается, у них есть предопределенный список с некоторыми сайтами, которые уже реализуют HSTS. Это можно увидеть здесь, здесь и/или здесь. И этот список, кажется, каким-то образом связан с самим исходным кодом, что имеет какой-то смысл... но как Firefox и Chrome обрабатывают мои собственные заголовки HSTS? Как и где они хранят мой URL, мой максимальный возраст и включаю ли я субдомены или нет? Я не смог найти это в about:config или аналогичном....

Так что, может быть, кто-то знает об этой проблеме больше, чем я, мне просто любопытно (: Thx!


person casheeew    schedule 30.01.2013    source источник


Ответы (2)


См. http://hg.mozilla.org/mozilla-central/file/20bbf73921f4/netwerk/protocol/http/nsHttpChannel.cpp#l1072, а затем http://hg.mozilla.org/mozilla-central/file/20bbf73921f4/security/manager/boot/src/nsStrictTransportSecurityService.cpp#l249, который вызывает http://hg.mozilla.org/mozilla-central/file/20bbf73921f4/security/manager/boot/src/nsStrictTransportSecurityService.cpp#l147

Таким образом, данные в конечном итоге хранятся в диспетчере разрешений, который является обычным местом для хранения информации о каждом хосте в Firefox. Диспетчер разрешений хранит свое состояние в permissions.sqlite, я думаю.

person Boris Zbarsky    schedule 31.01.2013

Сайты, которые хотят, чтобы HTTP Strict Transport Security (HSTS) применялось принудительно, отправляют заголовок в ответ - Strict-Transport-Security: max-age=31536000 максимальный возраст соответствует времени истечения срока его действия. Он отправляется при каждом запросе, так что он обновляется гораздо чаще каждый раз, когда его запрашивают.

Браузер (я пробовал только Firefox) хранит эти данные вместе с ним и будет использовать их каждый раз при доступе к сайту. Это верно даже для режима инкогнито. Если вы когда-либо заходили на сайт раньше в режиме без инкогнито, то детали этого сайта сохраняются и используются, даже если вы попытаетесь открыть его сейчас в режиме инкогнито.

Для firefox эти данные хранятся в файле с именем SiteSecurityServiceState.txt, который находится в папке вашего профиля firefox. Вы можете ввести about:support в браузере, а затем выбрать «Показать в папке», чтобы открыть папку своего профиля, где вы можете найти этот файл.

Я не уверен насчет предопределенных сайтов, но выше приведен файл, в котором данные HSTS обычных сайтов обновляются для Firefox.

Дополнительные сведения: Основные сведения о строгой транспортной безопасности HTTP (HSTS)

PS: Ссылка выше ведет на мой личный блог, в котором есть более подробная информация о HSTS.

person Aniket Thakur    schedule 17.03.2017