В 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).
☑️ Минимальный набор защиты от Мэллори
Расширенный каст: Трент, Пегги, Виктор и остальные
Криптографические протоколы часто требуют третьих лиц. Трент (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 тоном.