В 1978 году Рональд Ривест, Ади Шамир и Леонард Адлеман опубликовали статью, ставшую основой современной асимметричной криптографии. Чтобы не путаться в абстрактных «стороне А» и «стороне Б», они ввели персонажей Элис и Боб. Сразу возникла необходимость в третьем лице — том, кто пытается перехватить или подделать сообщение. Так появилась Ева (Eve), ставшая универсальным символом злоумышленника на десятилетия.

Выбор имён не был случайным: они формируют удобную мнемонику по первым буквам английского алфавита. Alice (А) — отправитель, Bob (Б) — получатель, Eve (Е) — подслушивающий (eavesdropper). Эта условность настолько прижилась, что сегодня используется в RFC, учебниках, стандартах NIST и даже в документации к TLS 1.3. Понимание этих ролей — базовый навык для любого специалиста по информационной безопасности.

Ева: архетип пассивного наблюдателя

Классическая Ева — это пассивный злоумышленник. Её единственная цель — прочитать трафик между Элис и Бобом, не меняя его содержимое. Она имеет доступ к каналу связи, может записывать, анализировать и хранить перехваченные данные, но не может внедрять свои пакеты или модифицировать чужие. Это модель только чтения.

В сценариях угроз типа Ciphertext-Only Attack или Known-Plaintext Attack именно возможности Евы определяют стойкость шифра. Если алгоритм устойчив к Еве, значит, знание зашифрованного текста (а иногда и пары «открытый текст — шифротекст») не позволяет восстановить ключ. Именно пассивное прослушивание является базовой моделью угроз для оценки конфиденциальности симметричных и асимметричных систем.

  • 🕵️ Ева видит метаданные: длину сообщений, время отправки, IP-адреса.
  • 🔑 Ева не знает секретных ключей (если только не реализована атака по побочному каналу).
  • 📉 Ева не может заставить стороны принять ложное сообщение.
  • 🛡️ Защита от Евы — это шифрование и управление ключами.
📊 Какой тип атаки считаете самым опасным для личных данных?
Пассивное прослушивание (Ева)
Активная подмена (Мэллори)
Атака по побочным каналам
Социальная инженерия
⚠️ Внимание: Не путайте пассивного наблюдателя с атакующим «человека посередине». Ева не прерывает сессию, она лишь копирует биты. Защита от неё требует только надежного шифрования, тогда как от активного противника нужны ещё и механизмы аутентификации и целостности.

Мэллори: активный враг в канале

Когда модель угроз расширяется до Active Attack, на сцену выходит Мэллори (Mallory — от англ. malicious). В отличие от Евы, Мэллори обладает полным контролем над каналом: она может удалять, модифицировать, переупорядочивать и внедрять собственные пакеты. Это реализация атаки Man-in-the-Middle (MITM) в её чистом виде.

Мэллори способна провести атаку Replay (повтор пакета), Modification (изменение битов шифротекста) или Injection (внедрение ложных данных). Протоколы вроде IPsec, SSH или Signal Protocol проектируются именно с учётом возможностей Мэллори: используются MAC (HMAC, Poly1305), AEAD-режимы (GCM, ChaCha20-Poly1305) и аутентификация ключей через PKI или TOFU.

  • ⚔️ Мэллори может подменить публичный ключ при первом обмене (если нет PKI).
  • 🔄 Мэллори повторяет старые сессионные ключи для деанонимизации.
  • 💉 Мэллори внедряет вредоносный код в незащищенные протоколы (HTTP, FTP).
  • 🛡️ Защита — аутентификация, подписи, сертификаты, PFS (Perfect Forward Secrecy).

☑️ Минимальный набор защиты от Мэллори

Выполнено: 0 / 4

Расширенный каст: Трент, Пегги, Виктор и остальные

Криптографические протоколы часто требуют третьих лиц. Трент (Trent) — доверенная третья сторона (Trusted Third Party), центр сертификации (CA) или KDC (Key Distribution Center) в Kerberos. Он выдаёт и верифицирует ключи, но сам должен быть недоступен для компрометации.

