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