Що таке PKI та як працює довіра до сертифікатів

Автор: Опубліковано

Коротко: PKI — це інфраструктура відкритих ключів: система сертифікатів, установ, процедур та інструментів, яка дає змогу пов’язати криптографічний ключ із доменом, особою або пристроєм. Завдяки цьому браузер може перевірити, чи підключається він до потрібного сервера, а корпоративна мережа — розпізнати комп’ютер, якому дозволено доступ. PKI лежить в основі багатьох застосувань HTTPS, автентифікації та цифрових підписів, але сама собою не гарантує доброчесності власника сайту чи безпеки всієї системи.

Як PKI пов’язує ключ з ідентичністю

Скорочення PKI походить від англійського Public Key Infrastructure. В основі цієї інфраструктури лежить асиметрична криптографія — рішення, що використовують пару математично пов’язаних ключів: відкритий і приватний. Відкритий ключ можна поширювати, а приватний має залишатися під контролем власника.

Для цифрового підпису приватний ключ використовують, щоб створити підпис, а відкритий — щоб перевірити його правильність. Успішна перевірка підтверджує, що підпис створено за допомогою відповідного приватного ключа і що підписані дані не було змінено. Однак сама пара ключів не вказує, кому вона належить.

Цю проблему розв’язує цифровий сертифікат — електронне підтвердження, що пов’язує відкритий ключ із певним суб’єктом або ідентифікатором, наприклад доменним ім’ям. Він містить m.in. відкритий ключ, дані суб’єкта, відомості про видавця, строк дії та дозволені способи використання. У поширеному форматі X.509 видавець засвідчує сертифікат цифровим підписом.

Що саме засвідчує сертифікат, залежить від його типу. Базовий сертифікат сервера HTTPS підтверджує контроль над зазначеним доменом відповідно до процедури видавця, а не надійність магазину чи якість його пропозиції.

З чого складається інфраструктура PKI

PKI — це не окремий сертифікат, а ціла система видавання сертифікатів і керування ними. Її основні складові:

Довіра зазвичай вибудовується в ланцюжок: сертифікат сервера підписаний проміжним CA, а сертифікат цього CA веде до довіреного кореневого центру, тобто root CA. Кореневий сертифікат зазвичай самопідписаний, але довіреним його робить не цей підпис. Вирішальним є те, що його заздалегідь додали до сховища довіри.

Що відбувається під час з’єднання HTTPS

HTTPS — це HTTP, захищений протоколом TLS, який убезпечує обмін даними між браузером і сервером. У цьому процесі PKI допомагає підтвердити ідентичність сервера.

Припустімо, ви відкриваєте сайт mahazyn.example. Спрощено, браузер виконує такі дії:

  1. Отримує сертифікат сервера та проміжні сертифікати, потрібні для побудови ланцюжка довіри.
  2. Перевіряє, чи поширюється сертифікат на ім’я mahazyn.example, чи не минув строк його дії та чи можна використовувати його для автентифікації сервера.
  3. Перевіряє підписи в ланцюжку та з’ясовує, чи веде він до довіреного центру. Обробка відомостей про відкликання залежить від програмного забезпечення та його політик.
  4. Під час узгодження параметрів TLS перевіряє доказ того, що сервер володіє відповідним приватним ключем, і узгоджує ключі сеансу.

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

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

Публічна чи приватна PKI — що вибрати

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

Приватна PKI працює в межах організації або контрольованого середовища. Компанія самостійно визначає правила видавання сертифікатів і налаштовує довіру до власного CA на керованих пристроях. Такі сертифікати не стають автоматично довіреними на комп’ютерах клієнтів поза компанією.

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

Що потрібно підтримувати після видавання сертифіката

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

Якщо приватний ключ став відомий стороннім, недостатньо повторно завантажити сертифікат. Потрібно згенерувати нову пару ключів, отримати новий сертифікат, відкликати попередній і усунути причину витоку. Ефективність відкликання також залежить від того, чи перевіряють статус сертифіката системи, які його використовують.

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

Дивіться також: Що таке MCP?

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.