В схемах с нулевым разглашением знаний (ZKP) появляются Пегги (Peggy, Prover — доказывающая) и Виктор (Victor, Verifier — проверяющий). Пегги хочет доказать знание секрета (например, приватного ключа), не раскрывая его. Виктор проверяет доказательство. Эта пара лежит в основе Zcash, Tornado Cash и современных систем аутентификации типа WebAuthn.

  • 🏛️ Трент — CA, KDC, нотариус, блокчейн-оракул.
  • 🔐 Пегги — провер в ZK-SNARK, ZK-STARK, Sigma-протоколах.
  • ✅ Виктор — верификатор, смарт-контракт, сервер аутентификации.
  • 👥 Карол (Carol), Дейв (Dave) — дополнительные участники мультипарти протоколов.
Почему именно эти имена?

Ривест, Шамир и Адлеман выбрали имена, начинающиеся на A, B, E для удобства мнемоники. Позже Майкл Блум и другие исследователи расширили каст: M (Malicious) — Мэллори, T (Trusted) — Трент, P (Prover) — Пегги, V (Verifier) — Виктор. Это стандарт де-факто в академической литературе с 1980-х годов.

Исторический контекст: от RSA до стандартов ISO

До знаменитой статьи 1978 года в криптографии использовались безликие обозначения: «передатчик», «приёмник», «вредитель». Введение имен сделало описание протоколов наглядным. Стандарт ISO/IEC 9798 (аутентификация) и ISO/IEC 11770 (управление ключами) закрепили терминологию на международном уровне. В российской нормативной базе (ГОСТ Р 34.10, ГОСТ Р 34.13) также приняты аналогичные роли, хоть и с кириллическими обозначениями: А (Алиса), Б (Боб), Е (Ева).

Интересно, что в советской криптографической школе долгое время преобладал числовой аппарат без антропоморфизма. Переход на «личностей» произошёл в 1990-х при интеграции в международные стандарты. Сегодня даже в документации ФСБ и ФСТЭК встречаются Элис и Боб как устоявшиеся метки сторон протокола.

⚠️ Внимание: В официальных документах ФСТЭК (например, профили защиты) роли часто обозначаются буквами А, Б, В без имен. Однако в комментариях и методических материалах эксперты используют имена Элис, Боб, Ева для наглядности. Не удивляйтесь, увидев их в сертификационных отчётах.

Таблица классических персонажей криптографии

Имя Роль (англ.) Функция в протоколе Тип угрозы
Элис (Alice) Sender / Party A Инициатор обмена, владелец секрета —
Боб (Bob) Receiver / Party B Получатель, второй участник протокола —
Ева (Eve) Eavesdropper Пассивный перехват трафика Конфиденциальность
Мэллори (Mallory) Malicious / MITM Активное вмешательство, подмена, инъекция Целостность, Аутентичность
Трент (Trent) Trusted Third Party CA, KDC, арбитр, нотариус Доверие, Доступность

Специализированные атакующие: Сайбил, Сыроежа и другие

В распределённых системах и блокчейнах появились новые архетипы. Сайбил (Sybil) — атакующий, создающий множество фальшивых идентификаций для захвата консенсуса или эклипс-атаки. Имя отсылает к книге «Сивил» о женщине с множественной личностью. Сыроеж (Raw Eater / Glutton) — менее формальное название для узла, потребляющего ресурсы (DoS, спам).

В модели Byzantine Fault Tolerance (BFT) участники делятся на честные и византийские (произвольно ведущие себя). Здесь нет имён, есть типы поведения. Однако в спецификациях Tendermint или PBFT иногда используют «Византийского генерала» как обобщённый образ Мэллори в распределённой среде.

  • 👯 Сайбил — множественные личности, атака на репутацию/голосование.
  • 🍔 Сыроеж — ресурсоёмкий клиент, истощение пропускной способности.
  • ⚔️ Византийский генерал — произвольное вредоносное поведение в кластере.
  • 🕵️‍♂️ Руди (Rudy) — репудиатор (отрицает свои действия), актуален для неподписуемости.
💡

