Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

BRUIN Gate

Исследовательский 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

Механизм / Mechanism

Токен содержит:

  1. n-символьный локатор из циклической последовательности де Брюина B(k, n);
  2. 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.

Воспроизводимая модель / Reproducible model

Требуется 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.

Честные границы / Honest boundaries

  • HOST_FILTER ≠ LINK_PROTECTION: объёмный флуд должен сниматься upstream.
  • Короткий двухсимвольный тег не обеспечивает production-стойкость.
  • Replay возможен внутри допустимого временного окна и при коллизии усечённого тега.
  • Мультипакетная передача наследует риски port knocking: переупорядочивание, инжект пакетов и заметность для IDS.
  • Reference-лимитер хранит состояние по источникам; только проверка токена не хранит прогресс между попытками.
  • Код не проходил аудит и не должен быть единственной линией защиты.

Материалы / Repository contents

Остальные распакованные карточки MSL/MIP сохранены по прямому запросу автора и также вычитаны.

Prior art и статус публикации / Prior art and publication status

Поиск, зафиксированный 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.

About

Layered DDoS-filtering PoC: de Bruijn locator + slot-bound HMAC tag with stateless knock verification. Research prototype, pre-production.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /