Перейти к содержимому

AuthCore

AuthCore — это высокопроизводительный серверный фреймворк для входа и безопасности Minecraft Fabric для версий 1.16+. Он защищает офлайн- и онлайн-серверы от ботов и гриферов, комплексно управляя сессиями игроков.

FabricNeoForgeForge
Загрузчики
FabricNeoForgeForge
Скачиваний на Modrinth
3 тыс.
Подписчиков на Modrinth
9
версий
9
Обновлён
24 сентября 202624 сент.
Опубликован
в 2026
Welcome Back, Brave Adventurer (Please Log In 😇) — A charming little snapshot of that moment when the server greets you like an over‑enthusiastic receptionist: “Welcome to the Lobby! Please authenticate before doing anything heroic.” Featuring scattered items, a friendly “hi” sign · свайп

Коротко о моде

Работает на Fabric, NeoForge и Forge
Для Minecraft 1.16–26.3
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 1.0.0 от 24 сентября 2026
Лицензия CC0-1.0 — бесплатно
Где нужен
В игрене нуженНа сервереобязателен

Ставится только на сервер; игрокам ставить не нужно

Версии игры1.16–26.3
Описание переведено автоматическиПоказать оригинал (EN)
AuthCore Banner

Typing SVG

Website Documentation Discord Modrinth Email Views

CI Build Snapshot Compat Minecraft Versions Loaders Java Security Tests License: CC0 1.0

Фортресс-фреймворк для серверов Minecraft. Единая кодовая база для 1.16.0 → 26.x+ на Fabric, Forge и NeoForge.
Закалён против любых сценариев атак, свободен от гонок при пиковых нагрузках и спроектирован выдерживать 500k+ зарегистрированных аккаунтов и тысячи игроков онлайн с ровным, без всплесков, потреблением ресурсов.

Быстрый старт • Главное • Матрица Jar • Архитектура • Команды • Конфигурация • Модель безопасности • Живые метрики • Сообщество


📑 Содержание

Нажмите, чтобы развернуть / свернуть содержание

✨ Главное и основная философия

🏰 Единая универсальная кодовая база

Одна общая кодовая база охватывает Minecraft 1.16.0 → 26.x+ и снапшоты на Fabric, Forge, NeoForge и Velocity/BungeeCord. Каждый jar диапазона выполняет двойную роль: серверный мод и прокси-плагин без затрат на портирование.

🔒 Эшелонированная защита и нулевые утечки

7-слойная защита от обхода детекта, хеширование паролей Argon2id/BCrypt/SCRAM, физическая капча с действием на основе риска, блокировки при брутфорсе, honeypot и HTTPS REST веб-панель администратора с токен-аутентификацией.

⚡ Масштаб 500k+ и нулевые всплески ресурсов

O(1) неблокирующие поиски по UUID-ключу, ограниченные LRU-кэши, ленивая загрузка из базы данных, атомарные последовательные шлюзы и троттлинг телепортов к якорю гарантируют ровные, без всплесков, кривые памяти и CPU при штормовых подключениях.

🛡️ Гибридная аутентификация, устойчивая к сбоям

Автоматическое определение режима сервера из server.properties. Фоновая повторная проверка Mojang позволяет верифицированным премиум-игрокам обходить пароли, а офлайн/пиратские игроки заходят и аутентифицируются без проблем.


🚀 Быстрый старт за 5 минут

graph LR
    A[Выбери Range Jar] --> B[Закинь в mods/ или plugins/]
    B --> C[Запусти сервер]
    C --> D[Автосоздание конфига и БД]
    D --> E[Игроки заходят и авторизуются]
  1. Выбери нужный jar: Подбери jar под свой загрузчик и версию Minecraft из таблицы jar-ов на Modrinth или в GitHub Releases.
  2. Установка: Закинь jar-файл прямо в папку mods/ своего сервера (или в plugins/ прокси).
  3. Запусти сервер: AuthCore работает из коробки без обязательной настройки. Встроенная база данных SQLite (authcore.db) автоматически создаётся в config/authcore/.
  4. Первый вход:

    • Premium-игроки: Проверяются асинхронно через сессионные серверы Mojang с фоновыми повторными попытками. Автоматически входят без пароля.
    • Cracked / офлайн-игроки: Помещаются в безопасное limbo-лобби, где им предлагаются интерактивные кнопки в чате или команды: `/register или/login `.
  5. Администрирование: Запусти /authcore validate для проверки целостности конфигурации или открой интерактивную веб-панель по адресу https://127.0.0.1:25570.
