Jump to content

Закрепление открытого ключа HTTP

Закрепление открытого ключа HTTP ( HPKP ) — это устаревший механизм интернет-безопасности , предоставляемый через HTTP- заголовок , который позволяет веб-сайтам HTTPS противостоять выдаче себя за другое лицо злоумышленниками, использующими неправильно выданные или иным образом поддельные цифровые сертификаты . [1] Сервер использует его для доставки клиенту ( например, веб-браузеру ) набора хешей открытых ключей , которые должны появиться в цепочке сертификатов будущих подключений к тому же доменному имени .

Например, злоумышленники могут скомпрометировать центр сертификации , а затем неправильно выдать сертификаты для веб-источника . Чтобы бороться с этим риском, веб-сервер HTTPS предоставляет список «закрепленных» хешей открытых ключей, действительных в течение определенного времени; при последующих соединениях в течение этого срока действия клиенты ожидают, что сервер будет использовать один или несколько из этих открытых ключей в своей цепочке сертификатов. Если этого не происходит, отображается сообщение об ошибке, которое пользователь не может (легко) обойти.

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

Из-за сложности механизма HPKP и возможности случайного неправильного использования (что потенциально может привести к блокировке со стороны системных администраторов) в 2017 году браузеры прекратили поддержку HPKP, а в 2018 году удалили его поддержку в пользу прозрачности сертификатов . [2] [3]

Механизм

[ редактировать ]

Сервер передает политику HPKP пользовательскому агенту через HTTP с именем поле заголовка ответа Public-Key-Pins (или Public-Key-Pins-Report-Only только для целей отчетности).

Политика HPKP определяет хэши информации об открытом ключе субъекта одного из сертификатов в аутентичной цепочке сертификатов открытого ключа X.509 веб-сайта (и по крайней мере одного резервного ключа) в pin-sha256 директивы и период времени, в течение которого пользовательский агент должен обеспечить закрепление открытого ключа в max-age директива, необязательно includeSubDomains директива для включения всех поддоменов (домена, отправившего заголовок) в политику закрепления и необязательно report-uri директива с URL-адресом, куда отправлять отчеты о нарушении закрепления. По крайней мере, один из открытых ключей сертификатов в цепочке сертификатов должен совпадать с закрепленным открытым ключом, чтобы пользовательский агент считал цепочку действительной.

На момент публикации, RFC   7469 разрешает использовать только алгоритм хеширования SHA-256 . ( В Приложении A к RFC 7469 упоминаются некоторые инструменты и необходимые аргументы, которые можно использовать для создания хэшей для политик HPKP.)

Оператор веб-сайта может либо закрепить открытый ключ корневого сертификата определенного корневого центра сертификации, позволяя только этому центру сертификации (и всем промежуточным центрам сертификации, подписанным его ключом) выдавать действительные сертификаты для домена веб-сайта, и/или закрепить ключ(и) одного или нескольких промежуточных сертификатов выдачи или для закрепления открытого ключа конечного объекта.

Должен быть закреплен хотя бы один резервный ключ на случай, если текущий закрепленный ключ потребуется заменить. HPKP недействителен без этого резервного ключа (резервный ключ определяется как открытый ключ, отсутствующий в текущей цепочке сертификатов). [4]

HPKP стандартизирован в RFC 7469. [1] Он расширяет возможности статического закрепления сертификатов , при котором жестко кодируются хэши открытых ключей известных веб-сайтов или служб в веб-браузерах и приложениях. [5]

Большинство браузеров отключают закрепление цепочек сертификатов с частными корневыми сертификатами, чтобы включить различные проверки корпоративного контента. сканеры [6] и инструменты веб-отладки (такие как mitmproxy или Fiddler ). Стандарт RFC 7469 рекомендует отключать отчеты о нарушении закрепления для «пользовательских» корневых сертификатов, где для браузера «приемлемо» отключение проверки закрепления. [7]

Отчетность

[ редактировать ]

Если пользовательский агент выполняет проверку PIN-кода и не может найти действительный отпечаток SPKI в обслуживаемой цепочке сертификатов, он отправит POST отчет о нарушении в формате JSON на хост, указанный в директиве report-uri, содержащий подробную информацию о нарушении. Этот URI может обслуживаться через HTTP или HTTPS ; однако пользовательский агент не может отправлять отчеты о нарушении HPKP на URI HTTPS в том же домене, что и домен, для которого он сообщает о нарушении. Хосты могут использовать HTTP для report-uri, используйте альтернативный домен или службу отчетов. [8]

Некоторые браузеры также поддерживают Public-Key-Pins-Report-Only, который только запускает этот отчет, не показывая пользователю ошибку.

Критика и упадок

[ редактировать ]

Сообщается, что во время пикового внедрения HPKP использовался 3500 из 1 миллиона крупнейших интернет-сайтов, и к концу 2019 года эта цифра снизилась до 650. [9]

Критика и беспокойство вращались вокруг сценариев злонамеренных действий или человеческих ошибок, известных как HPKP Suicide и RansomPKP. [10] В таких сценариях возможность владельца веб-сайта публиковать новое содержимое в своем домене будет серьезно затруднена либо из-за потери доступа к своим собственным ключам, либо из-за объявления новых ключей злоумышленником.

