CB2FA — двухфакторная аутентификация через сообщество (без телефонов и кодов)
В большинстве реализаций 2FA всё держится на устройствах и секретах: телефонах, кодах, токенах. Это удобно, пока не теряешь доступ. А что если бы вторая проверка шла не через устройство — а через людей, которым ты доверяешь?
Так появилась CB2FA (Community-Based Two-Factor Authentication) — проект, где вход подтверждается живыми людьми в Matrix-чате. Без телефонов. Без TOTP. Без внешних сервисов.
🔍 Как это работает
-
Пользователь вводит логин и пароль (как обычно)
-
Вместо выдачи токена, запрос уходит в Matrix-комнату, где сидят доверенные участники
-
Они видят таблицу с деталями запроса и голосуют:
yилиn -
После кворума (или 1 ответа, если настройка такова) — доступ разрешается или отклоняется
🔧 Архитектура
-
Bot — Deno-приложение, отправляющее запросы в Matrix
-
Middleware — перехватывает логин в Synapse и запускает 2FA-процесс
-
Очередь — чтобы не спамить комнату, обрабатывается один запрос за раз
-
Интернационализация — 7 языков, переключаются через переменные среды
🧪 Где это уже работает
-
✅ Matrix — полноценная реализация через Synapse + nginx + bot + middleware
-
⏳ Telegram / Discord / Slack / Webhook — в планах
📦 Установка (Matrix-режим)
git clone https://github.com/EPTLLC/cb2fa.com cd cb2fa cp .env.example .env # правим настройки, запускаем: deno run --allow-net --allow-env --allow-read src/main.ts # отдельно — middleware: deno run --allow-net --allow-env --allow-read middleware/middleware.ts
nginx перенаправляет /login на middleware, который всё координирует.
🧩 Зачем это нужно
-
Нет зависимости от устройств и приложений
-
Можно использовать в airgapped-сетях
-
Можно поставить в командных или корпоративных средах
-
Идеально для закрытых Matrix-инстансов
📄 Лицензия и поддержка
MIT License. Проект свободен, открыт и не сопровождается.
Нет поддержки. Нет объяснений. Но есть документация — и пулреквесты приветствуются.
ссылка на оригинал статьи https://habr.com/ru/articles/923424/
Добавить комментарий