┌─────────────────────────────────────────────────────────────┐
│  ✓  AUTHCORE v1.0.0 — FORTRESS FRAMEWORK INITIALIZED       │
├─────────────────────────────────────────────────────────────┤
│  Platform         : Fabric / Forge / NeoForge / Velocity   │
│  Minecraft        : 1.16.0 → 26.x+ (Universal Range Engine) │
│  Database         : SQLite (WAL) / MySQL / PostgreSQL       │
│  Security Stack   : 7-Layer Detection Bypass Resistance     │
│  Crypto           : Argon2id (M:64MB, T:3, P:1) + SCRAM     │
│  Proxy Forwarding : Auto-Detected (Velocity HMAC / Bungee)  │
│  Web Panel        : https://127.0.0.1:25570 (Token Guarded) │
│  Status           : 0 Warnings · 180+ Security Audits PASS  │
└─────────────────────────────────────────────────────────────┘

[!NOTE] Впервые с AuthCore? Загляни в полное руководство для админа сервера — там пошаговые инструкции с картинками, настройка прав и топологии прокси.


📦 Какой jar мне нужен?

Каждый скомпилированный jar выполняет обе роли: нативный мод для сервера (Fabric, Forge или NeoForge) и плагин для прокси BungeeCord/Velocity (определяется автоматически при запуске). Выбери jar под свой диапазон версий Minecraft и загрузчик:

Jar-артефактВерсии MinecraftЗагрузчикЦелевая JavaЭпоха и архитектура
`authcore-1.16-1.18-fabric-.jar`1.16.0 – 1.18.2Fabric17Эпоха Intermediary-маппингов
`authcore-1.16-1.18-forge-.jar`1.16.0 – 1.18.2Forge17Эпоха Intermediary-маппингов
`authcore-1.19-1.21-fabric-.jar`1.19.0 – 1.21.11Fabric21Эпоха Intermediary-маппингов
`authcore-1.19-1.21-neoforge-.jar`1.19.0 – 1.21.11NeoForge21Эпоха Intermediary-маппингов
`authcore-26.1-26.2-fabric-.jar`26.1 – 26.2+ и снапшотыFabric25Эпоха без обфускации (официальные имена Mojang, совместимость вперёд)
`authcore-26.1-26.2-neoforge-.jar`26.1 – 26.2+ и снапшотыNeoForge25Эпоха без обфускации (официальные имена Mojang, совместимость вперёд)

[!TIP] Зачем jar-ы с диапазонами? Minecraft 26.0+ поставляется с полностью необфусцированным кодом, а Fabric intermediary устарел начиная с 26.x (см. анонс Fabric). Каждый jar с диапазоном тщательно проверен на всех крайних версиях своего диапазона с помощью нашего параллельного Docker-тестового стенда.


🧩 Архитектура и жизненный цикл аутентификации

flowchart TD
    subgraph Connect["1. Рукопожатие и перехват угроз"]
        Join([Игрок заходит на сервер]) --> DetectProxy["Определение прокси и форвардинга\n(BungeeCord / Velocity HMAC)"]
        DetectProxy --> Intercept["Проверка ClientGuard\nФлуд пакетами · Аномалии призраков · Разброс взгляда"]
        Intercept --> RateLimit{"Превышены лимиты\nили IP в чёрном CIDR?"}
        RateLimit -->|Да| KickDrop["Сброс соединения / Оповещение ханипота"]
        RateLimit -->|Нет| Limbo["Удержание игрока в Limbo\nИнертный инвентарь · Нулевой дрейф · Ограниченная телепортация"]
    end

    subgraph AuthEval["2. Аутентификация и верификация"]
        Limbo --> CheckMode{"Режим сервера / аккаунта"}
        CheckMode -->|Premium авто-вход| MojangCheck["Асинхронная проверка сессии Mojang\n(Устойчиво к сбоям Mojang API)"]
        MojangCheck -->|Подтверждено| PassAuth["Обход парольной аутентификации"]
        CheckMode -->|Offline / Cracked| PromptAuth["Показ динамического заголовка / Action Bar\nЗапрос /register или /login"]
        PromptAuth --> CaptchaCheck{"Сработал риск-скор?"}
        CaptchaCheck -->|Высокий риск| TaskCaptcha["Принудительная капча действием\n(Присесть / Прыжок / Поворот головы)"]
        CaptchaCheck -->|Обычный| CredentialCheck["Проверка хеша (Argon2id/BCrypt/SCRAM)\nИли TOTP 2FA / Email OTP"]
        TaskCaptcha --> CredentialCheck
    end

    subgraph SessionBind["3. Привязка сессии и выпуск в игру"]
        CredentialCheck -->|Успех| PassAuth
        PassAuth --> SessionIssue["Выдача токена сессии и SSO-рассылка через Redis"]
        SessionIssue --> RestoreState["Восстановление позиции игрока, инвентаря и возможностей"]
        RestoreState --> InGame([Полный доступ к игре предоставлен])
    end

