Шифрование скрывает, что вы сказали. Это скрывает сам факт разговора.
Шифрование скрывает содержимое сообщения. Оно не скрывает, что сообщение было. Наблюдатель за сетью всё равно видит, кто с кем говорит, когда и сколько килобайт (КБ) прошло — а в чувствительной обстановке это может значить не меньше самих слов. AEGIS держит трафик между участниками закрытой группы с постоянной скоростью, есть что отправлять или нет, так что время и объём не несут сигнала.
“Ничего не сделано, пока это не подтвердит симуляция атаки.”
Интуиция про анализ трафика подводила в разработке снова и снова. Доверие заслужил только стенд симуляции, поэтому он и стал барьером. Стенд на Python в
sim/ — это книга доказательств за каждым количественным утверждением в спецификации — а не приделанная потом проверка уже выпущенного проекта.
Что это такое за минуту
Тому, кто может смотреть на сеть, не нужно ломать шифрование. Он видит, что одна точка отправила 14 КБ в 09:41:03, а другая получила 14 КБ через три секунды, и что то же самое происходит дважды в день одиннадцать недель подряд. Если это повторяется достаточно часто, получается карта того, кто с кем работает, нарисованная без чтения единого сообщения.
AEGIS делает так, что провод всегда выглядит одинаково. Трафик уходит с постоянной скоростью, есть что отправлять или нет, а приходящее добивается до фиксированного размера, так что нет всплеска на одном конце, который можно сопоставить со всплеском на другом. Это стоит полосы и добавляет задержку; демонстрация ниже показывает защиту и цену рядом.
Редакциям и всем, кто защищает источник, где человека выдают время и размер контакта. Банкам, страховщикам и отраслевым объединениям, которые конкурируют друг с другом и всё равно должны обмениваться данными. Организациям, которые делятся предупреждениями об атаках, где сам факт обмена и есть чувствительная часть.
Идентифицируют вас именно метаданные
Глобальный пассивный противник не может прочитать ваши сообщения. Ему это и не нужно. Он смотрит сразу на все каналы и сопоставляет: этот узел передал 14 КБ в 09:41:03, тот узел получил 14 КБ в 09:41:06, и картина повторяется дважды в день одиннадцать недель подряд.
Объёма и времени хватает, чтобы восстановить граф связей целой организации, не взломав ни одного шифра. Для консорциума — банки, рассчитывающиеся друг с другом, больницы, обменивающиеся записями, редакции с источниками — именно граф и есть чувствительная информация.
AEGIS превращает провод в ровную, неменяющуюся стену. Постоянная скорость независимо от того, что происходит под ней, так что объём и время не несут вообще никакого сигнала. Демонстрация ниже позволяет запустить атаку против обеих конфигураций и увидеть разницу.
Формованный mixnet
Мелкие и рваные данные плюс весь управляющий трафик. Пакеты Sphinx выпускаются с постоянной скоростью, с жёстким потолком набивки у получателя, так что входящий объём получателя тоже зафиксирован.
Объёмный канал
Передача больших файлов с настраиваемым уровнем защиты — сырой, по корзинам или равномерными пачками. Вы сами выбираете, где находитесь на кривой стоимости; про цену ничего не скрывается.
Побудьте глобальным пассивным противником
Пять отправителей говорят каждый ровно с одним из пяти получателей. Вам виден только объём трафика на каждом канале — ни содержимого, ни маршрутов. Сопоставьте ряды и попробуйте восстановить пары. Потом включите защиту постоянной скоростью и попробуйте снова.
стенд анализа трафика
Вывод противника
Цена защиты
Случайное угадывание даёт 20% — одна пара из пяти. Всё, что заметно выше, означает, что побеждает противник. Цифры стоимости — честная вторая половина: формовка под постоянную скорость не бесплатна, и AEGIS не притворяется, что бесплатна.
Восемь фаз, каждая за барьером red team
Реализация завершена по фазу 8, укрепление. Это цифры, которые сообщает репозиторий: фаззинг шёл в подсистеме Windows для Linux (WSL), а тестовая сеть работала на реальных сокетах протокола управления передачей (TCP).
| Область | Результат | Примечания |
|---|---|---|
| Криптовекторы | 36 / 36 | |
| Маршрутизация через релеи | 14 / 14 | |
| Топология | 41 / 41 | |
| Переговорщик / корреляция объёмного канала | 25 / 25 | |
| Тесты воркспейса | 195 | Все проходят |
| Фаззинг безопасности | 1.17M+ | libFuzzer через WSL, ноль падений |
| Тестовая сеть | Настоящий TCP | Маршрутизация пакетов Sphinx по настоящим сокетам |
| Анализ трасс | Безвредные против вредоносных | Сравнение на настоящих трассах |
Прячет, кто говорит, а не только что сказано
Зашифровать сообщение — решённая задача. Это не прячет того, что вы его отправили, кому, когда и сколько. Одной этой картины часто достаточно, чтобы опознать людей.
Редакции и все, кто защищает источник
Читать сообщение никому не нужно, если видно, что конкретный человек связался с конкретным журналистом в два часа ночи. Людей выдают время и размер.
Конкурирующие компании, которым всё равно приходится обмениваться данными
Банки, страховщики и отраслевые объединения обмениваются информацией, конкурируя между собой. С кем вы вдруг начали говорить и как часто — это выдаёт, над чем вы работаете.
Организации, обменивающиеся предупреждениями об атаках
Обмениваться данными об угрозах полезно, но сам факт, что вас видели за таким обменом, может оказаться как раз чувствительной частью. Здесь в тайне остаётся сам факт разговора, а не только его содержимое.
Что лежит поверх формовки
- Рукопожатия с прямой секретностью. Компрометация долгоживущих ключей не раскрывает задним числом прошлые сессии.
- Выбор пути с учётом репутации. Маршруты предпочитают релеи с устоявшимся поведением.
- Распределённые маяки случайности. Ни одна сторона в одиночку не управляет энтропией выбора пути.
- Доказательства репутации с нулевым разглашением. Релей доказывает, что превышает порог репутации, не раскрывая свою оценку.
- Отбор сторожевых узлов. Устойчивость к сивилловой атаке там, где это важнее всего.
Где гарантии заканчиваются
- Только внутренний трафик. Сильные гарантии действуют внутри консорциума. Выход в обычный интернет слабее, и обратного не утверждается.
- Эмпирически, а не доказано. Результаты — это эмпирические границы при заявленной модели противника. Это не математические доказательства.
- Задержка заложена в конструкцию. Задержка в несколько секунд — это свойство устройства системы, а не проблема настройки, которую когда-нибудь оптимизируют.
- Не тот инструмент для двух сторон. AEGIS годится, чтобы прятать граф связей между многими узлами. Для канала между двумя сторонами защиты канального уровня справляются лучше.
- Открытые вопросы остаются.
docs/ops/RESEARCH_AGENDA.md— честный список того, что не доделано.
cargo deny и общая для воркспейса политика, запрещающая unsafe-код. Для сетевого стека на Rust, обрабатывающего враждебный вход, #![forbid(unsafe_code)] по всему воркспейсу — самая несущая строка во всём проекте.