Що таке HPKP?

HPKP — це застарілий заголовок відповіді веб-безпеки, абревіатура означає PIN-код відкритого ключа HTTP. Він мав на меті запобігти скомпрометованому або шахрайському центру сертифікації від видачі загальнодоступного, але контрольованого хакерами сертифіката HTTPS для веб-сайту. У цьому випадку хакери зможуть розшифрувати будь-який перехоплений HTTPS-трафік на уражений веб-сайт.

Порада: заголовки веб-відповідей — це фрагменти метаданих, які сервер включає під час відповіді на запити. Невелика підмножина з них називається заголовками безпеки, оскільки вони вмикають і налаштовують різні функції безпеки.

Інфраструктура сертифікатів HTTPS

Інфраструктура сертифікатів, на якій побудовано HTTPS, заснована на мережі довіри. Деякі компанії діють як центри сертифікації (CA), які публікують один або кілька кореневих сертифікатів. Набір кореневих сертифікатів включено в усі пристрої в довіреному сховищі. Коли веб-сайт запитує власний сертифікат HTTPS від ЦС, сертифікат підписується кореневим сертифікатом. Коли ваш комп’ютер бачить сертифікат HTTPS, він перевіряє підпис. Якщо сертифікат підписаний кореневим сертифікатом, якому він довіряє, ваш комп’ютер також довіряє сертифікату HTTPS.

Порада: ЦС також може мати проміжні сертифікати, підписані кореневим сертифікатом. Ці проміжні сертифікати також можна використовувати для підписання сертифікатів HTTPS для веб-сайтів.

Завдання центру сертифікації — видавати сертифікат лише тоді, коли вони підтвердили, що особа, яка їх запитує, є справжнім власником веб-сайту. Ідея цієї структури полягає в тому, що якщо хакер створить власний сертифікат для веб-сайту, він не буде підписаний ЦС, якому довіряє ваш комп’ютер, і ви побачите попередження.

Що зробив HPKP?

Вся система сертифікатів покладається на надійність центрів сертифікації. Спочатку, однак, не було жодних засобів захисту від скомпрометації ЦС хакерами або шахрайства та вибору неправильної видачі сертифікатів.

HPKP був розроблений для захисту від такої можливості. Це дозволяє веб-сайтам вказувати ексклюзивний список сертифікатів, яким можна довіряти для веб-сайту в процесі, який називається закріпленням. Можна було закріпити кореневий або проміжний сертифікат, що по суті дозволило одному ЦС видавати сертифікати для веб-сайту. Також можна було закріпити сертифікат самого веб-сайту, не даючи навіть правильному ЦС видати інший дійсний сертифікат.

Технічно закріплений не сам сертифікат, а хеш ключа сертифіката. Хеш - це одностороння криптографічна функція. Це означає, що можна перевірити, що сертифікат, представлений веб-переглядачу веб-сайтом, відповідає закріпленому сертифікату, але неможливо використовувати хеш для створення дійсного сертифіката.

Для HPKP потрібно було закріпити принаймні два ключі, принаймні один з яких має бути резервним, а не в поточному ланцюжку сертифікатів. Ця резервна копія дозволяє налаштувати плавний перехід на новий сертифікат, який не заважає користувачам підключатися.

Якщо сертифікат HTTPS, наданий веб-переглядачу веб-сайтом, не збігається з одним із закріплених сертифікатів, то браузер повинен відхилити його та не дати користувачеві обійти повідомлення про помилку сертифіката.

Структура HPKP

Заголовок HPKP складається з трьох обов’язкових частин і двох необов’язкових. Заголовок повинен мати назву «Public-Key-Pins», наступні два або більше сертифікати повинні мати хеш SHA256, закодований base64, закріплений у форматі «pin-sha256=»». Останньою обов’язковою частиною є «max-age», який є лічильником у секундах, протягом якого браузер повинен застосовувати обмеження.

Порада: SHA256 — це алгоритм хешування, який використовується HPKP. Base64 — це набір символів із 64 символів: 0-9, az, AZ і спеціальні символи «+» і «/». Знак «=» використовується для додавання до двох останніх символів, якщо потрібно. 

Додатковими параметрами є «includeSubDomains» і «report-uri». «includeSubDomains наказує браузеру застосувати захист HPKP до будь-якого субдомену поточного веб-сайту на час таймера «максимальний вік». «report-uri» — це функція, яка дозволяє вказати веб-сайт, куди можна надсилати звіти про помилки, і призначена для виявлення та вирішення проблем.

Існує другий варіант заголовка під назвою «Public-Key-Pins-Report-Only». Проте все те саме, якщо виявлено помилку, не виконується жодних дій, окрім повернення повідомлення про помилку до браузера та до «report-uri», якщо таке налаштовано. Варіант лише звіту був розроблений для повномасштабного тестування заголовка перед розгортанням, де помилки не викликають проблем у користувачів.

Проблеми з HPKP

HPKP було застаріло з двох основних причин. Існували два способи, за допомогою яких заголовок міг викликати серйозні проблеми для веб-сайту, який його використовує, вони називалися HPKP Suicide та Ransom PKP.