🛡️ Устойчивость к обходу обнаружения

AuthCore разворачивает 7-слойный стек защиты в глубину, призванный сделать автоматические обходы клиентов, атаки бот-ферм и атаки с подстановкой учётных данных математически и практически неосуществимыми:

СлойМеханизмУстраняемые векторы угроз
1. Привязка сессииСлучайный 32-байтовый ключ аттестации компаньона для каждого сервера, ротируемый при перезагрузкеПодмена компаньона, replay-атаки, кража токена сессии
2. Валидация последовательности пакетовСтрогий конечный автомат входа HELLO → SETTINGS → READYHeadless-клиенты, пропускающие пакеты инициализации, эксплойты с нарушением порядка
3. Поведенческое профилированиеРиск-движок ClientGuard: аномалии бренда клиента, призрачные клиенты, зондирование табаВнедрение макросов, автоматические сканеры, флудеры пакетами
4. Анализ паттернов взглядаДисперсия дельты вращения камеры (профилирование коэффициента вариации)Боты с замороженным pitch/yaw или роботизированным линейным движением камеры
5. Распределение времени входаCV-анализ временных меток входа на уровне IP (скользящее окно 60с, ≥3 выборки)Синхронизированные ботнеты, скриптовые всплески подстановки учётных данных
6. Фингерпринтинг фермОбнаружение ≥3 различных ников, подключающихся с одного IP в течение 5сРаспределённые ротаторы прокси, координация массовых альт-ферм
7. Разведка входовФингерпринты устройств, оповещения GeoIP по странам и строгие лимиты попыток 2FA (5/мин/IP)Захваты аккаунтов, повторное использование учётных данных, брутфорс

Архитектурные гарантии безопасности

  • Fail-Closed по умолчанию: Аутентификация прокси требует синхронизации через Redis; пустой список trusted-proxies автоматически отключает небезопасный приём прокси.
  • Криптографическая независимость: В бинарнике нет захардкоженных ключей; секреты аттестации динамически генерируются высокоэнтропийным CSPRNG при первом запуске.
  • Целостность состояния и защита памяти: Все карты обнаружения и отслеживания IP имеют принудительные границы кардинальности и автоочистку на тике для противодействия атакам на исчерпание памяти.
  • Нет единой точки отказа: Каждый слой защиты работает независимо; даже если атакующий обойдёт проверки бренда клиента, анализ таймингов пакетов и поведения остаётся активным.

🛠️ Команды

Команды игрока

КомандаСинтаксис и использованиеНазначение
/register`/register [] [<2fa>]`Создать и привязать новый аккаунт игрока с проверкой правил пароля
/login`/login [<2fa>]`Авторизовать аккаунт и выйти из лобби-лимба
/account/account logout · `set-password ·codes`Управлять активными сессиями, сменить пароль или сгенерировать одноразовые коды восстановления
/account`/account email ·nickname `Настроить email для восстановления пароля или задать локализованный никнейм
/account/account set-mode online|offlineПереключить режим авторизации игрока между автоматическим входом через Mojang и входом по паролю
/account`/account recover [ ]`Самостоятельное восстановление пароля через одноразовую верификацию по email (SMTP)
/account/account unregisterБезвозвратно удалить данные аккаунта (в соответствии с политиками сервера)
/discord/discord link · /discord unlinkСгенерировать код привязки аккаунта Discord для синхронизации с DiscordSRV или панелью

Команды администратора

Доступ требует уровня OP 3+ в Minecraft, права LuckPerms или выполнения из консоли сервера.

КомандаСинтаксис и использованиеНазначение
/authcore reload/authcore reloadГорячая перезагрузка всех раздельных блоков конфигурации и файлов локализации
/authcore validate/authcore validateПроверка конфигурационных файлов и подключений к базе данных в режиме dry-run
/authcore compat/authcore compatСгенерировать системный отчёт: окружение загрузчика, версии конфигов, статус DiscordSRV/InteractiveChat
/authcore import`/authcore import authme `Импортировать устаревшую базу данных AuthMe SQLite (без потери данных; старые хеши автоматически обновляются при входе)
/authcore whois`/authcore whois `Просмотреть подробное состояние аккаунта: UUID, дата регистрации, IP, статус 2FA, последний режим
/authcore history`/authcore history `Просмотреть последние 10 попыток входа игрока с рассчитанными оценками риска и данными GeoIP
/authcore list/authcore list players · list online/offline-playersЗапросить аккаунты игроков из базы данных с фильтрацией
/authcore destroy-session`/authcore destroy-session `Аннулировать активную сессию на всех сетевых инстансах и кикнуть игрока
/authcore set-password`/authcore set-password *(алиас:resetpw`)*Сбросить пароль игрока административно
/authcore set-mode`/authcore set-mode online|offline `Принудительно изменить режим авторизации аккаунта
/authcore delete`/authcore delete player `Удалить аккаунт и очистить записи из базы данных
/authcore set-spawn`/authcore set-spawn limbo `Задать точные координаты мира для лобби-лимба неавторизованных игроков
/authcore backup/authcore backup · exportЗапустить немедленное резервное копирование базы данных или экспорт полного JSON-дампа
/authcore maintenance/authcore maintenance on|offВключить или выключить режим обслуживания, ограничивающий доступ к серверу только для администраторов

⚙️ Конфигурация

AuthCore создаёт все конфигурационные файлы в config/authcore/. Архитектура использует один файл на домен конфигурации, что гарантирует чистые диффы в системе контроля версий и отсутствие утечки учётных данных в игровые конфиги:

Конфигурационный файлОбластьОсновные настройки
settings.confКорневые настройкиlanguage, debugMode, logging, cache-max-users, version схемы
session.confСессии и безопасностьTTL сессий, блокировка аккаунтов, SSO, веб-панель, SMTP email, ClientGuard
lobby.confЛобби-лимб и капчаОграничения лимба, таймауты, настройка action-капчи, интервалы антивибрации
password-rules.confПравила паролейМинимальная длина, обязательные классы символов, алгоритм хеширования (Argon2id/BCrypt)
commands.confПрава на командыПрава LuckPerms для команд, алиасы и переопределения уровня OP
database.confХранилище базы данныхСтроки подключения и размер пула для SQLite, MySQL, PostgreSQL и Redis
`messages-.conf`ЛокализацияСообщения интерфейса, титры, action bar, текст чата (например, messages-en.conf)

Пример фрагмента конфигурации

# settings.conf
language = "en"              # en | zh | es | de | fr | pt | ru
cache-max-users = 20000      # Ограниченный размер LRU-кэша

# session.conf
session {
    # Режим online/offline сервера определяется автоматически из server.properties!
    timeout-ms = 3600000     # Время жизни активной сессии (60 минут)

    account-lock {
        enabled = true
        max-failed-logins = 8
        lock-duration-ms = 600000
    }

    security {
        webhook-url = "https://discord.com/api/webhooks/..." # Оповещения безопасности в Discord
    }

    proxy-support {
        enabled = false       # Включите, если сервер стоит за Velocity или BungeeCord
        protocol = "auto"     # Поддерживает "auto", "velocity", "bungeecord"
    }

    web-panel {
        enabled = false       # REST-панель администратора
        host = "127.0.0.1"
        port = 25570
        token = "CHANGE_ME"   # Сгенерируйте через: openssl rand -hex 16
    }

    email {
        enabled = false       # Коды восстановления по SMTP и оповещения о входе
        host = "smtp.gmail.com"
        port = 587
        username = "admin@example.com"
        password = "app-password"
        from = "AuthCore Security <admin@example.com>"
    }
}

# lobby.conf
lobby {
    movement-correction-radius = 1.5      # Дистанция до плавного возврата без дёрганья
    movement-correction-interval-ms = 600 # Минимальное время между корректировками позиции
}

🚦 Настройка функций одним взглядом

Все функции AuthCore модульные и опциональные. Для базового использования SQLite никакой настройки не требуется. Включайте только то, что нужно вашей сети:

