Исследовательский PoC / Research PoC — pre-production, security audit not performed.
BRUIN Gate — эшелонированная модель фильтра перед сервисом. Первая стадия — stateful-лимитер по источникам; вторая — stateless-проверка токена между попытками; третья — защищаемый сервис.
BRUIN Gate is a layered filtering model in front of a service. Stage one is a stateful per-source rate limiter, stage two is a token verifier that keeps no progress between attempts, and stage three is the protected service.
RATE_LIMIT_GEAR → KNOCK_GEAR → SERVICE_GEAR
Токен содержит:
- n-символьный локатор из циклической последовательности де Брюина
B(k, n); tсимволов тегаHMAC-SHA256(key, slot ‖ locator)в системе счисления по основаниюk.
The token contains an n-symbol locator from a cyclic de Bruijn sequence
B(k, n) and t base-k symbols derived from
HMAC-SHA256(key, slot ‖ locator).
Для эталонных k=16, n=3, t=2 существует 4096 локаторов, а вероятность
случайно угадать тег за одну онлайн-попытку равна 1/162 = 1/256. Это всего
8 бит на попытку: параметр предназначен для демонстрации за строгим лимитером,
а не для production-аутентификации.
For the reference k=16, n=3, t=2 settings, there are 4,096 locators and
the per-attempt random tag-guess probability is 1/162 = 1/256. That is only
8 bits per attempt: this parameter is a demonstration behind strict rate
limiting, not production authentication.
Требуется Python 3.10+; сторонних зависимостей нет.
python -m unittest discover -s tests -v python -m src.simulate
Зафиксированный сценарий содержит 100 154 попытки: 154 легитимных и 100 000 атакующих. Лимитер пропускает 2 500 атакующих попыток к проверке тега; seeded-модель даёт 13 случайных совпадений.
| Метрика / Metric | Результат / Result |
|---|---|
| Отброшено лимитером / Dropped by limiter | 97 500 |
| Отброшено проверкой тега / Dropped by tag check | 2 487 |
| Дошло до сервиса / Reached service | 167 (154 + 13) |
| Отфильтровано от общего входа / Total input filtered | 99,83% |
| Отфильтровано атакующего трафика / Attack traffic filtered | 99,987% |
| Теоретическое ожидание случайных пропусков / Expected random passes | 2 500 / 256 ≈ 9,77 |
Это модель счётчиков, а не benchmark реальной сети. This is a counter model, not a real-network benchmark.
HOST_FILTER ≠ LINK_PROTECTION: объёмный флуд должен сниматься upstream.- Короткий двухсимвольный тег не обеспечивает production-стойкость.
- Replay возможен внутри допустимого временного окна и при коллизии усечённого тега.
- Мультипакетная передача наследует риски port knocking: переупорядочивание, инжект пакетов и заметность для IDS.
- Reference-лимитер хранит состояние по источникам; только проверка токена не хранит прогресс между попытками.
- Код не проходил аудит и не должен быть единственной линией защиты.
SPEC_FILTER_ASSEMBLY_RU_EN.md— основная спецификация.UNIQUENESS_DOSSIER_RU_EN.md— датированный обзор prior art с ограничениями поиска.BRUIN_GATE_TRANSFER_PACKAGE_RU_EN.md— исходный трансфер-пакет, вычитанный и синхронизированный с PoC.docs/TECHNICAL_REVIEW_RU_EN.md— перечень существенных исправлений.app/index.html— автономная демонстрационная страница.src/иtests/— воспроизводимый Python PoC.
Остальные распакованные карточки MSL/MIP сохранены по прямому запросу автора и также вычитаны.
Поиск, зафиксированный 2026年07月28日, не выявил в просмотренных источниках точного сочетания локатора де Брюина, слотового HMAC-тега и stateless-проверки хоста. Это ограниченный результат поиска, не заключение о мировой новизне и не юридическая консультация.
The search recorded on 2026年07月28日 found no exact combination of a de Bruijn locator, slot-bound HMAC tag, and stateless host verification in the reviewed sources. This is a limited-search result, not a worldwide novelty opinion or legal advice.
Проект распространяется по лицензии
Apache License 2.0. Рекомендуемая форма цитирования опубликована в
CITATION.cff.
The project is distributed under the
Apache License 2.0. The preferred citation is provided in
CITATION.cff.