Як працюють цифрові підписи: пояснення простими словами
Цифровий підпис доводить, хто підписав файл і що його не змінено. Як працюють підписання й перевірка, чим вони відрізняються від шифрування і де ви на них покладаєтесь.
Цифровий підпис доводить дві речі про повідомлення, файл чи оновлення програми: хто його створив і що відтоді його ніхто не змінив. Браузер перевіряє цифрові підписи щоразу, коли відкриває HTTPS-сайт, телефон — перед встановленням оновлення, а банки й держоргани підписують ними документи з юридичною силою. У цій статті — як працюють цифрові підписи, чим вони відрізняються від шифрування і де ви покладаєтеся на них щодня.
Що доводить цифровий підпис
Рукописний підпис можна перенести на інший документ. Цифровий — ні, бо він обчислюється з точного вмісту документа. Дійсний підпис повідомляє отримувачу:
- Справжність — підпис створено певним приватним ключем, тобто тим, хто ним володіє.
- Цілісність — вміст точно такий, як у момент підписання. Зміна одного символу робить підпис недійсним.
- Неможливість відмови — підписант не може правдоподібно заявити, що підпис зробив хтось інший, якщо приватний ключ зберігався в таємниці.
Підпис не приховує вмісту. Підписаний документ може прочитати будь-хто; підпис і шифрування — різні інструменти, які часто використовують разом.
Як працюють підписання й перевірка
Цифрові підписи використовують пару ключів, описану в статті що таке публічний ключ. Процес складається з двох частин.
Підписання (робить автор):
- Програма обчислює хеш документа — короткий відбиток фіксованої довжини, наприклад SHA-256. Будь-яка зміна документа дає зовсім інший хеш.
- Хеш поєднується з приватним ключем автора за алгоритмом підпису — Ed25519, ECDSA чи RSA. Результат і є підписом.
- Підпис додається до документа або надсилається поруч.
Перевірка (може зробити будь-хто):
- Отримувач обчислює хеш отриманого документа.
- Запускає алгоритм перевірки з підписом, цим хешем і публічним ключем автора.
- Алгоритм відповідає «так» або «ні». «Так» означає, що документ не змінено й підписано відповідним приватним ключем.
Хешування робить підписи малими й швидкими: образ диска на 10 ГБ і повідомлення в один рядок мають підписи однакового розміру.
Підпис і шифрування
| Цифровий підпис | Шифрування | |
|---|---|---|
| Мета | Довести походження й цілісність | Зберегти вміст у таємниці |
| Приватний ключ | Створює підпис | Розшифровує |
| Публічний ключ | Перевіряє | Шифрує |
| Вміст після дії | Доступний усім | Доступний лише власнику ключа |
Про шифрування — у статті як працює криптографія з відкритим ключем. На практиці системи поєднують обидва: захищене повідомлення підписує відправник і шифрує для отримувача.
Чий це ключ? Сертифікати й довіра
Підпис доводить, що використано відповідний приватний ключ, але не те, хто ним володіє. Якщо зловмисник переконає вас, що його публічний ключ належить вашому банку, його підписи пройдуть перевірку. Цю ланку забезпечують сертифікати.
Сертифікат — невеликий документ «цей публічний ключ належить цьому імені», підписаний центром сертифікації (CA), якому ваш пристрій уже довіряє. Так працює HTTPS: сертифікат сайту підписано CA, сертифікат CA — кореневим, що постачається з операційною системою, а браузер перевіряє весь ланцюжок. Подробиці — у статті як працюють HTTPS-сертифікати.
Інші системи мають інші моделі довіри. Видавці програм реєструють сертифікати підпису у виробників ОС, магазини застосунків підписують програми самі, а SSH і деякі месенджери просять один раз підтвердити відбиток ключа й попереджають, якщо він зміниться.
Де ви щодня покладаєтеся на підписи
- Сайти. Рукостискання HTTPS містить підпис сервера, що доводить володіння приватним ключем сертифіката.
- Програми й оновлення. Windows, macOS, Android та iOS блокують або попереджають про непідписані чи змінені інсталятори. Завдяки підпису зламане дзеркало завантажень не може легко підсунути шкідливу програму — див. як працюють оновлення.
- Пошта. Підписи DKIM дозволяють серверу-отримувачу перевірити, що лист справді надіслано з домену відправника, — важлива частина доставки пошти.
- Документи. Кваліфікований електронний підпис, зокрема в державних застосунках, — це цифровий підпис із сертифікатом, що має юридичну силу.
- Passkeys і ключі безпеки. Вхід через passkey означає, що пристрій підписує запит сайту; пароль не передається взагалі.
Чого підписи не вміють
- Вони не оцінюють вміст. Шкідлива програма, підписана викраденим чи шахрайськи отриманим сертифікатом, пройде перевірку — тому сертифікати можна відкликати.
- Вони безпечні рівно настільки, наскільки захищений приватний ключ. Ключ, скопійований із незахищеного ноутбука, дозволяє підписати що завгодно від вашого імені.
- Вони залежать від правильної перевірки. Програма, що пропускає чи неправильно реалізує перевірку, нічого від підпису не отримує.
Часті запитання
Цифровий підпис і електронний підпис — це одне й те саме?
Не обов’язково. «Електронним підписом» можуть назвати і надруковане ім’я чи намальований розчерк у PDF. Цифровий підпис — криптографічний, описаний тут, і саме він робить надійними сильні форми електронного підпису.
Чи можна підробити цифровий підпис?
Із сучасними алгоритмами й захищеними ключами — ні. На практиці підробка відбувається через крадіжку приватного ключа або через довіру до неправильного публічного ключа.
Що буде, коли сертифікат підпису спливе?
Підписи, зроблені під час його дії, можна перевірити, якщо їх засвідчено позначкою часу від довіреного сервісу. Для нових підписів потрібен новий сертифікат.
Як перевірити підпис файлу?
У Windows: правий клік на файлі → Властивості → Цифрові підписи. У macOS: codesign -dv --verbose=4 /Applications/App.app показує підписанта. Пакети в Linux перевіряє менеджер пакетів автоматично.
Коротко: цифровий підпис — це хеш вмісту, запечатаний приватним ключем. Будь-хто з відповідним публічним ключем може перевірити, хто підписав і що вміст не змінився. Сертифікати пов’язують ключі з реальними особами, і разом це непомітно захищає сайти, оновлення, пошту та passkeys.