ФункцияБлок конфигурацииЗачем нужна и от чего защищаетКоманда быстрой настройки / ключ
Капча на действия человекаlobby.captchaУбирает 99% ботов на входе, выдавая подозрительным игрокам физические задания (присесть/прыгнуть/посмотреть)lobby { captcha { enabled = true } }
2FA / MFA (TOTP и Email)session.authenticationЗащищает ценные аккаунты персонала и игроков от украденных/слитых паролейsession { authentication { allow-totp-support = true } }
Блокировка аккаунта и защита от брутфорсаsession.account-lockОстанавливает словарные атаки, временно блокируя аккаунты после повторных неверных паролейsession { account-lock { enabled = true } }
Постоянные сессииsession.enable-sessionsУлучшает UX игроков, запоминая подтверждённые входы при переподключении с того же IPsession { enable-sessions = true }
Движок рисков ClientGuardsession.client-guardОбнаруживает внедрение макросов, ghost-клиенты и флуд пакетами по шкале риска от 0 до 100session { client-guard { enabled = true } }
AuthIntelligencesession.auth-intelligenceВыявляет всплески credential stuffing, ботофермы с множеством аккаунтов и ротацию IPsession { auth-intelligence { ... } }
Сетевые лимитыsession.rate-limitПоглощает флуд подключениями и входами с каждого IP, не роняя основной потокsession { rate-limit { enabled = true } }
Правила IP по CIDRip-rules.confЯвно добавляет в белый или чёрный список IP-адреса, диапазоны VPN или сети ASNdeny = ["45.155.0.0/16"]
SSO для всей сетиsession.sso + RedisЕдиный вход для прокси-сетей с несколькими серверами: авторизуйся один раз, играй где угодноdatabase { redis { enabled = true } } + sso { enabled = true }
Веб-панель администратораsession.web-panelЗащищённый браузерный интерфейс с токен-аутентификацией и REST API для удалённого управленияsession { web-panel { enabled = true; token = "..." } }
Ловушка-ханипот для сканеровsession.honeypotСлушает пустой порт, автоматически ловя и блокируя вредоносные сетевые сканерыsession { honeypot { enabled = true; port = 25571 } }
Гибридный автовходsession.authenticationАвтоматически входит в подтверждённые аккаунты Mojang, при этом не мешая пиратским клиентамsession { authentication { premium-auto-login = true } }
Прокси-форвардингsession.proxy-supportРаспаковывает реальные IP и UUID клиентов из BungeeCord или современных HMAC-рукопожатий Velocitysession { proxy-support { enabled = true; protocol = "auto" } }
Режим техобслуживанияsession.maintenanceОграничивает доступ игроков, оставляя его только администраторам, во время обновлений базы данных или сервера/authcore maintenance on
Автоматический вайтлистsession.auto-whitelistАвтоматически добавляет игроков в стандартный вайтлист ванильного сервера после регистрацииsession { auto-whitelist { enabled = true } }
Shadow-Bansession.shadow-banТихо изолирует злоумышленников, не сообщая им об обнаруженииsession { shadow-ban { enabled = true } }
Автоматические бэкапыsession.backupПериодически создаёт атомарные резервные копии учётных данных и таблиц базы данныхsession { backup { interval-hours = 24; keep = 10 } }
Привязка Discordsession.discord-linkСвязывает профили Minecraft с Discord ID для проверки ролей в сообществеsession { discord-link { enabled = true } }
Вебхуки и оповещения по emailsession.securityОтправляет оповещения безопасности в реальном времени в каналы Discord или на почту администратораsession { security { webhook-url = "https://..." } }

🌍 Языки

AuthCore из коробки включает 7 языков, переведённых сообществом. Активный язык задаётся параметром language = "en" в settings.conf:

КодЯзыкКодЯзык
enEnglishdeDeutsch (German)
zh简体中文 (Simplified Chinese)frFrançais (French)
esEspañol (Spanish)ptPortuguês (Portuguese)
ruРусский (Russian)

[!TIP] Свои локализации: Положите файл `messages-.confвconfig/authcore/`. AuthCore автоматически подхватит ваши строки и запишет в лог все отсутствующие ключи относительно английского шаблона.


🔁 Прокси и сеть (Velocity / BungeeCord)

AuthCore изначально поддерживает современные прокси-архитектуры Minecraft — как при установке в качестве мода на бэкенде, так и прямо на прокси:

  • Универсальное автоопределение IP-форвардинга: Автоматически разбирает legacy-пейлоады рукопожатия BungeeCord и Velocity (ip\0uuid\0properties). Настоящий удалённый IP сразу используется для GeoIP-поиска, проверки сессии, ограничения частоты запросов и анализа входов.
  • Modern Identity Forwarding в Velocity: Защищённый HMAC-проверкой приём логина velocity:player_info безопасно считывает данные, используя общий velocity-secret, заданный в velocity.toml.
  • Канал межмодового взаимодействия (authcore:auth): Отправляет сетевые пакеты `AUTH_CHANGED|||<1|0>`, позволяя AuthCore без конфликтов работать рядом со сторонними бэкенд-плагинами авторизации.
  • Redis SSO при переброске хаб → игровой сервер: Игроки, авторизованные на хабе/в лимбо, сохраняют активную сессию при переброске между игровыми нодами без повторного ввода пароля.
  • Fail-Closed при включённом прокси: Прямые подключения в обход прокси отклоняются сразу, если поддержка прокси активна.

