Цифровий підпис — криптографічний механізм, що підтверджує, хто створив або затвердив дані, і що вони не змінилися після підписання.
Як працює цифровий підпис
Цифровий підпис ґрунтується на криптографії з відкритим ключем. Той, хто підписує, обчислює хеш документа чи файлу й перетворює його своїм закритим ключем — результат і є підписом. Перевірити його може будь-хто за допомогою відповідного відкритого ключа: якщо дані змінилися хоча б на один біт або використано інший ключ, перевірка не пройде. Поширені алгоритми — RSA, ECDSA та EdDSA; 2024 року NIST стандартизував постквантову альтернативу ML-DSA.
Щоб знати, чий це відкритий ключ, підписи спираються на сертифікати центрів сертифікації. Важливо: підпис — не шифрування, підписане повідомлення може лишатися доступним для читання всім.
Де використовується
- Підпис коду — операційні системи й магазини застосунків перевіряють підписи програм і драйверів; оновлення підписують, щоб пристрої приймали лише справжні.
- TLS та HTTPS — сервери підтверджують свою справжність під час встановлення з’єднання.
- Пошта й документи — S/MIME, PGP, підписані PDF; у ЄС кваліфікований електронний підпис за регламентом eIDAS рівнозначний власноручному.
- Транзакції в блокчейні та ланцюжки довіреного завантаження.
Чому це важливо для безпеки
Підписи — основа довіри до програмного забезпечення. Тому зловмисники викрадають ключі підпису коду: Stuxnet використовував драйвери, підписані сертифікатами двох тайванських виробників обладнання, а підписане шкідливе ПЗ і зламані системи збирання лежать в основі багатьох атак на ланцюг постачання. До того ж користувачі часто ігнорують попередження про недійсний підпис.
Рекомендації
- Зберігати ключі підпису в апаратних модулях безпеки (HSM) і обмежувати коло осіб із доступом.
- Негайно відкликати скомпрометовані сертифікати.
- Перевіряти підписи й контрольні суми завантажуваних програм і оновлень.