Поддержка браузера и прекращение поддержки

[ редактировать ]
Поддержка браузером закрепления открытого ключа HTTP
Браузер Версия добавлена Версия устарела Версия удалена Примечания
Гугл Хром 46 [11] 67 [12] 72 [13] [14]
Опера 33 [15] 54 [16] 60
Firefox 35 72 [17] [18] Можно включить, установив флаг security.cert_pinning.hpkp.enabled к true. [19]
Интернет Эксплорер [20]
Microsoft Край [20]
Сафари

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б Эванс, Крис; Палмер, Крис; Сливи, Райан (апрель 2015 г.). Расширение закрепления открытого ключа для HTTP . IETF . дои : 10.17487/RFC7469 . ISSN   2070-1721 . РФК 7469 .
  2. ^ Лейден, Джон (30 октября 2017 г.). «RIP HPKP: Google отказывается от закрепления открытого ключа» . Регистр . Проверено 18 декабря 2018 г.
  3. ^ Тунг, Лиам (30 октября 2017 г.). «Google: Chrome отказывается от закрепления открытого ключа, и вот почему» . ЗДНет . Проверено 18 декабря 2018 г.
  4. ^ «О закреплении открытого ключа» . Noncombatant.org . Проверено 7 мая 2015 г.
  5. ^ «Закрепление сертификата и открытого ключа — OWASP» . www.owasp.org . Проверено 7 мая 2015 г.
  6. ^ «Часто задаваемые вопросы по безопасности — Проекты Chromium» . www.chromium.org . Проверено 7 июля 2015 г.
  7. ^ Эванс, К.; Палмер, К.; Сливи, Р. (2015). «RFC 7469 — Расширение закрепления открытого ключа для HTTP» . www.tools.ietf.org . дои : 10.17487/RFC7469 . Проверено 7 июля 2015 г.
  8. ^ «Отчет о нарушениях HPKP» . Скотт Хельм.
  9. ^ «ХПКП больше нет» . Скотт Хельм. 20 января 2020 г. Проверено 30 января 2020 г.
  10. ^ «Использование функций безопасности для совершения плохих поступков» . Скотт Хельм. 15 августа 2016 г. Проверено 30 января 2020 г.
  11. ^ Старк, Эмили (31 августа 2015 г.). «Внедрение закрепления открытого ключа с помощью отчетов HPKP» . Разработчики Chrome . Архивировано из оригинала 16 января 2023 г. Проверено 10 марта 2023 г.
  12. ^ Медли, Джо (07.06.2018). «Устаревшие и удаленные версии Chrome 67» . Разработчики Google . Архивировано из оригинала 10 марта 2023 г. Проверено 10 марта 2023 г.
  13. ^ Палмер; Эстарк; Рслееви (13 сентября 2022 г.). «Удаление закрепления открытого ключа на основе HTTP — статус платформы Chrome» . www.chromestatus.com . Архивировано из оригинала 25 мая 2022 г. Проверено 18 ноября 2019 г.
  14. ^ Медли, Джо (27 июня 2020 г.). «Устаревшие версии и удаления в Chrome 72 – Разработчики Chrome» . Разработчики Chrome . Архивировано из оригинала 18 ноября 2022 г. Проверено 10 марта 2023 г.
  15. ^ Байненс, Матиас (27 октября 2015 г.). «Вышла Опера 33» . Гитхаб . Опера. Архивировано из оригинала 10 марта 2023 г. Проверено 10 марта 2023 г.
  16. ^ «Что нового в Chromium 67 и Opera 54» . Гитхаб . Опера. 28 июня 2018 г. Архивировано из оригинала 10 марта 2023 г. Проверено 10 марта 2023 г.
  17. ^ «Закрепление открытого ключа HTTP больше не поддерживается» . Совместимость сайтов Firefox . 14 ноября 2019 г. Архивировано из оригинала 29 мая 2020 г. Проверено 19 февраля 2020 г.
  18. ^ Килер, Дана (13 ноября 2019 г.). «Изменение исходного кода Mozilla, в результате которого был удален HPKP, включая обсуждение и причины этого изменения (ошибка 1412438)» . Контроль версий Mozilla Firefox . Архивировано из оригинала 10 марта 2023 г. Проверено 10 марта 2023 г.
  19. ^ «mozilla-central: набор изменений 501812:d791bfa31f08ec478b2ef6ca4f89b3a8849d723b» . hg.mozilla.org . Проверено 18 ноября 2019 г.
  20. ^ Перейти обратно: а б «Статус расширения закрепления открытого ключа для HTTP в Microsoft Edge находится на рассмотрении» . Разработка Microsoft Edge . Архивировано из оригинала 20 декабря 2016 г. Проверено 21 сентября 2018 г.


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4983ae57287b58999aa0ed907ee7b96b__1721440140
URL1:https://arc.ask3.ru/arc/aa/49/6b/4983ae57287b58999aa0ed907ee7b96b.html
Заголовок, (Title) документа по адресу, URL1:
HTTP Public Key Pinning - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)