⚡ Производительность

С самого начала спроектирован так, чтобы без усилий масштабироваться до 500 000+ зарегистрированных аккаунтов и тысяч одновременных входов без борьбы за потоки и скачков памяти:

  • O(1) безблокировочные резолверы пользователей: События горячего пути (перехват пакетов, проверки движения, клики в инвентаре и события чата) находят игрока за O(1) через ConcurrentHashMap с ключом по UUID (User.getUser(player)). Ноль аллокаций строк и ноль запросов к базе на горячих путях.
  • Многопоточность без дедлоков: Потокобезопасный канонический кэш пользователей в памяти гарантирует ровно один экземпляр User на аккаунт. Запросы к базе при промахе кэша сериализуются под гранулярными блокировками; фоновые операции ввода-вывода выполняются в ограниченном пуле демонов.
  • Плоские кривые памяти и троттлинг пакетов: Метки активности пользователя обновляются не чаще раза в минуту, а не на каждый пакет. Коррекции позиции в лимбо соблюдают минимальный интервал, предотвращая флуд пакетами позиции и убирая дрожание камеры.
  • Ноль работы на тик: Плагин не выполняет циклических опросов по тикам. Вся логика жизненного цикла строго событийная — по сетевому пакету, входу, логину или отключению.
  • Оптимизация кэша на высокой скорости: SQLite работает в режиме журнала WAL с synchronous=NORMAL и настроенными кэшами страниц. MySQL и PostgreSQL используют пулы соединений с автоматической подготовкой запросов.

🪶 Серверы с малыми ресурсами (≤ 250 МБ RAM / 1 ядро)

Для сверхкомпактных нод (например, VPS или дешёвых облачных контейнеров с 256 МБ RAM) добавьте эти флаги в скрипт запуска:

java -Xmx192M -Xms64M -XX:+UseSerialGC -XX:TieredStopAtLevel=1 \
     -XX:-UsePerfData -XX:MaxMetaspaceSize=96M -jar fabric-server.jar nogui

Рекомендации по оптимизации: Оставьте cache-max-users = 5000 в settings.conf, используйте встроенное хранилище SQLite по умолчанию (это избавляет от сетевых драйверов внешней БД) и держите веб-панель отключённой.


🔮 Совместимость с несколькими версиями и загрузчиками

AuthCore поддерживает единую унифицированную кодовую базу, используя условную компиляцию Stonecutter и Stonecraft:

src/main/java/          --> Общее каноническое дерево исходников Java
├── in/potenfyr/authcore/
│   ├── api/            --> Публичный API AuthCore для разработчиков
│   ├── auth/           --> Контроллеры аутентификации и 2FA
│   ├── cache/          --> Высокопроизводительные неблокирующие кэши
│   ├── command/        --> Кроссплатформенные обработчики команд
│   ├── config/         --> Менеджер разделённой конфигурации HOCON
│   ├── database/       --> Драйверы SQLite, MySQL, PostgreSQL, Redis
│   ├── listener/       --> Кросс-загрузочные слушатели событий
│   ├── mixin/          --> Универсальные платформенные миксины
│   ├── model/          --> Модели данных пользователей и сессий
│   ├── proxy/          --> IP-форвардинг Velocity и BungeeCord
│   ├── security/       --> 7-уровневый обход детекции и ClientGuard
│   └── web/            --> REST веб-панель с HTTPS-аутентификацией по токену
  • Независимость от загрузчика: Тонкие точки входа (FabricEntry, ForgeEntry, NeoForgeEntry) связывают нативные хуки загрузчиков с универсальным движком AuthCore.
  • Совместимость с необфусцированными 26.x: Прямая совместимость с маппингами Mojang позволяет мгновенно собирать сборки под современные и будущие версии Minecraft.
  • Ненавязчивые миксины: Миксины затрагивают только этапы входа и сетевой аутентификации, обеспечивая нулевую несовместимость с модами оптимизации производительности, включая Lithium, C2ME, Krypton, ModernFix, FerriteCore и Spark.

🧑‍💻 Сборка из исходников

AuthCore требует JDK 25 для компиляции всех целей проекта (обеспечивается современным конвейером сборки 26.1–26.2). Если нужны портативные JDK, выполните test/install-java-and-provided-jars.sh для автоматической установки Adoptium JDK 17, 21 и 25.