HPKP Suicide — це проблема, коли законні власники веб-сайту втрачають доступ до всіх закріплених ключів. Це може статися через випадкове видалення, злом, віруси, пошкодження даних або з багатьох інших причин. Через складність правильної реалізації HPKP і, особливо, його оновлення під час ротації сертифікатів, відносно легко зробити помилку конфігурації. Однак із HPKP, якщо ви помилитеся, усі недавні відвідувачі вашого веб-сайту не зможуть отримати доступ до вашого веб-сайту протягом тривалості таймера «максимального віку». Веб-сайт smashingmagazine.com опублікував статтю, де детально описував свій досвід з цією проблемою, що, по суті, перевело сайт в автономний режим для більшості відвідувачів протягом чотирьох днів, перш ніж було розгорнуто виправлення.

Ransom PKP — це теоретична атака, коли хакер отримує доступ до веб-сервера, потім краде всі довірені сертифікати та ключі, а потім вимагає викуп за їх повернення. У звичайному налаштуванні ви можете просто згенерувати нові ключі та сертифікати та створити резервну роботу веб-сайту менш ніж за годину. Однак, якщо увімкнено HPKP, ці ключі закріплюються. Якщо ви не можете надати користувачам закріплений сертифікат, вони не зможуть отримати доступ до веб-сайту протягом таймера «максимального віку». Залежно від конфігурації та наявності резервних копій цю проблему може бути неможливо вирішити.

З обома цими проблемами нові користувачі зможуть отримати доступ до веб-сайту як звичайний, оскільки вони ніколи б не побачили старий заголовок HPKP, який наказує своєму браузеру довіряти лише тим сертифікатам, які зараз відсутні. Проте всім недавнім відвідувачам, таким як постійні клієнти та читачі, доведеться чекати весь час таймера «максимального віку».

Враховуючи серйозність цих проблем, а також складність конфігурації та обслуговування, використання заголовка HPKP було дуже низьким. Зрештою, основні браузери погодилися повністю відмовитися від його підтримки, і через пару років заголовок HPKP був повсюдно застарілим.

Залишити коментар

Як змінити швидкість відео на Android

Як змінити швидкість відео на Android

Змініть швидкість будь-якого відео на Android безкоштовно за допомогою цього корисного додатка. Додайте ефект уповільненого та прискореного відтворення до одного й того ж відео.

Zoom: Як додати відеофільтр

Zoom: Як додати відеофільтр

Розважайтеся на своїх зустрічах у Zoom за допомогою кількох кумедних фільтрів, які ви можете спробувати. Додайте ореол або виглядайте як єдиноріг на своїх зустрічах у Zoom за допомогою цих кумедних фільтрів.

Facebook: Як перевірити, чи хтось онлайн

Facebook: Як перевірити, чи хтось онлайн

Немає стовідсотково надійного способу перевірити, чи хтось справді онлайн у Facebook, коли здається, що він офлайн.

Facebook: Як приховати позначені тегами фотографії

Facebook: Як приховати позначені тегами фотографії

Якщо вам не подобається ідея того, що всі користувачі Facebook можуть бачити фотографії, на яких вас позначено, ви можете приховати їх у своїй стрічці. Ви можете налаштувати це.

Facebook: Як отримувати сповіщення, коли хтось публікує дописи

Facebook: Як отримувати сповіщення, коли хтось публікує дописи

Щоб отримувати сповіщення, коли хтось публікує щось у Facebook, перейдіть у налаштування та ввімкніть сповіщення. Потім додайте цю людину до списку близьких друзів.

Як користуватися Samsung Pay з Galaxy Z Fold 5

Як користуватися Samsung Pay з Galaxy Z Fold 5

Пошук потрібної картки для оплати в кишені чи гаманці може бути справжньою проблемою. Протягом останніх кількох років різні компанії...

Samsung Galaxy Z Fold 5: Як підключити до ПК

Samsung Galaxy Z Fold 5: Як підключити до ПК

Samsung Galaxy Z Fold 5, завдяки своєму інноваційному складаному дизайну та передовим технологіям, пропонує різні способи підключення до ПК. Незалежно від того, чи ви

Початок сеансу Google Meet з Gmail

Початок сеансу Google Meet з Gmail

Google Meet – чудова альтернатива іншим додаткам для відеоконференцій, таким як Zoom. Він може не мати тих самих функцій, але ви все одно можете використовувати інші. Ви можете розпочати сеанс Google Meet безпосередньо зі сторінки Gmail. Дізнайтеся, як це зробити, виконавши ці кроки.

Firefox: Як визначити певний колір на веб-сторінці

Firefox: Як визначити певний колір на веб-сторінці

Дізнайтеся, як можна визначити певний колір за допомогою вбудованого інструменту у Firefox без використання стороннього програмного забезпечення.

Що робити, коли WhatsApp Web не працює

Що робити, коли WhatsApp Web не працює

Веб-версія WhatsApp не працює? Не хвилюйтеся. Ось кілька корисних порад, які ви можете спробувати, щоб WhatsApp знову запрацював.