Ключ шифрування — секретне значення (послідовність бітів), за допомогою якого криптографічний алгоритм шифрує й розшифровує дані; той, хто має ключ, може прочитати захищену інформацію.
Як працюють ключі шифрування
Сучасне шифрування дотримується принципу Керкгоффса: алгоритм публічний, а безпека цілком залежить від секретності ключа. Розрізняють два основні види ключів:
- Симетричні ключі — один спільний секрет для шифрування й розшифрування, наприклад 128- або 256-бітний ключ AES.
- Ключові пари в криптографії з відкритим ключем — відкритий ключ, який можна вільно поширювати, і закритий, що має залишатися таємним; ключі RSA зазвичай мають довжину від 2048 біт, ключі на еліптичних кривих — 256 біт.
Довжина ключа визначає стійкість до перебору: перебрати всі 2^128 можливих ключів AES не під силу жодному комп’ютеру. Ключі генеруються криптографічно стійким генератором випадкових чисел або виводяться з пароля функціями на кшталт PBKDF2 чи Argon2.
Чому важливе керування ключами
Стійкі алгоритми марні, якщо ключі витекли. Типові проблеми — ключі, жорстко прописані у вихідному коді чи прошивці (CWE-321), збережені поруч із зашифрованими даними, що потрапили до публічних репозиторіїв або перебувають у пам’яті, звідки їх може прочитати шкідливе ПЗ. 2023 року угруповання Storm-0558 за допомогою викраденого споживчого ключа підпису Microsoft підробляло токени й отримало доступ до пошти державних установ США — нагадування про те, що один ключ може відкрити тисячі облікових записів. Програми-вимагачі, навпаки, розраховують на те, що жертва не має ключа зловмисника.
Рекомендації
- Дотримуватися життєвого циклу ключа — генерації, зберігання, ротації, відкликання та знищення — як описано в NIST SP 800-57.
- Зберігати ключі в апаратних засобах: HSM, хмарних сервісах керування ключами або TPM.
- Відокремлювати ключі від даних, які вони захищають, і обмежувати коло тих, хто може їх використовувати.
- Регулярно змінювати ключі та негайно — за підозри на компрометацію.