# Собрать ВСЕ 6 вариантов диапазонов (jar-файлы автоматически размещаются в dist/)
./gradlew buildAll

# Собрать текущий активный вариант (1.21.11-fabric)
./gradlew build

# Собрать конкретный загрузчик и целевую версию
./gradlew :1.18.2-fabric:build      # -> dist/authcore-1.16-1.18-fabric-1.0.0.jar
./gradlew :1.18.2-forge:build       # -> dist/authcore-1.16-1.18-forge-1.0.0.jar
./gradlew :1.21.11-fabric:build     # -> dist/authcore-1.19-1.21-fabric-1.0.0.jar
./gradlew :1.21.11-neoforge:build   # -> dist/authcore-1.19-1.21-neoforge-1.0.0.jar
./gradlew :26.2-fabric:build        # -> dist/authcore-26.1-26.2-fabric-1.0.0.jar
./gradlew :26.2-neoforge:build      # -> dist/authcore-26.1-26.2-neoforge-1.0.0.jar

🧪 Тестирование безопасности

AuthCore включает автономный стенд тестирования безопасности, расположенный в test/, с более чем 180 автоматическими модульными и криптографическими проверками:

# Скомпилировать и запустить полный набор тестов безопасности
./gradlew buildAll
test/run-security-tests.sh

# Запустить сквозную локальную валидацию (компиляция + набор тестов безопасности + дымовые тесты Docker-хоста)
./gradlew testAll

Проверяемые компоненты включают:

  • Алгоритмы хеширования: Argon2id, BCrypt, SCrypt, PBKDF2, SHA-256 и прозрачное автообновление устаревших хешей.
  • Криптографическая безопасность: Уникальность соли CSPRNG, сравнения с постоянным временем и предотвращение утечек по времени.
  • Защита от эксплойтов и злоупотреблений: Жизненный цикл конечного автомата капчи, истечение срока действия SMTP-токена, разброс паттернов движения камеры и обнаружение параллельных ботоферм.
  • Движок миграции: 18 автоматических проверок, валидирующих миграцию с устаревшего единого файла на разделённую конфигурацию.

🐳 Проверка в Docker (тесты на хосте)

Чтобы гарантировать безупречную стабильность во время работы, наш тестовый стенд параллельно запускает каждый jar-файл диапазона в реальных контейнерах серверов Minecraft, используя официальные образы JRE Eclipse Temurin:

# Execute smoke matrix across all loader targets
test/docker/run-tests.sh

# Execute full matrix across all range endpoints
test/docker/run-tests.sh --all

# Run specific version brackets
test/docker/run-tests.sh --groups 1.16-1.18 --java 17
test/docker/run-tests.sh --groups 1.19-1.21 --java 21
test/docker/run-tests.sh --groups 26.1-26.2 --java 25

Каждый автоматический тест проверяет:

  1. Чистый запуск сервера с 0 ошибок и 0 серьёзных предупреждений.
  2. Корректность баннера (скомпилированная строка версии, целевой загрузчик и среда Java).
  3. Выполнение команд из админ-консоли (/authcore validate, /authcore reload, /authcore backup).
  4. Генерацию конфигурации, инициализацию базы данных SQLite и привязку сетевого порта.

📚 Документация

Подробные руководства размещены на authcore.potenfyr.in:

РуководствоОписание
🏠 Главная страница документацииПортал проекта, скачивание релизов и переключатели версий
🧭 Руководство администратора сервераПолное пошаговое руководство по настройке: выбор jar, установка, команды и решение проблем
🔀 Процессы аутентификацииПодробный разбор рукопожатий при входе, limbo-якорей, проверки TOTP и жизненных циклов сессий
📖 Справочник по конфигурацииИсчерпывающий справочник параметров (~180 настроек) со значениями по умолчанию и сценариями использования
🔌 API для разработчиковРуководство по интеграции AuthCoreApi, хуки шины событий и пользовательские схемы баз данных
⚙️ Разработка и архитектураСборочный конвейер Gradle, условная компиляция Stonecutter и тестовые стенды
🌐 Веб-панель администратораНастройка веб-панели, установка TLS/HTTPS и эндпоинты REST API
🔁 Руководство по настройке проксиНастройка modern forwarding в Velocity, BungeeCord и сетей SSO на Redis
🛡️ Модель угроз безопасностиКомплексная модель угроз в соответствии с OWASP и архитектурой сетей Minecraft
📦 Сборки 26.x и миграцияРуководство по необфусцированным маппингам Mojang 26.x, обратной совместимости и настройке
📜 Список измененийПолная история релизов, добавленных функций и патчей безопасности

❓ FAQ

