Направления / Криптография и инфраструктура открытых ключей

Примитивы: симметрика, асимметрика, хеши, MAC

Криптография и инфраструктура открытых ключей

Что обеспечивает каждый примитив, где их применяют и почему нельзя изобретать свои схемы.

средний~40 минAESRSAECCхеши

Зачем это нужно

  • Выбор примитива определяет, какие свойства безопасности вы действительно получаете.
  • Понимание различий объясняет, почему одни схемы ломаются на практике, а другие нет.
  • Ошибки применения криптографии встречаются чаще, чем слабости самих алгоритмов.

Теория

Симметричное шифрование использует один ключ для шифрования и расшифрования: современный стандарт — AES с режимами, обеспечивающими аутентификацию (например, GCM). Плюс: высокая скорость. Минус: задача распространения ключа. Асимметричное шифрование использует пару ключей: RSA или схемы на эллиптических кривых; применяется для обмена ключами и цифровых подписей, но медленнее и требует аккуратного выбора параметров и заполнения.

Хеш-функции обеспечивают сжатие и стойкость к нахождению прообраза и коллизий: SHA-256, SHA-3. Пароли нельзя хранить по быстрым хешам — используются специализированные схемы с солью и высокой вычислительной стоимостью: Argon2 (предпочтительно), scrypt, bcrypt, PBKDF2. Код аутентификации сообщения (HMAC) и конструкции AEAD дают целостность и аутентификацию данных.

Практические правила: не изобретать собственные схемы; не использовать режимы без аутентификации (ECB, чистый CBC); не переиспользовать одноразовые числа и векторы; использовать проверенные библиотеки и обновлять их; выбирать длину ключа с запасом; помнить о компромиссе между сменой ключа и сложностью системы. Для долгоживущих данных учитывать план перехода на постквантовые схемы: NIST уже стандартизировал первые алгоритмы обмена ключами и подписей, и гибридные схемы внедряются в протоколы.

Ключевые концепции

AEAD
Схема, одновременно обеспечивающая конфиденциальность и целостность: например AES-GCM и ChaCha20-Poly1305.
Хеширование паролей
Медленная схема с солью и параметрами стоимости: Argon2, scrypt, bcrypt, PBKDF2.
HMAC
Код аутентификации на основе хеш-функции и секретного ключа.
Эфемерный обмен ключами
Схема, дающая стойкость к компрометации долговременного ключа в прошлом (forward secrecy).
Постквантовые схемы
Алгоритмы, устойчивые к атакам квантовых компьютеров; внедряются гибридно с классическими.
Криптографическая agility
Способность системы заменять алгоритмы без переписывания продукта.

Инструменты

  • openssl — практическая работа с алгоритмами, ключами и сертификатами.
  • age и GPG — шифрование файлов и подписи.
  • hashcat и john (только для своих хешей и учебных наборов) — оценка стойкости паролей.
  • Библиотеки libsodium и аналоги — рекомендованные реализации высокоуровневых схем.
  • Инструменты проверки: testssl.sh, шифрсьюты-сканеры собственных сервисов.

Практика в легальных лабораториях

  • Зашифруйте файл в лаборатории симметричным и асимметричным способом и сравните размеры и время.
  • Подпишите и проверьте документ; затем измените один байт и убедитесь, что проверка падает.
  • Сравните хеширование пароля быстрым алгоритомом и схемой с параметрами стоимости; замерьте время.
  • Настройте гибридный сеанс: обмен ключами асимметрично, данные шифруются симметрично.
  • Составьте таблицу: задача → примитив → рекомендуемые параметры.

Защита, детект и защитные меры

  • Используйте только проверенные реализации и обновляйте библиотеки по графику.
  • Храните ключи отдельно от кода: в хранилище секретов или аппаратном модуле.
  • Планируйте ротацию ключей и алгоритмов заранее, а не после инцидента.
  • Контролируйте инвентарь: где какие алгоритмы и длины ключей применяются.

Правовая рамка и этика

  • Экспортные ограничения и требования регуляторов к криптографии зависят от страны: проверяйте требования для своего продукта.
  • Использование инструментов подбора паролей допустимо только для собственных хешей и учебных наборов.

Типичные ошибки

  • Применять режимы без аутентификации и получать незаметное изменение данных.
  • Хранить пароли по быстрым хеш-функциям.
  • Переиспользовать одноразовые числа и векторы инициализации.
  • Самостоятельно реализовывать криптографические протоколы.

Чек-лист «умею»

  • Объясняю разницу между симметрикой и асимметрикой и когда что выбирать.
  • Знаю, какие схемы допустимы для хранения паролей.
  • Умею подписать данные и проверить подпись.
  • Понимаю, зачем нужна стойкость к компрометации прошлых ключей.
  • Слежу за планом перехода на постквантовые схемы.

Вопросы на интервью

  • Почему нельзя хранить пароли по SHA-256?
  • Что такое AEAD и почему ECB не подходит для данных?
  • Как вы организуете ротацию ключей в сервисе?

Источники и первоисточники

CyberPath — обучение пентесту, кибербезопасности и сетевой грамотности