При проектировании протокола всегда моделируйте угрозы по.STRIDE: Spoofing (Мэллори), Tampering (Мэллори), Repudiation (Руди), Information Disclosure (Ева), DoS (Сыроеж), Elevation of Privilege (Сайбил/Мэллори). Это охватывает весь каст.

Типичные ошибки новичков при моделировании угроз

Частая ошибка — защищаться только от Евы, игнорируя Мэллори. Использование AES-256-CBC без MAC или RSA без OAEP делает систему уязвимой к активным атакам (padding oracle, Bleichenbacher). Другая крайность — доверять Тренту бездумно. Если CA скомпрометирован (как в случае DigiNotar 2011 года), вся PKI рушится.

Также важно отличать модель злоумышленника от реального противника. Ева и Мэллори — абстракции. Реальный хакер может комбинировать их возможности: пассивно слушать месяцами (Ева), а потом внедряться в сессию через уязвимость в клиенте (Мэллори). Модель должна покрывать максимальный набор возможностей противника, заложенных в Threat Model.

⚠️ Внимание: Никогда не пишите в отчёте по пентесту «защищено от Евы». Пишите конкретно: «Реализовано шифрование TLS 1.3 с AEAD, обеспечивающее конфиденциальность и целостность при активном MITM-злоумышленнике в канале». Имена — для обучения, отчёты — для фактов.

Современное применение: от учебников к коду

Сегодня имена Элис, Боб, Ева «зашиты» в инструменты разработчика. Библиотека libsodium в примерах использует alice_kp, bob_kp. Фреймворк Signal Protocol в спецификации описывает диалог Элис и Боб. Даже в Wireshark плагины для анализа TLS могут помечать потоки как «Alice → Bob» при наличии SNI или сертификатов.

Для студентов и младших инженеров совет: рисуйте диаграммы последовательности (Sequence Diagrams) с подписями ролей. Это мгновенно выявляет логические дыры: «А кто проверяет подпись Трента?», «Почему Боб принимает ключ без верификации отпечатка?». Визуализация через персонажей — лучший способ найти баг в протоколе до написания кода.

  • 📝 Рисуйте Sequence Diagrams (PlantUML, Mermaid) с ролями Alice/Bob/Eve.
  • 🧪 Пишите Property-Based тесты (QuickCheck, Hypothesis) для модели Мэллори.
  • 🔍 Используйте ProVerif или Tamarin для формальной верификации протоколов.
  • 📚 Читайте RFC 4949 (Internet Security Glossary) — там зафиксированы определения.
💡

Имена Элис, Боб, Ева, Мэллори — это не просто традиция, а инженерный язык. Говорить на нём означает точно описывать границы доверия и модели угроз без двусмысленности.

FAQ: Частые вопросы об именах в криптографии
Почему злоумышленника зовут именно Евой?

От английского Eavesdropper — «подслушивающий». Первая буква E удобно продолжает алфавитную последовательность A (Alice), B (Bob). Закрепилось после статьи RSA 1978 года.

В чём разница между Евой и Мэллори?

Ева — пассивный наблюдатель (только чтение канала). Мэллори — активный атакующий (чтение, запись, модификация, инъекция). Мэллори строже и сильнее Евы.

Кто такой Трент и зачем он нужен?

Трент (Trent) — доверенная третья сторона (Trusted Third Party). Выдаёт сертификаты, распределяет ключи (KDC), выступает арбитром. Примеры: CA Let's Encrypt, KDC в Kerberos, нотариус в цифровой подписи.

Есть ли имена для атакующих в постквантовой криптографии?

Используются те же архетипы (Ева, Мэллори), но моделируются их квантовые возможности: доступ к квантовому компьютеу для взлома RSA/ECC (алгоритм Шора) или ускорения перебора (алгоритм Гровера).

Обязательно ли использовать эти имена в дипломе/докладе?

Не обязательно, но настоятельно рекомендуется. Это общепринятый стандарт де-факто. Рецензенты и эксперты мгновенно поймут модель угроз. Изобретение своих имен (например, «Хакер Василий») считается мauvais тоном.