Що таке публічний ключ: різниця між публічним і приватним ключем
Публічний ключ — половина пари, якою можна ділитися: він шифрує й перевіряє підписи, а приватний розшифровує й підписує. Як він виглядає, де використовується і як не помилитися.
Публічний (відкритий) ключ — це половина пари ключів, на якій тримається сучасна криптографія. Його можна опублікувати, надіслати поштою чи розмістити на сайті, і це безпечно за задумом: публічний ключ уміє лише «замикати» дані й перевіряти підписи. Друга половина, приватний ключ, лишається в секреті — тільки ним можна відімкнути замкнене публічним ключем і створити дійсний підпис. У цій статті — як виглядає публічний ключ, для чого він, чим відрізняється від приватного і як правильно поводитися з обома.
Коротка відповідь
Публічний ключ — це довге число, зазвичай показане як блок літер і цифр, математично пов’язане з приватним ключем. Зв’язок працює лише в один бік. Будь-хто, хто має публічний ключ, може:
- зашифрувати повідомлення так, що прочитати його зможе лише власник відповідного приватного ключа;
- перевірити цифровий підпис — переконатися, що файл підписано саме цим приватним ключем і що його відтоді не змінювали.
Знаючи публічний ключ, обчислити приватний за реальний час неможливо. Саме ця односторонність робить схему корисною. Механізм покроково описано в статті як працює криптографія з відкритим ключем.
Аналогія: відкритий навісний замок
Уявіть, що ви роздаєте всім охочим відкриті навісні замки. Друг кладе лист у скриньку й защіпає ваш замок. Після цього навіть він не може її відкрити — лише ваш ключ. Замок — це публічний ключ: роздавати його нічого не коштує. Ключ на вашій в’язці — приватний: якщо загубити, скриньки не відкриє ніхто, якщо його скопіюють — відкриють усі.
Аналогія описує шифрування. Підписи працюють навпаки: приватним ключем ви ставите позначку, яку могли зробити лише ви, а будь-хто з публічним ключем її перевіряє. Докладніше — у статті як працюють цифрові підписи.
Як виглядає публічний ключ
Ключі — це двійкові дані, тому їх показують у текстових кодуваннях:
- Публічний ключ SSH — один рядок, що починається з назви алгоритму:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... user@laptop. - Формат PEM — блок між
-----BEGIN PUBLIC KEY-----і-----END PUBLIC KEY-----, його використовують TLS-бібліотеки та багато API. - Ключ PGP — довший блок для шифрованої пошти й підпису програм, зазвичай його називають коротким відбитком.
Оскільки ключі довгі, люди порівнюють відбитки (fingerprint) — короткий хеш ключа, наприклад SHA256:Qa3f.... Збігаються відбитки — збігаються й ключі.
Публічний і приватний ключ
| Публічний ключ | Приватний ключ | |
|---|---|---|
| У кого є | У будь-кого | Лише у власника |
| Для чого | Шифрувати, перевіряти підписи | Розшифровувати, створювати підписи |
| Чи можна ділитися | Так | Ніколи |
| Якщо загубили | Відновлюється з приватного | Зашифровані дані й доступ втрачено |
| Якщо витік | Нічого страшного | Зловмисник може діяти від вашого імені й читати повідомлення |
Пару створюють разом: спершу з випадкових чисел генерується приватний ключ, з нього обчислюється публічний. Публічний ключ завжди можна відтворити з приватного, але не навпаки.
Де ви щодня користуєтесь публічними ключами
- HTTPS. Кожен сайт із замочком надсилає сертифікат зі своїм публічним ключем. Браузер встановлює з його допомогою шифроване з’єднання й перевіряє підпис сертифіката. Див. як працюють HTTPS-сертифікати.
- Вхід через SSH. Розробник кладе свій публічний ключ на сервер, і сервер пускає того, хто доведе володіння приватним ключем, без пароля. Як це налаштувати — у статті SSH-ключі.
- Месенджери. Чати з наскрізним шифруванням обмінюються публічними ключами між телефонами, тож повідомлення читаються лише на пристроях із приватними ключами.
- Оновлення програм. Операційні системи й магазини застосунків перевіряють підпис видавця публічним ключем перед встановленням. Див. як працюють оновлення.
- Ключі доступу (passkeys). Passkey — це пара ключів: сайт зберігає лише ваш публічний ключ, тож викрадена база не містить нічого, чим можна увійти.
Найскладніше: довіра до ключа
Ламається рідко математика. Слабке місце — переконатися, що публічний ключ справді належить тому, кому ви думаєте. Якщо зловмисник підсуне свій ключ під виглядом ключа банку, ви зашифруєте дані для зловмисника.
Різні системи вирішують це по-різному. HTTPS покладається на центри сертифікації, які підписують ключі сайтів. SSH показує відбиток сервера під час першого підключення й попереджає, якщо він зміниться. Месенджери дозволяють звірити «коди безпеки» особисто. Правило одне: публічному ключу можна довіряти рівно настільки, наскільки надійно ви його отримали.
Практичні правила
- Публічними ключами діліться вільно, а чужі отримуйте з надійного джерела й звіряйте відбитки, коли це важливо.
- Ніколи не надсилайте приватний ключ поштою, у чаті чи в задачі. Якщо так сталося — створіть нову пару й приберіть старий публічний ключ звідусіль.
- Захищайте приватні ключі паролем (passphrase) або зберігайте в апаратному ключі чи захищеному чипі телефона.
- Обирайте сучасні алгоритми: Ed25519 або ECDSA для підписів, RSA — щонайменше 3072 біти.
- Робіть резервну копію приватних ключів, що захищають важливі дані, наприклад зашифровані архіви.
Часті запитання
Чи можуть мене зламати, знаючи мій публічний ключ?
Ні. Публічний ключ створений для публікації. Ризик — лише витік приватного ключа або довіра до підробленого публічного.
Публічний ключ — це те саме, що пароль?
Ні. Пароль — спільний секрет, який знаєте і ви, і сервер. З парою ключів сервер зберігає лише публічний ключ і ніколи не бачить вашого секрету, тому ключі безпечніші за паролі.
Наскільки довгий публічний ключ?
Залежить від алгоритму. Публічний ключ Ed25519 — 32 байти, близько 68 символів у форматі SSH. Ключ RSA 3072 — приблизно 400 байт.
Чи можна використовувати одну пару скрізь?
Можна, але окремі пари для кожного пристрою обмежують шкоду від втрати й дозволяють відкликати доступ одного ноутбука.
Коротко: публічний ключ — це та половина пари, якою можна ділитися. Він шифрує й перевіряє; приватний розшифровує й підписує. Публікувати публічний ключ безпечно, а безпеку системи забезпечують захист приватного ключа й перевірка того, що публічний ключ справді належить заявленому власнику.