Могут ли офлайн- и премиум-игроки играть вместе на сервере в online-mode?
Да. В AuthCore есть встроенный гибридный режим. На серверах в online-mode убедитесь, что в server.properties указано enable-secure-profile=false, чтобы клиенты без подписей чата Mojang могли подключаться. При allow-offline-players = true (по умолчанию в settings.conf) подключаться могут и пиратские, и премиум-игроки. Премиум-игроки проходят аутентификацию автоматически через асинхронную проверку Mojang, а пиратские — с помощью паролей.
Работает ли AuthCore в LAN или офлайн-тестовых окружениях?
Да. Приватные и loopback IP-адреса (127.0.0.1, 10.x.x.x, 192.168.x.x) никогда не передаются во внешние API Mojang или GeoIP. Сервер запускается без проблем и без необходимости активного подключения к интернету.
Есть ли известные несовместимости с другими модами?
Неизвестны. AuthCore прошёл обширное тестирование с модами для оптимизации производительности и утилитами, включая C2ME, Chunky, Lithium, Krypton, Ledger, ModernFix, FerriteCore и Spark.
Могут ли несколько серверов использовать одну базу данных учётных записей игроков?
Да. Настройте общую базу данных MySQL или PostgreSQL в database.conf и активируйте Redis в session.conf для синхронизации SSO-сессий по всей сети и шины событий безопасности между серверами.
Нужно ли игрокам устанавливать клиентские моды для подключения?
Нет. AuthCore работает на 100% на стороне сервера. Игроки подключаются через ванильные клиенты Minecraft или стандартные модифицированные клиенты без установки какого-либо дополнительного клиентского ПО.

🗺️ План развития

  • [x] Универсальная поддержка нескольких загрузчиков: Единая кодовая база для Fabric, Forge и NeoForge от 1.16.0 → 26.x+.
  • [x] 7-уровневая эшелонированная защита: Профилирование поведения, конечные автоматы пакетов, анализ паттернов взгляда и приманки.
  • [x] Многофакторная аутентификация: Приложения-аутентификаторы TOTP, резервные коды восстановления и одноразовая верификация по email через SMTP.
  • [x] Движок против злоупотреблений: Блокировки при брутфорсе, динамические капчи-действия, фильтры IP по CIDR и теневые баны.
  • [x] Корпоративное хранилище: Высокопроизводительный SQLite (WAL), MySQL, PostgreSQL и шины событий SSO на Redis.
  • [x] Браузерная веб-панель: REST-интерфейс администрирования с аутентификацией по токену и живыми метриками.
  • [x] Паритет с прокси: Современный HMAC-форвардинг Velocity, определение устаревшего BungeeCord и безопасность по принципу fail-closed.
  • [x] Строгость автоматизированного тестирования: 180+ автоматических криптографических и проверок безопасности с параллельными тестами на Docker-хостах.
  • [x] Раздельная архитектура конфигурации: Отдельные конфиги по доменам (lobby.conf, session.conf, database.conf) с автоматической миграцией со старых версий.

📈 Активность, история звёзд и метрики

GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests Contributors Last Commit

🌟 История звёзд в реальном времени

AuthCore Star History Graph

📈 Живой график звёзд, отрисованный через star-history.com. Обновляется в реальном времени, когда пользователи ставят звезду репозиторию.


🤝 Сообщество и участие

Мы рады вкладу сообщества, сообщениям об ошибках и предложениям по функциям!

  • Нашли баг или есть идея? Создайте issue в трекере задач или начните обсуждение в Discussions.
  • Хотите отправить код? Форкните репозиторий, создайте ветку с понятным названием и отправьте Pull Request, соответствующий стандартам Google Java Format.
  • Нужна поддержка сообщества или прямая помощь? Присоединяйтесь к нам в Discord!

Discord Server Support Server Website


📜 Лицензия

Этот проект распространяется под лицензией CC0 1.0 Universal (Public Domain). Вы можете свободно использовать, изменять, распространять и интегрировать AuthCore в личные, коммерческие или модпак-сборки без ограничений.

Создано с любовью студией PotenFYR Studios
Поддержка и вопросы: support@potenfyr.in

PotenFYR footer banner

Частые вопросы

Как установить AuthCore?

Установите Fabric под свою версию Minecraft, скачайте AuthCore под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть AuthCore?

У AuthCore есть сборки для Minecraft 1.16–26.3.

Нужен ли AuthCore на сервере?

Ставится только на сервер; игрокам ставить не нужно

Лицензия и источник
Creative Commons Zero v1.0 Universalможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее